scroll-list-card.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <view class="scroll-list-card mobile-card-box">
  3. <!-- title -->
  4. <text class="mobile-card-title">{{
  5. data.ksName === null ? "" : data.ksName
  6. }}</text>
  7. <!-- content -->
  8. <view class="mobile-card-row" style="font-size: 28rpx">
  9. 时间:{{ data.ksStartTime === null ? "" : data.ksStartTime }}-{{
  10. data.ksEndTime === null ? "" : data.ksEndTime
  11. }}
  12. </view>
  13. <view class="mobile-card-row">
  14. <text>总分:{{ data.ksScore === null ? "" : data.ksScore }}</text>
  15. <text class="card-score-box"
  16. >学分:{{ data.credit === null ? "" : data.credit }}</text
  17. >
  18. </view>
  19. <view class="mobile-card-row">
  20. <text>及格分:{{ data.okScore === null ? "" : data.okScore }}</text>
  21. <text class="card-score-box"
  22. >考试时长:{{ data.totalTm === null ? "" : data.totalTm }}分钟</text
  23. >
  24. </view>
  25. <!-- button -->
  26. <template v-for="item in btns" :key="item.status">
  27. <button
  28. class="mobile-card-btn"
  29. @click="btnClick(data)"
  30. v-if="item.show"
  31. :key="item.status"
  32. :disabled="data.disabled"
  33. >
  34. {{ item.text }}
  35. </button>
  36. </template>
  37. </view>
  38. </template>
  39. <script setup>
  40. import { toRefs, ref, computed } from "vue";
  41. const props = defineProps({
  42. data: {
  43. type: Object,
  44. },
  45. });
  46. const { data } = toRefs(props);
  47. const btns = computed(() => [
  48. {
  49. status: 0,
  50. btnType: "kaoshi",
  51. text: "未开始",
  52. show: data.value.status === 0,
  53. },
  54. {
  55. status: 1,
  56. btnType: "kaoshi",
  57. text: "开始考试",
  58. show: data.value.status === 1,
  59. },
  60. {
  61. status: 3,
  62. btnType: "kaoshi",
  63. text: "考试中",
  64. show: data.value.status === 3,
  65. },
  66. {
  67. status: 2,
  68. btnType: "kaoshi",
  69. text: "再次考试",
  70. show: data.value.status === 2,
  71. },
  72. {
  73. status: 4,
  74. btnType: "kaoshi",
  75. text: "已结束",
  76. show: data.value.status === 4,
  77. },
  78. {
  79. status: 5,
  80. btnType: "kaoshi",
  81. text: "报名",
  82. show: data.value.status === 5,
  83. },
  84. {
  85. status: 6,
  86. btnType: "kaoshi",
  87. text: "报名审核中",
  88. show: data.value.status === 6,
  89. },
  90. {
  91. status: 7,
  92. btnType: "kaoshi",
  93. text: "审核未通过",
  94. show: data.value.status === 7,
  95. },
  96. {
  97. status: 8,
  98. btnType: "kaoshi",
  99. text: "等待人工评分",
  100. show: data.value.status === 8,
  101. },
  102. ]);
  103. const Emits = defineEmits(['btnClick'])
  104. function btnClick(data) {
  105. Emits('btnClick',data)
  106. }
  107. </script>