前端实例:页面布局1(后端数据实现)

效果图

注:这里用到后端语言php(页面是.php文件),提取纯html也可以用

inemployee_index.php

php 复制代码
<?php
include('includes/session.inc');
$Title = _('内部员工首页');
$ViewTopic = '内部员工首页';
$BookMark = '内部员工首页';
include('includes/header.inc');
include('includes/SQL_CommonFunctions.inc');
?>
<!-- 核心内容 -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>内部员工首页</title>
    <link rel="stylesheet" href="css/indexpage/inemployee_index.css">
    <script src="js/echarts.js" type="text/javascript"></script>
</head>

<body>
    <script>
        function review(type) {
            if (type == "11") {
                // 账号注册审核
                window.open('RegReview.php', '_blank');
            }
            if (type == "22") {
                // 员工注册审核
                window.open('HremployeeRegReview.php', '_blank');
            }
            if (type == "33") {
                // 出差信息审核
                window.open('BusinessTripReview.php', '_blank');
            }
            if (type == "44") {
                // 出差信息审核
                window.open('LeaveReview.php', '_blank');
            }
            if (type == "55") {
                // 出差信息审核
                window.open('SearchSoForApprove.php', '_blank');
            }
            if (type == "66") {
                // 出差信息审核
                window.open('PRApproved.php', '_blank');
            }
            if (type == "77") {
                // 出差信息审核
                window.open('POApproved.php', '_blank');
            }
            if (type == "88") {
                // 出差信息审核
                window.open('DisciplinaryRecordReview.php', '_blank');
            }
        }
    </script>
    <div class="all">
        <div class="all_position">
            <!-- 第一个模块 -->
            <div class="module1">
                <!-- 第一行 -->
                <div class="line1">
                    <div class="line1_position">
                        <div class="line1_1">
                            <div class="line11_item" onclick="review(11)">
                                <div class="line11_item_icon">
                                    <image src="img/file.png" class="img" />
                                </div>
                                <div class="line11_item_text">
                                    <div class="text_count">
                                        <?php
                                        $sql11 = "select count(userid) count from regist_user where user_type = '" . $_SESSION['user_type'] . "' and status = '待审核'";
                                        $result11 = DB_query($sql11, $db);
                                        // 检查查询结果是否为空
                                        if (DB_num_rows($result11) > 0) {
                                            $rown11 = DB_fetch_array($result11);
                                            $count11 =  $rown11['count'];
                                        } else {
                                            $count11 = 0;
                                        }
                                        ?>
                                        <div class="span1"><?php echo $count11 ?></div>
                                        <div class="span2">件</div>
                                    </div>
                                    <div class="text_title">
                                        <div class="span1">账号注册待审核</div>
                                    </div>
                                </div>
                            </div>
                            <div class="line11_item" onclick="review(22)">
                                <div class="line11_item_icon">
                                    <image src="img/file.png" class="img" />
                                </div>
                                <div class="line11_item_text">
                                    <div class="text_count">
                                        <?php
                                        $sql22 = "select count(id) count from hr_employees_reg where status = '待审核'";
                                        $result22 = DB_query($sql22, $db);
                                        // 检查查询结果是否为空
                                        if (DB_num_rows($result22) > 0) {
                                            $rown22 = DB_fetch_array($result22);
                                            $count22 =  $rown22['count'];
                                        } else {
                                            $count22 = 0;
                                        }
                                        ?>
                                        <div class="span1"><?php echo $count22 ?></div>
                                        <div class="span2">件</div>
                                    </div>
                                    <div class="text_title">
                                        <div class="span1">员工注册待审核</div>
                                    </div>
                                </div>
                            </div>
                            <div class="line11_item" onclick="review(33)">
                                <div class="line11_item_icon">
                                    <image src="img/file.png" class="img" />
                                </div>
                                <div class="line11_item_text">
                                    <div class="text_count">
                                        <?php
                                        $sql33 = "select count(id) count from businesstrip where status = '待审核'";
                                        $result33 = DB_query($sql33, $db);
                                        // 检查查询结果是否为空
                                        if (DB_num_rows($result33) > 0) {
                                            $rown33 = DB_fetch_array($result33);
                                            $count33 =  $rown33['count'];
                                        } else {
                                            $count33 = 0;
                                        }
                                        ?>
                                        <div class="span1"><?php echo $count33 ?></div>
                                        <div class="span2">件</div>
                                    </div>
                                    <div class="text_title">
                                        <div class="span1">出差信息待审核</div>
                                    </div>
                                </div>
                            </div>
                            <div class="line11_item" onclick="review(44)">
                                <div class="line11_item_icon">
                                    <image src="img/file.png" class="img" />
                                </div>
                                <div class="line11_item_text">
                                    <div class="text_count">
                                        <?php
                                        $sql44 = "select count(id) count from ask_for_leave where status = '待审核'";
                                        $result44 = DB_query($sql44, $db);
                                        // 检查查询结果是否为空
                                        if (DB_num_rows($result44) > 0) {
                                            $rown44 = DB_fetch_array($result44);
                                            $count44 =  $rown44['count'];
                                        } else {
                                            $count44 = 0;
                                        }
                                        ?>
                                        <div class="span1"><?php echo $count44 ?></div>
                                        <div class="span2">件</div>
                                    </div>
                                    <div class="text_title">
                                        <div class="span1">请假单待审核</div>
                                    </div>
                                </div>
                            </div>
                            <div class="line11_item" onclick="review(55)">
                                <div class="line11_item_icon">
                                    <image src="img/file.png" class="img" />
                                </div>
                                <div class="line11_item_text">
                                    <div class="text_count">
                                        <?php
                                        $sql55 = "SELECT count(p.order_id) count
                                                    FROM so_headers_all p,customers b 
                                                    WHERE p.customer_code = b.customer_code 
                                                    AND p.status  
                                                    in ('待签核') 
                                                ";
                                        $result55 = DB_query($sql55, $db);
                                        // 检查查询结果是否为空
                                        if (DB_num_rows($result55) > 0) {
                                            $rown55 = DB_fetch_array($result55);
                                            $count55 =  $rown55['count'];
                                        } else {
                                            $count55 = 0;
                                        }
                                        ?>
                                        <div class="span1"><?php echo $count55 ?></div>
                                        <div class="span2">件</div>
                                    </div>
                                    <div class="text_title">
                                        <div class="span1">订单待签核</div>
                                    </div>
                                </div>
                            </div>
                            <div class="line11_item" onclick="review(66)">
                                <div class="line11_item_icon">
                                    <image src="img/file.png" class="img" />
                                </div>
                                <div class="line11_item_text">
                                    <div class="text_count">
                                        <?php
                                        $sql66 = "  select count(a.pr_num) count
                                        from pr_headers_all a  
                                        where status = '待签核' 
                                                ";
                                        $result66 = DB_query($sql66, $db);
                                        // 检查查询结果是否为空
                                        if (DB_num_rows($result66) > 0) {
                                            $rown66 = DB_fetch_array($result66);
                                            $count66 =  $rown66['count'];
                                        } else {
                                            $count66 = 0;
                                        }
                                        ?>
                                        <div class="span1"><?php echo $count66 ?></div>
                                        <div class="span2">件</div>
                                    </div>
                                    <div class="text_title">
                                        <div class="span1">请购单待签核</div>
                                    </div>
                                </div>
                            </div>
                            <div class="line11_item" onclick="review(77)">
                                <div class="line11_item_icon">
                                    <image src="img/file.png" class="img" />
                                </div>
                                <div class="line11_item_text">
                                    <div class="text_count">
                                        <?php
                                        $sql77 = "  SELECT count(po_num) count
                                                    FROM po_headers_all a, vendors b
                                                    WHERE status in( '待签核' )
                                                    AND a.vendor_code = b.vendor_code
                                                ";
                                        $result77 = DB_query($sql77, $db);
                                        // 检查查询结果是否为空
                                        if (DB_num_rows($result77) > 0) {
                                            $rown77 = DB_fetch_array($result77);
                                            $count77 =  $rown77['count'];
                                        } else {
                                            $count77 = 0;
                                        }
                                        ?>
                                        <div class="span1"><?php echo $count77 ?></div>
                                        <div class="span2">件</div>
                                    </div>
                                    <div class="text_title">
                                        <div class="span1">采购单待签核</div>
                                    </div>
                                </div>
                            </div>
                            <div class="line11_item" onclick="review(88)">
                                <div class="line11_item_icon">
                                    <image src="img/file.png" class="img" />
                                </div>
                                <div class="line11_item_text">
                                    <div class="text_count">
                                        <?php
                                        $sql88 = "  select count(a.id) count
                                                    from hr_disciplinary_record a,hr_employees b 
                                                    where a.employee_num = b.employee_num 
                                                    and a.status = '待审核'
                                                ";
                                        $result88 = DB_query($sql88, $db);
                                        // 检查查询结果是否为空
                                        if (DB_num_rows($result88) > 0) {
                                            $rown88 = DB_fetch_array($result88);
                                            $count88 =  $rown88['count'];
                                        } else {
                                            $count88 = 0;
                                        }
                                        ?>
                                        <div class="span1"><?php echo $count88 ?></div>
                                        <div class="span2">件</div>
                                    </div>
                                    <div class="text_title">
                                        <div class="span1">奖惩信息待签核</div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="line1_2">
                            <div class="line12_item">
                                <div class="calendar">
                                    <div class="header">
                                        <a data-action="prev-month" href="javascript:void(0)" title="Previous Month"><i></i></a>
                                        <div class="text" data-render="month-year"></div>
                                        <a data-action="next-month" href="javascript:void(0)" title="Next Month"><i></i></a>
                                    </div>
                                    <div class="months" data-flow="left">
                                        <div class="month month-a">
                                            <div class="render render-a"></div>
                                        </div>
                                        <div class="month month-b">
                                            <div class="render render-b"></div>
                                        </div>
                                    </div>
                                </div>
                                <script src="javascript/indexpage/inemployee_index.js"></script>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- 第二行 -->
                <div class="line2">
                    <div class="line2_position">
                        <div class="line2_1">
                            <div class="line21_item">
                                <div class="kanban_item">
                                    <div class="kanban_line">
                                        <div class="kanban_title">
                                            近一个月业务员新增订单金额前五榜单
                                        </div>
                                        <div class="kanban_content">
                                            <table>
                                                <tr>
                                                    <td>
                                                        <div id="poruku" class="chart-container"></div>
                                                    </td>
                                                    <td>
                                                        <div style="width: 100%; height:100%;"></div>
                                                    </td>
                                                </tr>
                                            </table>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="line2_2">
                            <div class="line22_item">
                                <div class="kanban_item">
                                    <div class="kanban_line">
                                        <div class="kanban_title">
                                            站别良品、不良率
                                        </div>
                                        <div class="kanban_content">
                                            <table>
                                                <tr>
                                                    <td>
                                                        <div id="poruku2" class="chart-container"></div>
                                                    </td>
                                                    <td>
                                                        <div style="width: 100%; height:100%;"></div>
                                                    </td>
                                                </tr>
                                            </table>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- 第三行 -->
                <div class="line3">
                    <div class="line3_position">
                        <div class="line3_1">
                            <div class="line31_item">
                                <div class="kanban_item">
                                    <div class="kanban_line">
                                        <div class="kanban_title">
                                            近一月新增订单金额前五榜单
                                        </div>
                                        <div class="kanban_content">
                                            <table>
                                                <tr>
                                                    <td>
                                                        <div id="poruku1" style="height:95%;" class="chart-container"></div>
                                                    </td>
                                                    <td>
                                                        <div style="width: 100%; height:100%;"></div>
                                                    </td>
                                                </tr>
                                            </table>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="line3_2">
                            <div class="line32_item">
                                <div class="kanban_item">
                                    <div class="kanban_line">
                                        <div class="kanban_title">
                                            近一月产品新增订单金额前五榜单
                                        </div>
                                        <div class="kanban_content">
                                            <table>
                                                <tr>
                                                    <td>
                                                        <div id="poruku3" style="height:95%;" class="chart-container"></div>
                                                    </td>
                                                    <td>
                                                        <div style="width: 100%; height:100%;"></div>
                                                    </td>
                                                </tr>
                                            </table>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="line3_3">
                            <div class="line33_item">
                                <div class="kanban_item">
                                    <div class="kanban_line">
                                        <div class="kanban_title">
                                            近一月新增订单金额前五榜单
                                        </div>
                                        <div class="kanban_content">

                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="line3_4">
                            <div class="line34_item">
                                <div class="kanban_item">
                                    <div class="kanban_line">
                                        <div class="kanban_title">
                                            近一月新增订单金额前五榜单
                                        </div>
                                        <div class="kanban_content">

                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="module2">
                <div class="kanban_item">
                    <div class="kanban_line">
                        <div class="kanban_title1">
                            公告
                        </div>
                        <div class="kanban_content1">
                            <?php
                            //公告面板
                            $sql_msg = "SELECT *
                            FROM message_board
                            where enable_flag = 'Y'
                            ORDER BY created_date desc
                            LIMIT 50
                            ";
                            $result_msg = DB_query($sql_msg, $db);
                            // 检查查询是否成功
                            if ($result_msg) {
                                // 检查查询结果是否为空
                                if (mysqli_num_rows($result_msg) > 0) {
                            ?>
                                    <ul class="message_item">
                                        <?php
                                        while ($row_msg = mysqli_fetch_assoc($result_msg)) {
                                        ?>
                                            <li>
                                                <div class="message_link">
                                                    <a target="_blank" href="<?php echo $RootPath ?>/message_details.php?Msgid=<?php echo $row_msg['id'] ?>"><?php echo $row_msg['title'] ?></a>
                                                </div>
                                            </li>
                                        <?php
                                        }
                                        ?>
                                    </ul>
                            <?php
                                } else {
                                    echo "No results found.";
                                }
                            } else {
                                echo "Query failed.";
                            }
                            ?>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    </div>
    <?php
    //数据可视化内容
    // 近一月客户新增订单金额前五榜单
    $sql = "SELECT customer_code, 
                SUM(order_all_amount) AS total_amount
            FROM so_headers_all
            WHERE creation_date >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH))
            GROUP BY customer_code
            ORDER BY total_amount 
            LIMIT 5
        ";
    $result = DB_query($sql, $db);

    while ($array = mysqli_fetch_assoc($result)) {
        $arrays[] = $array;
    }

    if (is_array($arrays)) {
        foreach ($arrays as $key => $value) {
            $customer[]  = $value['customer_code'];
            $amount[]  = $value['total_amount'];
        }
    } else {
        $customer[]  = 0;
        $amount[]  = 0;
    }
    sort($amount);
    echo "<script>";
    echo ";   var customer = ";
    echo json_encode($customer);
    echo "; var amount = ";
    echo json_encode($amount);
    echo ";  
        var myChart = echarts.init(document.getElementById('poruku')); 
        option = {         
            //图形颜色
            color: [
                '#05c798'
            ],
            //提示框,鼠标悬停在图形上的注解
            tooltip: {
                trigger: 'axis',
                axisPointer: {            
                    type: 'line'       
                },
                backgroundColor: 'rgba(255, 255, 255, 0.7)', // 设置提示条的背景颜色
                textStyle: {
                    color: 'rgba(0, 0, 0)', // 设置提示条文本的颜色为白色
                    fontSize: 12 // 设置提示条文本的字体大小为12px
                }
            },
            //配置网格组件,用于定义图表的位置和大小
            grid: {
                top: '18%',  // 增加top的值来创建间距
                left: '1%',
                right: '10%',
                bottom: '2%',  // 增加bottom的值来创建间距
                containLabel: true, //自动计算并包含坐标轴标签、刻度和标题等内容在内。
            },
            //横坐标
            xAxis: {
                name: '订单金额',
                type: 'value', //数据类型为数值型。
                axisLine: {
                    lineStyle: {
                        color: '#6691b5'  // 设置 x 坐标轴线的颜色
                    }
                },
                axisLabel: {
                    fontSize: 12  // 设置横轴标签字体大小为12
                },
                nameTextStyle: {
                    fontSize: 12  // 设置横轴名称字体大小为12
                },
                splitLine: {
                    show: false  // 隐藏纵坐标轴的背景横线
                },   
            },
            //纵坐标
            yAxis: [
                {
                    name: '客户',
                    type: 'category', //横坐标数据类型为类别型,适用于离散的数据
                    data: customer,
                    axisLine: {
                        lineStyle: {
                            color: '#6691b5'  // 设置 x 坐标轴线的颜色
                        }
                    },
                    axisLabel: {
                        fontSize: 12  // 设置横轴标签字体大小为12
                    },
                    nameTextStyle: {
                        fontSize: 12  // 设置横轴名称字体大小为12
                    }
                },
                
            ],
            series: [
                {
                    type: 'bar',
                    barWidth: '14',
                    data: amount, //设置横坐标的数据,使用变量中的数据。   
                    itemStyle: {
                        normal: {
                            label: {
                                show: true,
                                position: 'right',
                                textStyle: {
                                    color: '#6691b5',
                                    fontSize: 12
                                }
                            }
                        }
                    }
                },
            ],
        };
        let currentIndex = -1;
        setInterval(function() {
            var dataLen = option.series[0].data.length;
            // 取消之前高亮的图形
            myChart.dispatchAction({
                type: 'downplay',
                seriesIndex: 0,
                dataIndex: currentIndex
            });
            currentIndex = (currentIndex + 1) % dataLen;
            // 高亮当前图形
            myChart.dispatchAction({
                type: 'highlight',
                seriesIndex: 0,
                dataIndex: currentIndex
            });
            // 显示 tooltip
            myChart.dispatchAction({
                type: 'showTip',
                seriesIndex: 0,
                dataIndex: currentIndex
            });
        }, 1000);
        myChart.setOption(option);    
        </script>";



    //近一月业务员新增榜单
    $sql1 = "SELECT sl.yewu,em.employee_name,
        SUM(sl.order_all_amount) AS total_amount
        FROM so_headers_all sl,hr_employees em
        WHERE sl.creation_date >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH))
        AND sl.yewu = em.employee_num
        GROUP BY sl.yewu
        ORDER BY total_amount desc
        LIMIT 5
