ITPub博客

首页 > 应用开发 > IT综合 > 快速汇总多渠道线索数据

快速汇总多渠道线索数据

原创 IT综合 作者:Sen666 时间:2021-09-07 18:37:00 0 删除 编辑

场景:

现有crm系统中保存了几百条线索数据,每个线索都有一个渠道标识,需要进行分组统计,但渠道太多了,用饼图不好展示,所以需要做成文本的格式(方便复制),效果如下图所示;

前期准备:

在白码低代码开发平台上创建线索数据表以及样本数据、一张临时表用于选择统计时间范围,示例字段如下。

实现步骤:

  1. 新建一个功能,命名为“分组统计渠道数据”;
  2. 新增一个步骤,命名为“选择日期范围”,新增数据类型,选择临时表进行新增;
  1. 第二步使用编程步骤,编写代码,其中第一步的两个日期作为编程的输入参数;
async function runProcess($model = model,$plugin = plugin,$params = params){
    await $model.command("tips",{})//去除功能提交提示
    let start_date = $params.start_date;//开始日期
    let end_date = $params.end_date;//结束日期
    let clue_entity = "612c89b96979d17d3cf7fac1";//线索表entity
    let clue_source = "612c89c66979d17d3cf7fad3";//线索渠道field
    let clue_date = "612c8c176979d17d3cf7fe77";//线索日期field
    let query = {//筛选条件,筛选日期范围,可根据实际需求添加筛选条件
        "$and":[
            {
                [clue_date]:{"$gte":start_date},//大于等于开始日期
            },{
                [clue_date]:{"$lte":end_date},//小于等于结束日期
            }
        ]
    };
    //获取分组数据
    let clue_data = await $plugin.data.summaryData(clue_entity,"_id",clue_source,query);
    //整理分组结果列表
    let res_list = clue_data.map(function(item){
        return {
            "name":item["_id"] || "无渠道",
            "count":item["count"]
        };
    });
    let num_list = clue_data.map(v=>+v["count"]);
    num_list = num_list || [0];
    let total = eval(num_list.join('+'))
    let str = ``;
    for(let i = 0; i <res_list.length; i++){
        str = `${str}${res_list[i]["name"]}:${res_list[i]["count"]}, `
    }
    await $model.command("confirm",{
        title:"统计结果",
        content:`${str}共${total}条数据`,
    });
}

测试效果:


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69981618/viewspace-2790885/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2020-08-13

  • 博文量
    44
  • 访问量
    23851