index.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <template>
  2. <view>
  3. <view class="shop" :style="{ backgroundImage: 'url(' + $util.img('upload/uniapp/shop_uniapp/shop_bg.png') + ')' }">
  4. <!-- 店铺基本信息 -->
  5. <view class="shop_base_info" @click="$util.redirectTo('/pages/my/shop/config')">
  6. <view class="shop_img">
  7. <image
  8. :src="data.shop_info.logo ? $util.img(data.shop_info.logo) : $util.img($util.getDefaultImage().default_headimg)"
  9. @error="imgError()"
  10. mode="aspectFit"
  11. ></image>
  12. </view>
  13. <view class="shop_info">
  14. <view class="shop_title">
  15. <text class="title">{{ data.shop_info.site_name }}</text>
  16. </view>
  17. </view>
  18. <text class="weixincode iconfont iconrichscan_icon" @click.stop="$util.redirectTo('/pages/verify/index')"></text>
  19. </view>
  20. <!-- 数据概况 -->
  21. <view class="trading_statistics margin_none">
  22. <view class="title">
  23. <view class="title_left">数据概况</view>
  24. <view class="title_right color-base-border">
  25. <text @click="transactionChange('stat_day')" :class="{ active: transaction_statistics == 'stat_day' }">今日</text>
  26. <text @click="transactionChange('stat_yesterday')" :class="{ active: transaction_statistics == 'stat_yesterday' }">昨日</text>
  27. <text @click="transactionChange('shop_stat_sum')" :class="{ active: transaction_statistics == 'shop_stat_sum' }">总计</text>
  28. </view>
  29. </view>
  30. <view class="content">
  31. <view>
  32. <view class="color-tip">订单数</view>
  33. <view class="num">{{ data[transaction_statistics].order_pay_count }}</view>
  34. </view>
  35. <view>
  36. <view class="color-tip">销售额(元)</view>
  37. <view class="num">{{ data[transaction_statistics].order_total }}</view>
  38. </view>
  39. <view>
  40. <view class="color-tip">{{ transaction_statistics == 'shop_stat_sum' ? '会员数' : '新增会员数' }}</view>
  41. <view class="num">{{ data[transaction_statistics].member_count }}</view>
  42. </view>
  43. <!-- <view>
  44. <view class="color-tip">浏览量</view>
  45. <view class="num">{{ data[transaction_statistics].visit_count }}</view>
  46. </view> -->
  47. </view>
  48. </view>
  49. <!-- 公告 -->
  50. <view class="notice" v-if="data.notice_list.length > 0">
  51. <text class="iconfont icongonggao color-base-text font-size-sub"></text>
  52. <swiper class="swiper" autoplay="true" vertical="true">
  53. <swiper-item v-for="(item, index) in data.notice_list" :key="index" class="swiperitem" @click="toNoticeDetail(item.id)">
  54. <view class="title">{{ item.title }}</view>
  55. <!-- <view class="time">{{ $util.timeStampTurnTime(item.create_time, 1) }}</view> -->
  56. </swiper-item>
  57. </swiper>
  58. <view class="more color-base-text" @click="$util.redirectTo('/pages/notice/list')">更多</view>
  59. </view>
  60. <!-- 待处理事项 -->
  61. <view class="trading_statistics padding">
  62. <view class="grid margin-top order">
  63. <uni-grid :column="5" :showBorder="!1">
  64. <uni-grid-item>
  65. <view @click="pendingLink('/pages/order/list', 'order_id', 0)" class="grid_item">
  66. <image class="image" :src="$util.img('upload/uniapp/shop_uniapp/index/wating_pay.png')" mode="aspectFit" />
  67. <text class="num" v-if="data.num_data.waitpay > 0">{{ data.num_data.waitpay }}</text>
  68. <view class="text">待支付</view>
  69. </view>
  70. </uni-grid-item>
  71. <uni-grid-item>
  72. <view @click="pendingLink('/pages/order/list', 'order_id', 1)" class="grid_item">
  73. <image class="image" :src="$util.img('upload/uniapp/shop_uniapp/index/wating_send.png')" mode="aspectFit" />
  74. <text class="num" v-if="data.num_data.waitsend > 0">{{ data.num_data.waitsend }}</text>
  75. <view class="text">待发货</view>
  76. </view>
  77. </uni-grid-item>
  78. <uni-grid-item>
  79. <view @click="pendingLink('/pages/order/list', 'order_id', 'refunding')" class="grid_item">
  80. <image class="image" :src="$util.img('upload/uniapp/shop_uniapp/index/return_money.png')" mode="aspectFit" />
  81. <text class="num" v-if="data.num_data.refund > 0">{{ data.num_data.refund }}</text>
  82. <view class="text">退款中</view>
  83. </view>
  84. </uni-grid-item>
  85. <uni-grid-item>
  86. <view @click="pendingLink('/pages/goods/list', 'status', '-1')" class="grid_item">
  87. <image class="image" :src="$util.img('upload/uniapp/shop_uniapp/index/stock_warn.png')" mode="aspectFit" />
  88. <view class="text">全部商品</view>
  89. </view>
  90. </uni-grid-item>
  91. <uni-grid-item>
  92. <view @click="pendingLink('/pages/goods/list', 'status', '2')" class="grid_item">
  93. <image class="image" :src="$util.img('upload/uniapp/shop_uniapp/index/xiajia.png')" mode="aspectFit" />
  94. <text class="num" v-if="data.num_data.goods_stock_alarm > 0">{{ data.num_data.goods_stock_alarm }}</text>
  95. <view class="text">预警商品</view>
  96. </view>
  97. </uni-grid-item>
  98. </uni-grid>
  99. </view>
  100. </view>
  101. <!-- 常用功能 -->
  102. <view class="trading_statistics padding" v-if="handleMemu.length">
  103. <view class="grid">
  104. <uni-grid :column="4" :showBorder="!1">
  105. <uni-grid-item v-for="(item, index) in handleMemu">
  106. <view @click="$util.redirectTo(item.page)" class="grid_item">
  107. <image class="image50" :src="$util.img(item.img)" mode="aspectFit" />
  108. <view class="text">{{ item.title }}</view>
  109. </view>
  110. </uni-grid-item>
  111. <uni-grid-item>
  112. <view @click="$util.redirectTo('/pages/index/all_menu')" class="grid_item">
  113. <image class="image50" :src="$util.img('upload/uniapp/shop_uniapp/index/more.png')" mode="aspectFit" />
  114. <view class="text">全部</view>
  115. </view>
  116. </uni-grid-item>
  117. </uni-grid>
  118. </view>
  119. </view>
  120. <!-- 常用功能 -->
  121. <block v-for="(item, index) in arr" :key="index">
  122. <view class="trading_statistics padding">
  123. <view class="title">
  124. <view class="title_left">
  125. {{ item.title }}
  126. <text v-if="item.opts.unit">({{ item.opts.unit }})</text>
  127. <text class=" total color-base-text">{{ total_money[item.id] }}</text>
  128. </view>
  129. <picker :value="pickerCurr[item.id]" @change="pickerChange(item.id, $event)" :range="picker" range-key="date_text">
  130. <view class="select ">
  131. {{ picker[pickerCurr[item.id]].date_text }}
  132. <text class="iconfont iconiconangledown"></text>
  133. </view>
  134. </picker>
  135. </view>
  136. <view class="ucharts">
  137. <view @click="refCurr = item.id">
  138. <uCharts
  139. :scroll="item.opts.enableScroll"
  140. :show="canvas"
  141. :canvasId="item.id"
  142. :chartType="item.chartType"
  143. :extraType="item.extraType"
  144. :cWidth="cWidth"
  145. :cHeight="cHeight"
  146. :opts="item.opts"
  147. :ref="item.id"
  148. />
  149. </view>
  150. </view>
  151. </view>
  152. </block>
  153. </view>
  154. <loading-cover ref="loadingCover"></loading-cover>
  155. </view>
  156. </template>
  157. <script>
  158. import uniGrid from '@/components/uni-grid/uni-grid.vue';
  159. import uniGridItem from '@/components/uni-grid-item/uni-grid-item.vue';
  160. import uCharts from '@/components/u-charts/u-charts.vue';
  161. import index from './js/index.js';
  162. export default {
  163. mixins: [index],
  164. components: {
  165. uniGrid,
  166. uniGridItem,
  167. uCharts
  168. }
  169. };
  170. </script>
  171. <style lang="scss">
  172. @import './css/index.scss';
  173. </style>