mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-19 15:56:45 +08:00
2022年5月29日从svn移到git
This commit is contained in:
194
src/views/article/MyList.vue
Normal file
194
src/views/article/MyList.vue
Normal file
@@ -0,0 +1,194 @@
|
||||
<template>
|
||||
<div>
|
||||
<!--
|
||||
<Remark>
|
||||
1.我的文章列表。关于文章的图片,发表文章时必须要有图片吗?发表文章时有图片会让人还要找图片对应<br/>
|
||||
2.这里是管理我自己发表的文章,从查询的角度是否增加更多的查询项,比如分类?<br/>
|
||||
</Remark>
|
||||
-->
|
||||
<div style="display: flex;justify-content: space-between;height: 40px; padding-right:20px">
|
||||
<!-- <div style="padding-top: 5px;">
|
||||
<el-tag type="primary" style="margin-right: 20px;">最新</el-tag>
|
||||
<el-tag type="info">最热</el-tag>
|
||||
</div> -->
|
||||
<div style="position: relative;">
|
||||
<div style="display: flex;justify-content:space-around;padding: 12px 22px 10px 17px;">
|
||||
<!-- <div style="padding: 0px 5px;"><el-cascader clearable v-model="params.type" :options="typeList"></el-cascader></div> -->
|
||||
<div style="padding: 0px 5px;">
|
||||
<el-select v-model="pageData.status" placeholder="状态" style="width: 110px;" clearable>
|
||||
<el-option v-for="item in selectData" :label="item.label" :value="item.value" :key="item.value"></el-option>
|
||||
<!-- <el-option label="草稿" :value='0'></el-option>
|
||||
<el-option label="待审核" :value='1'></el-option>
|
||||
<el-option label="未通过" :value='2'></el-option>
|
||||
<el-option label="通过" :value='3'></el-option> -->
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="padding: 0px 5px;"><el-input clearable placeholder="搜索名称" v-model="pageData.keyword"></el-input></div>
|
||||
<div style="padding: 0px 5px;"><el-button icon="el-icon-search" type="primary" @click="getArticleList">搜索</el-button></div>
|
||||
<div style="padding: 0px 5px;"><el-button icon="el-icon-refresh-right" type="primary" @click="reset">重置</el-button></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="padding:12px 20px; " class="write">
|
||||
<!-- <a :href="`${webBaseUrl}/article/add`" target="_blank"><el-button type="primary" icon="el-icon-plus" >写文章</el-button></a> -->
|
||||
<el-button type="primary" @click="diagSync=true" icon="el-icon-plus" >写文章</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div style="padding: 10px 19px 0px 22px;">
|
||||
<article-items @update="getArticleList" :items="pageData.list" v-if="pageData.list.length!=0"></article-items>
|
||||
<div v-if="pageData.list.length > 0 " style="text-align: center; margin-top:57px"><el-pagination
|
||||
@size-change="handleSizeChange"
|
||||
background
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="pageData.pageIndex"
|
||||
:page-sizes="[10, 20, 30, 40]"
|
||||
:page-size="pageData.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total"
|
||||
></el-pagination></div>
|
||||
</div>
|
||||
<el-dialog title="创建文章" :visible.sync="diagSync" :close-on-click-modal="false" width="900px" custom-class="g-dialog">
|
||||
<editItems v-if="diagSync" :jumpLimit="false" :editForm="{}" @success="saveSuccess"></editItems>
|
||||
</el-dialog>
|
||||
<div style="height: 100px;"></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import articleItems from '@/components/Article/ucItems.vue';
|
||||
import apiArticle from '@/api/modules/article.js';
|
||||
import apiUser from '@/api/system/user.js';
|
||||
import editItems from '@/components/Article/editItems.vue';
|
||||
import { mapGetters } from 'vuex';
|
||||
export default {
|
||||
name: 'articleMyList',
|
||||
components: { articleItems,editItems },
|
||||
computed: {
|
||||
...mapGetters(['userInfo'])
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageData: {
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
list: []
|
||||
},
|
||||
total: 0,
|
||||
diagSync:false,
|
||||
selectData: [{ label: '草稿', value: 1 }, { label: '待审核', value: 2 }, { label: '未通过', value: 3 }, { label: '已发布', value: 9 },{ label: '已下架', value: 8 },{ label: '全部', value: null },]
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getArticleList();
|
||||
},
|
||||
methods: {
|
||||
|
||||
saveSuccess(data){
|
||||
this.diagSync=false;
|
||||
this.articleList.pageIndex = 1;
|
||||
this.articleList.list = [];
|
||||
this.getArticleList();
|
||||
},
|
||||
//获取文章列表数据
|
||||
getArticleList() {
|
||||
const { pageIndex, pageSize } = this.pageData;
|
||||
let query = { pageIndex, pageSize };
|
||||
if (this.pageData.status) {
|
||||
const { status } = this.pageData;
|
||||
query.status = status;
|
||||
}
|
||||
if (this.pageData.keyword) {
|
||||
const { keyword } = this.pageData;
|
||||
query.keyword = keyword;
|
||||
} //拼接查询条件
|
||||
query.sysCreateAid = this.userInfo.aid;
|
||||
apiArticle.myPageList(query).then(res => {
|
||||
if (res.status == 200) {
|
||||
console.log(res)
|
||||
this.total = res.result.count;
|
||||
this.pageData.list = res.result.list;
|
||||
if(this.pageData.list.length!=0){
|
||||
this.getQaUserData(this.pageData.list)
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error('获取数据失败');
|
||||
});
|
||||
},
|
||||
|
||||
reset(){
|
||||
this.pageData.keyword = '',
|
||||
this.pageData.status = ''
|
||||
this.getArticleList()
|
||||
},
|
||||
getQaUserData(list){
|
||||
let ids=list.map((item,index)=>{
|
||||
return item.sysCreateAid
|
||||
})
|
||||
apiUser.getByIds(ids).then(res=>{
|
||||
if(res.status==200){
|
||||
this.pageData.list=list.map((item,index)=>{
|
||||
item=Object.assign(item,res.result[index])
|
||||
return item
|
||||
})
|
||||
}
|
||||
}).catch(err=>{
|
||||
this.$message({
|
||||
message:'数据请求失败',
|
||||
type:'error'
|
||||
})
|
||||
})
|
||||
},
|
||||
//改变页数的回调
|
||||
handleSizeChange(value) {
|
||||
this.pageData.pageSize = value;
|
||||
this.getArticleList();
|
||||
},
|
||||
//改变条数的回调
|
||||
handleCurrentChange(value) {
|
||||
this.pageData.pageIndex = value;
|
||||
this.getArticleList();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.write{
|
||||
position: absolute;
|
||||
|
||||
right:0px;
|
||||
}
|
||||
.uc-badge {
|
||||
margin-top: 10px;
|
||||
margin-right: 40px;
|
||||
}
|
||||
.uc-course {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
border: 1px solid #f0f0f0;
|
||||
padding: 10px;
|
||||
.uc-course-img {
|
||||
width: 200px;
|
||||
img {
|
||||
width: 200px;
|
||||
border: 1px solid #f4f4f5;
|
||||
}
|
||||
}
|
||||
.uc-course-info {
|
||||
flex: 1;
|
||||
line-height: 28px;
|
||||
padding: 0px 0px;
|
||||
.uc-course-name {
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.uc-course-text {
|
||||
color: #747474;
|
||||
}
|
||||
}
|
||||
.uc-course-btns {
|
||||
width: 150px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user