directDetail.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <template>
  2. <div id="directDetail">
  3. <el-row>
  4. <el-col :span="24" class="one">
  5. <el-col :span="7" class="oneLeft">
  6. <el-carousel trigger="click" height="210px">
  7. <template v-if="directInfo.image && directInfo.image.length > 0">
  8. <el-carousel-item v-for="(item, index) in directInfo.image" :key="index">
  9. <el-image :src="item.url" style="height:210px"> </el-image>
  10. </el-carousel-item>
  11. </template>
  12. </el-carousel>
  13. </el-col>
  14. <el-col :span="17" class="oneRight">
  15. <p class="textOver">
  16. {{ directInfo.name }}
  17. </p>
  18. <p>
  19. <span
  20. >产品类型:{{
  21. directInfo.totaltype === '0' ? '技术' : directInfo.totaltype === '1' ? '产品' : directInfo.totaltype === '2' ? '服务' : '暂无'
  22. }}</span
  23. >
  24. <span>收费标准:{{ directInfo.price || '暂无' }}/{{ directInfo.priceunit || '暂无' }}</span>
  25. </p>
  26. <p>
  27. <span>
  28. 交易方式:{{ directInfo.business === '0' ? '公用' : directInfo.business === '1' ? '转让' : directInfo.business === '2' ? '竞价' : '暂无' }}
  29. </span>
  30. <span>研发阶段:{{ directInfo.phase == 1 ? '阶段成果' : directInfo.phase == 2 ? '最终成果' : '暂无' }}</span>
  31. </p>
  32. <p>
  33. <span>联系人:{{ directInfo.contact_user || '暂无' }}</span>
  34. <span>联系电话:{{ directInfo.contact_tel || '暂无' }}</span>
  35. </p>
  36. </el-col>
  37. <el-col :span="24" class="oneDown">
  38. <div>
  39. <p>应用领域:</p>
  40. <p>{{ directInfo.field || '暂无' }}</p>
  41. </div>
  42. <div>
  43. <!-- <p><span>产品参数:</span><span @click="argsBtn(directInfo.product_args)">查看详情</span></p> -->
  44. </div>
  45. <div>
  46. <p>服务范围:</p>
  47. <p class="moreScope" v-if="scope != ''">{{ directInfo.scope || '暂无' }}</p>
  48. <p class="moreScope1" v-else>{{ directInfo.scope || '暂无' }}</p>
  49. <el-button size="mini" v-if="directInfo.scope != null">
  50. <span v-if="scope != ''" @click="scopeMore()">更多</span>
  51. <span v-else @click="scopeMore1()">收起</span>
  52. </el-button>
  53. </div>
  54. <div>
  55. <p>产品简介:</p>
  56. <p class="introduction" v-if="introduction != ''">{{ directInfo.introduction || '暂无' }}</p>
  57. <p class="introduction1" v-else>{{ directInfo.introduction || '暂无' }}</p>
  58. <el-button size="mini" v-if="directInfo.introduction != null">
  59. <span v-if="introduction != ''" @click="introductionMore()">更多</span>
  60. <span v-else @click="introductionMore1()">收起</span>
  61. </el-button>
  62. </div>
  63. </el-col>
  64. </el-col>
  65. </el-row>
  66. </div>
  67. </template>
  68. <script>
  69. export default {
  70. name: 'directDetail',
  71. props: {
  72. directInfo: null,
  73. },
  74. components: {},
  75. data: () => ({
  76. scope: '123',
  77. introduction: '123',
  78. }),
  79. created() {},
  80. computed: {},
  81. methods: {
  82. // 更多
  83. scopeMore() {
  84. this.scope = '';
  85. },
  86. // 收起
  87. scopeMore1() {
  88. this.scope = '123';
  89. },
  90. // 更多
  91. introductionMore() {
  92. this.introduction = '';
  93. },
  94. // 收起
  95. introductionMore1() {
  96. this.introduction = '123';
  97. },
  98. },
  99. };
  100. </script>
  101. <style lang="less" scoped>
  102. .one {
  103. min-height: 550px;
  104. .oneLeft {
  105. height: 210px;
  106. overflow: hidden;
  107. }
  108. .oneRight {
  109. padding: 0 15px;
  110. p {
  111. font-size: 16px;
  112. padding: 0 0 20px 0;
  113. span {
  114. display: inline-block;
  115. width: 50%;
  116. }
  117. }
  118. p:first-child {
  119. font-size: 20px;
  120. font-weight: bold;
  121. padding: 20px 0;
  122. }
  123. p:nth-child(2) span:last-child {
  124. color: red;
  125. font-weight: bold;
  126. }
  127. }
  128. .oneDown {
  129. border-top: 1px dashed #ccc;
  130. margin: 30px 0 0 0;
  131. padding: 30px 0 0 0;
  132. div {
  133. padding: 0 0 15px 0;
  134. p {
  135. font-size: 18px;
  136. }
  137. p:first-child {
  138. color: #333;
  139. font-weight: bold;
  140. padding: 0 0 10px 0;
  141. }
  142. }
  143. div:nth-child(2) p span:last-child {
  144. color: #409eff;
  145. padding: 0 10px;
  146. }
  147. div:nth-child(2) p span:last-child:hover {
  148. cursor: pointer;
  149. }
  150. div:nth-child(3) .moreScope {
  151. overflow: hidden;
  152. text-overflow: ellipsis;
  153. -webkit-line-clamp: 6;
  154. word-break: break-all;
  155. display: -webkit-box;
  156. -webkit-box-orient: vertical;
  157. }
  158. div:nth-child(3) .moreScope1 {
  159. overflow: none;
  160. }
  161. div:nth-child(3) .el-button {
  162. float: right;
  163. }
  164. div:last-child .introduction {
  165. overflow: hidden;
  166. text-overflow: ellipsis;
  167. -webkit-line-clamp: 6;
  168. word-break: break-all;
  169. display: -webkit-box;
  170. -webkit-box-orient: vertical;
  171. }
  172. div:last-child .introduction1 {
  173. overflow: none;
  174. }
  175. div:last-child .el-button {
  176. float: right;
  177. }
  178. }
  179. }
  180. </style>