第43章 Django的分析图表,靓……

在很多企业,在年底总结时,一般都会定好来年的销售任务并分配到销售区域中。销售区域负责人领到任务后,会分解到每个销售人员身上。

任务分解按日、按周太短,按年、按季太长,按月刚刚好,比较符号实际情况。

销售额,在实际系统中是通过汇总销售订单总额后插入到统计表中的。在这套练手的销售管理系统中,没有涉及到订单这一块,咱用手工录入也是可以的。

43.1 界面效果

有关区域任务的界面这里就不提供了,反正都是按模板自动生成的。重点介绍下销售统计这个界面。它是图形化的,令人耳目一新的界面。有了它,老板做梦都会笑被笑醒,如果销售额与日俱增、突飞猛进的话。

43.2 数据字典

区域任务表(Task)

43.3 创建应用

创建task应用并集成到…(你懂得)。有关销售目标功能涉及到的图标,我找到了一些,现提供给你参考。

# 图标设置

SIMPLEUI_ICON = {

……

'销售目标': 'fas fa-chart-bar',

'区域任务': 'fas el-icon-news',

'个人任务': 'fas el-icon-wallet',

'销售统计': 'fas el-icon-s-data',

}

在task/apps.py文件中新增如下内容。

from django.apps import AppConfig

class TaskConfig(AppConfig):

name = 'task'

verbose_name = '销售目标'

在task/__init__.py文件中新增如下内容。

default_app_config = 'task.apps.TaskConfig'

43.4 区域任务

在models.py的内容里,列出了销售统计(SaleSum),主要目的是为了能将它纳入到后台管理中。有了它,才能拥有"销售统计"的二级菜单,否则了无踪迹。

扫描二维码关注公众号,回复: 8800340 查看本文章
from django.db import models

# 区域任务

class Task(models.Model):

region = models.CharField(max_length=64, verbose_name='区域', null=False, blank=False)

year = models.IntegerField(verbose_name='年份', null=False, blank=False)

# 销售目标

Jan_task = models.DecimalField(verbose_name='1月', decimal_places=2, max_digits=9)

Feb_task = models.DecimalField(verbose_name='2月', decimal_places=2, max_digits=9)

Mar_task = models.DecimalField(verbose_name='3月', decimal_places=2, max_digits=9)

Apr_task = models.DecimalField(verbose_name='4月', decimal_places=2, max_digits=9)

May_task = models.DecimalField(verbose_name='5月', decimal_places=2, max_digits=9)

Jun_task = models.DecimalField(verbose_name='6月', decimal_places=2, max_digits=9)

Jul_task = models.DecimalField(verbose_name='7月', decimal_places=2, max_digits=9)

Aug_task = models.DecimalField(verbose_name='8月', decimal_places=2, max_digits=9)

Sep_task = models.DecimalField(verbose_name='9月', decimal_places=2, max_digits=9)

Oct_task = models.DecimalField(verbose_name='10月', decimal_places=2, max_digits=9)

Nov_task = models.DecimalField(verbose_name='11月', decimal_places=2, max_digits=9)

Dec_task = models.DecimalField(verbose_name='12月', decimal_places=2, max_digits=9)

# 实际销售额

Jan_sale = models.DecimalField(verbose_name='1月', decimal_places=2, max_digits=9, default=0)

Feb_sale = models.DecimalField(verbose_name='2月', decimal_places=2, max_digits=9, default=0)

Mar_sale = models.DecimalField(verbose_name='3月', decimal_places=2, max_digits=9, default=0)

Apr_sale = models.DecimalField(verbose_name='4月', decimal_places=2, max_digits=9, default=0)

May_sale = models.DecimalField(verbose_name='5月', decimal_places=2, max_digits=9, default=0)

Jun_sale = models.DecimalField(verbose_name='6月', decimal_places=2, max_digits=9, default=0)

Jul_sale = models.DecimalField(verbose_name='7月', decimal_places=2, max_digits=9, default=0)

Aug_sale = models.DecimalField(verbose_name='8月', decimal_places=2, max_digits=9, default=0)

Sep_sale = models.DecimalField(verbose_name='9月', decimal_places=2, max_digits=9, default=0)

Oct_sale = models.DecimalField(verbose_name='10月', decimal_places=2, max_digits=9, default=0)

Nov_sale = models.DecimalField(verbose_name='11月', decimal_places=2, max_digits=9, default=0)

Dec_sale = models.DecimalField(verbose_name='12月', decimal_places=2, max_digits=9, default=0)

create_time = models.DateTimeField(verbose_name='创建时间', auto_now=True)

class Meta:

verbose_name = "任务"

verbose_name_plural = "区域任务"

# 个人任务

class MyTask(models.Model):

class Meta:

verbose_name = "任务"

verbose_name_plural = "个人任务"

# 销售统计

class SaleSum(models.Model):

permissions = ('销售统计',)

class Meta:

verbose_name = "销售统计"

verbose_name_plural = "销售统计"

单有model,单有数据。如果想在页面上有一番作为的话,还需要在ModelAdmin中进行注册。有关ModelAdmin的注册内容,请见下一章。

发布了21 篇原创文章 · 获赞 2 · 访问量 3077

猜你喜欢

转载自blog.csdn.net/a_faint_hope/article/details/103846965
今日推荐