Files
cmanager/src/views/manage/jlhome/article/allArticle/index.vue
2024-02-02 15:04:47 +08:00

300 lines
8.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<basic-container>
<!--搜索栏-->
<el-form size="small" label-position="right" style="padding-left: 10px; padding-right: 10px" :inline="true">
<el-row :span="24">
<el-form-item label="文章名称:">
<el-input v-model="query.articleTitle"></el-input>
</el-form-item>
<el-form-item label="作者:">
<el-input v-model="query.author"></el-input>
</el-form-item>
<el-form-item label="发稿日期:">
<el-date-picker v-model="query.searchDate" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<div class="searchBtn">
<el-button type="primary" size="small" icon="el-icon-search" @click="searchChange"> </el-button>
<el-button size="small" icon="el-icon-delete" @click="searchReset"> </el-button>
</div>
</el-row>
</el-form>
<!--搜索栏-->
<avue-crud :option="option" :data="data" :page="page" v-model="form" @on-load="onLoad" @row-update="rowUpdate"
@row-save="rowSave" @row-del="rowDel" @current-change="currentChange" @size-change="sizeChange"
@selection-change="selectionChange" @refresh-change="refreshChange">
<template slot="headPic" slot-scope="{ row }">
<img class="img" :src="row.headPic" alt="" srcset="" />
</template>
<template slot="menu" slot-scope="{row}">
<el-button type="text" @click="editNewsInfo(row.id)" icon="el-icon-edit">修改</el-button>
<!--<el-button type="text" @click="setCover(row.id)">设置为封面</el-button>-->
<el-button type="text" v-if="row.status==0" @click="release(row.id,'release')">发布</el-button>
<el-button type="text" v-if="row.status==1" @click="release(row.id,'offShelf')">下架</el-button>
</template>
<template slot="menuLeft">
<el-button @click="addNewsInfo" icon="el-icon-plus" type="primary">添加文章</el-button>
</template>
<template slot="sort" slot-scope="{row}">
<el-button type="text" @click="orderItem(row,'ascs')">上移</el-button>
<el-button type="text" @click="orderItem(row,'desc')">下移</el-button>
</template>
<template slot="articleTitle" slot-scope="{row}">
<span class="articleTitle" @click="showNewsDetail(row.id)">{{row.articleTitle}}</span>
</template>
<template slot="articleSrcUrl" slot-scope="{row}">
<a :href="row.articleSrcUrl" style="color: #6699FF;" target="blank">{{row.articleSrcUrl}}</a>
</template>
</avue-crud>
<!-- <news-detail ref="detail"></news-detail>-->
</basic-container>
</template>
<script>
import { getList, delNews, order, release } from "@/api/manage/news";
// import newsDetail from './Dialog/newsDetail'
export default {
components:{
// newsDetail
},
name: "manage_jlhome_news",
data() {
return {
data: [],
selectionList: [],
query: {},
form: {},
drawer: false,
option: {
border: true,
index: true,
indexLabel: "序号",
labelWidth: 100,
selection: false,
align: "center",
editBtn: false,
delBtn: true,
addBtn: false,
addText: '文章信息',
column: [
{
label: "文章名称",
prop: "articleTitle",
slot:true,
},
{
label: "首页图",
prop: "headPic",
slot: true,
type: "upload",
span: 12,
showFileList: false,
listType: "picture-img",
multiple: false,
},
{
label: "发稿日期",
prop: "createTime",
type: "date",
formslot: true,
format: "yyyy-MM-dd",
editDisplay: false,
addDisplay: false,
},
{
label: "分类",
prop: "typeName",
},
{
label: "文章原地址",
prop: "articleSrcUrl",
slot:true
},
{
label: "作者",
prop: "author",
},
{
label: "上传人",
prop: "createUserName",
addDisplay: false,
editDisplay: false,
},
{
label: '状态',
prop: 'status',
addDisplay: false,
editDisplay: false,
dicData: [
{
label: '已发布',
value: '1'
}, {
label: '未发布',
value: '0'
}
]
},
{
label: "排序",
prop: "sort",
addDisplay: false,
editDisplay: false,
slot: true,
},
],
group: [
{
label: "文章内容",
column: [
{
label: '文章内容',
prop: 'newsInfo',
formslot: true
}
]
},
],
},
page: {
currentPage: 1,
pageSize: 10,
total: 0,
},
};
},
methods: {
currentChange(current) {
this.page.currentPage = current;
this.onLoad(this.page);
},
sizeChange(size) {
this.page.pageSize = size;
this.onLoad(this.page);
},
selectionChange(select) {
this.selectionList = select;
},
searchChange() {
if (this.query.searchDate) {
this.query['beginTime'] = this.query.searchDate[0];
this.query['endTime'] = this.query.searchDate[1];
}
this.onLoad(this.page, this.query);
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
refreshChange() {
this.page.currentPage = 1;
this.onLoad(this.page)
},
onLoad(page, params = {}) {
getList(
page.currentPage,
page.pageSize,
Object.assign(this.query, params)
).then((res) => {
const data = res.data.data;
this.data = data.records;
this.data.forEach(ele => {
if (ele.articleTitle.length > 15) {
ele.articleTitle = ele.articleTitle.slice(0, 15) + '...';
}
});
this.page.total = data.total;
});
},
/**添加文章 */
addNewsInfo() {
this.$router.push({ name: '添加/修改文章article', params: { type: 'add', id: null } })
},
/*修改文章内容*/
editNewsInfo(id) {
this.$router.push({ name: '添加/修改文章article', params: { type: 'edit', id: id } })
},
/*删除文章*/
rowDel(row) {
this.$confirm('是否确认删除该文章?', {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
return delNews(row.id)
}).then(() => {
this.$message.success('删除成功!')
this.onLoad(this.page)
})
},
/*设置为封面*/
/*排序*/ //当order==total时不能下移
orderItem(row, type) {
if (type == 'ascs') {
order(row.id, Number(row.sort), 1).then(() => {
this.onLoad(this.page)
})
}
else if (type == 'desc') {
order(row.id, Number(row.sort), 0).then(() => {
this.onLoad(this.page)
})
}
},
release(id, type) {
if (type == 'release') {
this.$confirm("是否确定发布此篇文章?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
release(id,1).then(() => {
this.$message.success('发布成功');
this.onLoad(this.page)
})
});
}
else if(type=='offShelf'){
this.$confirm("是否确定下架此篇文章?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
release(id,0).then(() => {
this.$message.success('下架成功');
this.onLoad(this.page)
})
});
}
},
showNewsDetail(id){//点击文章名称预览文章内容
this.$refs.detail.open(id)
}
},
};
</script>
<style>
.img {
width: 100%;
height: auto;
}
.searchBtn {
display: inline-block;
margin-bottom: 18px;
}
.articleTitle{
color: #6699FF;
cursor: pointer;
}
</style>