knowledge-table.vue 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <view class="p-30">
  3. <ie-table :table-columns="tableColumns" :table-config="tableConfig" :data="data">
  4. <template #knowledgeName="{ item }">
  5. <view class="">
  6. <text class="leading-38">{{ item.knowledgeName }}</text>
  7. <text
  8. class="ml-10 bg-[#F0FDF4] text-[#22C55E] border border-solid border-[#22C55E] text-20 rounded-4 px-10 py-2">定向</text>
  9. </view>
  10. </template>
  11. <template #rate="{ item }">
  12. {{ item.rate }}%
  13. </template>
  14. </ie-table>
  15. </view>
  16. </template>
  17. <script lang="ts" setup>
  18. import { Study, TableColumnConfig, TableConfig } from '@/types';
  19. const props = defineProps({
  20. studentId: {
  21. type: Number,
  22. required: true
  23. }
  24. });
  25. const tableConfig: TableConfig = {
  26. border: true,
  27. stripe: false,
  28. emptyText: '暂无数据',
  29. loading: false,
  30. rowKey: 'id'
  31. }
  32. const tableColumns: TableColumnConfig[] = [
  33. {
  34. prop: 'knowledgeName',
  35. label: '知识点',
  36. flex: 2,
  37. slot: 'knowledgeName',
  38. headerAlign: 'center',
  39. align: 'left'
  40. },
  41. {
  42. prop: 'rate',
  43. label: '正确率',
  44. flex: 1,
  45. slot: 'rate'
  46. },
  47. {
  48. prop: 'questionNum',
  49. label: '题量',
  50. flex: 1
  51. }
  52. ]
  53. const data = ref<Study.StudyRecord[]>([]);
  54. const loadData = async () => {
  55. // const res = await knowRecords({
  56. // studentId: props.studentId
  57. // });
  58. // data.value = res.data;
  59. // 模拟数据
  60. data.value = [
  61. { id: 1, knowledgeName: 'CA6140型普通车床电气控制线路的安装接线与故障检修', rate: 100, questionNum: 10 },
  62. { id: 2, knowledgeName: 'Z3040型摇臂钻床电气控制线路的安装接线与故障检修', rate: 100, questionNum: 10 },
  63. { id: 3, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  64. { id: 4, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  65. { id: 5, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  66. { id: 6, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  67. { id: 7, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  68. { id: 8, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  69. { id: 9, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  70. { id: 10, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  71. { id: 11, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  72. { id: 12, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  73. { id: 13, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  74. { id: 14, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  75. { id: 15, knowledgeName: '零件生产过程基础知识', rate: 100, questionNum: 10 },
  76. ];
  77. }
  78. onMounted(() => {
  79. loadData();
  80. });
  81. </script>
  82. <style lang="scss" scoped>
  83. .table-header {
  84. @apply flex items-center bg-[#EBF9FF] rounded-5;
  85. }
  86. .table-header-cell {
  87. @apply flex-1 text-center py-20 text-30 text-fore-light;
  88. }
  89. </style>