segment-score-table.vue 908 B

12345678910111213141516171819202122232425262728
  1. <template>
  2. <view class="grid" :class="'grid-cols-'+cols.length">
  3. <view v-for="c in cols" class="flex justify-center items-center py-10" :class="headerClass">
  4. {{ c.label }}
  5. </view>
  6. <template v-for="r in rows">
  7. <view v-for="c in cols" class="flex justify-center items-center py-24" :class="[rowClass, borderClass]">
  8. {{ r[c.prop] }}
  9. </view>
  10. </template>
  11. </view>
  12. </template>
  13. <script setup>
  14. import {createPropDefine} from "@/utils";
  15. const props = defineProps({
  16. cols: createPropDefine([{label: '', prop: ''}], Object),
  17. rows: createPropDefine([], Array),
  18. headerClass: createPropDefine('text-xs text-content'),
  19. rowClass: createPropDefine('text-sm text-main font-bold border-b'),
  20. borderClass: createPropDefine('border-0 !border-b border border-border border-solid')
  21. })
  22. </script>
  23. <style scoped>
  24. </style>