feat:添加在线、案例的添加搜索重置编辑已完成

This commit is contained in:
Ggysh-7
2022-11-26 16:06:15 +08:00
parent 90d5c8cd87
commit 093feb913e
6 changed files with 232 additions and 86 deletions

View File

@@ -34,7 +34,7 @@ http.interceptors.request.use(
// 此处测试默认配置token
config.headers.token = "123456";
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NjkzODQ5MTgsImV4cCI6MTY2OTM5MjExOCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.7c3af587cbacf68180e86681442e06ffd33c65a78fc835aaac34d0c773752d99";
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njk0NDkwMzMsImV4cCI6MTY2OTQ1NjIzMywiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.e79f798576a6886f38e15e87a0534bb023ecc19c079d5e9fb92d6241a82446c8";
}
return config;
},

18
src/api/indexOnline.js Normal file
View File

@@ -0,0 +1,18 @@
/*
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-07 17:06:45
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-21 16:39:00
* @FilePath: /fe-manage/src/api/index.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import http from "./config";
// import qs from 'qs';
// 接口-请求
//查询在线课信息列表接口
export const queryOnlinelList = (obj) => http.post('/queryOnlineClassesDetailList', obj)

View File

@@ -26,13 +26,13 @@
<a-input
v-model:value="inputV1"
style="width: 264px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称"
placeholder="请输入案例标题"
/>
</div>
</div>
</div>
<div class="mi_btns">
<div class="btn btn1" @click="getAllCaseText">
<div class="btn btn1" @click="searchList()">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
@@ -45,6 +45,23 @@
<div class="main_table">
<a-table
v-if="edit"
class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="{
type:'radio',
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
<a-table
v-else
class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
@@ -81,9 +98,10 @@
</a-drawer>
</template>
<script>
import { reactive, toRefs } from "vue";
import { onMounted, reactive, toRefs } from "vue";
import * as api from "../../api/indexCase.js";
import * as apiTask from "../../api/indexTaskadd";
// import { setCookie } from "../../api/method"
import { message } from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask";
// import { addTempTask } from "../../api/indexTaskadd";
@@ -142,6 +160,7 @@ export default {
currentPage: 1,
tableDataTotal: 0,
pageSize: 10,
searching:false,
selectedRowKeys: [],
apiTaskList: [],
inputV1: "",
@@ -177,7 +196,6 @@ export default {
key: "authorName",
width: "200px",
align: "center",
className: "classify",
},
{
title: "导入时间",
@@ -185,7 +203,6 @@ export default {
key: "time",
width: "400px",
align: "center",
className: "classify",
},
];
return columns;
@@ -205,6 +222,23 @@ export default {
const getTableDate = (tableData) => {
let data = tableData;
let array = [];
if(state.searching){
data.map((value, index) => {
let obj = {
key: index,
authorId: value.authorId,
authorName: value.authorName,
companyId: value.companyId,
coverUrl: value.coverUrl,
id: value.id,
casesId: value.casesId,
title: value.title,
};
if(obj.title == state.inputV1){
array.push(obj);
}
});
} else {
data.map((value, index) => {
let obj = {
key: index,
@@ -218,6 +252,7 @@ export default {
};
array.push(obj);
});
}
state.tableData = array;
};
//获取全部案例信息接口
@@ -227,8 +262,8 @@ export default {
keyWord: state.inputV1,
orderAsc: true,
orderField: "",
pageIndex: 0,
pageSize: 0,
pageIndex: state.currentPage,
pageSize: state.pageSize,
top: true,
})
.then((res) => {
@@ -313,13 +348,29 @@ export default {
}
}
};
//搜索案例列表
const searchList = ()=> {
if(state.inputV1 !== ''){
state.searching = true
getAllCaseText()
}else {
state.searching = false
resetCase()
}
}
//重置案例信息
const resetCase = () => {
state.inputV1 = ""
state.searching = false
state.selectedRowKeys=[]
state.currentPage = 1
getAllCaseText();
};
onMounted(()=>{
// let cookie =
// "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njk0MjgwNTAsImV4cCI6MTY2OTQzNTI1MCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.9ea5ce6d4cd43c2c17f21a293e4dc0d362c2a404b9d50fae5c49fed5a238fb1a";
// setCookie("token", cookie, 10);
})
return {
...toRefs(state),
afterVisibleChange,
@@ -330,6 +381,7 @@ export default {
getTableDate,
updateTask,
getAllCaseText,
searchList,
resetCase,
};
},
@@ -447,10 +499,6 @@ export default {
.main_table {
position: relative;
padding-bottom: 80px;
.classify {
margin-left: 10px !important;
padding-left: 9px !important;
}
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;

View File

@@ -34,6 +34,7 @@
<div class="ipt_name">内容分类</div>
<div class="select">
<a-select
v-model:value="selectV"
dropdownClassName="dropdown-style"
style="width: 240px"
placeholder="请选择"
@@ -45,7 +46,7 @@
</div>
</div>
<div class="mi_btns">
<div class="btn btn1">
<div class="btn btn1" @click="searchList()">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
@@ -72,7 +73,25 @@
</div>
</div>
<div class="main_table">
<!-- 编辑的表格 -->
<a-table
v-if="edit"
class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="{
type:'radio',
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
<a-table
v-else
class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
@@ -80,7 +99,6 @@
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
onSelect: onSelected,
}"
:columns="tableDataFunc()"
:data-source="tableData"
@@ -109,12 +127,12 @@
</a-drawer>
</template>
<script>
import { reactive, toRefs } from "vue";
import * as api from "../../api/indexInvist.js";
import { onMounted, reactive, toRefs } from "vue";
import * as api from "../../api/indexOnline.js";
import * as apiTask from "../../api/indexTaskadd";
// import { setCookie } from "../../api/method"
import { message } from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask";
import dayjs from "dayjs";
import { addTempTask } from "../../api/indexTaskadd";
export default {
name: "AddOnline",
@@ -123,7 +141,7 @@ export default {
type: Boolean,
default: false,
},
EditInvistId: {
EditOnlineId: {
type: Number,
default: null,
},
@@ -168,15 +186,22 @@ export default {
inputV1: "",
options1: [
{
value: "value1",
label: "未完成",
value: "微课",
label: "微课",
},
{
value: "录播课",
label: "录播课"
}
],
time: undefined,
assessmentId: null,
assessmentName: "",
onlineClassesId: null,
onlineName: "",
searching:false,
selectV: "",
selectedRowKeys: [],
tableData: [],
addOnlineList:[],
currentPage: 1,
tableDataTotal: 0,
pageSize: 10,
@@ -184,11 +209,17 @@ export default {
const closeDrawer = () => {
ctx.emit("update:addonlineVisible", false);
ctx.emit("update:edit", false);
state.inputV1 = "";
state.selectedRowKeys = [];
state.addOnlineList = [];
state.currentPage = 1;
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
};
const afterVisibleChange = () => {
const afterVisibleChange = (bol) => {
if(bol == true){
getAllOnlineText();
}
};
const tableDataFunc = () => {
const columns = [
@@ -196,21 +227,20 @@ export default {
title: "课程编号",
dataIndex: "num",
key: "num",
width: "200px",
align: "center",
width: "80px",
align: "left",
},
{
title: "名称",
dataIndex: "name",
key: "name",
width: "100px",
align: "left",
className: "classify",
align: "center",
},
{
title: "内容分类",
dataIndex: "content",
key: "content",
dataIndex: "contenttype",
key: "contenttype",
width: "80px",
align: "center",
},
@@ -218,37 +248,34 @@ export default {
title: "授课教师",
dataIndex: "teacher",
key: "teacher",
width: "80px",
width: "100px",
align: "center",
},
{
title: "创建人",
dataIndex: "creator",
key: "creator",
dataIndex: "sysCreateBy",
key: "sysCreateBy",
width: "80px",
align: "center",
},
{
title: "完成时间",
dataIndex: "time",
dataIndex: "overtime",
key: "time",
width: "200px",
width: "150px",
align: "center",
},
];
return columns;
};
const onSelected = (record) => {
state.assessmentId = record.assessmentId;
state.assessmentName = record.name;
};
const onSelectChange = (selectedRowKeys, b) => {
const onSelectChange = (selectedRowKeys,selectedRows) => {
state.selectedRowKeys = selectedRowKeys;
console.log(b);
state.addOnlineList = selectedRows
};
//清空所选
const clearLine = () => {
state.selectedRowKeys = [];
state.addOnlineList = [];
};
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
@@ -259,41 +286,73 @@ export default {
let data = tableData;
let array = [];
data.map((value,index) => {
let contentType= ""
if(value.type == 10){
contentType = "微课"
} else if (value.type == 20){
contentType = "录播课"
}
if(state.searching){
let obj = {
key: index + 1,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length,
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
num:"",
name:value.name,
contenttype:contentType,
teacher:value.teacher,
sysCreateBy:value.sysCreateBy,
overtime:"",
};
if(obj.name == state.inputV1 || obj.contenttype == state.selectV){
array.push(obj);
}
} else {
let obj = {
key: index + 1,
num:"",
name:value.name,
contenttype:contentType,
teacher:value.teacher,
sysCreateBy:value.sysCreateBy,
overtime:"",
};
array.push(obj);
}
});
state.tableData = array;
state.tableDataTotal = state.tableData.length
};
//获取全部在线信息接口
const getAllOnlineText = () => {
api
.queryAssessmentDetailList({
assessmentName: "",
pageNo: state.currentPage,
pageSize: state.pageSize,
.queryOnlinelList({
"createUser": "",
"keyword": state.inputV1,
"orderAsc": true,
"orderField": "",
"pageIndex": state.currentPage,
"pageSize": state.pageSize,
"publish": true,
"status": 0,
"sysType1": "",
"sysType2": "",
"sysType3": "",
})
.then((res) => {
let arr = res.data.data.rows;
let arr = res.data.data;
if (res.status === 200) {
getTableDate(arr);
state.tableDataTotal = Number(res.data.data.total);
}
})
.catch(() => {});
.catch((err) => {
console.log(err,'请求失败在线');});
};
const updateTask = () => {
if (props.isLevel == 1) {
state.addOnlineList.map((value) => {
RouterEditTask({
chapterId: props.isactive,
courseId: state.assessmentId,
name: state.assessmentName,
chapterId: Number(props.isactive),
courseId: value.onlineClassesId,
name: value.name,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 1,
@@ -309,11 +368,13 @@ export default {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
})
} else if (props.isLevel == 2) {
state.addOnlineList.map((value) => {
apiTask
.addTask({
courseId: state.assessmentId,
name: state.assessmentName,
courseId: value.onlineClassesId,
name: value.name,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
@@ -329,10 +390,11 @@ export default {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
})
} else if (props.isLevel == 3) {
addTempTask({
courseId: state.assessmentId,
name: state.assessmentName,
courseId: state.onlineClassesId,
name: state.onlineName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
@@ -340,33 +402,53 @@ export default {
})
.then(() => {
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
message.success(`${props.edit ? "编辑" : "新增"}模板库任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
message.error(`${props.edit ? "编辑" : "新增"}模板库任务失败`);
});
}
};
//搜索在线列表
const searchList = ()=> {
if(state.inputV1 !== '' || state.selectV !== ''){
state.searching = true
getAllOnlineText()
}else {
state.searching = false
resetOnline()
}
}
//重置在线信息
const resetOnline = () => {
state.inputV1 = "";
state.selectV = "";
state.searching = false;
state.selectedRowKeys = [];
state.addOnlineList = [];
state.currentPage = 1;
getAllOnlineText();
};
onMounted(()=>{
// let cookie =
// "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njk0MjgwNTAsImV4cCI6MTY2OTQzNTI1MCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.9ea5ce6d4cd43c2c17f21a293e4dc0d362c2a404b9d50fae5c49fed5a238fb1a";
// setCookie("token", cookie, 10);
})
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
tableDataFunc,
onSelected,
onSelectChange,
clearLine,
handelChangePage,
getAllOnlineText,
getTableDate,
updateTask,
searchList,
resetOnline,
};
},
@@ -506,17 +588,12 @@ export default {
.main_table {
position: relative;
padding-bottom: 80px;
.classify {
margin-left: 10px !important;
padding-left: 9px !important;
}
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 60px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
@@ -533,8 +610,6 @@ export default {
.pa {
left: 0;
width: 100%;
// height: 20px;
// background-color: red;
display: flex;
justify-content: center;
position: absolute;

View File

@@ -219,11 +219,15 @@
<add-online
v-model:addonlineVisible="addonlinevisible"
@changeData="updateTableData"
v-model:edit="edit"
v-model:isactive="isactive"
v-model:routerId="routerId"
v-model:routerTaskId="routerTaskId"
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:edit="edit"
v-model:EditOnlineId="EditOnlineId"
:isLevel="isLevel"
/>
</div>
<!-- 添加在线侧弹窗 -->
@@ -263,14 +267,15 @@
<add-case
v-model:addcaseVisible="addcasevisible"
@changeData="updateTableData"
:isLevel="isLevel"
v-model:isactive="isactive"
v-model:routerId="routerId"
v-model:edit="edit"
v-model:routerTaskId="routerTaskId"
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:edit="edit"
v-model:EditCaseId="EditCaseId"
:isLevel="isLevel"
/>
</div>
<!-- 添加案例侧弹窗 -->
@@ -420,16 +425,16 @@
<div>
<add-eval
v-model:addevalVisible="addevalvisible"
:isLevel="isLevel"
@changeData="updateTableData"
v-model:isactive="isactive"
v-model:routerTaskId="routerTaskId"
v-model:edit="edit"
v-model:routerId="routerId"
v-model:routerTaskId="routerTaskId"
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:edit="edit"
v-model:EditEvalId="EditEvalId"
:isLevel="isLevel"
/>
</div>
<!-- 添加测评侧弹窗 -->

View File

@@ -14,7 +14,7 @@ module.exports = defineConfig({
port: 8080,
proxy: {
"/manageApi": {
// target:"http://192.168.100.208:30001",
// target:"http://192.168.56.245:30001/",
target: "http://111.231.196.214:30001/", //这里后台的地址模拟的;应该填写你们真实的后台接口
changeOrigin: true, //表示是否改变原域名
// secure: false,