myStore.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <template>
  2. <view style="overflow: hidden;">
  3. <!-- 搜索 -->
  4. <view>
  5. <view class="search-box ddflex">
  6. <image class="search-icon" src="../../static/images/ssico.png"></image>
  7. <input v-model="searchValue" confirm-type="search" @confirm="searchFn" class="fflex" placeholder="请输入商家名称或电话"/>
  8. <view class="search-btn" @click="searchFn">搜索</view>
  9. </view>
  10. </view>
  11. <!-- 图表统计 -->
  12. <view class="echart-box">
  13. <view class="sssb-box ddflex">
  14. <view class="sssb-item">
  15. <view class="sssb-label">商家总数</view>
  16. <view class="sssb-data sssb-color">{{statisticData.merchantCount?statisticData.merchantCount:0}}</view>
  17. </view>
  18. <view class="sssb-line"></view>
  19. <view class="sssb-item">
  20. <view class="sssb-label">门店总数</view>
  21. <view class="sssb-data sssb-color">{{statisticData.storeCount?statisticData.storeCount:0}}</view>
  22. </view>
  23. </view>
  24. </view>
  25. <view>
  26. <view class="sjyy-item" v-for="item,index in groupList" :key="index" @click="toMerchant(item)">
  27. <view class="ddflex">
  28. <view class="sjyy-header">
  29. <image src="../../static/pages/images/wdsj.png"></image>
  30. </view>
  31. <view class="fflex">
  32. <view class="sjyy-name ddflex">
  33. <view>{{item.name}}</view>
  34. <view class="sjyy-name-label" v-if="item.isMy==1">我的商家</view>
  35. </view>
  36. <view class="sjyy-phone" v-if="item.phone">{{item.phone}}</view>
  37. </view>
  38. <view @click.stop="goPhone(item.phone)" v-if="item.phone">
  39. <image style="width: 48rpx;height: 48rpx;margin-left: 20rpx;" src="../../static/pages/images/call.png"></image>
  40. </view>
  41. </view>
  42. <view class="sjyy-data ddflex">
  43. <image style="width: 26rpx;height: 26rpx;margin-right: 10rpx;" src="../../static/pages/images/address-icon.png"></image>
  44. <view class="tover fflex" style="font-size: 24rpx;line-height: 36rpx;color: #A8A5A5;">{{item.address}}</view>
  45. </view>
  46. <!-- <view class="sjyy-data ddflex">
  47. <view class="sjyy-data-item fflex">
  48. <view class="sssb-data sssb-color">10242.00</view>
  49. <view class="sssb-label">累计收益</view>
  50. </view>
  51. <view class="sjyy-data-item fflex">
  52. <view class="sssb-data sssb-color">1915.00</view>
  53. <view class="sssb-label">今日收益</view>
  54. </view>
  55. <view class="sjyy-data-item fflex">
  56. <view class="sssb-data sssb-color">9154.00</view>
  57. <view class="sssb-label">本月收益</view>
  58. </view>
  59. </view> -->
  60. <view class="sjyy-data ddflex">
  61. <view class="sjyy-data-item fflex">
  62. <view class="sssb-data sssb-color">{{item.cabCount?item.cabCount:0}}</view>
  63. <view class="sssb-label">机柜数</view>
  64. </view>
  65. <view class="sjyy-data-item fflex">
  66. <view class="sssb-data sssb-color">{{item.proportion?item.proportion:0}}%</view>
  67. <view class="sssb-label">分润</view>
  68. </view>
  69. <view class="sjyy-data-item fflex">
  70. <view class="sssb-data sssb-color">{{item.storeCount?item.storeCount:0}}</view>
  71. <view class="sssb-label">门店数</view>
  72. </view>
  73. </view>
  74. <view class="ddflex" style="justify-content: space-between;margin-top: 30rpx;">
  75. <view class="sjyy-btn" style="border: 2rpx solid #EB5C20;color: #EB5C20;" @click="jumpUrl()">查看订单</view>
  76. <view class="sjyy-btn" @click="jumpUrl()">查看设备</view>
  77. <view class="sjyy-btn" @click="jumpUrl('/pages/operationDataPersonal/operationDataPersonal')">运营情况</view>
  78. </view>
  79. </view>
  80. </view>
  81. </view>
  82. </template>
  83. <script>
  84. const app = getApp();
  85. const req = require("../../utils/request.js");
  86. export default {
  87. components: {},
  88. props: {},
  89. data() {
  90. return {
  91. statisticData:{},
  92. groupList: [],
  93. page: 1,
  94. limit: 3,
  95. searchValue:'',
  96. isQuerying:false,//正在查询数据
  97. }
  98. },
  99. onLoad(options) {
  100. this.getDataList()
  101. },
  102. onShow() {
  103. this.getStatisticData()
  104. },
  105. onReachBottom() {
  106. this.getDataList(true)
  107. },
  108. methods: {
  109. jumpUrl(url){
  110. if(req.isLogins(true)){
  111. uni.navigateTo({
  112. url:url
  113. })
  114. }
  115. },
  116. getStatisticData() {
  117. return new Promise((r, j) => {
  118. req.getRequest('/admin/v2/statistic/top', {}, res => {
  119. console.log('statistic top', res)
  120. this.statisticData = res
  121. r(res)
  122. })
  123. })
  124. },
  125. getDataList(isPage) {
  126. if(this.isQuerying) return
  127. else this.isQuerying = true
  128. if (!isPage) {
  129. this.page = 1
  130. }
  131. let queryParams = {
  132. page: this.page,
  133. limit: this.limit,
  134. }
  135. if(this.searchValue){
  136. queryParams.name=this.searchValue
  137. }
  138. req.getRequest(
  139. '/admin/v2/merchant/page',
  140. queryParams,
  141. data => {
  142. if (data != null && data.list.length > 0) {
  143. if (!isPage) {
  144. this.groupList = data.list
  145. } else {
  146. this.groupList = this.groupList.concat(data.list)
  147. }
  148. this.page++
  149. } else {
  150. if (!isPage)
  151. this.groupList = data.list
  152. else {}
  153. }
  154. uni.hideLoading()
  155. this.isQuerying = false
  156. }
  157. )
  158. },
  159. searchFn(){
  160. this.getDataList()
  161. },
  162. goPhone(phone) {
  163. uni.makePhoneCall({ phoneNumber: phone }); // 传参带入号码即可
  164. },
  165. toMerchant(item){
  166. this.jumpUrl('/pages/myMerchant/myMerchant?merchantId='+item.id)
  167. }
  168. },
  169. mounted() {
  170. },
  171. onPageScroll: function(e) {
  172. }
  173. }
  174. </script>
  175. <style>
  176. @import "./myStore.css";
  177. </style>