const { IoTVsp, IoTVspEvent, modeType } = requirePlugin('IoTVsp') import { userCreate, isvPid, orgOutId, componentOutId } from '/utils/api/zfb_ioTVsp' let throttle = false const iotVspInit = function(callback = null) { // 跳转到开通结果时监听上报结果数据 IoTVsp.addEventListener(IoTVspEvent.query, (data) => { // 当跳转至开通结果页,data中能获取到上报到信息,不需要点击完成拿到信息 // console.log('IoTVspEvent.query-->', data) }) // 开通结果页点击完成返回事件 IoTVsp.addEventListener(IoTVspEvent.back, (data) => { //若配置不跳转至默认开通成功页,则开通成功后执行此回调 // console.log('IoTVspEvent.back-->', data) // my.alert({content: 'IoTVspEvent.back-->' + JSON.stringify(data)}) if(callback != null && throttle) { throttle = false callback(data) } }) // 错误事件监听 IoTVsp.addEventListener(IoTVspEvent.result, (data) => {}) } const _startComponent = function(uniqueId) { if(!uniqueId) { return } throttle = true IoTVsp.start({ mode: modeType.faceverify, config: { uniqueId, isvPid: isvPid, orgOutId: orgOutId, componentOutId: componentOutId } }) } const iotVspUniqueId = function(idNumber, username, phone, avatar, uniqueId = null) { return new Promise((resolve, reject) => { if(!idNumber && !username && !phone) { reject() return } if(uniqueId) { _startComponent(uniqueId) resolve(false) return } userCreate({ certType: 'IDENTITY_CARD', certNo: idNumber, certName: username, phone: phone, avatar }).then((res) => { if(res.data && !res.data.uniqueId) { // uniqueId为空,表示已入库 resolve(true) } else { _startComponent(res.data.uniqueId) resolve(false) } }).catch((error) => { reject(error) }) }) } module.exports = { iotVspUniqueId, iotVspInit }