detail.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <div class="hui-detail">
  3. <div class="hui-detail-box">
  4. <div class="hui-detail-title">基础信息</div>
  5. <div class="hui-detail-content">
  6. <div class="hui-detail-item">
  7. <div class="hui-detail-label">主标题</div>
  8. <div class="hui-detail-value">{{detail.name}}</div>
  9. </div>
  10. <div class="hui-detail-item">
  11. <div class="hui-detail-label">副标题</div>
  12. <div class="hui-detail-value">{{detail.subtitle}}</div>
  13. </div>
  14. <div class="hui-detail-item">
  15. <div class="hui-detail-label">价格(元)</div>
  16. <div class="hui-detail-value color-danger">{{detail.price}}</div>
  17. </div>
  18. </div>
  19. </div>
  20. <div class="hui-detail-box">
  21. <div class="hui-detail-title">商品附件</div>
  22. <div class="hui-detail-content">
  23. <div class="hui-detail-item">
  24. <div class="hui-detail-label">列表展示图</div>
  25. <div class="hui-detail-value">
  26. <upload :list="detail.listDisplayImage ? JSON.parse(detail.listDisplayImage) : []" type="preview">
  27. </upload>
  28. </div>
  29. </div>
  30. <div class="hui-detail-item">
  31. <div class="hui-detail-label">商品配图</div>
  32. <div class="hui-detail-value">
  33. <upload :list="detail.rotatingImages ? JSON.parse(detail.rotatingImages) : []" type="preview">
  34. </upload>
  35. </div>
  36. </div>
  37. <div class="hui-detail-item">
  38. <div class="hui-detail-label">详情配图</div>
  39. <div class="hui-detail-value">
  40. <upload :list="detail.detailedImage ? JSON.parse(detail.detailedImage) : []" type="preview">
  41. </upload>
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. <div class="hui-detail-box" v-if="detail.intro && detail.intro != '[]'">
  47. <div class="hui-detail-title">商品介绍</div>
  48. <div class="hui-detail-content">
  49. <div class="hui-detail-item" v-for="(item,index) in JSON.parse(detail.intro)" :key="index">
  50. <div class="hui-detail-label">{{item.title}}</div>
  51. <div class="hui-detail-value">{{item.content}}</div>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </template>
  57. <script>
  58. import {
  59. getServeById
  60. } from '@/api/serve'
  61. const upload = () => import('@/components/common/upload');
  62. export default {
  63. props: ['detailId'],
  64. data() {
  65. return {
  66. detail: {}
  67. }
  68. },
  69. mounted() {
  70. if (this.detailId) this.init();
  71. },
  72. methods: {
  73. init() {
  74. getServeById(this.detailId).then(res => {
  75. if (res.state) {
  76. this.detail = res.data;
  77. }
  78. })
  79. }
  80. },
  81. components: {
  82. upload
  83. }
  84. }
  85. </script>
  86. <style>
  87. </style>