duhe
2024-07-10 1df38c9e76a48e446e433e1f86f5f0442c53f686
销售排行报表
2个文件已修改
1个文件已添加
621 ■■■■■ 已修改文件
WebTM/Properties/PublishProfiles/JFTM.pubxml.user 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/应收管理/报表分析/Xs_SellOutMoneyRangeReport.html 611 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/Properties/PublishProfiles/JFTM.pubxml.user
@@ -18,10 +18,10 @@
      <publishTime>01/28/2016 14:22:24</publishTime>
    </File>
    <File Include="bin/WebTM.dll">
      <publishTime>07/10/2024 14:02:42</publishTime>
      <publishTime>07/10/2024 15:01:41</publishTime>
    </File>
    <File Include="bin/WebTM.pdb">
      <publishTime>07/10/2024 14:02:42</publishTime>
      <publishTime>07/10/2024 15:01:41</publishTime>
    </File>
    <File Include="HtmlPage1.html">
      <publishTime>04/11/2023 16:34:42</publishTime>
@@ -1611,7 +1611,7 @@
      <publishTime>12/15/2023 16:23:31</publishTime>
    </File>
    <File Include="views/index_QiaoYi.html">
      <publishTime>07/10/2024 14:06:34</publishTime>
      <publishTime>07/10/2024 14:48:39</publishTime>
    </File>
    <File Include="views/IpadIndex.html">
      <publishTime>07/08/2024 08:51:25</publishTime>
@@ -3698,6 +3698,9 @@
    <File Include="views/应收管理/报表分析/Xs_CusBalanceReport_HIsUsingBalanceEntry.html">
      <publishTime>03/26/2024 16:28:56</publishTime>
    </File>
    <File Include="views/应收管理/报表分析/Xs_SellOutMoneyRangeReport.html">
      <publishTime>07/10/2024 15:32:58</publishTime>
    </File>
    <File Include="views/应收管理/报表分析/YS_ContactBalReport.html">
      <publishTime>03/28/2024 12:19:04</publishTime>
    </File>
WebTM/WebTM.csproj
@@ -355,6 +355,7 @@
    <Content Include="views\基础资料\基础资料\Gy_Maintain_Excel.html" />
    <Content Include="views\基础资料\基础资料\Gy_DotCheck_Excel.html" />
    <Content Include="views\基础资料\生产基础资料\Gy_Process_Excel.html" />
    <Content Include="views\应收管理\报表分析\Xs_SellOutMoneyRangeReport.html" />
    <Content Include="views\模治具管理\器具报表\Sc_MouldResumeCheckQuery.html" />
    <Content Include="views\模治具管理\器具点检规程单\Sc_MouldDotCheckRuleBillList_PDA.html" />
    <Content Include="views\模治具管理\模具其他入库单\Sc_MouldOtherInBillList_PDA.html" />
WebTM/views/Ó¦ÊÕ¹ÜÀí/±¨±í·ÖÎö/Xs_SellOutMoneyRangeReport.html
New file
@@ -0,0 +1,611 @@
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>不良原因分析报表</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src='../../../layuiadmin/lib/extend/echarts.min.js'></script>
    <style type="text/css">
        input.layui-input.layui-unselect {
            padding-right: 0;
        }
    </style>
