泛微ecode改造新建客户页面输入名称自动检索功能

新建客户输入关键词后的查重功能改造

为满足公司业务需求,公司允许员工创建重复客户。然而,在创建客户时,系统会自动搜索出由其他客户经理负责的重复客户。
为了改进现有的泛微系统中的客户功能模块的新建客户页面,我们需要对其进行修改。在修改之前,系统仅根据客户名称来检索包含关键词的客户。我们需要通过对请求接口返回的数据进行二次处理,筛选出客户经理为当前操作人的客户数据。

以下是改造前和改造后的效果对比:
  • 改造前效果

改造前效果

  • 改造后效果

改造后效果

  • 源代码

源代码

  • 源代码
let enable = true;
// PC端代码块
// 利用组件复写作为代码块执行钩子
ecodeSDK.rewriteApiDataQueueSet({
  fn: (url, params, datas) => {
    if (!enable) return; // 开关打开

    // 判断所拦截的接口
    if (url.indexOf('/api/crm/customer/myCustomerListForAdd') >= 0) { 
      const baseInfo = localStorage.ecode_params; // 获取当前登录人信息(此信息一定要写到记录里面,否则会导致登录时空白)
      const parsedInfo = JSON.parse(baseInfo);  //将登陆人信息解析成js对象
      const userId = parsedInfo._user.id; // 获取当前登录人的id,类型为字符串
      // 筛选出客户经理为当前操作者id的客户数据
      const filteredData = datas.datas.filter(item => item.manager === userId);
      // 如果筛选出的数据为空并且返回的原始数据中的tooManyRecord为false,将没有记录设置为true
      if(filteredData.length == 0 && datas.tooManyRecord === false){
        datas = {...datas,noRecord:true}  //将datas重新赋值
      }else if(filteredData.length > 20){
        datas = {...datas,tooManyRecord: true}
      }
      else{
        datas = {...datas,datas:filteredData}
      }
    }  
    // 执行需要执行的代码
    // ...
    return datas;
  },
  desc: '拦截搜索客户的请求'
});

  • 注意事项
    需要注意的是,该代码对返回的数据进行了二次加工。由于系统默认只根据客户名称进行检索,当根据客户名称检索到的结果超过20行时,返回的客户数据会为空,不会展示出来。这种情况可能导致即使当前用户的客户数量没有超出最大值,客户也无法显示出来,因为系统初始检索时返回的客户数据已经为空了。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值