SpeakerAudit.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <template>
  2. <view class="speaker-audit" v-if="data">
  3. <!-- 讲者审核表单 -->
  4. <view class="info-section">
  5. <view class="section-header">
  6. <view class="section-indicator"></view>
  7. <text class="section-title">讲者信息</text>
  8. </view>
  9. <view class="info-list">
  10. <!-- 基本信息 -->
  11. <view class="info-item">
  12. <text class="info-label">公司</text>
  13. <text class="info-value">{{ data.companyUserVO && data.companyUserVO.companyName ? data.companyUserVO.companyName : '-' }}</text>
  14. </view>
  15. <view class="info-item">
  16. <text class="info-label">医生</text>
  17. <text class="info-value">{{ data.docterVO && data.docterVO.doctorName ? data.docterVO.doctorName : '-' }}</text>
  18. </view>
  19. <view class="info-item">
  20. <text class="info-label">学术头衔</text>
  21. <text class="info-value">{{ data.docterVO && data.docterVO.jobTitle ? data.docterVO.jobTitle : '-' }}</text>
  22. </view>
  23. <view class="info-item">
  24. <text class="info-label">学位</text>
  25. <text class="info-value">{{ data.docterVO && data.docterVO.degree ? data.docterVO.degree : '-' }}</text>
  26. </view>
  27. <view class="info-item">
  28. <text class="info-label">学术研究</text>
  29. <text class="info-value">{{ data.docterVO && data.docterVO.academicResearch ? data.docterVO.academicResearch : '-' }}</text>
  30. </view>
  31. <view class="info-item">
  32. <text class="info-label">申请级别</text>
  33. <text class="info-value">{{ data.docterVO && data.docterVO.applyLevel ? data.docterVO.applyLevel : '-' }}</text>
  34. </view>
  35. <view class="info-item">
  36. <text class="info-label">临床年数</text>
  37. <text class="info-value">{{ data.docterVO && data.docterVO.clinicalYears ? data.docterVO.clinicalYears : '-' }}</text>
  38. </view>
  39. <view class="info-item">
  40. <text class="info-label">国际论文/著作</text>
  41. <text class="info-value">{{ data.docterVO && data.docterVO.internationalPapers ? data.docterVO.internationalPapers : '-' }}</text>
  42. </view>
  43. <view class="info-item">
  44. <text class="info-label">全国论文/著作</text>
  45. <text class="info-value">{{ data.docterVO && data.docterVO.nationalPapers ? data.docterVO.nationalPapers : '-' }}</text>
  46. </view>
  47. <view class="info-item">
  48. <text class="info-label">学术任职</text>
  49. <text class="info-value">{{ data.docterVO && data.docterVO.academicPositions ? data.docterVO.academicPositions : '-' }}</text>
  50. </view>
  51. </view>
  52. </view>
  53. <!-- 证明材料 -->
  54. <view class="info-section" v-if="(data.docterVO && data.docterVO.licenseImage) || (data.docterVO && data.docterVO.titleCertImage)">
  55. <view class="section-header">
  56. <view class="section-indicator"></view>
  57. <text class="section-title">证明材料</text>
  58. </view>
  59. <view class="proof-materials">
  60. <!-- 执业证书 -->
  61. <view class="material-item" v-if="data.docterVO && data.docterVO.licenseImage" @click="previewImage(data.docterVO.licenseImage, [data.docterVO.licenseImage])">
  62. <image
  63. :src="data.docterVO.licenseImage"
  64. style="width: 200rpx; height: 200rpx;"
  65. mode="aspectFill"
  66. ></image>
  67. <text class="material-name">执业证书</text>
  68. </view>
  69. <!-- 职称证书 -->
  70. <view class="material-item" v-if="data.docterVO && data.docterVO.titleCertImage" @click="previewImage(data.docterVO.titleCertImage, [data.docterVO.titleCertImage])">
  71. <image
  72. :src="data.docterVO.titleCertImage"
  73. style="width: 200rpx; height: 200rpx;"
  74. mode="aspectFill"
  75. ></image>
  76. <text class="material-name">职称证书</text>
  77. </view>
  78. </view>
  79. </view>
  80. </view>
  81. </template>
  82. <script>
  83. export default {
  84. name: 'SpeakerAudit',
  85. props: {
  86. data: {
  87. type: Object,
  88. default: null
  89. }
  90. },
  91. methods: {
  92. // 预览图片
  93. previewImage(current, urls) {
  94. uni.previewImage({
  95. urls: urls,
  96. current: current
  97. })
  98. }
  99. }
  100. }
  101. </script>
  102. <style lang="scss" scoped>
  103. .info-section {
  104. margin-bottom: 24rpx;
  105. background: #fff;
  106. border-radius: 16rpx;
  107. padding: 24rpx;
  108. .section-header {
  109. display: flex;
  110. align-items: center;
  111. margin-bottom: 24rpx;
  112. .section-indicator {
  113. width: 8rpx;
  114. height: 32rpx;
  115. background: #388BFF;
  116. border-radius: 4rpx;
  117. margin-right: 16rpx;
  118. }
  119. .section-title {
  120. font-size: 32rpx;
  121. font-weight: 500;
  122. color: #333;
  123. }
  124. }
  125. .info-list {
  126. .info-item {
  127. display: flex;
  128. justify-content: space-between;
  129. align-items: flex-start;
  130. margin-bottom: 20rpx;
  131. padding-bottom: 20rpx;
  132. border-bottom: 1rpx solid #F0F0F0;
  133. &:last-child {
  134. margin-bottom: 0;
  135. padding-bottom: 0;
  136. border-bottom: none;
  137. }
  138. .info-label {
  139. font-size: 28rpx;
  140. color: #666;
  141. width: 200rpx;
  142. }
  143. .info-value {
  144. font-size: 28rpx;
  145. color: #333;
  146. flex: 1;
  147. text-align: right;
  148. word-break: break-all;
  149. }
  150. }
  151. }
  152. .proof-materials {
  153. display: flex;
  154. flex-wrap: wrap;
  155. gap: 20rpx;
  156. .material-item {
  157. width: 200rpx;
  158. margin-bottom: 20rpx;
  159. cursor: pointer;
  160. image {
  161. border-radius: 8rpx;
  162. margin-bottom: 10rpx;
  163. }
  164. .material-name {
  165. font-size: 24rpx;
  166. color: #666;
  167. text-align: center;
  168. word-break: break-all;
  169. }
  170. }
  171. }
  172. }
  173. </style>