Browse Source

品牌销量的代码

zcb 4 years ago
parent
commit
0a0ac413db

+ 27 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/statistics/MonthlyCustomersController.java

@@ -79,7 +79,13 @@ public class MonthlyCustomersController {
     @RequestMapping("/top10ForProduct")
     public R top10ForProduct(@RequestParam("month") String month, @RequestParam("week") String week){
 
-        Map<String,Object> map = monthlyCustomersService.top10ForProduct(month,week);
+        String merchSn = null;
+        SysUserEntity sysUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
+        if(!"1".equals(sysUser.getRoleType())){
+            merchSn = sysUser.getMerchSn();
+        }
+
+        Map<String,Object> map = monthlyCustomersService.top10ForProduct(month,week,merchSn);
 
         return R.ok(map);
     }
@@ -89,7 +95,13 @@ public class MonthlyCustomersController {
     public R top10ByBrandAndSupplier(@RequestParam("startDate") String startDate,
                                      @RequestParam("endDate") String endDate){
 
-        Map<String,Object> map = monthlyCustomersService.top10ByBrandAndSupplier(startDate,endDate);
+        String merchSn = null;
+        SysUserEntity sysUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
+        if(!"1".equals(sysUser.getRoleType())){
+            merchSn = sysUser.getMerchSn();
+        }
+
+        Map<String,Object> map = monthlyCustomersService.top10ByBrandAndSupplier(startDate,endDate,merchSn);
 
         return R.ok(map);
     }
@@ -226,4 +238,17 @@ public class MonthlyCustomersController {
     }
 
 
+    @RequestMapping("/salesByCategory")
+    public R salesByCategory(@RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate){
+
+        String merchSn = null;
+        SysUserEntity sysUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
+        if(!"1".equals(sysUser.getRoleType())){
+            merchSn = sysUser.getMerchSn();
+        }
+
+        return R.ok().put("list",monthlyCustomersService.salesByCategory(startDate,endDate,merchSn));
+    }
+
+
 }

+ 5 - 3
kmall-admin/src/main/java/com/kmall/admin/dao/statistics/MonthlyCustomersDao.java

@@ -15,11 +15,13 @@ public interface MonthlyCustomersDao {
 
     List<MonthlySalesGrowthEntity> queryMonthlyCustomers(@Param("startMonth") String startMonth, @Param("endMonth") String endMonth, @Param("merchSn") String merchSn);
 
-    List<MonthlySalesGrowthEntity> top10ForProduct(@Param("month") String month, @Param("week") String week);
+    List<MonthlySalesGrowthEntity> top10ForProduct(@Param("month") String month, @Param("week") String week, @Param("merchSn") String merchSn);
 
-    List<MonthlySalesGrowthEntity> top10ByBrand(@Param("startDate") String startDate, @Param("endDate") String endDate);
+    List<MonthlySalesGrowthEntity> top10ByBrand(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("merchSn") String merchSn);
 
-    List<MonthlySalesGrowthEntity> top10BySupplier(@Param("startDate")String startDate, @Param("endDate") String endDate);
+    List<MonthlySalesGrowthEntity> top10BySupplier(@Param("startDate")String startDate, @Param("endDate") String endDate, @Param("merchSn") String merchSn);
 
     List<MonthlySalesGrowthEntity> queryWeeklyCustomers(@Param("startWeek") String startWeek, @Param("endWeek") String endWeek, @Param("merchSn") String merchSn);
+
+    List<MonthlySalesGrowthEntity> salesByCategory(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("merchSn") String merchSn);
 }

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/CategoryEntity.java

@@ -53,6 +53,8 @@ public class CategoryEntity extends Tree<CategoryEntity> {
     private String storeName;
     private String merchName;
 
+    private String share;
+
     public String getStoreName() {
         return storeName;
     }
@@ -302,4 +304,12 @@ public class CategoryEntity extends Tree<CategoryEntity> {
     public String getFrontName() {
         return frontName;
     }
+
+    public String getShare() {
+        return share;
+    }
+
+    public void setShare(String share) {
+        this.share = share;
+    }
 }

+ 11 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/MonthlySalesGrowthEntity.java

@@ -16,6 +16,8 @@ public class MonthlySalesGrowthEntity implements Serializable {
     private String yearAndMonth;
     private String yearAndWeek;
 
+
+
     public String getYearAndWeek() {
         return yearAndWeek;
     }
@@ -30,6 +32,7 @@ public class MonthlySalesGrowthEntity implements Serializable {
 
     private String brand; // 品牌
     private String supplier; // 供应商
+    private String cgname; // 品牌名
 
 
     public String getMerchSn() {
@@ -120,4 +123,12 @@ public class MonthlySalesGrowthEntity implements Serializable {
     public void setSupplier(String supplier) {
         this.supplier = supplier;
     }
+
+    public String getCgname() {
+        return cgname;
+    }
+
+    public void setCgname(String cgname) {
+        this.cgname = cgname;
+    }
 }

+ 3 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/CategoryServiceImpl.java

@@ -69,7 +69,9 @@ public class CategoryServiceImpl implements CategoryService {
         Map<String, Object> valideDate = MapBeanUtil.fromObject(category);
         ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
         builder.put("merchSn", "商户");
-        builder.put("storeId", "门店");
+        if("2".equals(category.getShare())){
+            builder.put("storeId", "门店");
+        }
         R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
         if (Integer.valueOf(r.get("code").toString()) != 0) {
             throw new RRException(r.get("msg").toString());

+ 26 - 5
kmall-admin/src/main/java/com/kmall/admin/service/impl/statistics/MonthlyCustomersServiceImpl.java

@@ -63,8 +63,8 @@ public class MonthlyCustomersServiceImpl implements MonthlyCustomersService {
     }
 
     @Override
-    public Map<String, Object> top10ForProduct(String month, String week) {
-        List<MonthlySalesGrowthEntity> monthlySalesGrowthEntities = monthlyCustomersDao.top10ForProduct(month,week);
+    public Map<String, Object> top10ForProduct(String month, String week, String merchSn) {
+        List<MonthlySalesGrowthEntity> monthlySalesGrowthEntities = monthlyCustomersDao.top10ForProduct(month,week,merchSn);
 
         List<String> productNameList = new ArrayList<>();
 //        // 查询客单价
@@ -83,10 +83,10 @@ public class MonthlyCustomersServiceImpl implements MonthlyCustomersService {
     }
 
     @Override
-    public Map<String, Object> top10ByBrandAndSupplier(String startDate, String endDate) {
+    public Map<String, Object> top10ByBrandAndSupplier(String startDate, String endDate, String merchSn) {
 
-        List<MonthlySalesGrowthEntity> top10ByBrand = monthlyCustomersDao.top10ByBrand(startDate,endDate);
-        List<MonthlySalesGrowthEntity> top10BySupplier = monthlyCustomersDao.top10BySupplier(startDate,endDate);
+        List<MonthlySalesGrowthEntity> top10ByBrand = monthlyCustomersDao.top10ByBrand(startDate,endDate,merchSn);
+        List<MonthlySalesGrowthEntity> top10BySupplier = monthlyCustomersDao.top10BySupplier(startDate,endDate,merchSn);
 
         Map<String,Object> map = new HashMap<>();
         map.put("top10ByBrand",top10ByBrand);
@@ -154,4 +154,25 @@ public class MonthlyCustomersServiceImpl implements MonthlyCustomersService {
     public void addWechatFollowers(WechatFollowersEntity wechatFollowersEntity) {
         wechatFollowersDao.save(wechatFollowersEntity);
     }
+
+
+    public List<Map<String,Object>> salesByCategory(String startDate, String endDate, String merchSn) {
+        List<MonthlySalesGrowthEntity> salesGrowthEntities = monthlyCustomersDao.salesByCategory(startDate,endDate,merchSn);
+
+
+        List<Map<String,Object>> returnList = new ArrayList<>();
+
+        for (MonthlySalesGrowthEntity salesGrowthEntity : salesGrowthEntities) {
+            Map<String,Object> map = new HashMap<>();
+            map.put("name",salesGrowthEntity.getCgname());
+            map.put("value",salesGrowthEntity.getSales());
+            returnList.add(map);
+        }
+
+
+        return returnList;
+
+
+    }
+
 }

+ 5 - 2
kmall-admin/src/main/java/com/kmall/admin/service/statistics/MonthlyCustomersService.java

@@ -2,6 +2,7 @@ package com.kmall.admin.service.statistics;
 
 import com.kmall.admin.entity.WechatFollowersEntity;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -13,13 +14,15 @@ public interface MonthlyCustomersService {
 
     Map<String, Object> queryMonthlyCustomers(String startMonth, String endMonth, String merchSn);
 
-    Map<String, Object> top10ForProduct(String month, String week);
+    Map<String, Object> top10ForProduct(String month, String week, String merchSn);
 
-    Map<String, Object> top10ByBrandAndSupplier(String startDate, String endDate);
+    Map<String, Object> top10ByBrandAndSupplier(String startDate, String endDate, String merchSn);
 
     Map<String, Object> queryWeeklyCustomers(String startWeek, String endWeek, String merchSn);
 
     Map<String, Object> queryMonthlyWechatFollowers(String startMonth, String endMonth, String merchSn);
 
     void addWechatFollowers(WechatFollowersEntity wechatFollowersEntity);
+
+    List<Map<String,Object>> salesByCategory(String startMonth, String endMonth, String merchSn);
 }

+ 8 - 2
kmall-admin/src/main/resources/mybatis/mapper/CategoryDao.xml

@@ -127,6 +127,9 @@
 		<if test="isL2 != null and isL2 != ''">
 			AND `parent_id` != #{isL2}
 		</if>
+		<if test="share != null and share != ''">
+			AND `share` = #{share}
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -185,7 +188,8 @@
 			`wap_banner_url`,
 			`level`,
 			`type`,
-			`front_name`)
+			`front_name`,
+			`share`)
 		values(
 			#{id},
 			#{name},
@@ -203,7 +207,8 @@
 			#{wapBannerUrl},
 			#{level},
 			#{type},
-			#{frontName})
+			#{frontName},
+			#{share})
 	</insert>
 
 	<update id="update" parameterType="com.kmall.admin.entity.CategoryEntity">
@@ -225,6 +230,7 @@
 			<if test="level != null">`level` = #{level}, </if>
 			<if test="type != null">`type` = #{type}, </if>
 			<if test="frontName != null">`front_name` = #{frontName}</if>
+			<if test="share != null">`share` = #{share}</if>
 		</set>
 		where id = #{id}
 	</update>

+ 53 - 4
kmall-admin/src/main/resources/mybatis/mapper/statistics/MonthlyCustomersDao.xml

@@ -9,7 +9,7 @@
 		m.merch_name AS merchName,
 		sum( o.order_price ) AS totalSales,
 		sum( og.number) as totalNumber,
-		count(DISTINCT o.id) as totalCustomers,
+		count(DISTINCT o.pay_mobile) as totalCustomers,
 		DATE_FORMAT(o.pay_time,'%Y-%m') as yearAndMonth
 		FROM
 		mall_order o
@@ -55,20 +55,27 @@
 
 	<select id="top10ForProduct" resultType="com.kmall.admin.entity.MonthlySalesGrowthEntity" >
 		SELECT
+			m.merch_name AS merchName,
 			og.goods_name as goodsName,
 			og.goods_specification_name_value as goodsSpecificationNameValue,
 			sum( og.number ) AS sales
 		FROM
 			mall_order o
+			LEFT JOIN mall_merch m ON o.merch_sn = m.merch_sn
 			LEFT JOIN mall_order_goods og ON o.id = og.order_id
 		<where>
-			1 = 1
+			o.is_onffline_order = '1'
+			AND o.order_biz_type = '10'
+			AND o.pay_status = '2'
 			<if test="month != null and month.trim() != ''">
 				and DATE_FORMAT(o.pay_time,'%Y-%m')  = #{month}
 			</if>
 			<if test="week != null and week.trim() != ''">
 				and weekofyear(o.pay_time)  = #{week}
 			</if>
+			<if test="merchSn != null">
+				and m.merch_sn = #{merchSn}
+			</if>
 		</where>
 		GROUP BY
 			og.sku
@@ -79,21 +86,28 @@
 
 	<select id="top10ByBrand" resultType="com.kmall.admin.entity.MonthlySalesGrowthEntity" >
 		SELECT
+			m.merch_name AS merchName,
 			g.brand as brand,
 			og.goods_specification_name_value as goodsSpecificationNameValue,
 			sum( og.number ) AS sales
 		FROM
 			mall_order o
+			LEFT JOIN mall_merch m ON o.merch_sn = m.merch_sn
 			LEFT JOIN mall_order_goods og ON o.id = og.order_id
 			LEFT JOIN mall_goods g ON g.id = og.goods_id
 		<where>
-			1 = 1
+			o.is_onffline_order = '1'
+			AND o.order_biz_type = '10'
+			AND o.pay_status = '2'
 			<if test="startDate != null and startDate.trim() != ''">
 				and DATE_FORMAT(o.pay_time,'%Y-%m-%d')  &gt;= #{startDate}
 			</if>
 			<if test="endDate != null and endDate.trim() != ''">
 				and DATE_FORMAT(o.pay_time,'%Y-%m-%d') &lt;= #{endDate}
 			</if>
+			<if test="merchSn != null">
+				and m.merch_sn = #{merchSn}
+			</if>
 		</where>
 		GROUP BY
 			g.brand
@@ -104,22 +118,29 @@
 
 	<select id="top10BySupplier" resultType="com.kmall.admin.entity.MonthlySalesGrowthEntity" >
 		SELECT
+			m.merch_name AS merchName,
 			s.child_supplier_name as supplier,
 			og.goods_specification_name_value as goodsSpecificationNameValue,
 			sum( og.number ) AS sales
 		FROM
 			mall_order o
+			LEFT JOIN mall_merch m ON o.merch_sn = m.merch_sn
 			LEFT JOIN mall_order_goods og ON o.id = og.order_id
 			LEFT JOIN mall_goods g ON g.id = og.goods_id
 			LEFT JOIN mall_supplier s ON g.supplier_id = s.id
 		<where>
-			1 = 1
+			o.is_onffline_order = '1'
+			AND o.order_biz_type = '10'
+			AND o.pay_status = '2'
 			<if test="startDate != null and startDate.trim() != ''">
 				and DATE_FORMAT(o.pay_time,'%Y-%m')  &gt;= #{startDate}
 			</if>
 			<if test="endDate != null and endDate.trim() != ''">
 				and DATE_FORMAT(o.pay_time,'%Y-%m') &lt;= #{endDate}
 			</if>
+			<if test="merchSn != null">
+				and m.merch_sn = #{merchSn}
+			</if>
 		</where>
 		GROUP BY
 		s.id
@@ -127,4 +148,32 @@
 			sales desc
 		LIMIT 10
 	</select>
+
+	<select id="salesByCategory" resultType="com.kmall.admin.entity.MonthlySalesGrowthEntity">
+		SELECT
+			sum( og.number ) AS sales,
+			cg.NAME AS cgname
+		FROM
+			mall_order o
+			LEFT JOIN mall_merch m ON o.merch_sn = m.merch_sn
+			LEFT JOIN mall_order_goods og ON o.id = og.order_id
+			LEFT JOIN mall_product_store_rela a ON a.goods_id = og.goods_id
+			LEFT JOIN mall_category cg ON a.category_id = cg.id
+		<where>
+			<if test="startDate != null and startDate.trim() != ''">
+				and DATE_FORMAT(o.pay_time,'%Y-%m')  &gt;= #{startDate}
+			</if>
+			<if test="endDate != null and endDate.trim() != ''">
+				and DATE_FORMAT(o.pay_time,'%Y-%m') &lt;= #{endDate}
+			</if>
+			<if test="merchSn != null">
+				and m.merch_sn = #{merchSn}
+			</if>
+		</where>
+		GROUP BY
+			cg.parent_id
+
+		limit 20
+	</select>
+
 </mapper>

+ 56 - 0
kmall-admin/src/main/webapp/WEB-INF/page/sale/salesByCategory.html

@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Monthly Customers & Avg Basket</title>
+    #parse("sys/header.html")
+    <style>
+        .coldiv {
+            background-color: #f8f8f9;
+        }
+
+        body {
+            color: #515a6e;
+        }
+
+        #refreshTime, #storeId, #categoryId {
+            width: 100px;
+        }
+
+        #merchSn {
+            width: 300px;
+        }
+
+        i {
+            font-size: 20px;
+        }
+
+        input {
+            border: 1px #dcdee2 solid;
+            border-radius: 5px;
+            outline-color: #5cadff;
+        }
+    </style>
+</head>
+<body>
+<!--<div id="rrapp" v-cloak>-->
+    <header class="main-header">
+        <div class="container-fluid  coldiv">
+            <div class="row" style="border:0;margin-bottom:10px">
+            <span>日期:</span>
+            <input type="month" name="startDate" id="startDate"/>&nbsp;
+            <input type="month" name="endDate" id="endDate" />&nbsp;
+                <input type="button" name="queryButton" value="查询" onclick="queryMonthly()" />
+            </div>
+        </div>
+    </header>
+    <div class="row">
+        <div class="col-md-12  col-sm-12  col-xs-12 charts6">
+            <div id="main3" style="height: 200px;"></div>
+        </div>
+    </div>
+    <script src="${rc.contextPath}/js/sale/echarts.js"></script>
+    <script src="${rc.contextPath}/js/sale/salesByCategory.js"></script>
+<!--</div>-->
+</body>
+</html>

+ 11 - 1
kmall-admin/src/main/webapp/WEB-INF/page/shop/category.html

@@ -47,7 +47,17 @@
                     <i-option v-for="merch in merchList" :value="merch.merchSn" :key="merch.merchSn">{{merch.merchName}}</i-option>
                 </i-select>
             </Form-item>
-            <Form-item label="门店" prop="storeId">
+            <Form-item label="是否共享类别" prop="level">
+                <Radio-group v-model="category.share">
+                    <Radio label="1">
+                        <span>是</span>
+                    </Radio>
+                    <Radio label="2">
+                        <span>否</span>
+                    </Radio>
+                </Radio-group>
+            </Form-item>
+            <Form-item  v-if="category.share == '2'"  label="门店" prop="storeId">
                 <i-select v-model="category.storeId" placeholder="门店" label-in-value  @on-change="getCategory">
                     <i-option v-for="store in storeList" :value="store.id" :key="store.id">{{store.storeName}}</i-option>
                 </i-select>

+ 335 - 0
kmall-admin/src/main/webapp/js/sale/salesByCategory.js

@@ -0,0 +1,335 @@
+
+var myChart;
+// 基于准备好的dom,初始化echarts实例
+var dChart = echarts.init(document.getElementById('main3'));
+// 指定图表的配置项和数据
+function dFun(dateList) {
+    dChart.setOption({
+        title: {
+            text: 'SALES BY CATEGORY',
+            left: 'center'
+        },
+        tooltip: {
+            trigger: 'item',
+            formatter: '{a} <br/>{b} : {c} ({d}%)'
+        },
+        // legend: {
+        //     orient: 'vertical',
+        //     left: 'left',
+        //     data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']
+        // },
+        series: [
+            {
+                name: '类目',
+                type: 'pie',
+                radius: '55%',
+                center: ['50%', '60%'],
+                data: dateList,
+                emphasis: {
+                    itemStyle: {
+                        shadowBlur: 10,
+                        shadowOffsetX: 0,
+                        shadowColor: 'rgba(0, 0, 0, 0.5)'
+                    }
+                }
+            }
+        ]
+
+    });
+}
+
+function queryMonthly(){
+    var startDate = document.getElementById("startDate").value;
+    var endDate = document.getElementById("endDate").value;
+
+    var param = {
+        startDate:startDate,
+        endDate:endDate
+    };
+    // 折线图
+    $.ajax({
+        url: "../monthly/salesByCategory",
+        data: param,
+        contentType:"application/x-www-form-urlencoded",
+        type: 'POST',
+        success: function(data) {
+            console.log(JSON.stringify(data.list))
+            dFun(data.list);
+
+        },
+    });
+
+}
+
+
+let vm = new Vue({
+    el: '#rrapp',
+    data: {
+        date: '',
+        refreshTime: 10,
+        type: 'store',
+        refreshCount:0,
+
+        storeId: '',
+        merchSn: '',
+        merchName: '',
+        storeName: '',
+        salesDate: '',
+        totalSales: '',
+        actualSales: '',
+        preferentialLoss: '',
+        totalCost: '',
+        grossProfit: '',
+        grossProfitRatio: '',
+        proportion: '',
+        guestNumber: '',
+        guestUnitPrice: '',
+        lastSalesTime: '',
+        categoryId: '',
+        categoryName: '',
+
+        showList: false,
+        compareDate: '',//比较日期
+        storeId2: '',
+        merchSn2: '',
+        merchName2: '',
+        storeName2: '',
+        salesDate2: '',
+        totalSales2: '',
+        actualSales2: '',
+        preferentialLoss2: '',
+        totalCost2: '',
+        grossProfit2: '',
+        grossProfitRatio2: '',
+        proportion2: '',
+        guestNumber2: '',
+        guestUnitPrice2: '',
+        lastSalesTime2: '',
+        intervalId: 0,
+        isCompare: false,
+        compare2: '',
+
+
+        temp: {
+            date: '',
+            refreshTime: 10,
+            type: '',
+            storeId: '',
+            merchSn: '',
+            salesDate: '',
+            categoryId: ''
+        },
+
+
+        rateList: [
+            {
+                id: '0',
+                name: '含税'
+            },
+            {
+                id: '1',
+                name: '不含税'
+
+            }
+        ],
+        projectList: [
+            {
+                id: '0',
+                name: '销售总额'
+            },
+            {
+                id: '1',
+                name: '客单价'
+
+            }
+        ],
+        seriesTypeList: [
+            {
+                id: 'bar',
+                name: '垂直柱状图'
+            },
+            {
+                id: 'line',
+                name: '折线图'
+
+            },
+            {
+                id: 'pie',
+                name: '饼图'
+
+            }
+        ],
+        formatsList: [
+            {
+                id: '0',
+                name: '<全部>'
+            },
+            {
+                id: '1',
+                name: '<非全部>'
+
+            }
+        ],
+        salesList: [
+            {
+                store: {storeId: '11106', storeName: '前海店'},
+                totalSales: 43046.18,
+                actualSales: 35593.46
+            }
+        ],
+        dept: {
+            deptId: '',
+            deptName: ''
+        },
+        category: {
+            categoryId: '',
+            categoryName: ''
+        },
+        seriesList: [], //保存饼图数据
+        seriesList2: [],
+        xAxisList: {    //主要用于保存 启动刷新时的条件和数据
+            storeId: '',
+            storeName: '',
+            merchSn: '',
+            merchName: '',
+            totalSales: '',
+            actualSales: '',
+            preferentialLoss: '',
+            totalCost: '',
+            grossProfit: '',
+            grossProfitRatio: '',
+            proportion: '',
+            guestNumber: '',
+            guestUnitPrice: '',
+            lastSalesTime: '',
+
+            salesDate: '0',
+            projectSelect: '0',
+            type:''
+        },
+        dataList: [],
+        tooltip: {},
+        today:''
+    },
+    created() {
+        this.rateSelect = this.rateList[0].id;
+        this.projectSelect = this.projectList[0].id;
+        this.seriesTypeSelect = this.seriesTypeList[0].id;
+        this.formatsSelect = this.formatsList[0].id;
+    },
+    methods: {
+
+        seriesTypeSwitch: function () {
+            console.log(vm.seriesTypeSelect);
+        },
+        showEcharts: function () {
+            // 基于准备好的dom,初始化echarts实例
+            myChart = echarts.init(document.getElementById('main'));
+            myChart.clear();
+            //加载动画
+            myChart.showLoading();
+
+
+            //项目下拉框判断       6-19,饼图设置 vm.xAxisList
+            var temp = '';
+            if (vm.xAxisList.projectSelect == '0') {
+                if (vm.xAxisList.type == 'dept') {
+                    temp = '[' + vm.xAxisList.merchSn + ']' + vm.xAxisList.merchName + '/销售总额:' + vm.xAxisList.totalSales + '元(' + vm.xAxisList.salesDate + ')';
+                } else {
+                    temp = '[' + vm.xAxisList.storeId + ']' + vm.xAxisList.storeName + '/销售总额:' + vm.xAxisList.totalSales + '元(' + vm.xAxisList.salesDate + ')';
+                }
+                vm.seriesList2.push(vm.xAxisList.totalSales);
+                vm.seriesList.push({value: vm.xAxisList.totalSales, name: temp});
+
+            } else if (vm.xAxisList.projectSelect == '1') {
+                if (vm.xAxisList.type == 'dept') {
+                    temp = '[' + vm.xAxisList.merchSn + ']' + vm.xAxisList.merchName + '/客单价:' + vm.xAxisList.guestUnitPrice + '元(' + vm.xAxisList.salesDate + ')';
+                } else {
+                    temp = '[' + vm.xAxisList.storeId + ']' + vm.xAxisList.storeName + '/客单价:' + vm.xAxisList.guestUnitPrice + '元(' + vm.xAxisList.salesDate + ')';
+                }
+                vm.seriesList2.push(vm.xAxisList.guestUnitPrice);
+                vm.seriesList.push({value: vm.xAxisList.guestUnitPrice, name: temp});
+
+            }
+
+            vm.dataList = [temp];
+
+            if (vm.seriesTypeSelect == "pie") {
+                vm.seriesList2 = vm.seriesList.concat();
+            }
+
+            // console.log('vm.seriesList2');
+            // console.log(vm.seriesList2);
+
+            // 指定图表的配置项和数据
+            //销售量
+            var option = {
+                title: {
+                    // textAlign: 'right',
+                    text: 'Monthly Customers & Avg Basket',
+                    x: 'center',
+                    textStyle: {
+                        //文字颜色
+                        color: '#17233d',
+                        //字体风格,'normal','italic','oblique'
+                        fontStyle: 'normal',
+                        //字体粗细 'normal','bold','bolder','lighter',100 | 200 | 300 | 400...
+                        fontWeight: 'bold',
+                        //字体系列
+                        fontFamily: 'sans-serif',
+                        //字体大小
+                        fontSize: 28
+                    }
+                },
+                tooltip: {
+                    formatter: function (params) {
+                        return params.name;
+                    }
+                },
+                legend: {
+                    data: ['/销售总额']
+                },
+                xAxis: {
+                    data: vm.dataList,
+                    axisLabel: {
+                        interval: 0
+                    }
+                },
+                yAxis: {},
+                series: [{
+                    barMaxWidth: '20%',
+                    barWidth: '50%',
+                    radius: '55%',
+                    roseType: 'angle',
+                    type: vm.seriesTypeSelect,
+                    color: ['#dd6b66', '#759aa0'],
+                    data: vm.seriesList2
+                }]
+            };
+
+            //隐藏
+            myChart.hideLoading();
+            // 使用刚指定的配置项和数据显示图表。
+            myChart.setOption(option);
+
+        },
+        tooltipFormatter: function () {
+            if (vm.type == 'dept') {
+                return '[' + vm.merchSn + ']' + vm.merchName + '/销售总额:' + vm.totalSales + '元(' + vm.salesDate + ')';
+            }
+            return '[' + vm.storeId + ']' + vm.storeName + '/销售总额:' + vm.totalSales + '元(' + vm.salesDate + ')';
+        },
+        showTable: function (postParam) {
+
+            console.log(postParam);
+
+            $("#jqGrid").jqGrid('setGridParam', {
+                postData: postParam
+
+            }).trigger("reloadGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
+        },
+        switchProjectView: function () {
+            console.log(vm.projectSelect);
+        }
+    }
+});

+ 15 - 4
kmall-admin/src/main/webapp/js/shop/category.js

@@ -111,7 +111,8 @@ var vm = new Vue({
         showCopyList: true,
         showViewList: false,
         copyCategoryDto:{categoryId:0,storeList: "",categoryList:""},
-        level: ''
+        level: '',
+        merchSn:''
     },
     methods: {
         copyCategory: function(id, level){
@@ -275,7 +276,11 @@ var vm = new Vue({
         getInfo: function (id) {
             $.get("../category/info/" + id, function (r) {
                 vm.category = r.category;
-                this.getParentCategory(r.category.storeId);
+                if(vm.category.share === 2){
+                    this.getParentCategory(r.category.storeId,null);
+                }else{
+                    this.getParentCategory(null,r.category.storeId.merchSn);
+                }
             });
         },
         getStoresByMerch: function (opt) {
@@ -283,22 +288,28 @@ var vm = new Vue({
             $.get("../store/getStoresByMerch?merchSn=" + value, function (r) {
                 vm.storeList = r.list;
             });
+            vm.getParentCategory(null,value);
         },
         getMerchList: function() {
             $.get("../merch/queryAll", function (r) {
                 vm.merchList = r.list;
             });
         },
-        getParentCategory: function (storeId) {
+        getParentCategory: function (storeId,merchSn) {
             if(storeId){
                 $.get("../category/getCategorySelect?storeId="+storeId, function (r) {
                     vm.categoryList = r.list;
                 });
+            }else{
+                $.get("../category/getCategorySelect?merchSn="+merchSn+"&share=1", function (r) {
+                    vm.categoryList = r.list;
+                });
             }
+
         },
         getCategory: function (opt) {
             var storeId = opt.value;
-            vm.getParentCategory(storeId);
+            vm.getParentCategory(storeId,null);
         },
         reload: function (event) {
             vm.showViewList = false;

+ 8 - 2
kmall-admin/src/main/webapp/js/shop/storeProductStock.js

@@ -220,7 +220,8 @@ var vm = new Vue({
         // 批次编号列表
         batchList:[],
         // 当前选择的批次对象
-        nowBatch:{}
+        nowBatch:{},
+        merchSn:''
     },
     methods: {
         getIsSupplierShowByThirdSn: function () {
@@ -534,6 +535,7 @@ var vm = new Vue({
                 }
                 vm.specification = vm.productStoreRela.specification;
                 vm.storeId = vm.productStoreRela.storeId;
+                vm.merchSn = vm.productStoreRela.merchSn;
             });
         },
         getGoods: function (opt) {
@@ -567,9 +569,13 @@ var vm = new Vue({
             }
         },
         getCategories: function (storeId) {
-            $.get("../category/getCategorySelect?isShow=1&storeId=" + storeId, function (r) {
+
+            $.get("../category/getCategorySelect?isShow=1&merchSn=" + vm.merchSn, function (r) {
                 vm.categories = r.list;
             });
+            // $.get("../category/getCategorySelect?isShow=1&storeId=" + storeId, function (r) {
+            //     vm.categories = r.list;
+            // });
         },
         getBrand: function (categoryId) {
             $.get("../brand/queryAll?categoryId=" + categoryId, function (r) {