Index.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <template>
  2. <div class="index-wrap pt30">
  3. <!-- <div class="panel plr15">
  4. <div class="kitbox pt15 ">
  5. <div class="box-flex-1 c-333 fs-16 f-bold">今日订单数量</div>
  6. <div class="c-666 fs-12 box-v-middle">
  7. <div @click="searchTypeShow=!searchTypeShow" class="drop-sel c-666 fs-12 plr10 ptb4">
  8. <span class="v-middle">{{searchType}}</span>
  9. <van-icon class="v-middle ml4" name="arrow-down" />
  10. <div v-show="searchTypeShow" class="sel-body fs-12 c-666">
  11. <div v-for="(item, i) in options" :key="i" v-show="searchType!=item" @click.stop="searchType=item;searchTypeShow=false;search()" class="ptb6">{{item}}</div>
  12. </div>
  13. </div>
  14. </div>
  15. </div>
  16. <div class="c-20d7ad fs-23 pt10">
  17. 752,600
  18. </div>
  19. <div class="c-666 fs-14 pt10 pb10">今日补货量 <span class="ml10 c-17b3ec">0</span></div>
  20. </div> -->
  21. <div class="">
  22. <div class="panel sbzl">
  23. <div class="kitbox pt15 plr15">
  24. <div class="box-flex-1 c-333 fs-16 f-bold">设备总览</div>
  25. </div>
  26. <div class="pt20 pb20 plr5">
  27. <van-row class="">
  28. <van-col span="6" class="tc ">
  29. <div class="fs-23 c-17b3ec">{{countObj.total}}</div>
  30. <div class="fs-14 c-666 pt5">全部设备</div>
  31. </van-col>
  32. <van-col span="6" class="tc">
  33. <div class="fs-23 c-ff9526">{{countObj.saleTotal}}</div>
  34. <div class="fs-14 c-666 pt5">在线设备</div>
  35. </van-col>
  36. <van-col span="6" class="tc">
  37. <div class="fs-23 c-ff5e6c">{{countObj.onlineRate * 100}}%</div>
  38. <div class="fs-14 c-666 pt5">在线率</div>
  39. </van-col>
  40. <van-col span="6" class="tc">
  41. <div class="fs-23 c-17b3ec">{{countObj.onlineTotal}}</div>
  42. <div class="fs-14 c-666 pt5">在售设备</div>
  43. </van-col>
  44. </van-row>
  45. </div>
  46. </div>
  47. </div>
  48. <div class="mt10">
  49. <div class="panel cygn">
  50. <div class="kitbox pt15 plr15">
  51. <div class="box-flex-1 c-333 fs-16 f-bold">常用功能</div>
  52. </div>
  53. <div class="ptb10 plr5">
  54. <van-row class="">
  55. <van-col @click="gotoUrl('/order/list')" span="6" class="tc ">
  56. <div class="fs-23 c-17b3ec"><img src="@/assets/images/dingdanguanli.png" alt=""></div>
  57. <div class="fs-14 c-666 pt5">订单管理</div>
  58. </van-col>
  59. <van-col @click="gotoUrl('/device')" span="6" class="tc">
  60. <div class="fs-23 c-ff9526"><img src="@/assets/images/shebeiguanli.png" alt=""></div>
  61. <div class="fs-14 c-666 pt5">设备管理</div>
  62. </van-col>
  63. </van-row>
  64. </div>
  65. </div>
  66. </div>
  67. </div>
  68. </template>
  69. <script>
  70. import medicineAbinetApi from '@/api/api-medicineAbinet'
  71. export default {
  72. name: "index",
  73. components: {
  74. },
  75. data() {
  76. return {
  77. searchTypeShow: false,
  78. searchType: "今日",
  79. options: ['今日', '7天内', '30天内'],
  80. countObj: {
  81. "total": 0, //总的在线数
  82. "saleTotal": 0, //在售数
  83. "onlineRate": 0, //在线率
  84. "onlineTotal": 0 //在线设备数
  85. }
  86. }
  87. },
  88. created(){
  89. this.countall()
  90. },
  91. methods: {
  92. countall(){
  93. medicineAbinetApi
  94. .countAllDevice({
  95. userId: this.user.id
  96. })
  97. .then(res=>{
  98. console.log('countall', res)
  99. this.countObj = _.assign(this.countObj, res.obj)
  100. })
  101. .catch(err=>{
  102. console.error(err)
  103. })
  104. }
  105. },
  106. }
  107. </script>
  108. <style lang="scss" scoped>
  109. .index-wrap {
  110. background: url('../../assets/images/index_banner.png') no-repeat;
  111. background-size: 100%;
  112. .panel{
  113. width: 345px;
  114. background-color: #ffffff;
  115. box-shadow: 0px 2px 10px 0px
  116. rgba(0, 0, 0, 0.15);
  117. border-radius: 5px;
  118. margin: 0 auto;
  119. .drop-sel{
  120. background-color: rgba($color: #000000, $alpha: 0.05);
  121. border-radius: 12px;
  122. position: relative;
  123. .sel-body{
  124. width: 60px;
  125. left: 0;
  126. position: absolute;
  127. box-shadow: 2px 3px 8px 0px
  128. rgba(0, 0, 0, 0.15);
  129. border-radius: 11px;
  130. background-color: rgba($color: #ffff, $alpha: 0.8);
  131. text-align: center;
  132. padding: 10px 0;
  133. top: 30px;
  134. z-index: 1;
  135. }
  136. }
  137. &.sbzl{
  138. .van-col {
  139. position: relative;
  140. &::after{
  141. content: "";
  142. width: 1px;
  143. height: 41px;
  144. background-color: #e7e7e7;
  145. right: 0;
  146. position: absolute;
  147. top: 2px;
  148. }
  149. &:last-child{
  150. &::after{
  151. display: none;
  152. }
  153. }
  154. }
  155. }
  156. &.cygn{
  157. .van-col{
  158. padding: 10px 0;
  159. img{
  160. display: block;
  161. width: 40px;
  162. height: 40px;
  163. margin: 0 auto;
  164. }
  165. }
  166. }
  167. }
  168. }
  169. </style>