";
    $result1 = DB_query($sql1, $db);
    $index = 1;
    while ($array1 = mysqli_fetch_assoc($result1)) {
        $name = $array1['employee_name'];
        $value = $array1['total_amount'];
        $title = 'TOP' . $index;
        if (!$value) {
            $value = 0;
        }
        $array_data1[] = array(
            'name' => $name,
            'value' => $value,
            'title' => $title
        );
        $index++;
    }
    echo "<script>";
    // echo "console.log(" . json_encode($array_data1) . ");";
    echo ";   var array1 = ";
    echo json_encode($array_data1);
    // 对数据项数量进行判断
    $arrayLength = count($array_data1);
    for ($i = 1; $i <= 5; $i++) {
        //输出数据到前端显示
        echo "
    if (array1[" . ($i - 1) . "]) {
        document.getElementById('yewu_top" . $i . "').innerText = array1[" . ($i - 1) . "].name + ':' + array1[" . ($i - 1) . "].value;
    } else {
        document.getElementById('yewu_top" . $i . "').innerText = '--';
    }
    ";
    }
    echo "; 
    var ydata = []
    var myChart1 = echarts.init(document.getElementById('poruku1')); 
    option1 = {
        color:['#73c0de','#fd6f6f','#fac858','#91cc75','#5470c6'],
        tooltip: {
            trigger: 'item',
            formatter: function(params) {
                var name = params.data.name;
                var title = params.data.title;
                var value = params.value;
                var marker = params.marker; // 添加marker(小圆点)
                return marker + ' ' + title + '<br/>' + name + ' : ' + value;
            }
        },
        series: [
            {
                type: 'pie',
                data:array1,
                roseType: 'area',
                itemStyle: {
                    normal: {
                        label: {
                            show: true,
                            textStyle: {
                                fontSize: 16
                            }
                        }
                    }
                }
            }
        ]
    };  
    myChart1.setOption(option1);    
    </script>";

    //按站别分的良率和不良率
    $sql2 = "SELECT 
            operation_code,
            SUM(IFNULL(transaction_quantity, 0)) AS total_transaction_quantity,
            SUM(IFNULL(bad_quantity, 0)) AS total_bad_quantity,
            CASE
                WHEN (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0))) = 0 THEN 0
                ELSE ROUND((SUM(IFNULL(transaction_quantity, 0)) / (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0)))*100), 2)
            END AS good_rate,
            CASE
                WHEN (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0))) = 0 THEN 0
                ELSE ROUND((SUM(IFNULL(bad_quantity, 0)) / (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0)))*100), 2)
            END AS bad_rate
        FROM wip_transactions
        GROUP BY operation_code
        ORDER BY bad_rate desc
