index.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <template>
  2. <div>
  3. <div class="row">
  4. <div class="col">认证方式:</div>
  5. <div class="col">新设备认证 | 关联已认证设备</div>
  6. </div>
  7. <div class="row">
  8. <div class="col">设备名称:</div>
  9. <div class="col">{{ productInfo.productName }}</div>
  10. </div>
  11. <div class="row">
  12. <div class="col">设备SN码:</div>
  13. <div class="col">{{ productInfo.snCode }}</div>
  14. </div>
  15. <div class="row">
  16. <div class="col">设备图片:</div>
  17. <div class="col">
  18. <preview-image v-if="productInfo.productImage" class="preview-image" :src="productInfo.productImage" />
  19. </div>
  20. </div>
  21. <div class="row">
  22. <div class="col">授权牌:</div>
  23. <div class="col">
  24. <preview-image v-if="productInfo.certificateImage" class="preview-image" :src="productInfo.certificateImage" />
  25. </div>
  26. </div>
  27. <div class="row">
  28. <div class="col">购买渠道:</div>
  29. <div class="col">{{ productInfo.purchaseWay }}</div>
  30. </div>
  31. <div class="row">
  32. <div class="col">发票:</div>
  33. <div class="col">
  34. <preview-image v-if="productInfo.invoiceImage" class="preview-image" :src="productInfo.invoiceImage" />
  35. </div>
  36. </div>
  37. <div class="row">
  38. <div class="col">审核状态:</div>
  39. <div class="col">
  40. <audit-status :status="productInfo.shopAuditStatus || productInfo.auditStatus" :reason="productInfo.invalidReason" />
  41. </div>
  42. </div>
  43. </div>
  44. </template>
  45. <script>
  46. import { getProductById } from '@/api/product'
  47. export default {
  48. name: 'DeviceDetail',
  49. props: {
  50. productId: {
  51. type: String,
  52. default: ''
  53. }
  54. },
  55. data() {
  56. return {
  57. productInfo: {
  58. productId: '',
  59. productName: '',
  60. snCode: '',
  61. productImage: '',
  62. certificateImage: '',
  63. paramList: [],
  64. invoiceImage: '',
  65. brandName: '',
  66. purchaseWay: ''
  67. }
  68. }
  69. },
  70. created() {
  71. this.getDetail()
  72. },
  73. methods: {
  74. // 获取商品详情
  75. getDetail() {
  76. this.isLoading = true
  77. getProductById({ productId: this.productId })
  78. .then((res) => {
  79. this.productInfo = { ...this.productInfo, ...res.data }
  80. })
  81. .finally(() => {
  82. this.isLoading = false
  83. })
  84. }
  85. }
  86. }
  87. </script>
  88. <style lang="scss" scoped>
  89. .row {
  90. display: flex;
  91. justify-content: flex-start;
  92. align-items: flex-start;
  93. margin-bottom: 25px;
  94. .col {
  95. font-size: 14px;
  96. color: #333;
  97. &:first-child {
  98. min-width: 100px;
  99. text-align: right;
  100. margin-right: 8px;
  101. font-weight: bold;
  102. color: #666;
  103. }
  104. .el-image {
  105. margin-left: 12px;
  106. &:first-child {
  107. margin-left: 0;
  108. }
  109. }
  110. }
  111. }
  112. .preview-image {
  113. display: inline-block;
  114. }
  115. </style>