index.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <script setup>
  2. import { getFullUrl, getAvatarUrl } from '~/utils/helper';
  3. import { Search as IconSearch } from '@element-plus/icons-vue';
  4. let nj = $ref([])
  5. request({
  6. url: '/jcxx/grade/index',
  7. data: {
  8. limit: 99
  9. }
  10. }).then(res => {
  11. if (res.code === '1') {
  12. nj = [{ n: '全部', v: undefined }].concat(res.data.page_data.map(({ grade_name, grade_id }) => ({ v: grade_id, n: grade_name })))
  13. }
  14. })
  15. const queryForm = reactive({
  16. grade_id: undefined,
  17. page: 1
  18. })
  19. // 我创建的
  20. let data_wcjd = $ref([])
  21. request({
  22. url: '/kzkt/zbkc_kcdg/my_course'
  23. }).then(res => {
  24. if (res.code === '1') {
  25. data_wcjd = res.data
  26. }
  27. })
  28. </script>
  29. <template>
  30. <div class="w-full shadow flex flex-col rounded-md">
  31. <div class="flex justify-end px-8 py-2">
  32. <div class="w-100px h-50px flex_center rounded bg-hex-00A3FF text-white cursor-pointer" @click="handleClickAdd">创建
  33. </div>
  34. <div class="w-500px h-50px ml-8">
  35. <el-input class="w-500px h-full rounded-md" placeholder="搜索关键字" v-model="keyword">
  36. <template #suffix>
  37. <div class="w-26px h-26px bg-hex-00A3FF rounded-md flex justify-center items-center cursor-pointer"
  38. @click="queryData()">
  39. <el-icon size="13" color="#fff">
  40. <IconSearch />
  41. </el-icon>
  42. </div>
  43. </template>
  44. </el-input>
  45. </div>
  46. </div>
  47. <div class="px-4">
  48. <check-row v-model="queryForm.grade_id" label="年级" :items="nj"></check-row>
  49. <!-- <check-row v-model="queryForm.subject_id" label="分册" :items="fc"></check-row> -->
  50. </div>
  51. <div class="flex flex-wrap justify-between">
  52. <div class="w-647px h-155px rounded-xl shadow-lg mb-7 flex" v-for="i in data_wcjd">
  53. <div class="w-264px h-full flex-none">
  54. <img :src="getFullUrl(i.img)" alt="" class="w-full h-full" />
  55. </div>
  56. <div class="p-2 pr-6 flex-auto flex flex-col">
  57. <div class="flex justify-between w-full items-center py-1">
  58. <div class="font-bold">{{ i.name }}</div>
  59. <div class="text-hex-949494 text-sm flex justify-between items-center">
  60. <i-bx:edit-alt class="mr-2 cursor-pointer" />
  61. <i-ep:delete class="cursor-pointer" />
  62. </div>
  63. </div>
  64. <div class="text-sm text-hex-949494 py-1">
  65. {{ i.kcjj }}
  66. </div>
  67. <div class="text-sm py-1 flex-auto">
  68. <span>{{ i.nj }}</span>
  69. <span class="mx-2">|</span>
  70. <span>{{ i.xk }}</span>
  71. </div>
  72. <div class="flex text-sm justify-between items-center">
  73. <div class="cursor-pointer flex items-center">
  74. <el-avatar :size="16" :src="i.tx" />
  75. <span class="ml-1">{{
  76. i.kz_master_teacher
  77. }}</span>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </template>