index.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <template>
  2. <div class="collaborate">
  3. <HomeCommon ref="common" :data="exercise_list" :total="total_count" @getList="pageQueryExerciseList">
  4. <template #default>
  5. <el-table-column prop="index" label="序号" width="70">
  6. <template slot-scope="{ $index }">{{ $index + 1 }}</template>
  7. </el-table-column>
  8. <el-table-column prop="name" label="练习名称" width="280" />
  9. <el-table-column prop="tag" label="标签" width="180">
  10. <template slot-scope="{ row }">
  11. <span v-for="(item, i) in row.label_list" :key="i" class="tag">{{ item }}</span>
  12. </template>
  13. </el-table-column>
  14. <el-table-column prop="creator_name" label="创建者" width="160" />
  15. <el-table-column prop="create_time" label="创建时间" width="180" />
  16. <el-table-column prop="last_modifier_name" label="最近编辑" width="140" />
  17. <el-table-column prop="last_modify_time" label="最近编辑时间" width="180" />
  18. <el-table-column prop="intro" label="简介" />
  19. <el-table-column prop="operation" label="操作" fixed="right" width="300">
  20. <template slot-scope="{ row }">
  21. <span
  22. class="link"
  23. @click="$router.push({ path: '/exercise', query: { id: row.id, back_url: '/collaborate_question' } })"
  24. >
  25. 编辑
  26. </span>
  27. <span class="link danger" @click="deleteMyShareEditExercise(row.id)">删除</span>
  28. </template>
  29. </el-table-column>
  30. </template>
  31. <template #operation> </template>
  32. <template #search>
  33. <span class="search-name">搜索</span>
  34. <el-input
  35. v-model="searchData.search_content"
  36. placeholder="全部"
  37. suffix-icon="el-icon-search"
  38. @keyup.enter.native="getPageList"
  39. />
  40. <span class="search-name">创建者</span>
  41. <el-input v-model="searchData.creator_name" placeholder="请输入内容" @keyup.enter.native="getPageList" />
  42. </template>
  43. </HomeCommon>
  44. </div>
  45. </template>
  46. <script>
  47. import { PageQueryExerciseList, DeleteMyShareEditExercise } from '@/api/exercise';
  48. import HomeCommon from '../common.vue';
  49. export default {
  50. name: 'CollaborateQuestion',
  51. components: {
  52. HomeCommon,
  53. },
  54. data() {
  55. return {
  56. // 搜索数据
  57. searchData: {
  58. search_content: '',
  59. creator_name: '',
  60. },
  61. total_count: 0, // 总条数
  62. exercise_list: [],
  63. };
  64. },
  65. methods: {
  66. getPageList() {
  67. this.$refs.common.getList();
  68. },
  69. pageQueryExerciseList(data) {
  70. PageQueryExerciseList({ ...data, store_type: 10, ...this.searchData }).then(({ total_count, exercise_list }) => {
  71. this.total_count = total_count;
  72. this.exercise_list = exercise_list;
  73. });
  74. },
  75. deleteMyShareEditExercise(exercise_id) {
  76. this.$confirm('是否删除当前练习题', '提示', {
  77. confirmButtonText: '确定',
  78. cancelButtonText: '取消',
  79. type: 'warning',
  80. })
  81. .then(() => {
  82. DeleteMyShareEditExercise({ exercise_id })
  83. .then(() => {
  84. this.$message.success('删除成功');
  85. this.getPageList();
  86. })
  87. .catch(() => {
  88. this.$message.error('删除失败');
  89. });
  90. })
  91. .catch(() => {});
  92. },
  93. },
  94. };
  95. </script>
  96. <style lang="scss" scoped>
  97. .collaborate {
  98. height: 100%;
  99. }
  100. </style>