";
    $result2 = DB_query($sql2, $db);
    while ($array2 = mysqli_fetch_assoc($result2)) {
        $arrays2[] = $array2;
    }

    if (is_array($arrays2)) {
        foreach ($arrays2 as $key => $value) {
            $goodnum2[]  = $value['total_transaction_quantity'];
            $badnum2[]  = $value['total_bad_quantity'];
            $arr_good_quantity2[]  = $value['good_rate'];
            $arr_bad_quantity2[]  = $value['bad_rate'];
            $arrvendor2[]  = $value['operation_code'];
        }
    } else {
        $goodnum2[]  = 0;
        $badnum2[]  = 0;
        $arr_good_quantity2[]  = 0;
        $arr_bad_quantity2[]  = 0;
        $arrvendor2[]  = 0;
    }
    echo "<script>";
    echo ";   var goodnum2 = ";
    echo json_encode($goodnum2);
    echo ";   var badnum2 = ";
    echo json_encode($badnum2);
    echo ";   var good_rate2 = ";
    echo json_encode($arr_good_quantity2);
    echo ";   var bad_rate2 = ";
    echo json_encode($arr_bad_quantity2);
    echo "; var x2 = ";
    echo json_encode($arrvendor2);
    echo "; 
    var ydata = []
    var myChart2 = echarts.init(document.getElementById('poruku2')); 
    option2 = {
        //滚动显示
        dataZoom: [{
            type: 'slider',  // 滑动条型式的dataZoom组件
            show: true,  // 显示dataZoom组件
            start: 0,  // 默认数据窗口范围的起始位置为0
            end: 30,  // 默认数据窗口范围的结束位置为30
            xAxisIndex: [0],  // 设置dataZoom组件影响的x轴索引,默认为第一个x轴
            filterMode: 'filter',  // 数据窗口范围的定义模式为filter过滤模式
            height: 12, // 设置滑动条型式的高度为20像素
            bottom: '5%', // 将滑动条组件的底部距离设置为5%
            textStyle: {
                color: '#c48df3' // 设置文字颜色为白色
            },
            handleStyle: {
                color: '#c48df3' // 设置滚动条手柄的颜色为红色
            },
            fillerColor: 'rgba(255, 255, 255, 0.1)', // 设置滚动条选中区域的颜色为蓝色
        }, 
        {
            type: 'inside',  // 内置型式的dataZoom组件
            start: 0,  // 默认数据窗口范围的起始位置为0
            end: 60,  // 默认数据窗口范围的结束位置为60
            xAxisIndex: [0],  // 设置dataZoom组件影响的x轴索引,默认为第一个x轴
            filterMode: 'filter',  // 数据窗口范围的定义模式为filter过滤模式
            height: 12  
        }],
        //图形颜色
        color: ['#b381dd','#3aafe8'],
        //提示框,鼠标悬停在图形上的注解
        tooltip: {
            trigger: 'axis',
            axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                type: 'line'        // 默认为直线,可选为:'line' | 'shadow'
            },
            formatter: function(params) {
                var index = params[0].dataIndex;
                var goodnum = goodnum2[index];
                var badnum = badnum2[index];
                var goodrate = params[0].value;
                var badrate = params[1].value;
                return '良品数量:' + goodnum + '<br>' +
                    '不良数量:' + badnum ;
            }
        },
        //配置网格组件,用于定义图表的位置和大小
        grid: {
            top: '20%',  // 增加top的值来创建间距
            left: '3%',
            right: '3%',
            bottom: '15%',  // 增加bottom的值来创建间距
            containLabel: true, //自动计算并包含坐标轴标签、刻度和标题等内容在内。
        },
        //横坐标
         xAxis: {
            name: '时间',
            nameTextStyle: {
                padding: [0, 0, -25, -25]    // 横坐标名称与原位置的边距
            },
            type: 'category', //横坐标数据类型为类别型,适用于离散的数据
            data: x2, //设置横坐标的数据,使用变量x2中的数据。
            axisLine: {
                lineStyle: {
                    color: '#6691b5'  // 设置 x 坐标轴线的颜色
                }
            },
            axisLabel: {
                interval: 0, // 设置横坐标刻度的显示间隔,默认为0表示全部显示
                // 如果刻度标签太长,可以使用rotate进行旋转
                textStyle: {
                    fontSize: 12
                }
            },
        },
        //比例
        yAxis: [
            {
                name: '比例',
                type: 'value', //数据类型为数值型。
                axisLabel: {
                    formatter: '{value}%'
                },
                 splitLine: {
                    show: false  // 隐藏纵坐标轴的背景横线
                },
                axisLine: {
                    lineStyle: {
                        color: '#6691b5'  // 设置 x 坐标轴线的颜色为红色
                    }
                },
            },
            
        ],
        series: [
            {
                name:'良品率',
                type: 'bar',
                data: good_rate2,
                barWidth: '30%', // 设置柱状图的宽度为整个类目宽度的40%
                barGap: '20%', // 设置柱状图之间的间距为整个类目宽度的20%
                itemStyle: {
                    normal: {
                        label: {
                            show: true,
                            position: 'top',
                            formatter: '{c}%',
                            textStyle: {
                                color: '#b381dd',
                                fontSize: 10
                            }
                        }
                    }
                }
            },
            {
                name:'不良率',
                type: 'bar',
                data: bad_rate2,
                barWidth: '30%', // 设置柱状图的宽度为整个类目宽度的40%
                barGap: '20%', // 设置柱状图之间的间距为整个类目宽度的20%
                itemStyle: {
                    normal: {
                        label: {
                            show: true,
                            position: 'top',
                            formatter: '{c}%',
                            textStyle: {
                                color: '#3aafe8',
                                fontSize: 10
                            }
                        }
                    }
                }
            }
        ]
    };
    myChart2.setOption(option2);    
    </script>";

    //计算总的良品和不良
    $sql3 = "SELECT sl.stockid,sf.item_name,SUM(line_amount) AS total_amount
            FROM so_lines_all sl,sf_item_no sf
            WHERE sl.stockid = sf.item_no
            AND sl.creation_date >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH))
            GROUP BY stockid
            ORDER BY total_amount desc
            LIMIT 5
        ";
    $result3 = DB_query($sql3, $db);
    $index = 1;
    while ($array3 = mysqli_fetch_assoc($result3)) {
        $name = $array3['stockid'];
        $value = $array3['total_amount'];
        $title = 'TOP' . $index;
        if (!$value) {
            $value = 0;
        }
        $array_data3[] = array(
            'name' => $name,
            'value' => $value,
            'title' => $title
        );
        $index++;
    }
    echo "<script>";
    // echo "console.log(" . json_encode($array_data3) . ");";
    echo ";   var array3 = ";
    echo json_encode($array_data3);
    // 对数据项数量进行判断
    $arrayLength = count($array_data3);
    echo "; 
    var ydata = []
    var myChart3 = echarts.init(document.getElementById('poruku3')); 
    option3 = {
        color:['#73c0de','#fd6f6f','#fac858','#91cc75','#5470c6'],
        tooltip: {
            trigger: 'item',
            formatter: function(params) {
                var name = params.data.name;
                var title = params.data.title;
                var value = params.value;
                var marker = params.marker; // 添加marker(小圆点)
                return marker + ' ' + title + '<br/>' + name + ' : ' + value;
            }
        },
        series: [
            {
                type: 'pie',
                radius: '60%',
                data: array3,
                emphasis: {
                    itemStyle: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)',
                    label: {
                            show: true
                        },
                        labelLine: {
                            show: false
                        }
                    }
                },  
                itemStyle: {
                    normal: {
                        // label: {
                        //     show: false
                        // },
                        // labelLine: {
                        //     show: false
                        // }
                    },
                }             
            }
        ]
    };
    myChart3.setOption(option3);    
    </script>";
    ?>
