defineListPage2.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <m-menu :btnTitle="title">
  3. <v-card elevation="3" style="padding: 40px 60px; width: 100%; overflow-y: visible; overflow-x: auto;">
  4. <div class="d-flex">
  5. <div v-for="(item, i) in list" :key="'product'+i" :style="{'margin-left': i ? ml : 'auto'}">
  6. <div style="font-size: 20px; color: var(--v-primary-lighten2)" class="mb-5">{{ item.title }}</div>
  7. <v-divider class="mb-6" style="color: var(--v-primary-lighten2)"></v-divider>
  8. <div v-for="(arr, j) in item.appList" :key="'productApp'+j" class="d-flex">
  9. <div
  10. v-for="(val, k) in arr" :key="'productAppArr'+k"
  11. :class="{'ml-5': k}"
  12. :style="{width: val.width ? val.width : !k ? width : 'auto'}"
  13. class="d-flex cursor-pointer"
  14. @click="emits('emitClick', val)"
  15. >
  16. <span class="mr-2" style="font-size: 30px;line-height: 22px;color: var(--v-primary-lighten2);">·</span>
  17. <div>
  18. <div style="font-size: 16px; font-weight: 500;">{{ val.title }}</div>
  19. <div style="font-size: 14px;" class="subTitle mb-5">{{ val.subTitle }}</div>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24. </div>
  25. </v-card>
  26. </m-menu>
  27. </template>
  28. <script setup>
  29. import MMenu from './commonMenuStyle.vue'
  30. defineOptions({name: 'entrances-defineListPage2'})
  31. const emits = defineEmits(['emitClick'])
  32. defineProps({
  33. list: {
  34. type: Array,
  35. default: () => []
  36. },
  37. title: {
  38. type: String,
  39. default: 'title'
  40. },
  41. width: {
  42. type: String,
  43. default: '160px'
  44. },
  45. ml: {
  46. type: String,
  47. default: '150px'
  48. }
  49. })
  50. </script>
  51. <style lang="scss" scoped>
  52. .cursor-pointer {
  53. .subTitle { color: #999; }
  54. &:hover {
  55. color: var(--v-primary-base);
  56. .subTitle {
  57. color: #666;
  58. }
  59. }
  60. }
  61. </style>