index.ux 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <import name="home-page" src="../Home/index.ux"></import>
  2. <import name="category-page" src="../Category/index.ux"></import>
  3. <import name="shelf-page" src="../Shelf/index.ux"></import>
  4. <import name="my-page" src="../My/index.ux"></import>
  5. <import name="sign-page" src="../../components/sign/index.ux"></import>
  6. <template>
  7. <stack class="stack-wrap">
  8. <div class="index-wrap">
  9. <tabs class="tab-content" onchange="tabbarChange" index="{{current}}">
  10. <tab-content>
  11. <home-page @change="pageSwitch"></home-page>
  12. <category-page></category-page>
  13. <shelf-page @change="pageSwitch"></shelf-page>
  14. <my-page @customer="openCustomer"></my-page>
  15. </tab-content>
  16. </tabs>
  17. <div class="fixed-tabbar">
  18. <image src="../../assets/imgs/shadow.png" class="shadow"></image>
  19. <div class="tabbar-item__wrap">
  20. <block for="tab in tabbar">
  21. <div class="tabbar-item " @click="tabbarChange(tab)">
  22. <image src="{{tab.index === current ? tab.active_icon : tab.icon}}"></image>
  23. <text class="{{tab.index === current ? 'tabbar-name__cur' : ''}}">{{tab.name}}</text>
  24. </div>
  25. </block>
  26. </div>
  27. </div>
  28. </div>
  29. <sign-page if="{{showSignPop}}" onemitEvt="emitEvt"></sign-page>
  30. <div class="stack-popup" @click="closeWrap" if="showPopup">
  31. <div class="customer-popup">
  32. <text class="title">联系客服</text>
  33. <text class="desc">
  34. 复制微信号或者保存二维码到本地至微信添加客服好友
  35. </text>
  36. <image src="{{$app.$def.data.cutomerQrcode}}" @longpress="saveImg"></image>
  37. <div class="duplication"><text class="duplication-text">微信号:{{$app.$def.data.weChat}}</text><text class="duplication-button" @click="duplication">复制</text></div>
  38. </div>
  39. </div>
  40. </stack>
  41. </template>
  42. <script>
  43. import clipboard from '@system.clipboard';
  44. import prompt from '@system.prompt';
  45. import {downImg} from '../../api/utils.js';
  46. export default {
  47. private: {
  48. tabbar: [
  49. {
  50. name: "首页",
  51. title: "追书云",
  52. icon: "../../assets/imgs/home.png",
  53. active_icon: "../../assets/imgs/home_choose.png",
  54. index: 0
  55. },
  56. {
  57. name: "分类",
  58. title: "书城",
  59. icon: "../../assets/imgs/category.png",
  60. active_icon: "../../assets/imgs/category_choose.png",
  61. index: 1
  62. },
  63. {
  64. name: "书架",
  65. title: "我的书架",
  66. icon: "../../assets/imgs/shelf.png",
  67. active_icon: "../../assets/imgs/shelf_choose.png",
  68. index: 2
  69. },
  70. {
  71. name: "我的",
  72. title: "个人中心",
  73. icon: "../../assets/imgs/my.png",
  74. active_icon: "../../assets/imgs/my_choose.png",
  75. index: 3
  76. }
  77. ],
  78. current: 1,
  79. showPopup: false,
  80. showSignPop:true
  81. },
  82. onInit(){
  83. this.$on('dispathEvt',this.changeSignPop)
  84. },
  85. onBackPress() {
  86. // 退出逻辑
  87. if (this.$app.$def.data.backClickCount === 0) {
  88. this.$app.$def.data.backClickCount++;
  89. this.$app.$def.createShortcut()
  90. return true;
  91. }
  92. },
  93. /**
  94. * 当用户点击菜单按钮时触发,调用app中定义的方法showMenu
  95. * 注意:使用加载器测试`创建桌面快捷方式`功能时,请先在`系统设置`中打开`应用加载器`的`桌面快捷方式`权限
  96. */
  97. onMenuPress() {
  98. this.$app.$def.showMenu();
  99. },
  100. tabbarChange(tab) {
  101. this.current = tab.index;
  102. this.$page.setTitleBar({ text: this.tabbar[tab.index].title });
  103. },
  104. pageSwitch() {
  105. this.current = 1;
  106. },
  107. changeSignPop() {
  108. this.showSignPop = false;
  109. },
  110. closeWrap() {
  111. this.showPopup = false;
  112. },
  113. //复制客服微信
  114. duplication() {
  115. clipboard.set({
  116. text: this.$app.$def.data.weChat,
  117. success: function (data) {
  118. prompt.showToast({
  119. message: '复制成功!'
  120. })
  121. },
  122. })
  123. },
  124. //长按保存图片
  125. saveImg() {
  126. downImg(this.$app.$def.data.cutomerQrcode);
  127. },
  128. openCustomer() {
  129. this.showPopup = true;
  130. }
  131. }
  132. </script>
  133. <style lang="less">
  134. @import "../../assets/less/index.less";
  135. </style>