</body>
</html>
<?php
include('includes/footer.inc');
?>

inemployee_index.css

css 复制代码
* {
    margin: 0;
    padding: 0
}

body {
    background-color: #F0F0F0 !important;
}

.all {
    width: 100%;
}

/* 整体 */
.all_position {
    width: 100%;
    display: flex;
    justify-content: space-between;
}

.module1 {
    width: 75%;
}

.module2 {
    width: 24%;
    border: 1px solid #ccc;
    box-shadow: 1px 1px 4px 2px rgba(0, 0, 0, 0.3);
}

/* 第一行 */
.line1 {
    height: 250px;
}

.line1_position {
    display: flex;
    justify-content: space-between;
}

/* 第一行第一模块 */
.line1_1 {
    width: 70%;
    height: 100%;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 5px;
}

.line11_item {
    height: 120px;
    display: flex;
    display: grid;
    grid-template-columns: 1fr 2fr;
}

/* 给每个模块不同的颜色 */
.line11_item:nth-child(1) {
    background-color: #578ebe;
}

.line11_item:nth-child(2) {
    background-color: #44b6ae;
}

.line11_item:nth-child(3) {
    background-color: #e35b5a;
}

.line11_item:nth-child(4) {
    background-color: #00897b;
}

.line11_item:nth-child(5) {
    background-color: #949fb1;
}

