mbti-list-item.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <template>
  2. <view class="bg-white mx-card rounded-lg overflow-hidden">
  3. <view class="p-30 fx-row fx-bet-cen">
  4. <view class="text-main fx-row gap-8">
  5. <text class="text-orange-400">{{ item.ruleCode }}</text>
  6. </view>
  7. <uv-text type="tips" prefix-icon="clock" :text="reportDate" class="!justify-end"/>
  8. </view>
  9. <view class="mx-20 grid grid-cols-4 text-sm mx-grid-border">
  10. <view class="fx-row fx-cen-cen py-20">
  11. <view class="text-content">外向(E)</view>
  12. <view class="text-main">{{ item.scoreE }}</view>
  13. </view>
  14. <view class="fx-row fx-cen-cen py-20">
  15. <view class="text-content">内向(I)</view>
  16. <view class="text-main">{{ item.scoreI }}</view>
  17. </view>
  18. <view class="fx-row fx-cen-cen py-20">
  19. <view class="text-content">实感(S)</view>
  20. <view class="text-main">{{ item.scoreS }}</view>
  21. </view>
  22. <view class="fx-row fx-cen-cen py-20">
  23. <view class="text-content">直觉(N)</view>
  24. <view class="text-main">{{ item.scoreN }}</view>
  25. </view>
  26. <view class="fx-row fx-cen-cen py-20">
  27. <view class="text-content">思考(T)</view>
  28. <view class="text-main">{{ item.scoreT }}</view>
  29. </view>
  30. <view class="fx-row fx-cen-cen py-20">
  31. <view class="text-content">情感(F)</view>
  32. <view class="text-main">{{ item.scoreF }}</view>
  33. </view>
  34. <view class="fx-row fx-cen-cen py-20">
  35. <view class="text-content">判断(J)</view>
  36. <view class="text-main">{{ item.scoreJ }}</view>
  37. </view>
  38. <view class="fx-row fx-cen-cen py-20">
  39. <view class="text-content">认知(P)</view>
  40. <view class="text-main">{{ item.scoreP }}</view>
  41. </view>
  42. </view>
  43. <view class="py-20 fx-row justify-center">
  44. <mx-tag-button text="查看报告" icon="arrow-right" reverse @click="handleReport"/>
  45. </view>
  46. </view>
  47. </template>
  48. <script setup>
  49. import _ from 'lodash'
  50. import {computed} from 'vue'
  51. import {createPropDefine} from "@/utils";
  52. import {useTransfer} from "@/hooks/useTransfer";
  53. const props = defineProps({
  54. item: createPropDefine({}, Object)
  55. })
  56. const {transferTo} = useTransfer()
  57. const map = {
  58. R: '现实型',
  59. A: '艺术型',
  60. I: '研究型',
  61. S: '社会型',
  62. E: '企业型',
  63. C: '传统型'
  64. }
  65. const typeName = computed(() => map[_.first(props.item.ruleCode)] || '')
  66. const reportDate = computed(() => getDateStr(props.item.createTime))
  67. const getDateStr = (str) => {
  68. return str.substring(0, 10)
  69. }
  70. const handleReport = () => {
  71. transferTo('/pages/test-center/mbti/mbti', {code: props.item.code})
  72. }
  73. </script>
  74. <style scoped>
  75. </style>