Merge branch 'zcwy_0802_pingcode' into dev_master

This commit is contained in:
nisen
2024-09-19 18:13:44 +08:00

View File

@@ -3,6 +3,37 @@
<div class="curriculum"> <div class="curriculum">
<!-- 以下为顶部搜索框 --> <!-- 以下为顶部搜索框 -->
<div class="filter"> <div class="filter">
<div class="select">
<a-input
style="width: 100%; height: 40px; border-radius: 8px"
placeholder="请输入课程名称"
allowClear
showSearch
v-model:value="name"
@pressEnter="searchData"
>
</a-input>
</div>
<div class="select">
<a-input
style="width: 100%; height: 40px; border-radius: 8px"
placeholder="请输入创建者"
allowClear
showSearch
v-model:value="createName"
@pressEnter="searchData"
>
</a-input>
</div>
<div class="select">
<a-select
v-model:value="searchStatus"
style="width: 100%; height: 40px; border-radius: 8px"
placeholder="请选择类型"
:options="StateList"
allowClear
></a-select>
</div>
<div class="select"> <div class="select">
<a-cascader <a-cascader
change-on-select change-on-select
@@ -19,27 +50,22 @@
> >
</a-cascader> </a-cascader>
</div> </div>
<div class="select"> <div style="display: flex; margin-bottom: 20px">
<a-input <div class="btnzx btnzx1" @click="searchData">
style="width: 100%; height: 40px; border-radius: 8px" <div class="search"></div>
placeholder="请输入课程名称" <div class="btnzText">搜索</div>
allowClear
showSearch
v-model:value="name"
>
</a-input>
</div> </div>
<div class="select"> <div class="btnz btnzx2" @click="resetClick">
<a-input <div class="search"></div>
style="width: 100%; height: 40px; border-radius: 8px" <div class="btnzText">重置</div>
placeholder="请输入创建者"
allowClear
showSearch
v-model:value="createName"
>
</a-input>
</div> </div>
<div class="select"> </div>
<div @click="()=>{isShowChange = !isShowChange}" class="right_btn">
<span class="text">{{isShowChange?'展开':'收起'}}</span>
<DownOutlined v-if="isShowChange" style="color:#4ea6ff;" />
<UpOutlined v-else style="color:#4ea6ff;" />
</div>
<div v-if="!isShowChange" class="select">
<a-cascader <a-cascader
style="width: 100%" style="width: 100%"
placeholder="请选择分类" placeholder="请选择分类"
@@ -55,7 +81,7 @@
}" }"
></a-cascader> ></a-cascader>
</div> </div>
<div class="select"> <div v-if="!isShowChange" class="select" style="min-width: 300px">
<a-range-picker <a-range-picker
v-model:value="publishTime" v-model:value="publishTime"
type="date" type="date"
@@ -64,16 +90,7 @@
style="width: 100%; margin-right: 0px" style="width: 100%; margin-right: 0px"
/> />
</div> </div>
<div style="display: flex; margin-bottom: 20px">
<div class="btnzx btnzx1" @click="searchData">
<div class="search"></div>
<div class="btnzText">搜索</div>
</div>
<div class="btnz btnzx2" @click="resetClick">
<div class="search"></div>
<div class="btnzText">重置</div>
</div>
</div>
</div> </div>
<!-- 以下为导出按钮 --> <!-- 以下为导出按钮 -->
<div class="btnzs"> <div class="btnzs">
@@ -152,8 +169,16 @@ import Cookies from "vue-cookies";
import downLoad from "../../utils/downLoad"; import downLoad from "../../utils/downLoad";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import {useStore} from 'vuex' import {useStore} from 'vuex'
import {
DownOutlined,
UpOutlined,
} from '@ant-design/icons-vue';
export default { export default {
name: "CurriculuM", name: "CurriculuM",
components: {
DownOutlined,
UpOutlined,
},
setup() { setup() {
const store = useStore(); const store = useStore();
const state = reactive({ const state = reactive({
@@ -166,12 +191,19 @@ export default {
name: "", name: "",
type: null, type: null,
createName: "", createName: "",
searchStatus: null,
publishTime: "", // 发布时间 publishTime: "", // 发布时间
allowClear: false, allowClear: false,
option: [], option: [],
selectedRowKeys: [], selectedRowKeys: [],
typeOption:[] typeOption:[],
isShowChange: true,
}); });
const StateList = ref([
{value:'',label:'全部'},
{value:'1',label:'面授'},
{value:'0',label:'在线'},
])
const searchData=async()=>{ const searchData=async()=>{
state.pageNo=1 state.pageNo=1
state.pageSize=10 state.pageSize=10
@@ -235,11 +267,14 @@ export default {
// publishTime: state.publishTime, // publishTime: state.publishTime,
startTime: typeof state.publishTime[0] === 'undefined' ? null : state.publishTime[0]+ " 00:00:00", startTime: typeof state.publishTime[0] === 'undefined' ? null : state.publishTime[0]+ " 00:00:00",
endTime: typeof state.publishTime[0] === 'undefined' ? null : state.publishTime[1]+ " 23:59:59", endTime: typeof state.publishTime[0] === 'undefined' ? null : state.publishTime[1]+ " 23:59:59",
courseType: state.searchStatus,
}; };
const res = await api.boeuCourseListPageV2(params); const res = await api.boeuCourseListPageV2(params);
if (res) { if (res) {
if(res.data.status == 200){
tableData.value = res.data.result.rows; tableData.value = res.data.result.rows;
state.tableDataTotal = res.data.result.total; state.tableDataTotal = res.data.result.total;
}
state.tableLoading = false; state.tableLoading = false;
} }
}; };
@@ -266,6 +301,17 @@ export default {
align: "center", align: "center",
width: 120, width: 120,
}, },
{
title: "内容分类",
dataIndex: "oneType",
ellipsis: true,
key: "oneType",
align: "center",
width: 300,
customRender({record:{oneType,twoType,threeType,type}}){
return type.split('-').join(' / ');
}
},
{ {
title: "课程类型", title: "课程类型",
dataIndex: "courseType", dataIndex: "courseType",
@@ -282,110 +328,102 @@ export default {
align: "center", align: "center",
width: 120, width: 120,
}, },
{ // {
title: "归属项目", // title: "归属项目",
dataIndex: "projectName", // dataIndex: "projectName",
ellipsis: true, // ellipsis: true,
key: "projectName", // key: "projectName",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "归属路径图", // title: "归属路径图",
dataIndex: "routerName", // dataIndex: "routerName",
ellipsis: true, // ellipsis: true,
key: "routerName", // key: "routerName",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "一级分类", // title: "一级分类",
dataIndex: "oneType", // dataIndex: "oneType",
ellipsis: true, // ellipsis: true,
key: "oneType", // key: "oneType",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "二级分类", // title: "二级分类",
dataIndex: "twoType", // dataIndex: "twoType",
ellipsis: true, // ellipsis: true,
key: "twoType", // key: "twoType",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "三级分类", // title: "三级分类",
dataIndex: "threeType", // dataIndex: "threeType",
ellipsis: true, // ellipsis: true,
key: "threeType", // key: "threeType",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "授课教师", // title: "授课教师",
dataIndex: "teacher", // dataIndex: "teacher",
ellipsis: true, // ellipsis: true,
key: "teacher", // key: "teacher",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "开课次数", // title: "开课次数",
dataIndex: "classTotal", // dataIndex: "classTotal",
ellipsis: true, // ellipsis: true,
key: "classTotal", // key: "classTotal",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "学习人数", // title: "学习人数",
dataIndex: "learnerNumber", // dataIndex: "learnerNumber",
ellipsis: true, // ellipsis: true,
key: "learnerNumber", // key: "learnerNumber",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "评论数", // title: "评论数",
dataIndex: "commentTotal", // dataIndex: "commentTotal",
ellipsis: true, // ellipsis: true,
key: "commentTotal", // key: "commentTotal",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "点赞数", // title: "点赞数",
dataIndex: "likesTotal", // dataIndex: "likesTotal",
ellipsis: true, // ellipsis: true,
key: "likesTotal", // key: "likesTotal",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "收藏数", // title: "收藏数",
dataIndex: "collectionsTotal", // dataIndex: "collectionsTotal",
ellipsis: true, // ellipsis: true,
key: "collectionsTotal", // key: "collectionsTotal",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{ // {
title: "平均评分", // title: "平均评分",
dataIndex: "score", // dataIndex: "score",
ellipsis: true, // ellipsis: true,
key: "score", // key: "score",
align: "center", // align: "center",
width: 120, // width: 120,
}, // },
{
title: "发布时间",
dataIndex: "publishTime",
ellipsis: true,
key: "publishTime",
align: "center",
width: 140,
},
{ {
title: "发布状态", title: "发布状态",
dataIndex: "publishStatus", dataIndex: "publishStatus",
@@ -394,14 +432,6 @@ export default {
align: "center", align: "center",
width: 120, width: 120,
}, },
{
title: "启用状态",
dataIndex: "enabled",
ellipsis: true,
key: "enabled",
align: "center",
width: 120,
},
{ {
title: "创建人", title: "创建人",
dataIndex: "createName", dataIndex: "createName",
@@ -410,6 +440,38 @@ export default {
align: "center", align: "center",
width: 120, width: 120,
}, },
{
title: "发布时间",
dataIndex: "publishTime",
ellipsis: true,
key: "publishTime",
align: "center",
width: 140,
},
// {
// title: "发布状态",
// dataIndex: "publishStatus",
// ellipsis: true,
// key: "publishStatus",
// align: "center",
// width: 120,
// },
{
title: "启用状态",
dataIndex: "enabled",
ellipsis: true,
key: "enabled",
align: "center",
width: 120,
},
// {
// title: "创建人",
// dataIndex: "createName",
// ellipsis: true,
// key: "createName",
// align: "center",
// width: 120,
// },
{ {
title: "操作", title: "操作",
dataIndex: "operation", dataIndex: "operation",
@@ -449,6 +511,7 @@ export default {
state.type = null; state.type = null;
state.createName = ""; state.createName = "";
state.publishTime = []; state.publishTime = [];
state.searchStatus = null;
getTableData(); getTableData();
}; };
const exportList = () => { const exportList = () => {
@@ -663,6 +726,7 @@ export default {
exportDetailClick, exportDetailClick,
getOption, getOption,
searchData, searchData,
StateList,
}; };
}, },
}; };
@@ -679,10 +743,22 @@ export default {
margin-top: 30px; margin-top: 30px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
position: relative;
.select { .select {
margin-right: 20px; margin-right: 20px;
margin-bottom: 20px; margin-bottom: 20px;
width: calc((100% - 76px - 220px) / 3); width: calc((100% - 76px - 220px) / 5);
}
.right_btn{
position: absolute;
right: 20px;
height: 40px;
line-height: 40px;
cursor: pointer;
.text{
margin-right: 14px;
color:#4ea6ff;
}
} }
.btnz { .btnz {