index.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <template>
  2. <el-table
  3. :data="list"
  4. v-loading="loading"
  5. stripe
  6. border
  7. style="width: 100%"
  8. @selection-change="$emit('selection-change', $event)"
  9. >
  10. <el-table-column type="selection" width="55" />
  11. <el-table-column prop="title" label="知识标题" min-width="200" show-overflow-tooltip />
  12. <el-table-column prop="content" label="内容" min-width="300" show-overflow-tooltip>
  13. <template slot-scope="scope">
  14. <span>{{ scope.row.content | truncate(100) }}</span>
  15. </template>
  16. </el-table-column>
  17. <el-table-column prop="sort" label="排序" width="80" align="center" />
  18. <el-table-column prop="status" label="状态" width="80" align="center">
  19. <template slot-scope="scope">
  20. <el-tag :type="scope.row.status === 1 ? 'success' : 'info'" size="small">
  21. {{ scope.row.status === 1 ? '启用' : '禁用' }}
  22. </el-tag>
  23. </template>
  24. </el-table-column>
  25. <el-table-column label="操作" width="200" fixed="right">
  26. <template slot-scope="scope">
  27. <el-button size="small" type="text" @click="$emit('edit', scope.row)">编辑</el-button>
  28. <el-button size="small" type="text" @click="$emit('bind-dimension', scope.row)">维度</el-button>
  29. <el-button size="small" type="text" @click="$emit('bind-tag', scope.row)">标签</el-button>
  30. <el-button size="small" type="text" style="color: #f56c6c" @click="$emit('delete', scope.row)">删除</el-button>
  31. </template>
  32. </el-table-column>
  33. </el-table>
  34. </template>
  35. <script>
  36. export default {
  37. name: 'KnowledgeTable',
  38. props: {
  39. list: { type: Array, default: () => [] },
  40. loading: { type: Boolean, default: false }
  41. },
  42. filters: {
  43. truncate(text, len) {
  44. if (!text) return ''
  45. return text.length > len ? text.substring(0, len) + '...' : text
  46. }
  47. }
  48. }
  49. </script>