index.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <div :class="{kaifainDetailMobile: mobile, kaifainDetail: !mobile}">
  3. <div class="topArea">
  4. <div class="bannerBg">
  5. <img src="~@/assets/img/kaifain/detail/banner@2x.png" alt="" v-if="!mobile">
  6. <img src="~@/assets/img/kaifain/detail/banner_h5@2x.png" alt="" v-else>
  7. </div>
  8. <div class="topContent">
  9. <div class="left">
  10. <div class="title">{{detail.title}}</div>
  11. <div class="desc">{{detail.description}}</div>
  12. <div class="btn" @click="isShowToast=true">
  13. <p>咨询了解</p>
  14. </div>
  15. </div>
  16. </div>
  17. </div>
  18. <div class="contentArea">
  19. <div class="introArea">
  20. <div class="title">
  21. <p class="word">方案介绍</p>
  22. <p class="line"></p>
  23. </div>
  24. <div class="introContent ql-editor" v-html="detail.detail">
  25. </div>
  26. </div>
  27. <div class="caseListArea" v-if="haveCase">
  28. <div class="title">
  29. <p class="word">成功案例</p>
  30. <p class="line"></p>
  31. </div>
  32. <div class="list">
  33. <nuxt-link class="cell"
  34. v-for="item in detail.successful_case"
  35. :key="item.id"
  36. :to="`/kaifain/case/${item.id}.html`"
  37. target="_blank"
  38. :title="item.name"
  39. >
  40. <div class="left">
  41. <img :src="item.logo" alt="">
  42. </div>
  43. <div class="right">
  44. <div class="top">
  45. <div class="bTitle" v-if="!mobile" >{{item.title}}</div>
  46. <div class="bStitle">【{{detail.title}}】帮助【{{item.title}}】提供解决方案</div>
  47. </div>
  48. <div class="bottom" @click="openPDF(item)" v-if="!mobile">
  49. <div class="icon"/>
  50. <div class="word">{{item.title}}.pdf</div>
  51. </div>
  52. </div>
  53. </nuxt-link>
  54. </div>
  55. </div>
  56. </div>
  57. <ConnectUs :source="'开发屋详情'" :isShowToast="isShowToast" @close="isShowToast=false" :sourceId="tid"></ConnectUs>
  58. </div>
  59. </template>
  60. <script>
  61. import "quill/dist/quill.core.css";
  62. import "quill/dist/quill.snow.css";
  63. import ConnectUs from "@/components/common/connectUs"
  64. export default {
  65. layout: "opacity_header",
  66. components: {ConnectUs},
  67. head() {
  68. return {
  69. title: `${this.detail.title}介绍,功能,开发解决方案-开发屋`,
  70. meta: [ {
  71. 'name': 'keywords',
  72. 'content': `${this.detail.title}`
  73. }, {
  74. 'name': 'descrption',
  75. 'content': `${this.detail.title}详细介绍,包括不限于功能、接口、企业开发着对接和布局${this.detail.title}的方法和详细的开发文档说明。`
  76. }, {
  77. 'name': 'h1',
  78. 'content': `${this.detail.title}`
  79. } ]
  80. }
  81. },
  82. async asyncData({ app, $axios}) {
  83. let {tid} = app.context.route.params || {}
  84. tid = tid.replace(".html", "")
  85. let detail = {}
  86. let res = await $axios.post('/api/kaifawu/get_provider?id='+tid, {id: tid})
  87. if (Number(res.data.status) === 1) {
  88. let data = res.data.data
  89. if (!data) {
  90. return
  91. }
  92. if (!Array.isArray(data.successful_case)) {
  93. if (data.successful_case && typeof data.successful_case === "object") {
  94. data.successful_case = [ data.successful_case ]
  95. } else {
  96. data.successful_case = []
  97. }
  98. }
  99. detail = data || {}
  100. }
  101. return {
  102. tid,
  103. detail,
  104. mobile: app.$deviceType.isMobile(),
  105. }
  106. },
  107. data() {
  108. return {
  109. detail: {
  110. },
  111. tid: 0,
  112. isShowToast: false
  113. }
  114. },
  115. created() {
  116. this.getDetail()
  117. },
  118. mounted() {
  119. },
  120. computed: {
  121. haveCase() {
  122. const {successful_case = []} = this.detail
  123. return successful_case.length > 0
  124. }
  125. },
  126. methods: {
  127. getDetail() {
  128. },
  129. openPDF(item) {
  130. const {file} = item
  131. window.open(file, 'pdf' + Math.random())
  132. }
  133. }
  134. }
  135. </script>
  136. <style scope lang="scss">
  137. @import "../../../../assets/css/kaifain/detail.scss";
  138. </style>