index.php 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857
  1. <div id="app" v-cloak>
  2. <el-card shadow="never" style="border:0;min-width:1600px;" body-style="padding: 20px;">
  3. <div class="head flex">
  4. <div class="head-left">
  5. <!-- 实时概况 -->
  6. <div class="overview_box">
  7. <div class="flex-x-between" style="margin-bottom:40px">
  8. <div class="head-left-text">实时概况</div>
  9. <div>当前时间:{{data.currTime}}</div>
  10. </div>
  11. <div class="flex overview_list">
  12. <div class="flex-y-center overview_list_box">
  13. <!-- <img class="overview_list_img" src="/resources/img/plugins/store/overview1.png" class="" alt=""> -->
  14. <el-image class="overview_list_img" :src="icons.overview1"></el-image>
  15. <div class="overview_item">
  16. <div class="overview_item_title">实收金额(元)</div>
  17. <div class="overview_item_price">{{data.statistics.real_pay_amounts}}</div>
  18. <div class="overview_item_time">昨日:{{data.statistics.yesterday_real_pay_amounts}}</div>
  19. </div>
  20. </div>
  21. <div class="flex-y-center overview_list_box">
  22. <!-- <img class="overview_list_img" src="/resources/img/plugins/store/overview2.png" class="" alt=""> -->
  23. <el-image class="overview_list_img" :src="icons.overview2"></el-image>
  24. <div class="overview_item">
  25. <div class="overview_item_title">待结算</div>
  26. <div class="overview_item_price">{{data.statistics.not_settle_amounts}}</div>
  27. <div class="overview_item_time">昨日:{{data.statistics.yesterday_not_settle_amounts}}</div>
  28. </div>
  29. </div>
  30. <div class="flex-y-center overview_list_box">
  31. <!-- <img class="overview_list_img" src="/resources/img/plugins/store/overview3.png" class="" alt=""> -->
  32. <el-image class="overview_list_img" :src="icons.overview3"></el-image>
  33. <div class="overview_item">
  34. <div class="overview_item_title">待审核提现(元)</div>
  35. <div class="overview_item_price">{{data.statistics.waiting_audit_withdraw_amounts}}</div>
  36. <div class="overview_item_time">昨日:{{data.statistics.yesterday_waiting_audit_withdraw_amounts}}</div>
  37. </div>
  38. </div>
  39. <div class="flex-y-center overview_list_box">
  40. <el-image class="overview_list_img" :src="icons.overview4"></el-image>
  41. <div class="overview_item">
  42. <div class="overview_item_title">已打款提现(元)</div>
  43. <div class="overview_item_price">{{data.statistics.waiting_pay_withdraw_amounts}}</div>
  44. <div class="overview_item_time">昨日:{{data.statistics.yesterday_waiting_pay_withdraw_amounts}}</div>
  45. </div>
  46. </div>
  47. <div class="flex-y-center overview_list_box">
  48. <!-- <img class="overview_list_img" src="/resources/img/plugins/store/overview7.png" class="" alt=""> -->
  49. <el-image class="overview_list_img" :src="icons.overview7"></el-image>
  50. <div class="overview_item">
  51. <div class="overview_item_title">支付人数</div>
  52. <div class="overview_item_price">{{data.statistics.pay_people_numbers}}</div>
  53. <div class="overview_item_time">昨日:{{data.statistics.yesterday_pay_people_numbers}}</div>
  54. </div>
  55. </div>
  56. <div class="flex-y-center overview_list_box">
  57. <!-- <img class="overview_list_img" src="/resources/img/plugins/store/overview8.png" class="" alt=""> -->
  58. <el-image class="overview_list_img" :src="icons.overview8"></el-image>
  59. <div class="overview_item">
  60. <div class="overview_item_title">支付订单</div>
  61. <div class="overview_item_price">{{data.statistics.pay_order_numbers}}</div>
  62. <div class="overview_item_time">昨日:{{data.statistics.yesterday_pay_order_numbers}}</div>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. <!-- 地图 -->
  68. <div class="map_box">
  69. <div class="money_overview_title flex-x-between flex-y-center" style="margin-bottom: 15px;">
  70. <div class="flex-x-between" style="margin-bottom:5px">
  71. <div class="head-left-text">实时概况</div>
  72. </div>
  73. <!-- <div class="flex-y-center">
  74. <div class="money_overview_detail flex-y-center">
  75. 门店总数:<span class="detail_num">{{data.total_store_numbers}}</span>
  76. </div>
  77. <div class="money_overview_detail flex-y-center" style="margin-left: 20px;">
  78. 销售金额(元):<span class="detail_num">{{data.total_sale_amounts}}</span>
  79. </div>
  80. </div> -->
  81. <!-- <div class="date_box">-->
  82. <!-- <el-date-picker @change='mapChange' size='small' v-model="value1" value-format='timestamp' type="daterange" range-separator="~" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>-->
  83. <!-- </div>-->
  84. </div>
  85. <div class="flex-x-between">
  86. <div class="map">
  87. <div class="map_content" id='container'></div>
  88. <div class="map_search_box">
  89. <div class="map_search">
  90. <el-input v-model="search_city" placeholder="请输入城市" class="search_inp"></el-input>
  91. <el-button type="primary" @click='citySearch'>查询</el-button>
  92. </div>
  93. <div class="data_show flex-y-center">
  94. <div style="margin-right: 10px;">门店数:<span class="data_show_col">{{data.total_store_numbers}}</span></div>
  95. <div>销售金额(元):<span class="data_show_col">{{data.total_sale_amounts}}</span></div>
  96. </div>
  97. </div>
  98. </div>
  99. <div class="map_table" @click='goMap'>
  100. <div class="map_table_title flex-y-center">
  101. <div class="map_table_title_item">城市</div>
  102. <div class="map_table_title_item">门店数</div>
  103. <div class="map_table_title_item">销售金额(元)</div>
  104. </div>
  105. <div class="map_table_content">
  106. <div class="map_table_item flex-y-center" v-for="item in data.region_ranking_list">
  107. <div class="map_table_content_item">{{item.region_name}}</div>
  108. <div class="map_table_content_item">{{item.store_numbers}}</div>
  109. <div class="map_table_content_item">{{item.sale_amounts}}</div>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. </div>
  116. <div class="head-right">
  117. <!-- 门店销售排行榜 -->
  118. <div class="sale_rank">
  119. <div class="sale_rank_title flex-y-center">
  120. <div class="sale_rank_line"></div>
  121. <div class="sale_rank_text">门店销售排名TOP10</div>
  122. </div>
  123. <div class="sale_rank_list">
  124. <div class="sale_rank_item flex-x-between" v-for="(item,index) in data.store_good_ranking_list" :key='index'>
  125. <div class="sale_rank_item-left flex-y-center">
  126. <div class="sale_rank_num">{{index+1}}</div>
  127. <!-- <img class="sale_rank_img" src="/resources/img/plugins/store/overview1.png" alt=""> -->
  128. <el-image class="sale_rank_img" :src="item.logo_img">
  129. <div slot="error" class="image-slot">
  130. <!-- <img class="sale_rank_img" src="/resources/img/plugins/store/overview1.png" /> -->
  131. <el-image class="sale_rank_img" :src="icons.overview1">
  132. </div>
  133. </el-image>
  134. <div class="sale_rank_name over1">{{item.store_name}}</div>
  135. </div>
  136. <div class="flex-y-center">
  137. <!-- <img src="/resources/img/plugins/store/sales-img.png" class="sale_img" alt=""> -->
  138. <el-image class="sale_img" :src="icons.sales_img"></el-image>
  139. <div class="sale_num">{{item.sales_money}}</div>
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. <!-- <div class="main_box flex-x-between">
  147. <div class="main_box_right">
  148. <div class="money_overview_text" style="margin-bottom: 40px;">常用功能</div>
  149. <div class="flex-y-center" style="flex-wrap:wrap">
  150. <div class="flex-y-center features_list_box" style="flex-direction: column;" @click="to(1)">
  151. <img class="features_list_img" src="/resources/img/plugins/store/features1.png" class="" alt="">
  152. <div class="overview_item">
  153. <div class="overview_item_title">门店管理</div>
  154. </div>
  155. </div>
  156. <div class="flex-y-center features_list_box" style="flex-direction: column;" @click="to(2)">
  157. <img class="features_list_img" src="/resources/img/plugins/store/features2.png" class="" alt="">
  158. <div class="overview_item">
  159. <div class="overview_item_title">门店申请</div>
  160. </div>
  161. </div>
  162. <div class="flex-y-center features_list_box" style="flex-direction: column;" @click="to(3)">
  163. <img class="features_list_img" src="/resources/img/plugins/store/features3.png" class="" alt="">
  164. <div class="overview_item">
  165. <div class="overview_item_title">门店订单</div>
  166. </div>
  167. </div>
  168. <div class="flex-y-center features_list_box" style="flex-direction: column;" @click="to(4)">
  169. <img class="features_list_img" src="/resources/img/plugins/store/features4.png" class="" alt="">
  170. <div class="overview_item">
  171. <div class="overview_item_title">收银台订单</div>
  172. </div>
  173. </div>
  174. <div class="flex-y-center features_list_box" style="flex-direction: column;" @click="to(5)">
  175. <img class="features_list_img" src="/resources/img/plugins/store/features5.png" class="" alt="">
  176. <div class="overview_item">
  177. <div class="overview_item_title">推荐设置</div>
  178. </div>
  179. </div>
  180. <div class="flex-y-center features_list_box" style="flex-direction: column;" @click="to(6)">
  181. <img class="features_list_img" src="/resources/img/plugins/store/features6.png" class="" alt="">
  182. <div class="overview_item">
  183. <div class="overview_item_title">商品管理</div>
  184. </div>
  185. </div>
  186. <div class="flex-y-center features_list_box" style="flex-direction: column;" @click="to(7)">
  187. <img class="features_list_img" src="/resources/img/plugins/store/features7.png" class="" alt="">
  188. <div class="overview_item">
  189. <div class="overview_item_title">对账管理</div>
  190. </div>
  191. </div>
  192. <div class="flex-y-center features_list_box" style="flex-direction: column;" @click="to(8)">
  193. <img class="features_list_img" src="/resources/img/plugins/store/features8.png" class="" alt="">
  194. <div class="overview_item">
  195. <div class="overview_item_title">收银设置</div>
  196. </div>
  197. </div>
  198. </div>
  199. </div>
  200. </div>
  201. <div class="goods_rank_box">
  202. <div class="goods_rank_title">商品销量排行(TOP5)</div>
  203. <div>
  204. <el-table :data="data.top_goods" border style="width: 100%" :header-cell-style="{'text-align':'center'}" :cell-style="{'text-align':'center'}">
  205. <el-table-column label="排名" width="80">
  206. <template slot-scope="scope">
  207. {{scope.$index+1}}
  208. </template>
  209. </el-table-column>
  210. <el-table-column prop="id" label="商品ID" width="100"></el-table-column>
  211. <el-table-column label="商品图片" width='120'>
  212. <template slot-scope="scope">
  213. <div class="flex-x-center">
  214. <img class="goods_img" :src="scope.row.cover_pic" alt="">
  215. </div>
  216. </template>
  217. </el-table-column>
  218. <el-table-column prop="name" label="商品名称" :show-overflow-tooltip='true' width='250'></el-table-column>
  219. <el-table-column prop="address" label="所属门店" width='250'>
  220. <template slot-scope="scope">
  221. <div class="flex-x-center flex-y-center">
  222. <img class="goods_img" :src="scope.row.shop_url" alt="">
  223. <div>{{scope.row.shop_name}}</div>
  224. </div>
  225. </template>
  226. </el-table-column>
  227. <el-table-column prop="order_count" label="下单件数"></el-table-column>
  228. <el-table-column prop="order_people_count" label="下单人数"></el-table-column>
  229. <el-table-column prop="pay_count" label="支付件数"></el-table-column>
  230. <el-table-column prop="pay_people_count" label="支付人数"></el-table-column>
  231. <el-table-column label="销售总金额">
  232. <template slot-scope="scope">
  233. <div>{{scope.row.order_sum}}元</div>
  234. </template>
  235. </el-table-column>
  236. </el-table>
  237. </div>
  238. </div> -->
  239. </el-card>
  240. </div>
  241. <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=d49fb742889b43ddf4271df776170f1d"></script>
  242. <script>
  243. let map;
  244. const app = new Vue({
  245. el: '#app',
  246. data() {
  247. return {
  248. data: {
  249. statistics: {},
  250. store_good_ranking_list: [],
  251. // top_goods: [],
  252. region_ranking_list: [],
  253. currTime: '2022-05-13 14:02:00',
  254. },
  255. value1: '',
  256. search_city: '',
  257. icons: {
  258. overview1: _diy_img_prefix + '/static/addons/Store/overview1.png',
  259. overview2: _diy_img_prefix + '/static/addons/Store/overview2.png',
  260. overview3: _diy_img_prefix + '/static/addons/Store/overview3.png',
  261. overview4: _diy_img_prefix + '/static/addons/Store/overview4.png',
  262. overview5: _diy_img_prefix + '/static/addons/Store/overview5.png',
  263. overview6: _diy_img_prefix + '/static/addons/Store/overview6.png',
  264. overview7: _diy_img_prefix + '/static/addons/Store/overview7.png',
  265. overview8: _diy_img_prefix + '/static/addons/Store/overview8.png',
  266. sales_img: _diy_img_prefix + '/static/addons/Store/sales-img.png',
  267. },
  268. };
  269. },
  270. mounted() {
  271. let date = new Date();
  272. this.loadData();
  273. },
  274. methods: {
  275. loadMap(map_data) {
  276. // 初始化地图
  277. this.initMap();
  278. // 金额概况圆饼
  279. var total_text = '门店实收金额'
  280. var total_num = map_data[0] || 0;
  281. var legend_data = ['门店实收货款(元)', '平台佣金(元)'];
  282. var data = [{
  283. value: map_data[1] || 0,
  284. name: '门店实收货款(元)'
  285. },
  286. {
  287. value: map_data[2] || 0,
  288. name: '平台佣金(元)'
  289. },
  290. ];
  291. this.initChart(document.getElementById('money_chart'), total_num, total_text, legend_data, data);
  292. // 订单概况圆饼
  293. var total_text2 = '订单总数'
  294. var total_num2 = map_data[3] || 0;
  295. var legend_data2 = ['门店订单', '收银台订单', '售后订单'];
  296. var data2 = [{
  297. value: map_data[4] || 0,
  298. name: '门店订单'
  299. },
  300. {
  301. value: map_data[6] || 0,
  302. name: '收银台订单'
  303. },
  304. {
  305. value: map_data[5] || 0,
  306. name: '售后订单'
  307. }
  308. ];
  309. this.initChart(document.getElementById('order_chart'), total_num2, total_text2, legend_data2, data2);
  310. },
  311. /* to(num) {
  312. switch (num) {
  313. case 1:
  314. navigateTo({
  315. r: 'plugin/o2o_store/mall/store/index',
  316. });
  317. break;
  318. case 2:
  319. navigateTo({
  320. r: 'plugin/o2o_store/mall/store/apply',
  321. });
  322. break;
  323. case 3:
  324. navigateTo({
  325. r: 'plugin/o2o_store/mall/order/index',
  326. });
  327. break;
  328. case 4:
  329. navigateTo({
  330. r: 'plugin/o2o_store/mall/order/cashier',
  331. });
  332. break;
  333. case 5:
  334. navigateTo({
  335. r: 'plugin/o2o_store/mall/recommend/index',
  336. });
  337. break;
  338. case 6:
  339. navigateTo({
  340. r: 'plugin/o2o_store/mall/goods/index',
  341. });
  342. break;
  343. case 7:
  344. navigateTo({
  345. r: 'plugin/o2o_store/mall/finance/index',
  346. });
  347. break;
  348. case 8:
  349. navigateTo({
  350. r: 'plugin/o2o_store/mall/cashier/index',
  351. });
  352. break;
  353. }
  354. }, */
  355. mapChange() {
  356. //地图的日期搜索
  357. console.log(this.value1, 'value1value1');
  358. },
  359. amountChange() {
  360. //金额的日期搜索
  361. },
  362. orderChange() {
  363. //订单的日期搜索
  364. },
  365. citySearch() {
  366. //门店查询
  367. map.setCity(this.search_city);
  368. },
  369. initMap() {
  370. map = new AMap.Map('container', {
  371. resizeEnable: true,
  372. });
  373. },
  374. goMap() {
  375. var val = '白云区';
  376. },
  377. initChart(el, num, text, legendData, data) {
  378. var myChart = echarts.init(el);
  379. myChart.setOption({
  380. title: {
  381. zlevel: 0,
  382. text: [
  383. '{name|' + text + '}',
  384. '{value|' + num + '}',
  385. ].join('\n'),
  386. top: 'center',
  387. right: 'center',
  388. textStyle: {
  389. rich: {
  390. name: {
  391. color: '#545454',
  392. fontSize: 16,
  393. lineHeight: 40,
  394. },
  395. value: {
  396. color: '#545454',
  397. fontSize: 24,
  398. lineHeight: 20
  399. },
  400. },
  401. },
  402. },
  403. legend: {
  404. orient: 'horizontal',
  405. left: 'center',
  406. bottom: 10,
  407. data: legendData
  408. },
  409. series: [{
  410. type: 'pie',
  411. radius: ['50%', '70%'],
  412. label: {
  413. normal: {
  414. show: true,
  415. position: 'outside',
  416. formatter: '{c}'
  417. }
  418. },
  419. labelLine: {
  420. normal: {
  421. show: true,
  422. length: 0,
  423. length2: 10
  424. }
  425. },
  426. color: ['#6395F9', '#62DAAB', '#FF7575'],
  427. data: data
  428. }]
  429. });
  430. },
  431. loadData() {
  432. request({
  433. params: {
  434. r: 'happiness/default/index',
  435. },
  436. method: 'get',
  437. }).then(e => {
  438. if (e.data.code == 0) {
  439. this.data = e.data.data
  440. this.loadMap(e.data.data.map);
  441. }
  442. }).catch(e => {
  443. this.getGoods_loading = false;
  444. console.log(e);
  445. });
  446. }
  447. }
  448. });
  449. </script>
  450. <style>
  451. .head-left {
  452. width: 1100px;
  453. margin-right: 30px;
  454. }
  455. /* 实时概况 */
  456. .overview_box {
  457. padding: 20px 20px 0 20px;
  458. background: #F7F7F7;
  459. box-shadow: 3px 3px 5px rgb(134 134 134 / 35%);
  460. border-radius: 5px;
  461. height: 328px;
  462. margin-bottom: 20px;
  463. }
  464. .head-left-text {
  465. font-size: 18px;
  466. color: #333333;
  467. font-weight: 600;
  468. }
  469. .overview_list {
  470. padding-left: 30px;
  471. flex-wrap: wrap;
  472. }
  473. .overview_list_box {
  474. margin-right: 100px;
  475. margin-bottom: 50px;
  476. width: 178px;
  477. }
  478. .overview_list_box:nth-of-type(4n) {
  479. margin-right: 0;
  480. }
  481. .overview_list_img {
  482. width: 50px;
  483. height: 50px;
  484. display: block;
  485. margin-right: 15px;
  486. }
  487. .overview_item_title {
  488. font-size: 14px;
  489. color: #333333;
  490. font-weight: 600;
  491. }
  492. .overview_item_price {
  493. font-size: 20px;
  494. color: #333333;
  495. font-weight: 600;
  496. margin: 6px 0;
  497. }
  498. .overview_item_time {
  499. color: #9f9f9f;
  500. font-size: 12px;
  501. }
  502. /* 地图 */
  503. .map_box {
  504. background: #F7F7F7;
  505. border: 1px solid rgba(208, 223, 253, 1);
  506. border-radius: 10px;
  507. width: 1560px;
  508. height: 514px;
  509. box-shadow: 3px 3px 5px rgb(155 155 155 / 35%);
  510. padding: 15px 20px 10px;
  511. }
  512. .head-right {
  513. width: 428px;
  514. }
  515. /* 销售排行榜 */
  516. .sale_rank {
  517. border: 1px solid rgba(208, 208, 208, 1);
  518. border-radius: 10px;
  519. width: 428px;
  520. height: 328px;
  521. box-shadow: 3px 3px 5px rgb(161 161 161 / 35%);
  522. padding: 20px 10px 0;
  523. margin-bottom: 20px;
  524. }
  525. .sale_rank_title {
  526. border-bottom: 1px solid #D0D0D0;
  527. padding: 0 10px 6px;
  528. margin-bottom: 15px;
  529. }
  530. .sale_rank_line {
  531. background: rgba(55, 113, 240, 1);
  532. width: 5px;
  533. height: 22px;
  534. margin-right: 10px;
  535. }
  536. .sale_rank_text {
  537. font-size: 14px;
  538. color: #333333;
  539. font-weight: 600;
  540. }
  541. .sale_rank_list {
  542. height: 250px;
  543. overflow: hidden;
  544. overflow-y: auto;
  545. }
  546. .sale_rank_item {
  547. padding: 0 10px 6px;
  548. border-bottom: 1px solid #D0D0D0;
  549. margin-bottom: 15px;
  550. }
  551. .sale_rank_num {
  552. font-size: 16px;
  553. font-weight: 600;
  554. margin-right: 10px;
  555. }
  556. .sale_rank_img {
  557. width: 22px;
  558. height: 22px;
  559. margin-right: 10px;
  560. display: block;
  561. }
  562. .sale_rank_name {
  563. width: 220px;
  564. }
  565. .sale_img {
  566. width: 24px;
  567. height: 24px;
  568. display: block;
  569. margin-right: 6px;
  570. }
  571. .sale_num {
  572. font-size: 16px;
  573. font-weight: 600;
  574. color: #DE031A;
  575. }
  576. .map {
  577. width: 1200px;
  578. height: 435px;
  579. background: #417FC8;
  580. position: relative;
  581. }
  582. .map_content {
  583. width: 100%;
  584. height: 100%;
  585. }
  586. .map_search_box {
  587. position: absolute;
  588. width: 328px;
  589. height: 42px;
  590. border-radius: 6px;
  591. top: 20px;
  592. left: 20px;
  593. box-sizing: border-box;
  594. /* box-shadow: 3px 3px 5px rgb(132 132 132 / 35%); */
  595. }
  596. .map_table {
  597. width: 300px;
  598. height: 435px;
  599. border-radius: 10px;
  600. }
  601. .map_table_title {
  602. background: #535353;
  603. color: #fff;
  604. font-size: 14px;
  605. font-weight: 600;
  606. height: 60px;
  607. border-radius: 10px 10px 0 0;
  608. }
  609. .map_table_content {
  610. border: 1px solid rgba(208, 223, 253, 1);
  611. height: 373px;
  612. overflow: hidden;
  613. overflow-y: auto;
  614. }
  615. .map_table_item {
  616. height: 43px;
  617. background: #fff;
  618. border-bottom: 1px solid rgba(208, 223, 253, 1);
  619. }
  620. .map_table_item:last-child {
  621. border-bottom: 0;
  622. }
  623. .map_table_title_item {
  624. width: 33%;
  625. text-align: center;
  626. }
  627. .map_table_content_item {
  628. width: 33%;
  629. text-align: center;
  630. }
  631. .detail_num {
  632. color: #417FC8;
  633. font-weight: 600;
  634. }
  635. /* 让日期选择器变小 */
  636. .date_box .el-date-editor--daterange.el-input__inner {
  637. width: 250px;
  638. }
  639. .date_box .el-date-editor .el-range-input {
  640. width: 35%;
  641. }
  642. .date_box .el-date-editor .el-range-separator {
  643. width: 10%;
  644. }
  645. .money_overview_chart {
  646. width: 100%;
  647. height: calc(100% - 32px);
  648. /* width: 606px;
  649. height: 500px; */
  650. }
  651. .main_box {
  652. width: 1560px;
  653. margin: 20px 0;
  654. }
  655. .main_box_right {
  656. width: 1560px;
  657. border: 1px solid rgba(212, 212, 212, 1);
  658. box-shadow: 3px 3px 5px rgb(155 155 155 / 35%);
  659. border-radius: 10px;
  660. padding: 15px 20px 0;
  661. height: 258px;
  662. }
  663. .features_list {
  664. padding: 20px 30px 0;
  665. }
  666. .features_list_img {
  667. width: 70px;
  668. height: 70px;
  669. display: block;
  670. margin-bottom: 15px;
  671. border-radius: 15px;
  672. }
  673. .features_list_box {
  674. margin-right: 5px;
  675. margin-bottom: 65px;
  676. width: 178px;
  677. }
  678. .features_list_box:nth-of-type(4n) {
  679. margin-right: 0;
  680. }
  681. .order_overview_chart {
  682. background: pink;
  683. height: calc(100% - 32px);
  684. }
  685. .goods_rank_box {
  686. border: 1px solid rgba(213, 213, 213, 1);
  687. box-shadow: 3px 3px 5px rgb(172 172 172 / 35%);
  688. width: 1560px;
  689. border-radius: 10px;
  690. padding: 20px;
  691. }
  692. .goods_rank_title {
  693. font-size: 18px;
  694. color: #333;
  695. font-weight: 600;
  696. margin-bottom: 30px;
  697. }
  698. .goods_img {
  699. width: 40px;
  700. height: 40px;
  701. display: block;
  702. margin-right: 10px;
  703. }
  704. body .el-table th.gutter {
  705. display: table-cell !important;
  706. }
  707. .search_inp {
  708. width: 174px;
  709. height: 100%;
  710. }
  711. .data_show {
  712. background: #fff;
  713. height: 40px;
  714. width: 250px;
  715. border: 1px solid #DCDFE6;
  716. font-size: 13px;
  717. margin-top: 5px;
  718. box-shadow: 3px 3px 5px rgb(132 132 132 / 35%);
  719. border-radius: 5px;
  720. padding-left: 10px;
  721. }
  722. .data_show_col {
  723. color: #417FC8;
  724. }
  725. @media (max-width: 1500px) {}
  726. /* 公共样式 */
  727. .flex {
  728. display: -webkit-box;
  729. display: -webkit-flex;
  730. /* #ifndef APP-NVUE */
  731. display: flex;
  732. /* #endif */
  733. }
  734. .flex-x-center {
  735. display: -webkit-box;
  736. display: -webkit-flex;
  737. /* #ifndef APP-NVUE */
  738. display: flex;
  739. /* #endif */
  740. -webkit-box-pack: center;
  741. -webkit-justify-content: center;
  742. -ms-flex-pack: center;
  743. justify-content: center;
  744. }
  745. .flex-x-between {
  746. display: -webkit-box;
  747. display: -webkit-flex;
  748. /* #ifndef APP-NVUE */
  749. display: flex;
  750. /* #endif */
  751. -webkit-box-pack: space-between;
  752. -webkit-justify-content: space-between;
  753. -ms-flex-pack: space-between;
  754. justify-content: space-between;
  755. }
  756. .flex-y-center {
  757. display: -webkit-box;
  758. display: -webkit-flex;
  759. /* #ifndef APP-NVUE */
  760. display: flex;
  761. /* #endif */
  762. -webkit-box-align: center;
  763. -webkit-align-items: center;
  764. -ms-flex-align: center;
  765. -ms-grid-row-align: center;
  766. align-items: center;
  767. }
  768. /* 溢出隐藏 */
  769. .over1 {
  770. text-overflow: -o-ellipsis-lastline;
  771. overflow: hidden;
  772. text-overflow: ellipsis;
  773. display: -webkit-box;
  774. -webkit-line-clamp: 1;
  775. -webkit-box-orient: vertical;
  776. }
  777. .over2 {
  778. text-overflow: -o-ellipsis-lastline;
  779. overflow: hidden;
  780. text-overflow: ellipsis;
  781. display: -webkit-box;
  782. -webkit-line-clamp: 2;
  783. -webkit-box-orient: vertical;
  784. }
  785. .grid-icon {
  786. color: #999;
  787. cursor: pointer;
  788. font-size: 18px;
  789. }
  790. </style>