index.html 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. <template>
  2. <div style="max-width: 100%;">
  3. <el-row :gutter="10">
  4. <el-col :md="24" :xs="24" :sm="24">
  5. <div class="card-container">
  6. <el-card shadow="always" body-style="padding-bottom:10px;">
  7. <el-row>
  8. <el-col :md="6" :sm="12" :xs="12">
  9. <div class="style-1 bkcolor1">
  10. <div class="box">
  11. <div class="box-title">用户总数</div>
  12. <div class="box-number">{{panel[0]}}</div>
  13. </div>
  14. <i class="fa fa-user-circle-o"></i>
  15. </div>
  16. </el-col>
  17. <el-col :md="6" :sm="12" :xs="12">
  18. <div class="style-1 bkcolor2">
  19. <div class="box">
  20. <div class="box-title">在线人数</div>
  21. <div class="box-number">{{panel[1]}}</div>
  22. </div>
  23. <i class="fa fa-tasks"></i>
  24. </div>
  25. </el-col>
  26. <el-col :md="6" :sm="12" :xs="12">
  27. <div class="style-1 bkcolor4">
  28. <div class="box">
  29. <div class="box-title">当前结余</div>
  30. <div class="box-number">{{panel[3]}}</div>
  31. </div>
  32. <i class="fa fa-exchange"></i>
  33. </div>
  34. </el-col>
  35. <el-col :md="6" :sm="12" :xs="12">
  36. <div class="style-1 bkcolor3">
  37. <div class="box">
  38. <div class="box-title">月租用户</div>
  39. <div class="box-number">{{panel[2]}}</div>
  40. </div>
  41. <i class="fa fa-dashcube"></i>
  42. </div>
  43. </el-col>
  44. </el-row>
  45. </el-card>
  46. </div>
  47. <div class="card-container left">
  48. <el-card shadow="always">
  49. <template #header>
  50. <div class="header">
  51. <div class="title"><i class="fa fa-caret-right"></i>红薯品种</div>
  52. </div>
  53. </template>
  54. <el-row>
  55. <el-col :span="24">
  56. <div class="style-3">
  57. <div class="box">
  58. <div class="box-content">
  59. <div class="box-content-right" v-for="item in list">
  60. <div class="box-number-top">{{item.name}}</div>
  61. <div class="box-number-bottom">{{item.num}}</div>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. </el-col>
  67. </el-row>
  68. </el-card>
  69. </div>
  70. <div class="card-container left">
  71. <el-card shadow="always">
  72. <template #header>
  73. <div class="header">
  74. <div class="title"><i class="fa fa-caret-right"></i>包装箱</div>
  75. </div>
  76. </template>
  77. <el-row>
  78. <el-col :span="24">
  79. <div class="style-3">
  80. <div class="box">
  81. <div class="box-content">
  82. <div class="box-content-right" v-for="item in box">
  83. <div class="box-number-top">{{item.name}}</div>
  84. <div class="box-number-bottom">{{item.num}}</div>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. </el-col>
  90. </el-row>
  91. </el-card>
  92. </div>
  93. <div class="card-container left">
  94. <el-card shadow="always">
  95. <template #header>
  96. <div class="header">
  97. <div class="title"><i class="fa fa-caret-right"></i>耗材</div>
  98. </div>
  99. </template>
  100. <el-row>
  101. <el-col :span="24">
  102. <div class="style-3">
  103. <div class="box">
  104. <div class="box-content">
  105. <div class="box-content-right" v-for="item in material">
  106. <div class="box-number-top">{{item.name}}</div>
  107. <div class="box-number-bottom">{{item.num}}</div>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. </el-col>
  113. </el-row>
  114. </el-card>
  115. </div>
  116. </el-col>
  117. </el-row>
  118. </div>
  119. </template>
  120. <script>
  121. export default{
  122. data:{
  123. echarts:'',
  124. panel:[],
  125. list:[],
  126. box:[],
  127. material:[]
  128. },
  129. onLoad:function (){
  130. Yunqi.use('/assets/js/echarts.min.js').then(res=>{
  131. this.echarts=res;
  132. this.parseData();
  133. });
  134. },
  135. methods:{
  136. parseData:function (){
  137. Yunqi.ajax.get('dashboard/index',{}).then(res=>{
  138. this.panel=res.panel;
  139. this.list=res.variety;
  140. this.box=res.box;
  141. this.material=res.material;
  142. });
  143. },
  144. }
  145. }
  146. </script>
  147. <style>
  148. .pay{
  149. text-align: center;
  150. padding: 10px;
  151. }
  152. .pay img{
  153. width: 180px;
  154. height: 180px;
  155. }
  156. .card-container{
  157. margin-bottom: 10px;
  158. }
  159. .card-container.left{
  160. padding-right: 10px;
  161. }
  162. @media screen and (max-width: 992px) {
  163. .card-container.left{
  164. padding-right: 0;
  165. }
  166. }
  167. .card-container .el-card__header{
  168. padding: 8px 20px;
  169. }
  170. .card-container .header{
  171. display: flex;
  172. justify-content: space-between;
  173. align-items: center;
  174. }
  175. .card-container .el-card__header .title{
  176. font-weight: bold;
  177. font-size: 14px;
  178. display: flex;
  179. align-items: center;
  180. }
  181. .card-container .el-card__header .title i{
  182. font-size: 22px;
  183. color: var(--el-color-primary);
  184. margin-right: 8px;
  185. }
  186. .style-1{
  187. display: flex;
  188. justify-content: space-between;
  189. align-items: center;
  190. padding: 10px;
  191. border-radius: 6px;
  192. width: 87%;
  193. margin:0 auto 10px;
  194. color: #fff;
  195. }
  196. .style-1 i{
  197. font-size: 42px;
  198. color: #fff;
  199. }
  200. .style-2{
  201. padding: 10px;
  202. width: 87%;
  203. margin:0 auto;
  204. text-align: center;
  205. }
  206. .style-3{
  207. padding: 10px;
  208. margin:0 auto;
  209. text-align: center;
  210. }
  211. .style-3 .box-title{
  212. text-align: left;
  213. }
  214. .style-3 .box{
  215. display: flex;
  216. flex-direction: column;
  217. justify-content: space-around;
  218. }
  219. .style-3 .box-content-left{
  220. text-align: left;
  221. }
  222. .style-3 .box-number-top{
  223. font-size: 20px;
  224. }
  225. .style-3 .box-number-bottom{
  226. font-size: 24px;
  227. color: blueviolet;
  228. }
  229. .style-3 .box-content{
  230. display: flex;
  231. /* justify-content: space-between; */
  232. align-items: center;
  233. flex-wrap: wrap;
  234. }
  235. .box-content .box-content-right{
  236. min-width: 150px;
  237. padding-bottom: 16px;
  238. }
  239. .style-3 .icon{
  240. color: #fff;
  241. width: 60px;
  242. height: 60px;
  243. line-height: 60px;
  244. text-align: center;
  245. font-size: 32px;
  246. }
  247. .box .box-title{
  248. font-size: 18px;
  249. }
  250. .bkcolor1{
  251. background: linear-gradient(to right,var(--el-color-primary-light-3),var(--el-color-primary));
  252. }
  253. .bkcolor2{
  254. background: linear-gradient(to right,var(--el-color-warning-light-3),var(--el-color-warning));
  255. }
  256. .bkcolor3{
  257. background: linear-gradient(to right,var(--el-color-danger-light-3),var(--el-color-danger));
  258. }
  259. .bkcolor4{
  260. background: linear-gradient(to right,var(--el-color-success-light-3),var(--el-color-success));
  261. }
  262. .chart1{
  263. width: 100%;
  264. height: 305px;
  265. }
  266. .chart2{
  267. width: 100%;
  268. height: 310px;
  269. margin: 0 auto;
  270. }
  271. .chart3{
  272. width: 100%;
  273. height: 300px;
  274. }
  275. </style>