|
|
|
<template>
|
|
|
|
<div class="page">
|
|
|
|
<div class="tool">
|
|
|
|
<div class="search-wrap">
|
|
|
|
<el-select v-model="field" @change="initData">
|
|
|
|
<el-option
|
|
|
|
v-for="(item, i) in keywords"
|
|
|
|
:key="i"
|
|
|
|
:label="item.name"
|
|
|
|
:value="item.id">
|
|
|
|
</el-option>
|
|
|
|
</el-select>
|
|
|
|
<el-input class="keyword" :placeholder="'请输入' + keywords.find(e => e.id === field).name" v-model.trim="keyword" clearable></el-input>
|
|
|
|
</div>
|
|
|
|
<div class="actions">
|
|
|
|
<el-button v-auth="'/site/list:内容管理:文章管理:删除'" @click="batchDel">批量删除</el-button>
|
|
|
|
<el-button v-auth="'/site/list:内容管理:文章管理:新增'" type="primary" @click="add" >新增文章</el-button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<el-table :data="list" class="table" ref="table" header-align="center" @selection-change="handleSelectionChange" row-key="id" @sort-change="sortChange">
|
|
|
|
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
|
|
|
|
<el-table-column type="index" width="60" label="序号" align="center"></el-table-column>
|
|
|
|
<el-table-column show-overflow-tooltip prop="title" label="标题" align="center" min-width="150"></el-table-column>
|
|
|
|
<el-table-column prop="classificationName" label="所属分类" align="center" min-width="120" sortable="custom"></el-table-column>
|
|
|
|
<el-table-column prop="founderName" label="录入人" align="center" min-width="80"></el-table-column>
|
|
|
|
<el-table-column prop="editorName" label="修改人" align="center" min-width="80"></el-table-column>
|
|
|
|
<el-table-column prop="updateTime" label="修改日期" align="center" min-width="150"></el-table-column>
|
|
|
|
<el-table-column prop="createTime" label="发布日期" align="center" min-width="100"></el-table-column>
|
|
|
|
<el-table-column prop="learnerNumber" label="已学习人数" align="center" min-width="70"></el-table-column>
|
|
|
|
<el-table-column prop="workNumber" label="状态" align="center" min-width="80">
|
|
|
|
<template slot-scope="scope">
|
|
|
|
{{ scope.row.isRelease ? '已发布' : '草稿' }}
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="操作" align="center" width="170">
|
|
|
|
<template slot-scope="scope">
|
|
|
|
<el-button v-auth="'/site/list:内容管理:文章管理:编辑'" type="text" @click="edit(scope.row)">编辑</el-button>
|
|
|
|
<el-button v-auth="'/site/list:内容管理:文章管理:删除'" type="text" @click="handleDelete(scope.row)">删除</el-button>
|
|
|
|
<el-switch
|
|
|
|
class="m-l-10"
|
|
|
|
v-model="scope.row.isDisable"
|
|
|
|
:active-value="0"
|
|
|
|
:inactive-value="1"
|
|
|
|
@change="switchOff($event, scope.row, scope.$index)">
|
|
|
|
</el-switch>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table>
|
|
|
|
<div class="pagination">
|
|
|
|
<el-pagination background @current-change="currentChange" :current-page="page" layout="total, prev, pager, next" :total="total"></el-pagination>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import Setting from '@/setting'
|
|
|
|
import util from '@/libs/util'
|
|
|
|
import { mapMutations } from 'vuex'
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
field: 'title',
|
|
|
|
keywords: [
|
|
|
|
{
|
|
|
|
id: 'title',
|
|
|
|
name: '标题'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'founder',
|
|
|
|
name: '录入人'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'editor',
|
|
|
|
name: '修改人'
|
|
|
|
}
|
|
|
|
],
|
|
|
|
keyword: '',
|
|
|
|
list: [],
|
|
|
|
page: 1,
|
|
|
|
pageSize: 10,
|
|
|
|
total: 0,
|
|
|
|
modifiedTimeSort: '',
|
|
|
|
publicationTimeSort: '',
|
|
|
|
classificationNameSort: '',
|
|
|
|
editTimeSort: '',
|
|
|
|
multipleSelection: [],
|
|
|
|
};
|
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
keyword: function(val) {
|
|
|
|
clearTimeout(this.searchTimer)
|
|
|
|
this.searchTimer = setTimeout(() => {
|
|
|
|
this.initData()
|
|
|
|
}, 500)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mounted() {
|
|
|
|
this.getData()
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
// 文章列表
|
|
|
|
getData() {
|
|
|
|
const { keyword } = this
|
|
|
|
const data = {
|
|
|
|
pageNum: this.page,
|
|
|
|
pageSize: this.pageSize,
|
|
|
|
querySource: 3, //查询来源(3.中台 4.合伙人平台)
|
|
|
|
classificationNameSort: this.classificationNameSort,
|
|
|
|
editTimeSort: this.editTimeSort,
|
|
|
|
releaseDateSort: this.releaseDateSort,
|
|
|
|
title: this.field === 'title' ? keyword : '',
|
|
|
|
founderName: this.field === 'founder' ? keyword : '',
|
|
|
|
editorName: this.field === 'editor' ? keyword : ''
|
|
|
|
}
|
|
|
|
this.$post(this.api.schemeList, data).then(({ data }) => {
|
|
|
|
this.list = data.records
|
|
|
|
this.total = +data.total
|
|
|
|
}).catch(err => {})
|
|
|
|
},
|
|
|
|
currentChange(val) {
|
|
|
|
this.page = val
|
|
|
|
this.getData()
|
|
|
|
},
|
|
|
|
handleSelectionChange(val) {
|
|
|
|
this.multipleSelection = val
|
|
|
|
},
|
|
|
|
initData() {
|
|
|
|
this.$refs.table.clearSelection()
|
|
|
|
this.page = 1
|
|
|
|
this.getData()
|
|
|
|
},
|
|
|
|
// 批量删除
|
|
|
|
batchDel() {
|
|
|
|
const list = this.multipleSelection
|
|
|
|
if (list.length) {
|
|
|
|
this.$confirm('确定要删除吗?', '提示', {
|
|
|
|
type: 'warning'
|
|
|
|
}).then(() => {
|
|
|
|
const data = []
|
|
|
|
list.map(e => {
|
|
|
|
data.push('ids=' + e.id)
|
|
|
|
})
|
|
|
|
this.$post(`${this.api.batchDeletionScheme}?${data.join('&')}`).then(res => {
|
|
|
|
this.$refs.table.clearSelection()
|
|
|
|
util.successMsg("删除成功")
|
|
|
|
this.getData()
|
|
|
|
}).catch(res => {})
|
|
|
|
}).catch(() => {})
|
|
|
|
} else {
|
|
|
|
util.errorMsg('请先选择数据 !')
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 删除
|
|
|
|
handleDelete(row) {
|
|
|
|
this.$confirm('确定要删除吗?', '提示', {
|
|
|
|
type: 'warning'
|
|
|
|
}).then(() => {
|
|
|
|
this.$post(`${this.api.batchDeletionScheme}?ids=${row.id}`).then(res => {
|
|
|
|
util.successMsg('删除成功')
|
|
|
|
this.getData()
|
|
|
|
}).catch(res => {})
|
|
|
|
}).catch(() => {})
|
|
|
|
},
|
|
|
|
// 禁用启用
|
|
|
|
switchOff(val, row) {
|
|
|
|
this.$post(`${this.api.enableOrDisableScheme}?id=${row.id}&isDisable=${val}`).then(res => {}).catch((res) => {})
|
|
|
|
},
|
|
|
|
// 新增
|
|
|
|
add() {
|
|
|
|
this.$router.push(`/schemeSet`)
|
|
|
|
},
|
|
|
|
// 排序回调
|
|
|
|
sortChange(column) {
|
|
|
|
const { order } = column
|
|
|
|
// 三个排序只能同时传1个,所以点了一个排序的时候要清除掉其余两个
|
|
|
|
if (column.prop === 'classificationName') {
|
|
|
|
this.classificationNameSort = order ? order === 'ascending' ? 'asc' : 'desc' : ''
|
|
|
|
if (order) {
|
|
|
|
this.editTimeSort = ''
|
|
|
|
this.releaseDateSort = ''
|
|
|
|
this.sequenceSort = ''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (column.prop === 'updateTime') {
|
|
|
|
this.editTimeSort = order ? order === 'ascending' ? 'asc' : 'desc' : ''
|
|
|
|
if (order) {
|
|
|
|
this.classificationNameSort = ''
|
|
|
|
this.releaseDateSort = ''
|
|
|
|
this.sequenceSort = ''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (column.prop === 'releaseTime') {
|
|
|
|
this.releaseDateSort = order ? order === 'ascending' ? 'asc' : 'desc' : ''
|
|
|
|
if (order) {
|
|
|
|
this.editTimeSort = ''
|
|
|
|
this.classificationNameSort = ''
|
|
|
|
this.sequenceSort = ''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (column.prop === 'sequence') {
|
|
|
|
this.sequenceSort = order ? order === 'ascending' ? 'asc' : 'desc' : ''
|
|
|
|
if (order) {
|
|
|
|
this.editTimeSort = ''
|
|
|
|
this.releaseDateSort = ''
|
|
|
|
this.classificationNameSort = ''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.getData()
|
|
|
|
},
|
|
|
|
// 编辑
|
|
|
|
edit(row) {
|
|
|
|
this.$router.push(`/schemeSet?id=${row.id}`)
|
|
|
|
},
|
|
|
|
}
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.m-l-10 {
|
|
|
|
margin-left: 10px;
|
|
|
|
}
|
|
|
|
</style>
|