@clue_nidapp/plugin-form-dealer-common
v0.0.2-alpha.3
Published
## 能力 根据地理位置获取推荐的优选经销商
Downloads
24
Keywords
Readme
线索通优选经销商功能插件
能力
根据地理位置获取推荐的优选经销商
前置插件
网络请求能力插件
初始化
需要配合 @clue_nidapp/form-core
线索通 sdk,和网络请求插件使用
初始化线索通 SDK,详见 @clue_nidapp/form-core
使用文档
import { Core, FormOptions } from '@clue_nidapp/form-core';
import { DealerData } from '@clue_nidapp/plugin-form-dealer-common'
import { API } from '@clue_nidapp/plugin-api-h5'
const options: FormOptions = {
data: {
formId: 0,
advId: 0,
clueAccountId: 0,
},
// 注册插件
plugins: [new API(), new DealerData()]
}
const formCore = new Core(
options,
);
支持环境
h5,lynx
使用
名词解释
sdk: 注册了自动填充插件后的表单 sdk 使用方: 使用方的 h5 或 lynx 宿主
交互介绍
使用方与 sdk 的事件通信通过发布-订阅模式触发,即,使用方主动触发 sdk 的方法,sdk 逻辑执行完成后,触发回调方法给使用方,使用方监听这个方法执行相应逻辑。
import { DealerDataHandleEvents } from '@clue_nidapp/plugin-api-h5'
// DealerDataHandleEvents 是事件名枚举
formCore.emit(eventName, params);
formCore.on(eventName, (params) => {})
DealerDataHandleEvents 提供的事件如下
| 常量名 | 常量值 | 描述 | 回调方法返回值/触发事件参数 | 使用方触发事件或sdk回调 | | ---- | ---- | ---- | ---- | ---- | | DataSourceChange | "DataSourceChange" | 成功获取优选经销商数据 | IDealerData | sdk回调 | getPreferData | "getPreferData" | 获取优选经销商数据 | IMiniGetLocationRequest | 使用方触发事件 | getPreferDataFail | "getPreferDataFail" | 获取优选经销商数据失败 | | sdk回调 | getPreferDataEnd | "getPreferDataEnd" | getPreferData 结束后触发 | | 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[];
}
获取优选经销商数据请求参数
获取优选经销商有两种模式
手动模式 触发获取优选经销商方法时,同时传入省份和城市,插件将会返回在传入位置的优选经销商。
自动模式 触发获取优选经销商方法时,不传入省份和城市,插件将会先使用 deviceId 获取地理位置,然后根据获得的地理位置返回优选经销商。
interface IGetLocationRequest {
province?: string; // 用户所在省份 isManualGet 为 true 时生效
city?: string; // 用户所在城市 isManualGet 为 true 时生效
isManualGet?: boolean; // 是否根据传入的省份城市信息获取
optionNumber: number; // 推荐的优选经销商数量 最大为 10
authorize: boolean; // 用户是否授权地理位置
}