fix:修改创建评估及编辑评估回显

This commit is contained in:
lixg
2022-12-14 11:55:48 +08:00
parent a70b55906f
commit ea3315ac32
3 changed files with 272 additions and 240 deletions

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-12-13 15:30:27
* @LastEditTime: 2022-12-14 09:04:31
* @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -56,7 +56,7 @@ http.interceptors.response.use(
return response;
} else {
if (code === 1000) {
window.open("https://u-pre.boe.com/web/", '_self');
// window.open("https://u-pre.boe.com/web/", '_self');
// window.open("http://111.231.196.214:12013/manage/login", '_self');
}
console.log("api %o", msg);

View File

@@ -21,21 +21,17 @@
<div class="main">
<div class="main_left">
<AssessmentAll
v-model:assessmentVisible="assessmentVisible"
v-model:assessmentId="assessmentId"
v-model:assessmentName="assessmentName"
/>
v-model:assessmentVisible="assessmentVisible"
v-model:assessmentId="assessmentId"
v-model:assessmentName="assessmentName"
/>
</div>
</div>
</div>
<div class="main_btns">
<button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="updateTask">确定</button>
</div>
<button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="updateTask">确定</button>
</div>
</div>
</a-drawer>
</template>
@@ -119,15 +115,15 @@ export default {
assessmentName: "",
assessment: null,
assessment1: null,
assessmentVisible:false,
assessmentVisible: false,
titleTag: false,
});
// const getCheckedAss = (ass) => {
// state.assessmentId = ass.assessmentId;
// state.assessment = ass;
// console.log("state.assessment1",state.assessment);
//
// };
// const getCheckedAss = (ass) => {
// state.assessmentId = ass.assessmentId;
// state.assessment = ass;
// console.log("state.assessment1",state.assessment);
//
// };
const closeDrawer = () => {
ctx.emit("update:addinvistVisible", false);
@@ -138,43 +134,45 @@ export default {
// ctx.emit("changeData", false);
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
};
const checkAssDrawer = () => {
state.assessmentVisible = true;
};
const afterVisibleChange = (bool) => {
if(bool && props.EditInvistId >0){
if (bool && props.EditInvistId > 0) {
state.assessmentVisible = true;
state.assessmentId = props.EditInvistId;
}else{
state.assessmentId =null;
state.assessmentName =null;
} else {
state.assessmentId = null;
state.assessmentName = null;
}
};
const updateTask = () => {
console.log("state.assessmentId ",state.assessmentId ,state.assessmentName );
console.log(
"state.assessmentId ",
state.assessmentId,
state.assessmentName
);
if (!state.assessmentId) {
return message.warning("请选择评估");
}
let l_data_id = [];
l_data_id.push(Number(state.assessmentId))
console.log("state.assessment",state.assessment,state.assessmentId);
l_data_id.push(Number(state.assessmentId));
console.log("state.assessment", state.assessment, state.assessmentId);
if (props.isLevel == 1) {
if(!props.isactive){
if (!props.isactive) {
message.destroy();
return message.warning("请先选中关卡");
}
IsExistence({
chapterId: Number(props.isactive),
courseTaskId:l_data_id,
courseTaskId: l_data_id,
routerId: props.routerId,
type: 11,
})
.then((res) => {
console.log('shifouchongfu',res)
console.log("shifouchongfu", res);
console.log("路径图中是否包含此评估了", res);
if (res.data.data.length) {
let strdata = res.data.data;
@@ -200,7 +198,9 @@ export default {
})
.then(() => {
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
message.success(
`${props.edit ? "编辑" : "新增"}关卡任务成功`
);
ctx.emit("changeData", false);
closeDrawer();
state.addLoading = false;
@@ -210,20 +210,20 @@ export default {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
}
}).catch(err=>{
console.log(err)
})
.catch((err) => {
console.log(err);
});
} else if (props.isLevel == 2) {
IsExistenceProject({
courseTaskId: l_data_id,
projectId: props.projectId,
stageId: props.chooseStageId || 0,
type: 11,
}).then(res=>{
console.log(res)
console.log("项目中是否包含此评估了", res);
})
.then((res) => {
console.log(res);
console.log("项目中是否包含此评估了", res);
if (res.data.data.length) {
let strdata = res.data.data;
let tipStr = "";
@@ -239,71 +239,70 @@ export default {
return;
} else {
apiTask
.addTask({
courseId: state.assessmentId,
name: state.assessmentName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 11,
})
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
.addTask({
courseId: state.assessmentId,
name: state.assessmentName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 11,
})
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
}
}).catch(err=>{
console.log(err)
})
})
.catch((err) => {
console.log(err);
});
} else if (props.isLevel == 3) {
IsExistenceProjectTemplate({
courseTaskId: l_data_id,
projectTemplateId: props.projectTemplateId,
stageId: props.chooseStageId || 0,
type: 11,
}).then((res)=>{
console.log(res)
}).then((res) => {
console.log(res);
console.log("项目中是否包含此评估了", res);
if (res.data.data.length) {
let strdata = res.data.data;
let tipStr = "";
for (let i = 0; i < strdata.length; i++) {
if (i == strdata.length - 1) {
tipStr += strdata[i].courseName;
} else {
tipStr += strdata[i].courseName + "/";
}
if (res.data.data.length) {
let strdata = res.data.data;
let tipStr = "";
for (let i = 0; i < strdata.length; i++) {
if (i == strdata.length - 1) {
tipStr += strdata[i].courseName;
} else {
tipStr += strdata[i].courseName + "/";
}
message.destroy();
message.warning("评估(" + tipStr + ")重复添加");
return;
}else{
addTempTask({
courseId: state.assessmentId,
name: state.assessmentName,
projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 11,
})
.then(() => {
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
}
message.destroy();
message.warning("评估(" + tipStr + ")重复添加");
return;
} else {
addTempTask({
courseId: state.assessmentId,
name: state.assessmentName,
projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 11,
})
.then(() => {
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
}
});
}
};
@@ -313,7 +312,6 @@ export default {
closeDrawer,
updateTask,
checkAssDrawer,
};
},
};
@@ -339,7 +337,6 @@ export default {
}
}
.contentMain {
.main {
width: 100%;
.main_left {
@@ -410,7 +407,7 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom:3px;
margin-bottom: 3px;
height: 40px;
background-color: #e9f6fe;
.mntc_left {

View File

@@ -1,59 +1,54 @@
<!-- 评估列表 -->
<template>
<div class="main_item">
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 40px; border-radius: 8px;"
placeholder="请输入评估名称"
maxlength="20"
/>
</div>
<div class="btns" @click="getAllInvistText">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btnsn" @click="resetInvist">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
<div class="main_item">
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 40px; border-radius: 8px"
placeholder="请输入评估名称"
maxlength="20"
/>
</div>
<div class="main_notice">
<div class="mntc_left">
<div class="notice_icon"></div>
<div v-if="assessment == null">
<span class="title"
>已选择 <span class="data">0</span> </span
>
</div>
<div v-else>
<div >
<span class="title"
>已选择 <span class="data">1</span> ;</span
>
<span class="title"
>名称 <span class="data">{{ assessment.name }}</span>
</span><!--
<div class="btns" @click="getAllInvistText">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btnsn" @click="resetInvist">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
<div class="main_notice">
<div class="mntc_left">
<div class="notice_icon"></div>
<div v-if="assessment == null">
<span class="title">已选择 <span class="data">0</span> </span>
</div>
<div v-else>
<div>
<span class="title">已选择 <span class="data">1</span> ;</span>
<span class="title"
>名称 <span class="data">{{ assessment.name }}</span> </span
><!--
<span class="title"
>题数 <span class="data">{{ assessment.essayQuestionVoList?Number(assessment.essayQuestionVoList.length):0
+Number(assessment.multipleStemVoList?assessment.multipleStemVoList.length:0)
+Number(assessment.scoringQuestionVoList?assessment.scoringQuestionVoList.length:0)
+Number(assessment.singleStemVoList?assessment.singleStemVoList.length:0) }}</span>
</span>-->
<span class="title"
>题数 <span class="data">{{ assessment.num }}</span>
</span>
<span class="title"
>创建人
<span class="data">{{ assessment.creator }}</span>
</span>
<span class="title"
>创建时间
<span class="data">{{ assessment.time }}</span>
</span>
</div>
<!--
<span class="title"
>题数 <span class="data">{{ assessment.num }}</span>
</span>
<span class="title"
>创建人
<span class="data">{{ assessment.creator }}</span>
</span>
<span class="title"
>创建时间
<span class="data">{{ assessment.time }}</span>
</span>
</div>
<!--
<div v-else>
<span class="title"
>已选择 <span class="data">1</span> ;</span
@@ -78,27 +73,27 @@
</span>
</div>
-->
</div>
</div>
</div>
</div>
</div>
<div class="main_table">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:row-selection="{
type: 'radio',
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
filterMultiple:false
/>
<div class="tableBox">
<div class="main_table">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:row-selection="{
type: 'radio',
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
filterMultiple:false
/>
<div class="tableBox">
<div class="pa">
<a-pagination
:showSizeChanger="false"
@@ -110,12 +105,12 @@
class="pagination"
@change="handelChangePage"
/>
</div></div>
</div>
</div>
</div>
</template>
<script>
import { reactive, toRefs,onMounted } from "vue";
import { reactive, toRefs, onMounted, watch } from "vue";
import * as api from "../../api/indexInvist.js";
import dayjs from "dayjs";
export default {
@@ -127,11 +122,11 @@ export default {
type: Boolean,
default: false,
},
assessmentId:{
assessmentId: {
type: Number,
default: null,
},
assessmentName:{
assessmentName: {
type: String,
default: null,
},
@@ -145,38 +140,55 @@ export default {
pageSize: 10,
tableDataTotal: 0,
tableData: [],
selectedRowKeys:[],
assessmentId:null,
assessmentName:null,
selectedRowKeys: [],
assessmentId: null,
assessmentName: null,
});
const closeDrawer = () => {
ctx.emit("update:assessmentVisible", false);
};
//清空所选
const clearLine = () => {
console.log("state.selectedRowKeys",state.selectedRowKeys)
//清空所选
const clearLine = () => {
console.log("state.selectedRowKeys", state.selectedRowKeys);
state.selectedRowKeys = [];
state.addOnlineList = [];
};
const queryInfo = () => {
//if (props.edit) {
// state.titleTg = false;
//编辑讨
// state.titleTg = false;
//编辑讨
console.log("查询评估",props.assessmentId);
if(props.assessmentId){
api
console.log("查询评估", props.assessmentId);
if (props.assessmentId) {
api
.queryAppraiseDetailById({ assessmentId: props.assessmentId })
.then((res) => {
console.log(res);
console.log("查询评估xinxi ", res);
let info = res.data.data;
let obj = {
assessmentId: info.assessmentId,
name: info.assessmentName,
num: info.essayQuestionVoList
? Number(info.essayQuestionVoList.length)
: 0 + info.multipleStemVoList
? Number(info.multipleStemVoList.length)
: 0 + info.scoringQuestionVoList
? Number(info.scoringQuestionVoList.length)
: 0 + info.singleStemVoList
? Number(info.singleStemVoList.length)
: 0,
creator: info.createUser ? info.createUser : "-",
time: dayjs(info.createTime).format("YYYY-MM-DD"),
};
//更新讨论信息
state.assessment = res.data.data;
// state.assessmentId = res.data.data.assessmentId;
state.assessment = obj;
state.selectedRowKeys = [info.assessmentId];
// state.assessmentId = res.data.data.assessmentId;
})
.catch(() => {});
}
}
// }
// }
};
const tableDataFunc = () => {
const columns = [
@@ -219,12 +231,11 @@ export default {
state.addOnlineList = selectedRows;
console.log(selectedRowKeys, selectedRows);
state.assessment = selectedRows[0];
console.log("selectedRows=======", state.assessment);
// ctx.emit("checkedAss", state.assessment);
ctx.emit("update:assessmentId", state.assessment.assessmentId);
ctx.emit("update:assessmentName", state.assessment.name);
}
console.log("selectedRows=======", state.assessment);
// ctx.emit("checkedAss", state.assessment);
ctx.emit("update:assessmentId", state.assessment.assessmentId);
ctx.emit("update:assessmentName", state.assessment.name);
};
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
@@ -234,21 +245,27 @@ export default {
const getTableDate = (tableData) => {
let data = tableData;
let array = [];
data.map((value, index) => {
data.map((value) => {
let obj = {
key: index,
key: value.assessmentId,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList?Number(value.essayQuestionVoList.length):0
+value.multipleStemVoList?Number(value.multipleStemVoList.length):0
+value.scoringQuestionVoList?Number(value.scoringQuestionVoList.length):0
+value.singleStemVoList?Number(value.singleStemVoList.length):0,
num: value.essayQuestionVoList
? Number(value.essayQuestionVoList.length)
: 0 + value.multipleStemVoList
? Number(value.multipleStemVoList.length)
: 0 + value.scoringQuestionVoList
? Number(value.scoringQuestionVoList.length)
: 0 + value.singleStemVoList
? Number(value.singleStemVoList.length)
: 0,
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
});
(state.selectedRowKeys = []), (state.tableData = array);
state.selectedRowKeys = [];
state.tableData = array;
};
//获取全部评估信息接口
const getAllInvistText = () => {
@@ -279,15 +296,34 @@ export default {
};
onMounted(() => {
clearLine();
console.log("state.selectedRowKeys",state.selectedRowKeys)
if(!state.assessmentId){
console.log(
"state.selectedRowKeys",
state.selectedRowKeys,
state.assessmentId
);
if (!state.assessmentId) {
clearLine();
}
queryInfo();
getAllInvistText();
});
watch(
() => props.assessmentId,
() => {
if (!props.assessmentId) {
clearLine();
state.assessment = null;
} else {
queryInfo();
}
console.log("props.assessmentId", props.assessmentId);
},
{
deep: true,
}
);
return {
...toRefs(state),
onSelectChange,
@@ -322,7 +358,6 @@ export default {
}
}
.contentMain {
.main_left {
padding-right: 30px;
margin-top: 32px;
@@ -398,36 +433,36 @@ export default {
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
display: flex;
justify-content: center;
position: absolute;
bottom: 20px;
}
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
display: flex;
justify-content: center;
position: absolute;
bottom: 20px;
}
}
.main_btns {
height: 72px;
width: 100%;