0.0.2-alpha.3 • Published 1 year ago

@clue_nidapp/plugin-form-dealer-mini v0.0.2-alpha.3

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

线索通表单 sdk 小程序优选经销商插件

能力

根据地理位置获取推荐的优选经销商

初始化

需要配合 @clue_nidapp/form-core 线索通 sdk 使用

初始化线索通 SDK,详见 @clue_nidapp/form-core 使用文档

import { Core, FormOptions } from '@clue_nidapp/form-core';
import { MiniDealerData } from '@clue_nidapp/plugin-form-dealer-mini'
import { API } from '@clue_nidapp/plugin-api-mini'

const options: FormOptions = {
  data: {
    formId: 0,
    advId: 0,
    clueAccountId: 0,
  },
  // 注册插件
  plugins: [new API(), new MiniDealerData()]
}
const formCore = new Core(
  options,
);

支持环境

字节小程序

使用

名词解释

sdk: 注册了自动填充插件后的表单 sdk 使用方: 使用方的小程序宿主

交互介绍

使用方与 sdk 的事件通信通过发布-订阅模式触发,即,使用方主动触发 sdk 的方法,sdk 逻辑执行完成后,触发回调方法给使用方,使用方监听这个方法执行相应逻辑。

import { DealerDataHandleEvents } from '@clue_nidapp/plugin-api-h5'

// DealerDataHandleEvents 是事件名枚举
formCore.emit(eventName, params);

formCore.on(eventName, (params) => {})

DealerDataHandleEvents 提供的事件如下

常量名常量值描述回调方法返回值/触发事件参数使用方触发事件或sdk回调
DataSourceChange"DataSourceChange"成功获取优选经销商数据IDealerDatasdk回调
getPreferData"getPreferData"获取优选经销商数据IMiniGetLocationRequest使用方触发事件
getPreferDataFail"getPreferDataFail"获取优选经销商数据失败sdk回调

请求和返回参数说明

成功获取优选经销商数据返回 IDealerData

interface IDealerData {
  data: IDealerDetailResponse,
  elementId: number,
}

interface IDealerDetailResponse {
  version: number;
  fields: {
    businessKey: string;
    name: string;
  }[];
  root: {
    children: IDealerDetailItem[];
    id: number;
    name: string;
  };
}

interface IDealerDetailItem {
  customId: string;
  dcd_id?: string;
  id: number;
  isDefault?: 0 | 1;    // 1 表示是推荐的数据 
  name: string;
  children?: IDealerDetailItem[];
}

获取优选经销商数据请求参数

interface IMiniGetLocationRequest {
  latitude: number;           // 纬度
  longitude: number;          // 经度
  authorize: boolean;         // 用户是否授权获取地理位置信息
}