123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <template>
- <div class="app-container">
- <el-table v-loading="listLoading" :data="list" border fit highlight-current-row style="width: 100%">
- <el-table-column align="center" label="ID" width="80">
- <template slot-scope="scope">
- <span>{{ scope.row.id }}</span>
- </template>
- </el-table-column>
- <el-table-column width="180px" align="center" label="日期">
- <template slot-scope="scope">
- <span>{{ scope.row.create_time }}</span>
- </template>
- </el-table-column>
- <el-table-column class-name="status-col" label="状态" width="80ß">
- <template slot-scope="{row}">
- <el-tag :type="row.status | statusFilter">
- {{ row.status == '1' ? "正常" : "删除" }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column min-width="300px" label="问题">
- <template slot-scope="{row}">
- <router-link :to="'/advice/edit/'+row.id" class="link-type">
- <span>{{ row.advice }}</span>
- </router-link>
- </template>
- </el-table-column>
- <el-table-column align="center" label="Actions" width="190" class-name="small-padding fixed-width">
- <template slot-scope="scope">
- <router-link :to="'/advice/edit/'+scope.row.id">
- <el-button type="primary" size="mini" icon="el-icon-edit">
- 修改
- </el-button>
- </router-link>
- <el-button type="danger" size="mini" icon="el-icon-delete" style="margin-left: 10px;" @click="handleDelete(scope)">
- 删除
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getList" />
- </div>
- </template>
- <script>
- import { fetchList, deleteAdvice } from '@/api/advice'
- import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
- import waves from '@/directive/waves'
- export default {
- name: 'ArticleList',
- components: { Pagination },
- directives: { waves },
- filters: {
- statusFilter(status) {
- const statusMap = {
- normal: 'success',
- draft: 'info',
- deleted: 'danger'
- }
- return statusMap[status]
- }
- },
- data() {
- return {
- list: null,
- total: 0,
- listLoading: true,
- listQuery: {
- page: 1,
- pageSize: 10
- }
- }
- },
- created() {
- this.getList()
- },
- methods: {
- getList() {
- this.listLoading = true
- fetchList(this.listQuery).then(response => {
- this.list = response.data.list
- this.total = response.data.count
- this.listLoading = false
- })
- },
- handleFilter() {
- this.listLoading = true
- fetchList(this.listQuery).then(response => {
- this.list = response.data.list
- this.total = response.data.count
- this.listLoading = false
- })
- },
- handleDelete({ $index, row }) {
- console.log(row.id)
- this.$confirm('您确定要删除吗', '警告', {
- confirmButtonText: '是的',
- cancelButtonText: '取消',
- type: 'warning'
- })
- .then(async() => {
- await deleteAdvice(row.id)
- this.list.splice($index, 1)
- this.$message({
- type: 'success',
- message: '删除成功'
- })
- })
- }
- }
- }
- </script>
- <style scoped>
- .edit-input {
- padding-right: 100px;
- }
- .cancel-btn {
- position: absolute;
- right: 15px;
- top: 10px;
- }
- .filter-container{
- margin-bottom: 20px;
- }
- .filter-item {
- margin-right: 10px;
- }
- </style>
|