mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-11 11:56:46 +08:00
--fix bug
This commit is contained in:
@@ -7,3 +7,4 @@ export const USER_PERMISSION = '/userbasic/permission/listByUser post'
|
||||
export const CASE_PAGE = '/systemapi/xboe/m/boe/cases/pagelist post formData'
|
||||
export const EXAM_PAPER_PAGE = '/systemapi/xboe/m/exam/paper/querylist post formData'
|
||||
export const TEST_PAGE = '/api/b1/system/quiz/quiz-list post formData'
|
||||
export const ONLINE_PAGE = '/systemapi/xboe/m/course/manage/pagelist post formData'
|
||||
|
||||
@@ -8,11 +8,10 @@
|
||||
width="80%"
|
||||
title="添加在线"
|
||||
placement="right"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div v-if="edit" class="headerTitle">编辑在线</div>
|
||||
<div v-if="taskIndex>=0" class="headerTitle">编辑在线</div>
|
||||
<div v-else class="headerTitle">添加在线</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
@@ -27,7 +26,7 @@
|
||||
<div class="ipt_name"></div>
|
||||
<div class="fi_input">
|
||||
<a-input
|
||||
v-model:value="params.name"
|
||||
v-model:value="params.keyword"
|
||||
style="
|
||||
width: 280px;
|
||||
height: 40px;
|
||||
@@ -46,7 +45,7 @@
|
||||
<div class="ipt_name">课程分类:</div>
|
||||
<div class="select">
|
||||
<a-select
|
||||
v-model:value="params.category"
|
||||
v-model:value="params.type"
|
||||
dropdownClassName="dropdown-style"
|
||||
style="width: 240px"
|
||||
placeholder="请选择课程分类"
|
||||
@@ -71,6 +70,7 @@
|
||||
<div>
|
||||
<div>
|
||||
<a-table
|
||||
:customRow="customRow"
|
||||
class="ant-table-striped"
|
||||
:row-class-name="(_, index) => (index % 2 === 1 ? 'table-striped' : null)"
|
||||
row-key="id"
|
||||
@@ -93,29 +93,50 @@
|
||||
</template>
|
||||
<script setup>
|
||||
import {computed, defineEmits, defineProps, ref, watch} from "vue";
|
||||
import {usePage} from "@/api/request";
|
||||
import {ONLINE_COURSE_PAGE} from "@/api/apis";
|
||||
import {useBoeApiPage} from "@/api/request";
|
||||
import {ONLINE_PAGE} from "@/api/ThirdApi";
|
||||
import {message} from "ant-design-vue";
|
||||
|
||||
const props = defineProps({
|
||||
courseId: String,
|
||||
type: Number,
|
||||
taskList: []
|
||||
})
|
||||
const visible = ref(false)
|
||||
const selectValue = ref()
|
||||
watch(props.courseId, () => {
|
||||
selectValue.value = props.courseId
|
||||
})
|
||||
const taskIndex = ref(-1);
|
||||
const rowSelectKeys = ref([]);
|
||||
const selectsData = ref([]);
|
||||
|
||||
const emit = defineEmits({})
|
||||
|
||||
watch(taskIndex, () => {
|
||||
if (taskIndex.value >= 0) {
|
||||
rowSelectKeys.value = [props.taskList[taskIndex.value].courseId]
|
||||
selectsData.value = data.value.find(t => t.id === props.taskList[taskIndex.value].courseId) || {}
|
||||
}
|
||||
})
|
||||
|
||||
const categoryOption = ref([
|
||||
{
|
||||
value: "微课",
|
||||
value: 10,
|
||||
label: "微课",
|
||||
},
|
||||
{
|
||||
value: "录播课",
|
||||
value: 20,
|
||||
label: "录播课",
|
||||
},
|
||||
{
|
||||
value: 21,
|
||||
label: "直播",
|
||||
},
|
||||
{
|
||||
value: 30,
|
||||
label: "面授",
|
||||
},
|
||||
{
|
||||
value: 90,
|
||||
label: "混合",
|
||||
},
|
||||
|
||||
])
|
||||
|
||||
const columns = ref([
|
||||
@@ -128,11 +149,12 @@ const columns = ref([
|
||||
},
|
||||
{
|
||||
title: "课程分类",
|
||||
dataIndex: "contenttype",
|
||||
key: "contenttype",
|
||||
dataIndex: "type",
|
||||
key: "type",
|
||||
width: "15%",
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
customRender: ({record: {type}}) => ({10: '微课', 21: '直播', 20: '录播', 30: '面授', 90: '混合'}[type]),
|
||||
},
|
||||
{
|
||||
title: "创建人",
|
||||
@@ -160,342 +182,103 @@ const columns = ref([
|
||||
},
|
||||
])
|
||||
const params = ref({
|
||||
name: '',
|
||||
current: 1,
|
||||
pageSize: 10
|
||||
keyword: '',
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
orderAsc: true,
|
||||
publish: true,
|
||||
contenttype: 20
|
||||
})
|
||||
|
||||
const projectSelectKeys = ref([]);
|
||||
|
||||
const {data, loading, total, fetch,reset} = usePage(ONLINE_COURSE_PAGE, params.value)
|
||||
const {data, loading, total, fetch} = useBoeApiPage(ONLINE_PAGE, params.value, {
|
||||
init: false,
|
||||
result: res => res.result.list,
|
||||
totalPage: res => res.result.totalPages,
|
||||
total: res => res.result.count
|
||||
})
|
||||
|
||||
|
||||
const pagination = computed(() => ({
|
||||
total: total.value,
|
||||
showSizeChanger: false,
|
||||
current: params.value.current,
|
||||
current: params.value.pageIndex,
|
||||
pageSize: params.value.pageSize,
|
||||
onChange: changePagination,
|
||||
}));
|
||||
|
||||
const selectsData = ref({});
|
||||
const customRow = (record) => ({
|
||||
onClick: () => {
|
||||
rowSelectKeys.value = [record.id]
|
||||
selectsData.value = [record]
|
||||
}
|
||||
})
|
||||
|
||||
const changePagination = (e) => {
|
||||
params.value.current = e;
|
||||
params.value.pageIndex = e;
|
||||
fetch()
|
||||
};
|
||||
const rowSelection = computed(() => ({
|
||||
type: 'radio',
|
||||
columnWidth: 20,
|
||||
selectedRowKeys: projectSelectKeys.value,
|
||||
selectedRowKeys: rowSelectKeys.value,
|
||||
onChange: onSelectChange,
|
||||
preserveSelectedRowKeys: true,
|
||||
}));
|
||||
|
||||
function onSelectChange(e, l) {
|
||||
projectSelectKeys.value = e;
|
||||
rowSelectKeys.value = e;
|
||||
selectsData.value = l;
|
||||
}
|
||||
|
||||
function reset() {
|
||||
rowSelectKeys.value = [];
|
||||
selectsData.value = [];
|
||||
params.value.pageIndex = 1
|
||||
params.value.keyword = ''
|
||||
fetch()
|
||||
}
|
||||
|
||||
const closeDrawer = () => {
|
||||
visible.value = false
|
||||
taskIndex.value = -1
|
||||
reset()
|
||||
};
|
||||
|
||||
function confirm(){
|
||||
emit("update:courseId", selectValue);
|
||||
function confirm() {
|
||||
if (!selectsData.value.length || !rowSelectKeys.value.length) {
|
||||
message.warning("请选择案例!");
|
||||
return
|
||||
}
|
||||
if (taskIndex.value === -1) {
|
||||
const list = props.taskList
|
||||
list.push({
|
||||
name: selectsData.value[0].name,
|
||||
type: props.type,
|
||||
courseId: selectsData.value[0].id,
|
||||
info: selectsData.value[0]
|
||||
})
|
||||
} else {
|
||||
const data = props.taskList[taskIndex.value]
|
||||
data.name = selectsData.value[0].name
|
||||
data.courseId = selectsData.value[0].id
|
||||
data.info = selectsData.value[0]
|
||||
}
|
||||
emit('update:taskList', [...props.taskList])
|
||||
closeDrawer()
|
||||
}
|
||||
|
||||
function openDrawer(){
|
||||
visible.value=true
|
||||
function openDrawer(i, row) {
|
||||
row && (rowSelectKeys.value = [row.info]);
|
||||
row && (selectsData.value = [{name: row.name, id: row.courseId}]);
|
||||
(i >= 0) && (taskIndex.value = i);
|
||||
visible.value = true
|
||||
}
|
||||
|
||||
// const onSelectChange = (selectedRowKeys, selectedRows) => {
|
||||
// console.log("selectedRows", selectedRows);
|
||||
// state.selectedRowKeys = selectedRowKeys;
|
||||
// state.addOnlineList = selectedRows;
|
||||
// console.log(selectedRowKeys, selectedRows);
|
||||
// if (props.edit && selectedRows.length > 0) {
|
||||
// selectedRows.map((value) => {
|
||||
// console.log(props, value);
|
||||
// if (value.courseId == props.EditOnlineId) {
|
||||
// message.destroy();
|
||||
// message.error("选项相同,请重新选择");
|
||||
// state.selectedRowKeys = [];
|
||||
// state.addOnlineList = [];
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// };
|
||||
|
||||
// // 校验当前在线课是否已经添加进来了
|
||||
// const isExistence = (id) => {
|
||||
// console.log({
|
||||
// chapterId: Number(props.isactive),
|
||||
// courseTaskId: Number(id),
|
||||
// routerId: props.routerId,
|
||||
// type: 1,
|
||||
// });
|
||||
// IsExistence({
|
||||
// chapterId: Number(props.isactive),
|
||||
// courseTaskId: Number(id),
|
||||
// routerId: props.routerId,
|
||||
// type: 1,
|
||||
// })
|
||||
// .then((res) => {
|
||||
// console.log("我是不是已经添加了", res);
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// console.log(err);
|
||||
// });
|
||||
// };
|
||||
// // 判断项目中是否添加当前在线课
|
||||
// const IsExistenceProjects = (id) => {
|
||||
// console.log("参数传递", {
|
||||
// courseTaskId: id,
|
||||
// projectId: props.projectId,
|
||||
// stageId: props.chooseStageId || 0,
|
||||
// type: 1,
|
||||
// });
|
||||
// IsExistenceProject({
|
||||
// courseTaskId: id,
|
||||
// projectId: Number(props.projectId),
|
||||
// stageId: props.chooseStageId || 0,
|
||||
// type: 1,
|
||||
// })
|
||||
// .then((res) => {
|
||||
// console.log("项目中是否包含此在线课了", res);
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// console.log(err);
|
||||
// });
|
||||
// };
|
||||
// const updateTask = () => {
|
||||
// state.addLoading = true;
|
||||
// if (props.isLevel == 1) {
|
||||
// if (!props.isactive) {
|
||||
// state.addLoading = false;
|
||||
// message.destroy();
|
||||
// return message.warning("请先选中关卡");
|
||||
// }
|
||||
// console.log("我是要便利的数据2", state.addOnlineList);
|
||||
// let l_data = state.addOnlineList;
|
||||
// let l_data_id = [];
|
||||
// l_data.map((item) => {
|
||||
// l_data_id.push(item["courseId"]);
|
||||
// });
|
||||
// console.log("需要查询的在线课ID", l_data_id);
|
||||
// if (state.isClick) {
|
||||
// message.destroy();
|
||||
// message.error("请勿频繁点击");
|
||||
// return;
|
||||
// }
|
||||
// state.isClick = true;
|
||||
// IsExistence({
|
||||
// chapterId: Number(props.isactive),
|
||||
// courseTaskId: l_data_id,
|
||||
// routerId: props.routerId,
|
||||
// type: 1,
|
||||
// })
|
||||
// .then((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 + "/";
|
||||
// }
|
||||
// }
|
||||
// message.destroy();
|
||||
// message.warning("在线课(" + tipStr + ")重复添加");
|
||||
// state.isClick = false;
|
||||
// state.addLoading = false;
|
||||
// return;
|
||||
// } else {
|
||||
// state.addOnlineList.map((value) => {
|
||||
// console.log("要添加的在线课任务", value);
|
||||
// RouterEditTask({
|
||||
// chapterId: Number(props.isactive),
|
||||
// courseId: value.num,
|
||||
// name: value.name,
|
||||
// routerId: props.routerId,
|
||||
// routerTaskId: props.routerTaskId || 0,
|
||||
// type: 1,
|
||||
// duration: value.studyTime,
|
||||
// id: props.taskIdDraft
|
||||
// })
|
||||
// .then((res) => {
|
||||
// if (res.data.code == 200) {
|
||||
// message.destroy();
|
||||
// message.success(
|
||||
// `${props.edit ? "编辑" : "新增"}关卡任务成功`
|
||||
// );
|
||||
// }
|
||||
// ctx.emit("changeData", false);
|
||||
// closeDrawer();
|
||||
// state.addLoading = false;
|
||||
// state.isClick = false;
|
||||
// })
|
||||
// .catch(() => {
|
||||
// state.addLoading = false;
|
||||
// message.destroy();
|
||||
// message.error(
|
||||
// `${props.edit ? "编辑" : "新增"}关卡任务失败`
|
||||
// );
|
||||
// state.isClick = false;
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// console.log(err);
|
||||
// state.isClick = false;
|
||||
// });
|
||||
// } else if (props.isLevel == 2) {
|
||||
// console.log("我是要便利的数据2", state.addOnlineList);
|
||||
// let p_data = state.addOnlineList;
|
||||
// let p_data_id = [];
|
||||
// p_data.map((item) => {
|
||||
// p_data_id.push(item["courseId"]);
|
||||
// });
|
||||
// console.log("需要查询的在线课ID", p_data_id);
|
||||
// if (state.isClick) {
|
||||
// message.destroy();
|
||||
// message.error("请勿频繁点击");
|
||||
// return;
|
||||
// }
|
||||
// state.isClick = true;
|
||||
// IsExistenceProject({
|
||||
// courseTaskId: p_data_id,
|
||||
// projectId: Number(props.projectId),
|
||||
// stageId: props.chooseStageId || 0,
|
||||
// type: 1,
|
||||
// })
|
||||
// .then((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 + "/";
|
||||
// }
|
||||
// }
|
||||
// message.destroy();
|
||||
// message.warning("在线课(" + tipStr + ")重复添加");
|
||||
// state.isClick = false;
|
||||
// return;
|
||||
// } else {
|
||||
// state.addOnlineList.map((value) => {
|
||||
// apiTask
|
||||
// .addTask({
|
||||
// courseId: value.num,
|
||||
// name: value.name,
|
||||
// projectId: props.projectId,
|
||||
// projectTaskId: props.projectTaskId || 0,
|
||||
// stageId: props.chooseStageId || 0,
|
||||
// type: 1,
|
||||
// duration: value.studyTime,
|
||||
// })
|
||||
// .then(() => {
|
||||
// message.destroy();
|
||||
// message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
|
||||
// ctx.emit("changeData", false);
|
||||
// closeDrawer();
|
||||
// state.isClick = false;
|
||||
// })
|
||||
// .catch(() => {
|
||||
// message.destroy();
|
||||
// message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
|
||||
// state.isClick = false;
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// console.log(err);
|
||||
// });
|
||||
// } else if (props.isLevel == 3) {
|
||||
// let p_data = state.addOnlineList;
|
||||
// let p_data_id = [];
|
||||
// p_data.map((item) => {
|
||||
// p_data_id.push(item["courseId"]);
|
||||
// });
|
||||
// console.log("需要查询的在线课ID", p_data_id);
|
||||
// if (state.isClick) {
|
||||
// message.destroy();
|
||||
// message.error("请勿频繁点击");
|
||||
// return;
|
||||
// }
|
||||
// state.isClick = true;
|
||||
// IsExistenceProjectTemplate({
|
||||
// courseTaskId: p_data_id,
|
||||
// projectTemplateId: props.projectTemplateId,
|
||||
// templateStageId: props.chooseStageId || 0,
|
||||
// type: 1,
|
||||
// }).then((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 + "/";
|
||||
// }
|
||||
// }
|
||||
// message.destroy();
|
||||
// message.warning("在线课(" + tipStr + ")重复添加");
|
||||
// state.isClick = false;
|
||||
// return;
|
||||
// } else {
|
||||
// state.addOnlineList.map((value) => {
|
||||
// console.log(props, props.projectTemplateId, props.projectTaskId);
|
||||
// addTempTask({
|
||||
// courseId: value.num,
|
||||
// name: value.name,
|
||||
// projectTemplateId: localStorage.getItem("projectTemplateId"),
|
||||
// projectTaskId: props.projectTaskId || 0,
|
||||
// stageId: props.chooseStageId || 0,
|
||||
// type: 1,
|
||||
// duration: value.studyTime,
|
||||
// })
|
||||
// .then((res) => {
|
||||
// console.log("新增或者编辑在线课", res);
|
||||
// message.destroy();
|
||||
// message.success(
|
||||
// `${props.edit ? "编辑" : "新增"}模板库任务成功`
|
||||
// );
|
||||
// ctx.emit("changeData", false);
|
||||
// closeDrawer();
|
||||
// state.isClick = false;
|
||||
// })
|
||||
// .catch(() => {
|
||||
// message.destroy();
|
||||
// message.error(
|
||||
// `${props.edit ? "编辑" : "新增"}模板库任务失败`
|
||||
// );
|
||||
// state.isClick = false;
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// //if(state.addOnlineList.Target==undefined){
|
||||
// // closeDrawer();
|
||||
// //}
|
||||
// };
|
||||
|
||||
|
||||
defineExpose({openDrawer})
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
|
||||
|
||||
.ant-table-striped :deep(.table-striped) td {
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user