xieruidong 2 年之前
父节点
当前提交
053cd62cc0

+ 4 - 27
application/admin/controller/GoodsData.php

@@ -159,33 +159,10 @@ class GoodsData extends Backend
             $saleNum[$v['goods']['name']] = $v['total_num'];
         }
 
-
-
-//        if ($this->request->isAjax()) {
-//            //如果发送的来源是Selectpage,则转发到Selectpage
-//            if ($this->request->request('keyField')) {
-//                return $this->selectpage();
-//            }
-//            $orderIds = Db("Orders")->where($where)->where('status', 'in', '5,10,20,30')->column('id');
-//            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
-//            $this->model = new \app\admin\model\OrderInfo;
-//            $list = OrderInfo
-//                ::with(['goods'])
-//                ->where($where)
-//                ->where('is_return_goods',0)
-//                ->where('order_id','in',$orderIds)
-//                ->field('goods_id, sum(amount*num) AS total')
-//                ->group('goods_id')
-//                ->order('total desc')
-//                ->paginate($limit);
-//
-//
-//
-//            $result = array("total" => $list->total(), "rows" => $list->items());
-//
-//            return json($result);
-//        }
-
+        #售后率
+        $sellNum=OrderInfo::payed()->sum('num');
+        $refundNum=Refund::filterRefund()->sum('num');
+        $this->assign('svcPer',bcmul(100,bcdiv($refundNum,$sellNum)));
 
         $this->view->assign([
             'sale' => $sale,

+ 6 - 52
application/admin/view/goods_data/index.html

@@ -174,8 +174,7 @@
                             <input type="hidden" class="form-control operate" name="createtime-operate"
                                    data-name="createtime" value="RANGE" readonly="">
                             <input type="text" class="form-control datetimerange" name="startTime" value="{$post_time}"
-                                   id="start_time" data-index="12" onfocus="getdaterangepicker(form)"
-                                   autocomplete="off" style="width: 100%">
+                                   id="start_time" data-index="12" autocomplete="off" style="width: 100%">
                         </div>
                         <div class="col-xs-5">
                             <button type="submit" class="btn btn-success" formnovalidate="">提交</button>
@@ -261,6 +260,9 @@
                     <div class="col-lg-6">
                         <div id="echart8" class="btn-refresh" style="height:300px;width:80%;"></div>
                     </div>
+                    <div class="col-lg-6">
+                        <div id="echart9" class="btn-refresh" style="height:300px;width:80%;"></div>
+                    </div>
 
                 </div>
 
@@ -279,54 +281,6 @@
         </div>
     </div>
 </div>
-
-<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
-<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
-<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
-<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css"/>
 <script>
-    $('input[name="dates"]').daterangepicker();
-
-    function getdaterangepicker(form) {
-        //绑定日期时间元素事件
-        if ($(".datetimerange", form).size() > 0) {
-            require(['bootstrap-daterangepicker'], function () {
-                var ranges = {};
-                ranges[__('Today')] = [Moment().startOf('day'), Moment().endOf('day')];
-                ranges[__('Yesterday')] = [Moment().subtract(1, 'days').startOf('day'), Moment().subtract(1, 'days').endOf('day')];
-                ranges[__('Last 7 Days')] = [Moment().subtract(6, 'days').startOf('day'), Moment().endOf('day')];
-                ranges[__('Last 30 Days')] = [Moment().subtract(29, 'days').startOf('day'), Moment().endOf('day')];
-                ranges[__('This Month')] = [Moment().startOf('month'), Moment().endOf('month')];
-                ranges[__('Last Month')] = [Moment().subtract(1, 'month').startOf('month'), Moment().subtract(1, 'month').endOf('month')];
-                var options = {
-                    timePicker: false,
-                    autoUpdateInput: false,
-                    timePickerSeconds: true,
-                    timePicker24Hour: true,
-                    autoApply: true,
-                    locale: {
-                        format: 'YYYY-MM-DD HH:mm:ss',
-                        customRangeLabel: __("Custom Range"),
-                        applyLabel: __("Apply"),
-                        cancelLabel: __("Clear"),
-                    },
-                    ranges: ranges,
-                };
-                var origincallback = function (start, end) {
-                    $(this.element).val(start.format(this.locale.format) + " - " + end.format(this.locale.format));
-                    $(this.element).trigger('blur');
-                };
-                $(".datetimerange", form).each(function () {
-                    var callback = typeof $(this).data('callback') == 'function' ? $(this).data('callback') : origincallback;
-                    $(this).on('apply.daterangepicker', function (ev, picker) {
-                        callback.call(picker, picker.startDate, picker.endDate);
-                    });
-                    $(this).on('cancel.daterangepicker', function (ev, picker) {
-                        $(this).val('').trigger('blur');
-                    });
-                    $(this).daterangepicker($.extend(true, options, $(this).data()), callback);
-                });
-            });
-        }
-    }
-</script>
+    let svcPer={$svcPer};
+</script>

+ 1 - 1
application/common/model/Refund.php

@@ -10,7 +10,7 @@ use think\Model;
  * 短信验证码
  * @property Orders orders
  * @property User user
- * @method static|Query FilterRefund()
+ * @method static static|Query FilterRefund()
  */
 class Refund Extends Model
 {

+ 45 - 1
public/assets/js/backend/goods_data.js

@@ -1,4 +1,4 @@
-define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echarts-theme', 'template'], function ($, undefined, Backend, Datatable, Table, Echarts, undefined, Template) {
+define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echarts-theme', 'template','form'], function ($, undefined, Backend, Datatable, Table, Echarts, undefined, Template,Form) {
 
     var Controller = {
         index: function () {
@@ -16,6 +16,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
             var myChart6 = Echarts.init(document.getElementById('echart6'), 'walden');
             var myChart7 = Echarts.init(document.getElementById('echart7'), 'walden');
             var myChart8 = Echarts.init(document.getElementById('echart8'), 'walden');
+            var myChart9 = Echarts.init(document.getElementById('echart9'), 'walden');
 
             var option = {
                 title: {
@@ -380,6 +381,47 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
                     }
                 ]
             };
+            var option9 = {
+                title: {
+                    text: '全商品售后率',
+
+                    left: 'center'
+                },
+                xAxis: {
+                    type: 'category',
+                    data: ['全部商品']
+                },
+                yAxis: {
+                    type: 'value'
+                },
+                tooltip: {
+                    trigger: 'axis',
+                    formatter(params){
+                        return `${params[0].value}%`
+                    }
+                },
+                series: [
+                    {
+
+                        data: [svcPer],
+                        type: 'bar',
+                        showBackground: true,
+                        itemStyle: {
+                            normal: {
+                                color: function(params) {
+                                    // build a color map as your need.
+                                    var colorList = [
+                                        '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
+                                        '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+                                        '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+                                    ];
+                                    return colorList[params.dataIndex]
+                                }
+                            }
+                        },
+                    }
+                ]
+            };
 
 
             // 使用刚指定的配置项和数据显示图表。
@@ -392,7 +434,9 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
             myChart6.setOption(option6);
             myChart7.setOption(option7);
             myChart8.setOption(option8);
+            myChart9.setOption(option9);
 
+            Form.events.daterangepicker($('#form'))
         }
 
     };