profile.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <template>
  2. <div class="bg-F5">
  3. <div class="container ">
  4. <div class="info">
  5. <div class="left">
  6. <div>
  7. <el-carousel class="marquee" arrow="never">
  8. <el-carousel-item
  9. v-for="item in (this.shopInfo.propagandaImgUrl + ``).split(`,`)"
  10. :key="item"
  11. >
  12. <div class="img">
  13. <img :src="`${$basePath}${item}`" alt="" />
  14. </div>
  15. </el-carousel-item>
  16. </el-carousel>
  17. </div>
  18. <div class="details">
  19. <span>{{ shopInfo.companyName }}</span>
  20. <p>
  21. {{ $t("page.views.shops.details.profile.companyType") }}:{{
  22. companyType
  23. }}
  24. </p>
  25. <p>
  26. {{
  27. $t("page.views.shops.details.profile.unifiedSocialCreditCode")
  28. }}:{{ shopInfo.unifiedSocialCreditCode }}
  29. </p>
  30. <p>
  31. {{ $t("page.views.shops.details.profile.legalPerson") }}:{{
  32. shopInfo.legalPerson
  33. }}
  34. </p>
  35. <p>
  36. {{ $t("page.views.shops.details.profile.detailAddress") }}:{{
  37. shopInfo.detailAddress
  38. }}
  39. </p>
  40. <p>
  41. {{ $t("page.views.shops.details.profile.primaryBusiness") }}:{{
  42. shopInfo.primaryBusiness
  43. }}
  44. </p>
  45. </div>
  46. </div>
  47. <div class="right">
  48. <div class="title">
  49. {{ $t("page.views.shops.details.profile.companyIntroduction") }}
  50. </div>
  51. <p>
  52. {{ shopInfo.companyIntroduce }}
  53. </p>
  54. </div>
  55. </div>
  56. <div class="x-title">
  57. {{ $t("page.views.shops.details.profile.businessLicense") }}
  58. </div>
  59. <img v-for="(img, index) in imgs" :key="index" :src="img" />
  60. </div>
  61. </div>
  62. </template>
  63. <script lang="ts">
  64. import { Component, Vue, Prop } from "vue-property-decorator";
  65. import dict from "@/store/modules/dict";
  66. @Component
  67. export default class extends Vue {
  68. @Prop() private shopInfo!: IAny;
  69. get companyType() {
  70. const x = dict.companyType.find(
  71. ({ value }) => value === this.shopInfo.companyType
  72. );
  73. return x && x.key;
  74. }
  75. get imgs() {
  76. return (this.shopInfo.businessLicenseUrl as string)
  77. .split(",")
  78. .map(img => `${this.$basePath}${img}`);
  79. }
  80. }
  81. </script>
  82. <style lang="scss" scoped>
  83. .container {
  84. padding: 20px 0;
  85. .info {
  86. height: 255px;
  87. background: #fff;
  88. border-radius: 4px;
  89. padding: 15px 20px;
  90. box-sizing: border-box;
  91. > div {
  92. width: 50%;
  93. box-sizing: border-box;
  94. display: inline-block;
  95. height: 100%;
  96. vertical-align: top;
  97. }
  98. .left {
  99. border-right: 1px dashed #e3e3e3;
  100. > div {
  101. width: 40%;
  102. box-sizing: border-box;
  103. // display: inline-block;
  104. height: 100%;
  105. float: left;
  106. .img {
  107. height: 100%;
  108. position: relative;
  109. img {
  110. max-width: 100%;
  111. max-height: 100%;
  112. border-radius: 4px;
  113. position: absolute;
  114. top: 50%;
  115. left: 50%;
  116. transform: translate(-50%, -50%);
  117. }
  118. }
  119. &.details {
  120. width: 60%;
  121. padding: 10px 15px;
  122. span {
  123. margin-bottom: 20px;
  124. display: inline-block;
  125. font-size: 16px;
  126. color: rgb(51, 51, 51);
  127. }
  128. p {
  129. font-size: 12px;
  130. color: rgb(102, 102, 102);
  131. margin-bottom: 5px;
  132. word-break: break-all;
  133. }
  134. }
  135. }
  136. }
  137. .right {
  138. padding: 20px 40px;
  139. .title {
  140. color: rgb(253, 85, 34);
  141. margin-bottom: 20px;
  142. font-size: 16px;
  143. }
  144. p {
  145. font-size: 12px;
  146. color: rgb(102, 102, 102);
  147. }
  148. }
  149. }
  150. .x-title {
  151. margin-top: 30px;
  152. margin-bottom: 20px;
  153. }
  154. > img {
  155. max-width: 80%;
  156. margin-left: 20px;
  157. }
  158. }
  159. </style>