</head>
<body>
    <div class="layui-fluid">
        <div class="layui-col-md12">
            <div class="layui-card" style="padding: 1px;">
                <div class="layui-card-body" style="padding: 1px;">
                    <form class="layui-form" action="" lay-filter="component-form-group">
                        <div class="layui-collapse">
                            <div class="layui-colla-item">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;">å¹´</label>
                                    <div class="layui-input-block" style="margin-left: 120px; width: 85px;">
                                        <select name="HYear" id="HYear" lay-verify="HYear">
                                            <!--动态渲染年份-->
                                        </select>
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                </button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">重置</button>
                                <div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:10px;">
                                        <!--其他条件-->
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div>
                            <div style="width:99.5%;height:calc(70vh);margin-top:10px;">
                                <div id="histogram" style="width:65%;height:calc(70vh);float:left">
                                </div>
                                <div id="PieChart" style="width:34%;height:calc(70vh);float:left;margin-left:5px;">
                                </div>
                            </div>
                            <div style="width:99%;height:calc(50vh);">
                                <table class="" id="mainTable" lay-filter="mainTable"></table>
                            </div>
                        </div>
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_export" id="get_export"><i class="layui-icon layui-icon-export"></i>导出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-exit"><i class="layui-icon layui-icon-return"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="HideColumn"><i class="layui-icon layui-icon-form"></i>隐藏列设置</button>
                            </div>
                        </script>
                    </form>
                </div>
            </div>
        </div>
    </div>
    <script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], function () {
            //#region å…¬å…±å˜é‡
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
                , table = layui.table
                , form = layui.form
                , element = layui.element
                , laypage = layui.laypage
                , laydate = layui.laydate
                , util = layui.util
            //查询条件
            var sWhere = "";
            var option = [];
            var HModName = "Xs_SellOutMoneyRangeReport";
            var ins;                        //用于导出excel
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化界面
            set_ClearBill();
            //#endregion
            //#region ã€å›¾å½¢ã€‘
            function set_Graphics() {
                //#region ã€æŸ±çŠ¶å›¾ã€‘
                var app = {};
                var chartDom = document.getElementById('histogram');
                var myChart = echarts.init(chartDom);
                var option_ZZT;
                //#region [柱状图布局样式]
                const posList = [
                    'left',
                    'right',
                    'top',
                    'bottom',
                    'inside',
                    'insideTop',
                    'insideLeft',
                    'insideRight',
                    'insideBottom',
                    'insideTopLeft',
                    'insideTopRight',
                    'insideBottomLeft',
                    'insideBottomRight'
                ];
                app.configParameters = {
                    rotate: {
                        min: -90,
                        max: 90
                    },
                    align: {
                        options: {
                            left: 'left',
                            center: 'center',
                            right: 'right'
                        }
                    },
                    verticalAlign: {
                        options: {
                            top: 'top',
                            middle: 'middle',
                            bottom: 'bottom'
                        }
                    },
                    position: {
                        options: posList.reduce(function (map, pos) {
                            map[pos] = pos;
                            return map;
                        }, {})
                    },
                    distance: {
                        min: 0,
                        max: 100
                    }
                };
                app.config = {
                    rotate: 90,
                    align: 'left',
                    verticalAlign: 'middle',
                    position: 'insideBottom',
                    distance: 15,
                    onChange: function () {
                        const labelOption = {
                            rotate: app.config.rotate,
                            align: app.config.align,
                            verticalAlign: app.config.verticalAlign,
                            position: app.config.position,
                            distance: app.config.distance
                        };
                        myChart.setOption({
                            series: [
                                {
                                    label: labelOption
                                },
                                {
                                    label: labelOption
                                },
                                {
                                    label: labelOption
                                },
                                {
                                    label: labelOption
                                }
                            ]
                        });
                    }
                };
                const labelOption = {
                    show: true,
                    position: 'top'
                };
                //#endregion
                //柱状图绑定数据
                var HCusName = [];//客户名称
                var HJanuary = []; //一月份数据
                var HFebruary = []; //二月份数据
                var HMarch = []; //三月份数据
                var HApril = []; //四月份数据
                var HMay = []; //五月份数据
                var HJune = []; //六月份数据
                var HJuly = []; //七月份数据
                var HAugust = []; //八月份数据
                var HSeptember = []; //九月份数据
                var HOctober = []; //十月份数据
                var HNovember = []; //十一月份数据
                var HDecember = []; //十二月份数据
                var HAllYear = [];  //全年数据
                var HQty1 = option.data.length;//柱状图根据合计降序排序显示前n条数据
                for (let i = 0; i < HQty1; i++) {
                    HCusName.push(option.data[i].业务员);
                    HJanuary.push(option.data[i]['1月']);
                    HFebruary.push(option.data[i]['2月']);
                    HMarch.push(option.data[i]['3月']);
                    HApril.push(option.data[i]['4月']);
                    HMay.push(option.data[i]['5月']);
                    HJune.push(option.data[i]['6月']);
                    HJuly.push(option.data[i]['7月']);
                    HAugust.push(option.data[i]['8月']);
                    HSeptember.push(option.data[i]['9月']);
                    HOctober.push(option.data[i]['10月']);
                    HNovember.push(option.data[i]['11月']);
                    HDecember.push(option.data[i]['12月']);
                    HAllYear.push(option.data[i]['合计']);
                }
                option_ZZT = {
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'shadow'
                        }
                    },
                    legend: {
                        data: ['全年销售额度']
                    },
                    toolbox: {
                        show: true,
                        orient: 'vertical',
                        left: 'right',
                        top: 'center',
                        feature: {
                            mark: { show: true },
                            dataView: { show: true, readOnly: false },
                            magicType: { show: true, type: ['line', 'bar', 'stack'] },
                            restore: { show: true },
                            saveAsImage: { show: true }
                        }
                    },
                    xAxis: [
                        {
                            type: 'category',
                            axisTick: { show: true },
                            data: HCusName
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value'
                        }
                    ],
                    series: [
                        {
                            name: '全年销售额度',
                            type: 'bar',
                            barGap: 0,
                            label: labelOption,
                            emphasis: {
                                focus: 'series'
                            },
                            data: HAllYear
                        }
                    ]
                };
                option_ZZT && myChart.setOption(option_ZZT);
                //#endregion
                //#region ã€é¥¼å›¾ã€‘
                var chartDom = document.getElementById('PieChart');
                var myChart = echarts.init(chartDom);
                var option_BT;
                var HQty2 = option.data.length;//饼状图根据合计降序排序显示前n条数据
                var option_BT_XData = [];
                for (let i = 0; i < HQty2; i++) {
                    option_BT_XData.push({ value: option.data[i][(Number(new Date().getMonth()) + Number(1)) + "月"], name: option.data[i].业务员 });
                }
                option_BT = {
                    title: {
                        text: $("#HYear").val() + 'å¹´' + (Number(new Date().getMonth()) + Number(1)) + '月份销售额分布图',
                        left: 'center'
                    },
                    tooltip: {
                        trigger: 'item'
                    },
                    legend: {
                        top: 'bottom'
                    },
                    series: [
                        {
                            name: '销售额度',
                            type: 'pie',
                            radius: '50%',
                            data: option_BT_XData,
                            emphasis: {
                                itemStyle: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            }
                        }
                    ]
                };
                option_BT && myChart.setOption(option_BT);
            //#endregion
            }
            //#region ç‚¹å‡»äº‹ä»¶åŒ…括on form事件等
            //头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //导出excel
                    case 'get_export':
                        get_Export();
                        break;
                    //退出
                    case 'btn-exit': Pub_Close(2);
                        break;
                    //隐藏列设置
                    case 'HideColumn':
                        get_HideColumn();
                        break;
                };
            });
            //重置按钮
            form.on('submit(btnReSearch)', function (data) {
                set_ClearQuery();
            });
            //查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
            //初始化界面
            function set_ClearBill() {
                Year();
                //初始化日期
                //初始化时间
                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
                //初始化表格
                set_InitGrid();
                //加载数据到网格
                get_FastQuery();
                //DisPlay_HideColumn();
                set_Graphics();
            }
            //初始化表格
            function set_InitGrid() {
                //option = {
                //    elem: '#mainTable'
                //    , toolbar: '#toolbarDemo'
                //    , cellMinWidth: 120
                //    , limit: Number.MAX_VALUE // æ•°æ®è¡¨æ ¼é»˜è®¤å…¨éƒ¨æ˜¾ç¤º
                //    , height: 'full-70'
                //};
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , height: 'full-320'
                    , page: true
                    , totalRow: true
                    , cellMinWidth: 90
                    , limit: 50
                    , limits: [50, 500, 5000, 20000]
                }
            }
            //å¹´
            function Year() {
                var yyyy = new Date().getFullYear();
                var YearOption = "";
                for (var i = 0; i <= 10; i++) {
                    YearOption += '<option  style="color:blue;" value="' + (yyyy - 5 + i) + '">' + (yyyy - 5 + i) + '</option>';
                }
                $("#HYear").append(YearOption);
                $("#HYear").val(yyyy)
                form.render('select');
            }
            //加载网格
            function get_Display(sWhere) {
                sWhere = $("#HYear").val();
                var wait = layer.load();//遮罩
                $.ajax({
                    url: GetWEBURL() + '/MaterOutEntryReport/Xs_SellOutMoneyRangeReport',
                    type: "GET",
                    async: false,
                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        var col = [];
                        if (data1.count == 1) {
                            var data = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '汇总' });
                            //判断是否是纯英文
                            var patrn = new RegExp("[\u4E00-\u9FA5]+");
                            for (var i = 0; i < data.length; i++) {
                                if (!patrn.test(data[i].name)) {
                                    col.push({ field: data[i].name, title: data[i].name, hide: true }); //隐藏列
                                }
                                else {
                                    switch (data[i].Type) {
                                        case 'DateTime':
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 120 });
                                            break;
                                        default:
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true, totalRow: true , width: 120 });
                                    }
                                }
                            }
                            option.cols = [col];
                            option.data = data1.data;
                            ins = table.render(option);
                            layer.close(wait);
                        } else {
                            layer.close(wait);
                            layer.alert(data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(wait);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //快速过滤
            function get_FastQuery() {
                var HBeginDate = $("#HBeginDate").val();
                var HEndDate = $("#HEndDate").val();
                sWhere = "'" + HBeginDate + "','" + HEndDate + "'";
                get_Display(sWhere);
                //调用接口后清空sWhere缓存
                sWhere = "";
                set_Graphics();
            }
            //#region å¯¼å‡ºExecel
            function get_Export() {
                var ModRightNameCheck = "Xs_SellOutMoneyRangeReport_ExportExcel";
                //逻辑审核方法
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + "/LMES/getReportByModRightNameCheck", //方法所在页面和方法名
                    data: { "ModRightNameCheck": ModRightNameCheck, "user": sessionStorage["HUserName"] },
                    success: function (result) {
                        if (result.count == 1) {
                            table.exportFile(ins.config.id, option.data, "xls");
                        } else {
                            layer.alert("当前模块没有导出权限!", { icon: 5 });
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //#endregion
            //重置过滤条件
            function set_ClearQuery() {
                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
                sWhere = " ";
                get_FastQuery();
            }
            //隐藏列设置
            function get_HideColumn() {
                var colName = "";
                for (var i = 1; i < option.cols[0].length - 1; i++) {
                    colName += option.cols[0][i]["title"] + ",";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "隐藏列设置"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["50%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: ['../../基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //刷新表格数据
                        DisPlay_HideColumn();
                        //更新表格缓存的数据
                        layer.close(index);//关闭弹窗
                    }
                })
            }
            //显示列数据
            function DisPlay_HideColumn() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                    type: "GET",
                    data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            var titleData = [];//不需要显示的字段 å¯æ‰©å±•
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option.cols[0].length - 2; i++) {
                                var dataCols = dataCol[i].split('|');
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option.cols[0][i + 1]["hide"] = true;
                                }
                                //设置内容字体大小
                                if (data1.data[0].HFontSize != 0) {
                                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option.cols[0][i + 1]["style"] = "font-size:100%";
                                }
                                //设置列宽
                                if (dataCols[3] > 0) {
                                    option.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //显示列
                                if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
                                    option.cols[0][i + 1]["hide"] = false;
                                }
                                //字体所在位置(å·¦ å±…中 å³)
                                switch (dataCols[2]) {
                                    case "L":
                                        option.cols[0][i + 1]["align"] = "left";
                                        break;
                                    case "M":
                                        option.cols[0][i + 1]["align"] = "center";
                                        break;
                                    case "R":
                                        option.cols[0][i + 1]["align"] = "right";
                                        break;
                                }
                            }
                            //取消冻结列
                            for (var i = 1; i < option.cols[0].length - 1; i++) {
                                if (option.cols[0][i]["fixed"] != null) {
                                    option.cols[0][i]["fixed"] = null;
                                }
                                else {
                                    break;
                                }
                            }
                            //冻结列
                            if (data1.data[0].HFixCols != 0) {
                                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                    if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
                                        data1.data[0].HFixCols += 1;
                                    }
                                    option.cols[0][i + 1]["fixed"] = "left";
                                }
                            }
                            table.render(option);
                        } else {
                            table.render(option);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                })
            }
            //#endregion
        });
    </script>
</body>
</html>