helpCenter.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <template>
  2. <div class="box autoBox" style="min-height: 1150px;">
  3. <div class="crumbs">
  4. <el-breadcrumb separator="/">
  5. <el-breadcrumb-item :to="{ path: 'home' }">{{$t('common.HomePage')}}</el-breadcrumb-item>
  6. <el-breadcrumb-item>{{$t('common.Help')}}</el-breadcrumb-item>
  7. </el-breadcrumb>
  8. </div>
  9. <div style="margin-top: 30px;width: 100%;" class="helpCenter">
  10. <div style="width: 25%;min-height: 300px;border: 1px solid rgba(228, 228, 228, 1);border-radius: 10px;overflow:hidden;float: left; margin-left: 50px;">
  11. <!-- <el-collapse v-model="activeName" accordion>
  12. <el-collapse-item :title="item.name" :name="index+1" v-for="(item,index) in initData">
  13. <div class="management">
  14. <div :class="id==i.value?'getClass1':'getClass2'" v-for="(i,j) in item.children"
  15. @click="getItemValue(i)">
  16. {{i.name}}
  17. </div>
  18. </div>
  19. </el-collapse-item> -->
  20. <!-- </el-collapse> -->
  21. <el-tree :data="initData" accordion :props="defaultProps" @node-click="handleNodeClick"></el-tree>
  22. </div>
  23. <div style="width:65%;min-height:300px;max-height:1150px;border: 1px solid rgba(228, 228, 228, 1);
  24. border-radius: 10px;float: right; margin-right: 50px;"
  25. :style="param.businessId==AboutUsID?'':'overflow-y: scroll;overflow-x: hidden;'"
  26. >
  27. <div style="width: 100%;text-align: center;color: #666;font-weight: 700;margin-top: 50px;">
  28. {{label}}
  29. </div>
  30. <div class="content_img" style="width: 98%;margin-left:15px;text-align: left;color: #666;font-size:14px;line-height: 33px;" v-html="content">
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. </template>
  36. <script>
  37. import {getHelpColumnTree,getHelpColumnContent} from '@/api/operation/help/helpCenterEntity'
  38. export default {
  39. name: 'helpCenter',
  40. data() {
  41. return {
  42. accordion:true,
  43. activeName: 1,
  44. id: '1.1',
  45. label: '',
  46. initData: [],
  47. content:'',
  48. AboutUsID:'',
  49. defaultProps: {
  50. children: 'children',
  51. label: 'name'
  52. },
  53. param:{
  54. pageSize:6,
  55. pageNo:1,
  56. businessType:'help_center',
  57. businessId:'',
  58. language:'',
  59. }
  60. }
  61. },
  62. created() {
  63. this.toInitData();
  64. },
  65. watch: {
  66. '$i18n.locale'(){
  67. this.toInitData();
  68. },
  69. },
  70. methods: {
  71. handleNodeClick(data) {
  72. if(data.children.length==0){
  73. this.getItemValue(data);
  74. }
  75. },
  76. getItemValue(i) {
  77. this.param.businessId=i.id;
  78. this.param.language =this.$i18n.locale.toUpperCase();
  79. getHelpColumnContent(this.param).then((result) =>{
  80. if(result.data.cmsInformationViews != undefined)
  81. {
  82. this.label = result.data.cmsInformationViews[0].title;
  83. this.content = result.data.cmsInformationViews[0].contentHtml;
  84. }else{
  85. this.label = '';
  86. this.content = '';
  87. }
  88. })
  89. },
  90. toInitData: function () {
  91. var language = this.$i18n.locale.toUpperCase();
  92. let _this = this;
  93. getHelpColumnTree(language).then((result) => {
  94. if(_this.$i18n.locale.toUpperCase() == language){
  95. if(result.data.length != 0 ) {
  96. this.initData = result.data;
  97. // 获取关于我们的id
  98. this.initData.forEach(item=>{
  99. if(item.name == '关于我们' || item.name == 'About Us'){
  100. item.children.forEach(i=>{
  101. if(i.name == '关于我们' || i.name == 'About Us'){
  102. this.AboutUsID = i.id;
  103. }
  104. })
  105. }
  106. })
  107. if(_this.$route.query.key){
  108. let param={};
  109. param.id = _this.$route.query.key;
  110. for(var i = 0;i<_this.initData.length;i++){
  111. if(_this.initData[i].children){
  112. _this.initData[i].children.forEach(item =>{
  113. if(item.id==param.id){
  114. _this.activeName = i+1;
  115. }
  116. })
  117. }
  118. }
  119. this.getItemValue(param);
  120. }else{
  121. this.getItemValue(this.initData[0].children[0])
  122. }
  123. }
  124. }
  125. })
  126. },
  127. }
  128. }
  129. </script>
  130. <style scoped>
  131. .box {
  132. margin-top: 10px;
  133. background: #fff;
  134. /* height: 500px; */
  135. padding: 20px 0;
  136. }
  137. .crumbs {
  138. margin-left: 20px;
  139. }
  140. body {
  141. margin: 0;
  142. }
  143. .management div {
  144. line-height: 50px;
  145. text-indent: 30px;
  146. }
  147. .management div:hover {
  148. color: #ff0000;
  149. cursor: pointer;
  150. }
  151. .helpCenter >>> .el-collapse-item__header {
  152. text-indent: 20px;
  153. font-size: 16px;
  154. }
  155. .helpCenter >>> .el-collapse-item__content{
  156. font-size: 14px;
  157. }
  158. .getClass1 {
  159. color: #0050d8
  160. }
  161. .getClass2 {
  162. color: #303133;
  163. }
  164. .content_img >>>img {
  165. width: 100% !important;
  166. }
  167. .content_img >>> p {
  168. margin-right: 15px;
  169. }
  170. </style>