index.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <template>
  2. <view class="content">
  3. <view class="banner">
  4. <image :src="bannerSrc" alt="banner" />
  5. </view>
  6. <div class="menus">
  7. <div class="menu" v-for="(item,index) in miniProgramList" :key="index" @click="toDetail(item)">
  8. <image :src="item.pic_url" mode="aspectFill"/>
  9. </div>
  10. </div>
  11. </view>
  12. </template>
  13. <script>
  14. import md5 from "@/common/md5.js";
  15. export default {
  16. data() {
  17. return {
  18. bannerSrc: "",
  19. miniProgramList:[
  20. // {
  21. // appId:'wxec4343871c957260',
  22. // path:'pages/index/index',
  23. // src:'/static/service/1.png'
  24. // },
  25. // {
  26. // appId:'',
  27. // path:'',
  28. // src:'/static/service/2.png'
  29. // },
  30. ],
  31. };
  32. },
  33. onLoad() {
  34. this.getPageImg();
  35. this.getPageMiniProgram();
  36. },
  37. methods: {
  38. getPageImg() {
  39. let md5Sign = md5(
  40. "method=" +
  41. "common" +
  42. "&timestamp=" +
  43. getApp().globalData.globalTimestamp +
  44. "&secret=" +
  45. getApp().globalData.secret
  46. );
  47. let url =
  48. getApp().globalData.shareUrl +
  49. "api/api.php" +
  50. "?method=common&source=service_pics&action=list&timestamp=" +
  51. getApp().globalData.globalTimestamp +
  52. "&sign=" +
  53. md5Sign;
  54. uni.request({
  55. url: url,
  56. method: "POST",
  57. header: {
  58. "content-type": "application/x-www-form-urlencoded",
  59. },
  60. data: {
  61. },
  62. success: (res) => {
  63. if (res.data.code === 200) {
  64. this.bannerSrc = res.data.data.list.length ? getApp().globalData.shareUrl + res.data.data.list[0].pic_url : '/static/nodata.svg'
  65. }
  66. },
  67. fail: () => {
  68. console.log("连接失败");
  69. },
  70. });
  71. },
  72. getPageMiniProgram(){
  73. let md5Sign = md5(
  74. "method=" +
  75. "common" +
  76. "&timestamp=" +
  77. getApp().globalData.globalTimestamp +
  78. "&secret=" +
  79. getApp().globalData.secret
  80. );
  81. let url =
  82. getApp().globalData.shareUrl +
  83. "api/api.php" +
  84. "?method=common&source=service&action=list&timestamp=" +
  85. getApp().globalData.globalTimestamp +
  86. "&sign=" +
  87. md5Sign;
  88. uni.request({
  89. url: url,
  90. method: "POST",
  91. header: {
  92. "content-type": "application/x-www-form-urlencoded",
  93. },
  94. data: {
  95. s_show:1
  96. },
  97. success: (res) => {
  98. if (res.data.code === 200) {
  99. res.data.data.list.forEach((item) => {
  100. item.pic_url = getApp().globalData.shareUrl + item.pic_url;
  101. });
  102. this.miniProgramList = res.data.data.list;
  103. }
  104. },
  105. fail: () => {
  106. console.log("连接失败");
  107. },
  108. });
  109. },
  110. toDetail(item) {
  111. uni.navigateToMiniProgram({
  112. appId:item.app_id,
  113. path:item.app_path,
  114. success(res) {
  115. console.log(res,'打开成功')
  116. },
  117. fail(err) {
  118. console.log(err)
  119. }
  120. })
  121. },
  122. },
  123. };
  124. </script>
  125. <style lang="scss" scoped>
  126. .flex {
  127. display: flex;
  128. }
  129. .content {
  130. width: 92%;
  131. height: 92vh;
  132. padding: 4%;
  133. .banner {
  134. height: 25%;
  135. image {
  136. width: 100%;
  137. height: 100%;
  138. }
  139. }
  140. .menus {
  141. height: 15%;
  142. .menu {
  143. margin: 3%;
  144. height: 100%;
  145. border-radius: 20rpx;
  146. // box-shadow: 0rpx 10rpx 5rpx rgb(212, 212, 212);
  147. image {
  148. width: 100%;
  149. height: 100%;
  150. }
  151. }
  152. }
  153. }
  154. </style>