3 changed files with 240 additions and 8 deletions
@ -0,0 +1,227 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div class="crumbs"> |
||||
|
<el-breadcrumb separator="/"> |
||||
|
<el-breadcrumb-item> |
||||
|
<i class="el-icon-lx-cascades"></i> 平台管理 |
||||
|
</el-breadcrumb-item> |
||||
|
<el-breadcrumb-item>平台通知管理</el-breadcrumb-item> |
||||
|
</el-breadcrumb> |
||||
|
</div> |
||||
|
<div class="container"> |
||||
|
<div class="handle-box"> |
||||
|
<el-input placeholder="公告标题" class="handle-input mr10"></el-input> |
||||
|
<el-select placeholder="发布人员" class="handle-select mr10"> |
||||
|
<el-option key="1" label="广东省" value="广东省"></el-option> |
||||
|
<el-option key="2" label="湖南省" value="湖南省"></el-option> |
||||
|
</el-select> |
||||
|
<el-date-picker |
||||
|
class="mr10" |
||||
|
v-model="query.time" |
||||
|
type="datetimerange" |
||||
|
:picker-options="pickerOptions" |
||||
|
range-separator="至" |
||||
|
value-format="yyyy-MM-dd h:m:s" |
||||
|
start-placeholder="开始日期" |
||||
|
end-placeholder="结束日期" |
||||
|
align="right" |
||||
|
> |
||||
|
</el-date-picker> |
||||
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button> |
||||
|
</div> |
||||
|
<el-table |
||||
|
:data="tableData" |
||||
|
border |
||||
|
class="table" |
||||
|
ref="multipleTable" |
||||
|
header-cell-class-name="table-header" |
||||
|
@selection-change="handleSelectionChange" |
||||
|
> |
||||
|
<el-table-column prop="id" label="序号" width="55" align="center"></el-table-column> |
||||
|
<el-table-column prop="name" label="发布日期"></el-table-column> |
||||
|
<el-table-column label="公告标题" prop="name"></el-table-column> |
||||
|
<el-table-column prop="address" label="发布人员"></el-table-column> |
||||
|
<el-table-column label="操作" width="280" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-button |
||||
|
type="text" |
||||
|
@click="handleEdit(scope.$index, scope.row)" |
||||
|
>查看附件</el-button> |
||||
|
<el-button |
||||
|
type="text" |
||||
|
@click="handleDelete(scope.$index, scope.row)" |
||||
|
>公告内容</el-button> |
||||
|
<el-button |
||||
|
type="text" |
||||
|
@click="handleDelete(scope.$index, scope.row)" |
||||
|
>删除公告</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<div class="pagination"> |
||||
|
<el-pagination |
||||
|
background |
||||
|
layout="total, prev, pager, next" |
||||
|
:current-page="query.pageIndex" |
||||
|
:page-size="query.pageSize" |
||||
|
:total="pageTotal" |
||||
|
@current-change="handlePageChange" |
||||
|
></el-pagination> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!-- 编辑弹出框 --> |
||||
|
<el-dialog title="编辑" :visible.sync="editVisible" width="30%"> |
||||
|
<el-form ref="form" :model="form" label-width="70px"> |
||||
|
<el-form-item label="用户名"> |
||||
|
<el-input v-model="form.name"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="地址"> |
||||
|
<el-input v-model="form.address"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button @click="editVisible = false">取 消</el-button> |
||||
|
<el-button type="primary" @click="saveEdit">确 定</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { fetchData } from '../../../api/index'; |
||||
|
export default { |
||||
|
name: 'basetable', |
||||
|
data() { |
||||
|
return { |
||||
|
query: { |
||||
|
address: '', |
||||
|
name: '', |
||||
|
pageIndex: 1, |
||||
|
pageSize: 10 |
||||
|
}, |
||||
|
tableData: [], |
||||
|
multipleSelection: [], |
||||
|
delList: [], |
||||
|
editVisible: false, |
||||
|
pageTotal: 0, |
||||
|
form: {}, |
||||
|
idx: -1, |
||||
|
id: -1, |
||||
|
pickerOptions: { |
||||
|
shortcuts: [ |
||||
|
{ |
||||
|
text: "最近一周", |
||||
|
onClick(picker) { |
||||
|
const end = new Date(); |
||||
|
const start = new Date(); |
||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
||||
|
picker.$emit("pick", [start, end]); |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
text: "最近一个月", |
||||
|
onClick(picker) { |
||||
|
const end = new Date(); |
||||
|
const start = new Date(); |
||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
||||
|
picker.$emit("pick", [start, end]); |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
text: "最近三个月", |
||||
|
onClick(picker) { |
||||
|
const end = new Date(); |
||||
|
const start = new Date(); |
||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
||||
|
picker.$emit("pick", [start, end]); |
||||
|
}, |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
}; |
||||
|
}, |
||||
|
created() { |
||||
|
this.getData(); |
||||
|
}, |
||||
|
methods: { |
||||
|
// 获取 easy-mock 的模拟数据 |
||||
|
getData() { |
||||
|
fetchData(this.query).then(res => { |
||||
|
// console.log(res); |
||||
|
this.tableData = res.list; |
||||
|
this.pageTotal = res.pageTotal || 50; |
||||
|
}); |
||||
|
}, |
||||
|
// 触发搜索按钮 |
||||
|
handleSearch() { |
||||
|
this.$set(this.query, 'pageIndex', 1); |
||||
|
this.getData(); |
||||
|
}, |
||||
|
// 删除操作 |
||||
|
handleDelete(index, row) { |
||||
|
// 二次确认删除 |
||||
|
this.$confirm('确定要删除吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}) |
||||
|
.then(() => { |
||||
|
this.$message.success('删除成功'); |
||||
|
this.tableData.splice(index, 1); |
||||
|
}) |
||||
|
.catch(() => {}); |
||||
|
}, |
||||
|
// 多选操作 |
||||
|
handleSelectionChange(val) { |
||||
|
this.multipleSelection = val; |
||||
|
}, |
||||
|
// 编辑操作 |
||||
|
handleEdit(index, row) { |
||||
|
this.idx = index; |
||||
|
this.form = row; |
||||
|
this.editVisible = true; |
||||
|
}, |
||||
|
// 保存编辑 |
||||
|
saveEdit() { |
||||
|
this.editVisible = false; |
||||
|
this.$message.success(`修改第 ${this.idx + 1} 行成功`); |
||||
|
this.$set(this.tableData, this.idx, this.form); |
||||
|
}, |
||||
|
// 分页导航 |
||||
|
handlePageChange(val) { |
||||
|
this.$set(this.query, 'pageIndex', val); |
||||
|
this.getData(); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.handle-box { |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
.handle-select { |
||||
|
width: 120px; |
||||
|
} |
||||
|
|
||||
|
.handle-input { |
||||
|
width: 150px; |
||||
|
display: inline-block; |
||||
|
} |
||||
|
.table { |
||||
|
width: 100%; |
||||
|
font-size: 14px; |
||||
|
} |
||||
|
.red { |
||||
|
color: #ff0000; |
||||
|
} |
||||
|
.mr10 { |
||||
|
margin-right: 10px; |
||||
|
} |
||||
|
.table-td-thumb { |
||||
|
display: block; |
||||
|
margin: auto; |
||||
|
width: 40px; |
||||
|
height: 40px; |
||||
|
} |
||||
|
</style> |
||||
Loading…
Reference in new issue