<template> <div class="sys"> <div class="clear-both top"> <el-button type="success" plain @click="add" style="float: right" v-if="!$store.state.readonly">添加配置</el-button> <el-form inline=""> <el-form-item label="关键字"> <el-input placeholder="输入关键字搜索" v-model="searchKey"></el-input> </el-form-item> <el-form-item > <el-button type="primary" @click="getList">搜索</el-button> </el-form-item> </el-form> </div> <el-table :data="list" style="width: 100%"> <el-table-column type="expand"> <template slot-scope="props"> <el-form label-position="left" class="demo-table-expand"> <el-form-item label="Key"> <span>{{ props.row.key }}</span> </el-form-item> <el-form-item label="关键词"> <span>{{ props.row.value }}</span> </el-form-item> <el-form-item label="描述"> <span>{{ props.row.desc }}</span> </el-form-item> </el-form> </template> </el-table-column> <el-table-column label="ID" sortable prop="id"> </el-table-column> <el-table-column label="Key" prop="key"> </el-table-column> <el-table-column label="关键词" prop="value"> </el-table-column> <el-table-column prop="created_at" label="创建时间" sortable> </el-table-column> <el-table-column width="250" v-if="!$store.state.readonly" label="操作"> <template slot-scope="scope"> <el-button size="mini" plain type="warning" @click="edit(scope.row)"> 编辑 </el-button> <el-button size="mini" plain type="danger" @click="del(scope.row)" v-if="$store.state.deletePermission"> 删除 </el-button> </template> </el-table-column> </el-table> <dialog-com :dialogObj="dialogObj" @changeShow="changeShow" @reflash="getList"/> <page :total="total" :limit="limit" @pageChange="onPageChange" @sizeChange="onSizeChange"/> </div> </template> <script> import dialogCom from './sysConfigDialog' import {getConfigListApi,deleteConfigApi,getConfigDetailApi} from "../../service/api"; import page from '../framework/page' export default { name: "sysConfig", data() { return { total:0, nowPage:1, searchKey:"", limit: 10, dialogObj:{ value:'', desc:'', show:false, id:'' }, list: [] } }, components:{ dialogCom, page }, mounted(){ this.getList() }, methods: { changeShow(data){ this.dialogObj.show=data }, getList(){ let json = { limit: this.limit, page: this.nowPage }; if(this.searchKey){ json.key = this.searchKey } getConfigListApi(json).then(res => { this.list = res.list this.total = res.total }) }, onPageChange(val){ this.nowPage = val; this.getList(); }, onSizeChange(val){ this.nowPage = 1; this.limit = val; this.getList(); }, add(){ this.dialogObj.id = ''; this.dialogObj.key= ''; this.dialogObj.value = ''; this.dialogObj.desc = ''; this.dialogObj.show = true }, edit(data){ getConfigDetailApi(data.id).then((res) => { this.dialogObj.id = res.id; this.dialogObj.key= res.key; this.dialogObj.value = res.value; this.dialogObj.desc = res.desc; this.dialogObj.show = true }); }, del(data){ this.$confirm('此操作将删除该记录?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { deleteConfigApi(data.id).then(res=>{ this.getList() this.$message({ type: 'success', message: '删除成功!' }); }); }); } } } </script> <style scoped lang="less"> @import "../../util/public"; .sys { padding: 20px 0; } .add-btn { margin: 10px 0; } .top { margin-bottom:10px; } </style>