previewCase.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <template>
  2. <div class="kaifainPreviewCase" :class="{isMobile: mobile}">
  3. <div class="topArea">
  4. <div class="bannerBg">
  5. <img src="~@/assets/img/kaifain/detail/banner@2x.png" alt />
  6. </div>
  7. <div class="topContent">
  8. <div class="left">
  9. <div class="title">{{detail.title}}</div>
  10. <!--<div class="desc">{{detail.description}}</div>-->
  11. </div>
  12. </div>
  13. </div>
  14. <div class="contentArea">
  15. <div class="introArea">
  16. <!--<div class="title">-->
  17. <!--<p class="word">案例介绍</p>-->
  18. <!--<p class="line"></p>-->
  19. <!--</div>-->
  20. <div class="introContent ql-editor" v-html="detail.description"></div>
  21. </div>
  22. </div>
  23. <KaifainFooter style="margin-top: 30px;" :data="footer" />
  24. </div>
  25. </template>
  26. <script>
  27. import "quill/dist/quill.core.css";
  28. import "quill/dist/quill.snow.css";
  29. import ConnectUs from "@/components/common/connectUs";
  30. import DealSeoFooter from "@/components/kaifain/dealSeoFooter";
  31. import KaifainFooter from "@/components/SeoFooter";
  32. export default {
  33. layout: "opacity_header_kf_tmp",
  34. components: { ConnectUs, KaifainFooter },
  35. head() {
  36. return {
  37. title: "开发屋-提供定制化SaaS、PasS、IaaS等各大行业技术开发解决方案",
  38. meta: [
  39. {
  40. name: "keywords",
  41. content: "定制化Saas、PasS、API、行业技术解决方案",
  42. },
  43. {
  44. name: "descrption",
  45. content:
  46. "开发屋为企业提供行业内领先的技术解决方案,包括行业定制化SaaS、PasS、API数据接口服务以及技术组织,保障企业在降低人力开发成本的同时,得到优质的项目开发实力。",
  47. },
  48. {
  49. name: "h1",
  50. content: "开发屋",
  51. },
  52. ],
  53. };
  54. },
  55. async asyncData({ ...params }) {
  56. try {
  57. params.store.commit("updateNoneCommonFooter", true);
  58. } catch (e) {
  59. console.log("updateNoneCommonFooter", e);
  60. }
  61. let dealSeoFooterObj = new DealSeoFooter(params);
  62. let footer = await dealSeoFooterObj.dealData();
  63. let domainConfig = params.store.state.domainConfig;
  64. return {
  65. ...domainConfig,
  66. ...footer,
  67. mobile: params.app.$deviceType.isMobile(),
  68. };
  69. },
  70. data() {
  71. return {
  72. detail: {},
  73. tid: 0,
  74. isShowToast: false,
  75. };
  76. },
  77. created() {
  78. this.tid = this.$route.params.tid || 0;
  79. this.getDetail();
  80. },
  81. mounted() {
  82. window.οnbefοreunlοad = () => {
  83. localStorage.removeItem("kaifainPreviewCaseData");
  84. };
  85. },
  86. computed: {
  87. haveCase() {
  88. const { successful_case = [] } = this.detail;
  89. return successful_case.length > 0;
  90. },
  91. },
  92. methods: {
  93. getDetail() {
  94. try {
  95. let data = localStorage.getItem("kaifainPreviewCaseData");
  96. data = JSON.parse(data);
  97. this.detail = data;
  98. console.log("解析预览数据", this.detail);
  99. } catch (e) {
  100. this.$message.error("解析预览数据失败,请重新点击预览!");
  101. }
  102. },
  103. openPDF(item) {
  104. const { file } = item;
  105. window.open(file, "pdf" + Math.random());
  106. },
  107. },
  108. };
  109. </script>
  110. <style scope lang="scss">
  111. @import "../../assets/css/kaifain/previewCase.scss";
  112. </style>