_id.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <template>
  2. <div class="item-details" v-if="item.id">
  3. <div class="nav-container flex">
  4. <el-breadcrumb style="flex: 1;" separator="/">
  5. <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
  6. <el-breadcrumb-item class="line1" style="max-width: 800px;">人才详情:{{item.title}}</el-breadcrumb-item>
  7. </el-breadcrumb>
  8. </div>
  9. <!-- 头部 -->
  10. <div class="bg-white header flex row-center">
  11. <div class="cate-title m-r-10"><span>{{ item.title }}</span><el-tag type="danger"
  12. size="small">{{item.module}}</el-tag></div>
  13. </div>
  14. <!-- 基本信息 -->
  15. <div class="talents-item m-t-16">
  16. <div class="flex">
  17. <i class="el-icon-phone"></i>
  18. <div class="m-l-20">基本信息</div>
  19. </div>
  20. <div class="m-t-16 item-info">
  21. <!-- 人才 -->
  22. <div v-if="item.module == 'talent' || item.module == 'pedigree'">
  23. <div class="m-t-16">姓名:{{ item.title }}</div>
  24. </div>
  25. <div v-else>
  26. <div class="m-t-16">名称:{{ item.title }}</div>
  27. </div>
  28. <div class="m-t-16" v-if="item.company">单位:{{ item.company }}</div>
  29. <div class="m-t-16" v-if="item.position">职位:{{ item.position }}</div>
  30. <div class="m-t-16" v-if="item.module == 'base'">负责人:{{ item.principal }}</div>
  31. <div class="m-t-16" v-if="item.module == 'pedigreeCompany'">法人:{{ item.principal }}</div>
  32. <div class="m-t-16" v-if="item.module == 'firm'">秘书长:{{ item.principal }}</div>
  33. <div class="flex m-t-16">
  34. <i class="el-icon-phone"></i>
  35. <div class="m-l-20">{{ item.tel }}</div>
  36. </div>
  37. <div class="flex m-t-16">
  38. <i class="el-icon-location"></i>
  39. <div class="m-l-20">{{ item.city }}{{ item.address }}</div>
  40. </div>
  41. </div>
  42. </div>
  43. <!-- 简介信息 -->
  44. <div class="talents-item m-t-16">
  45. <div class="flex">
  46. <i class="el-icon-phone"></i>
  47. <span class="m-l-20"></span>
  48. <span v-if="item.module == 'talent'">研究领域:</span>
  49. <span v-else-if="item.module == 'base'">基地特色:</span>
  50. <span v-else-if="item.module == 'university' || item.module == 'association'">研究方向:</span>
  51. <span v-else-if="item.module == 'fund'">投资产业领域:</span>
  52. <span v-else-if="item.module == 'pedigreeCompany'">主要产品:</span>
  53. <span v-else-if="item.module == 'pedigree'">个人简介:</span>
  54. <span v-else>简介:</span>
  55. </div>
  56. <div class="m-t-16 item-info">
  57. <div v-html="item.intro"></div>
  58. </div>
  59. </div>
  60. </div>
  61. </template>
  62. <script>
  63. import {
  64. mapActions
  65. } from 'vuex'
  66. import {
  67. Message
  68. } from 'element-ui'
  69. export default {
  70. head() {
  71. return {
  72. title: this.$store.getters.headTitle,
  73. link: [{
  74. rel: 'icon',
  75. type: 'image/x-icon',
  76. href: this.$store.getters.favicon,
  77. }, ],
  78. }
  79. },
  80. async asyncData({
  81. params,
  82. $get,
  83. app
  84. }) {
  85. const {
  86. data,
  87. code,
  88. msg
  89. } = await $get('article/' + params.id, {})
  90. if (code == 0) {
  91. setTimeout(() => app.router.back(), 1500)
  92. }
  93. return {
  94. item: data,
  95. }
  96. },
  97. data() {
  98. return {
  99. item: {},
  100. id: '',
  101. }
  102. },
  103. created() {
  104. this.id = this.$route.params.id
  105. },
  106. methods: {
  107. ...mapActions(['getPublicData']),
  108. },
  109. watch: {},
  110. computed: {},
  111. }
  112. </script>
  113. <style lang="scss">
  114. .item-details {
  115. margin-top: 24px;
  116. padding: 50px;
  117. background: #FFFFFF;
  118. box-shadow: -1px 0px 6px 1px rgba(0, 0, 0, 0.04);
  119. border-radius: 4px 4px 4px 4px;
  120. }
  121. .header {
  122. .cate-title {
  123. font-size: 28px;
  124. font-weight: 500;
  125. color: #DD4250;
  126. span {
  127. margin-right: 10px;
  128. }
  129. }
  130. }
  131. .talents-item {
  132. background: #FFFFFF;
  133. box-shadow: 0px 8px 16px 2px rgba(0, 0, 0, 0.03);
  134. border-radius: 12px 12px 12px 12px;
  135. padding: 30px;
  136. font-size: 16px;
  137. .item-info {
  138. padding: 20px;
  139. background: #F7F8FA;
  140. border-radius: 8px 8px 8px 8px;
  141. }
  142. }
  143. </style>