.line11_item:nth-child(6) {
    background-color: #f29503;
}

.line11_item:nth-child(7) {
    background-color: #4f5c65;
}

.line11_item:nth-child(8) {
    background-color: #8775a7;
}

/* 图片 */
.line11_item_icon {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.line11_item_icon .img {
    width: 45px;
    height: 45px;
}

/* 文字 */
.line11_item_text {
    display: flex;
    flex-direction: column;
    width: 100%;
    color: #fff;
}

.line11_item_text .text_count {
    flex: 5;
    display: flex;
    justify-content: center;
    align-items: flex-end;
}

.line11_item_text .text_count .span1 {
    flex: 1;
    font-size: 200%;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    cursor: default;
}

.line11_item_text .text_count .span2 {
    flex: 1;
    display: flex;
    justify-content: flex-start;
    padding-bottom: 2%;
    margin-left: 4%;
    cursor: default;
}

.line11_item_text .text_title {
    flex: 4;
    display: flex;
    justify-content: center;
    cursor: default;
}


/* 第一行第二模块 */
.line1_2 {
    width: 29%;
}

.line12_item,
.line13_item,
.line21_item,
.line22_item,
.line31_item,
.line32_item,
.line33_item,
.line34_item {
    width: 100%;
    height: 100%;
}

/* 第二行 */
.line2 {
    margin-top: 1%;
    height: 220px;
}

.line2_position,
.line3_position {
    display: flex;
    justify-content: space-between;
    width: 100%;
    height: 100%;
}

.line2_1 {
    width: 50%;
}

.line2_2 {
    width: 49%;
}

/* 第三行 */
.line3 {
    margin-top: 1%;
    height: 250px;

}

.line3_1,
.line3_2,
.line3_3,
.line3_4 {
    width: 24%;
    height: 250px;
    background: #fff;
}




/* 日历样式 */
*,
:after,
:before {
    box-sizing: border-box
}

.pull-left {
    float: left
}

.pull-right {
    float: right
}

.clearfix:after,
.clearfix:before {
    content: '';
    display: table
}

.clearfix:after {
    clear: both;
    display: block
}

.calendar {
    width: 100%;
    font-size: 100%;
    perspective: 1000px;
    cursor: default;
    position: relative
}

.calendar .header {
    height: 30px;
    position: relative;
    color: #fff
}

.calendar .header .text {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #308ff0;
    transform: rotateX(90deg);
    transform-origin: bottom;
    backface-visibility: hidden;
    transition: .4s ease-in-out 0s;
    /* box-shadow: 0 6px 20px 0 rgba(0, 0, 0, .19), 0 8px 17px 0 rgba(0, 0, 0, .2); */
    opacity: 0
}

.calendar .header .text>span {
    text-align: center;
    padding: 5px;
    display: block;
    font-family: 'Roboto Condensed', sans-serif;
}

.calendar .header.active .text {
    transform: rotateX(0deg);
    opacity: 1
}

.months {
    width: 100%;
    height: 218px;
    position: relative
}

.months .hr {
    height: 1px;
    background: #ccc
}

.month {
    padding: 10px;
    width: inherit;
    height: inherit;
    background: #fff;
    position: absolute;
    backface-visibility: hidden;
    transition: all .4s ease-in-out 0s;
    /* box-shadow: 0 6px 20px 0 rgba(0, 0, 0, .19), 0 8px 17px 0 rgba(0, 0, 0, .2) */
}

.months[data-flow="left"] .month {
    transform: rotateY(-180deg)
}

.months[data-flow="right"] .month {
    transform: rotateY(180deg)
}

.month_table {
    width: 100%;
    font-size: 10px;
    font-weight: 400;
    display: table
}

.month_table .row {
    display: table-row
}

.month_table .row.head {
    color: #308ff0;
    text-transform: uppercase
}

.month_table .row .cell {
    width: 14.28%;
    padding: 3px;
    text-align: center;
    display: table-cell;
}

.month_table .row .cell.disable {
    color: #ccc
}

.month_table .row .cell span {
    display: block;
    width: 25px;
    height: 25px;
    line-height: 25px;
    transition: color, background .4s ease-in-out 0s;
    margin: auto;
}

.month_table .row .cell.active span {
    color: #fff;
    background-color: #308ff0
}

.months .month[data-active="true"] {
    transform: rotateY(0)
}

/* 左右翻页按钮 */
.header [data-action] {
    color: inherit;
    position: absolute;
    top: 50%;
    margin-top: -10px;
    width: 20px;
    height: 20px;
    z-index: 1;
    opacity: 0;
    transition: all .4s ease-in-out 0s
}

.header [data-action]>i {
    width: 12px;
    height: 12px;
    display: block;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-top: -5px;
    margin-left: -10px
}

.header [data-action]>i:before,
.header [data-action]>i:after {
    top: 50%;
    margin-top: -1px;
    content: '';
    position: absolute;
    height: 2px;
    width: 12px;
    border-top: 2px solid;
    border-radius: 2px
}

.header [data-action*="prev"] {
    left: 15px
}

.header [data-action*="next"] {
    right: 15px
}

.header [data-action*="prev"]>i:before,
.header [data-action*="prev"]>i:after {
    left: 0
}

.header [data-action*="prev"]>i:before {
    top: 2px;
    transform: rotate(-45deg)
}

.header [data-action*="prev"]>i:after {
    top: auto;
    bottom: 2px;
    transform: rotate(45deg)
}

.header [data-action*="next"]>i:before,
.header [data-action*="next"]>i:after {
    right: 0
}

.header [data-action*="next"]>i:before {
    top: auto;
    bottom: 2px;
    transform: rotate(-45deg)
}

.header [data-action*="next"]>i:after {
    top: 2px;
    transform: rotate(45deg)
}

.header.active [data-action] {
    opacity: 1
}

/* 每个月份不同的颜色 */
[data-theme="一月"] {
    background-color: #1E88E5
}

[data-theme="一月"] .row.head {
    color: #1E88E5
}

[data-theme="一月"] .header .text,
[data-theme="一月"] .month_table .row .cell.active span {
    background-color: #1E88E5
}

[data-theme="二月"] {
    background-color: #039BE5
}

[data-theme="二月"] .row.head {
    color: #039BE5
}

[data-theme="二月"] .header .text,
[data-theme="二月"] .month_table .row .cell.active span {
    background-color: #039BE5
}

[data-theme="三月"] {
    background-color: #00897B
}

[data-theme="三月"] .row.head {
    color: #00897B
}

[data-theme="三月"] .header .text,
[data-theme="三月"] .month_table .row .cell.active span {
    background-color: #00897B
}

[data-theme="四月"] {
    background-color: #7CB342
}

[data-theme="四月"] .row.head {
    color: #7CB342
}

[data-theme="四月"] .header .text,
[data-theme="四月"] .month_table .row .cell.active span {
    background-color: #7CB342
}

[data-theme="五月"] {
    background-color: #efbf4f
}

[data-theme="五月"] .row.head {
    color: #efbf4f
}

[data-theme="五月"] .header .text,
[data-theme="五月"] .month_table .row .cell.active span {
    background-color: #FFB300
}

[data-theme="六月"] {
    background-color: #F4511E
}

[data-theme="六月"] .row.head {
    color: #F4511E
}

[data-theme="六月"] .header .text,
[data-theme="六月"] .month_table .row .cell.active span {
    background-color: #F4511E
}

[data-theme="七月"] {
    background-color: #8E24AA
}

[data-theme="七月"] .row.head {
    color: #8E24AA
}

[data-theme="七月"] .header .text,
[data-theme="七月"] .month_table .row .cell.active span {
    background-color: #8E24AA
}

[data-theme="八月"] {
    background-color: #5E35B1
}

[data-theme="八月"] .row.head {
    color: #5E35B1
}

[data-theme="八月"] .header .text,
[data-theme="八月"] .month_table .row .cell.active span {
    background-color: #5E35B1
}

[data-theme="九月"] {
    background-color: #EF9A9A
}

[data-theme="九月"] .row.head {
    color: #E53935
}

[data-theme="九月"] .header .text,
[data-theme="九月"] .month_table .row .cell.active span {
    background-color: #E53935
}

[data-theme="十月"] {
    background-color: #6d2081
}

[data-theme="十月"] .row.head {
    color: #8E24AA
}

[data-theme="十月"] .header .text,
[data-theme="十月"] .month_table .row .cell.active span {
    background-color: #8E24AA
}

[data-theme="十一月"] {
    background-color: #ef4478
}

[data-theme="十一月"] .row.head {
    color: #ef4478
}

[data-theme="十一月"] .header .text,
[data-theme="十一月"] .month_table .row .cell.active span {
    background-color: #ef4478
}

[data-theme="十二月"] {
    background-color: #546E7A
}

[data-theme="十二月"] .row.head {
    color: #546E7A
}

[data-theme="十二月"] .header .text,
[data-theme="十二月"] .month_table .row .cell.active span {
    background-color: #546E7A
}

/* 公告列表 */
.message_item {
    list-style-type: none;
    padding: 0;
    margin: 0;
    width: 100%;
    height: 710px;
    overflow-y: auto;
}

.message_item li:nth-child(even) {
    background-color: #ffffff;
}

.message_item li:nth-child(odd) {
    background-color: #f0f0f0;
}

.message_item li {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 30px;
    padding: 5% 0;
    font-size: 95%;
}

.message_item li div {
    width: 90%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: left;
}

/* 数据可视化+标题内容布局 */
.kanban_item {
    width: 100%;
    height: 100%;
}

.kanban_line {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background-color: #fff;
}

.kanban_title1 {
    flex: 1;
    display: flex;
    padding: 5px;
    justify-content: flex-start;
    align-items: center;
    font-weight: bold;
    font-family: '华文细黑';
    border-left: 4px solid #75b2fa;
    border-bottom: 1px solid #f0f0f0;
}

.kanban_content1 {
    flex: 25;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.kanban_title {
    flex: 1;
    display: flex;
    padding: 5px;
    justify-content: flex-start;
    align-items: center;
    font-weight: bold;
    font-family: '华文细黑';
    border-left: 4px solid #75b2fa;
    border-bottom: 1px solid #f0f0f0;
}

.kanban_content {
    flex: 9;
    width: 100%;
    height: 100%;
    overflow: hidden;
    /* 添加overflow属性 */
}

.chart-container {
    width: 100%;
    height: 100%;
}

.kanban_content table {
    width: 100%;
    height: 100%;
    position: relative;
    border: 0px;
    background-color: rgba(255, 255, 255, 0);
}

.kanban_content table tr {
    width: 100%;
    height: 100%;
    border: 0px;
}

.kanban_content table tr td {
    width: 100%;
    height: 100%;
    border: 0px;
}
相关推荐
bin91535 分钟前
npm报错
前端·npm·node.js
一指流沙q12 分钟前
Chrome被360导航篡改了怎么改回来?
前端·chrome
laocooon52385788643 分钟前
HTML CSS 超链
前端·css·html
LUwantAC1 小时前
CSS(二):美化网页元素
前端·css
m0_748251081 小时前
docker安装nginx,docker部署vue前端,以及docker部署java的jar部署
java·前端·docker
我是ed1 小时前
# thingjs 基础案例整理
前端
Ashore_1 小时前
从简单封装到数据响应:Vue如何引领开发新模式❓❗️
前端·vue.js
落魄实习生1 小时前
小米路由器开启SSH,配置阿里云ddns,开启外网访问SSH和WEB管理界面
前端·阿里云·ssh
bug丸1 小时前
v8引擎垃圾回收
前端·javascript·垃圾回收
安全小王子1 小时前
攻防世界web第三题file_include
前端