mtl-js-sdk
Version:
ynf-fw-mtl-api
1,325 lines (1,266 loc) • 39.1 kB
JavaScript
import axios from 'axios'
const FAIL_CODE = 1
const __NCC = "NCC"
/**
* 处理API成功的回调
*/
function successCallBack(obj = {}) {
obj.success && obj.success({})
obj.complete && obj.complete({})
}
function isAndroid() {
let userAgent = window.navigator.userAgent
if (userAgent.indexOf("QYZone_1") !== -1) {
return true
}
return false
}
const upesn = {
test() {
console.log("test")
},
uploadImageBackBase64(object) {
let _obj = object || {}
let data = {
// 'url': 'https://www.pgyer.com/app/publish',
url: "ht" + "tps://mdoctor.yonyou" + "cloud.com/mtldebugger/mtl/file/convertBase64",
filePath: _obj.filePath,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("uploadFile", data)
},
showToast(object) {
let _obj = object || {}
let data = Object.assign(
{
closeNcc: true,
content: _obj["content"],
duration: _obj["duration"],
},
handleResponse(_obj)
)
execEsnBridge("showToast", data)
},
customScanQRCode(object) {
let _obj = object || {}
let {
type = 1,
url,
callback,
scanLeftRatio = 0.25,
scanTopRatio = 0.1,
scanWidthRatio = 0.5,
scanHeightRatio = 0.2,
isHiddenLight = 0,
customNavi,
leftItems,
rightItems,
centerItems,
scanViewCloseCallback,
} = _obj
if (!url || !callback || scanWidthRatio === 0) {
let err = {
code: FAIL_CODE,
message: scanWidthRatio === 0 ? "scanWidthRatio is zero" : `${!url ? "url" : "callback"} is null`,
}
_obj.fail && object.fail(err)
_obj.complete && object.complete(err)
return
}
let data = Object.assign(
{
type,
url,
callback,
scanLeftRatio,
scanTopRatio,
scanWidthRatio,
scanHeightRatio,
isHiddenLight,
customNavi,
leftItems,
rightItems,
centerItems,
scanViewCloseCallback,
},
handleResponse(_obj)
)
execEsnBridge("customScanQRCode", data)
},
mdfCustomScanQRCode(object) {
let _obj = object || {}
let {
type,
hide,
callback,
scanLeftRatio,
scanTopRatio,
scanWidthRatio,
scanHeightRatio,
lineColor = "#00FF00",
scanUIStyle = 0,
backgroundHeightRatio,
isShowScanDesc = 0,
isShowLight = 0,
cornerLenthRatio = 0.1,
scanDescription = "",
} = _obj
if (typeof callback == "function") {
callback = "mdfQRCodeCallBack"
mtl.upesn.registerCommonCallback(callback, function (res, responseCallback) {
_obj.callback && _obj.callback(res)
_obj.complete &&
_obj.complete({
code: 200,
})
})
}
let data = Object.assign(
{
type,
hide,
callback: callback,
scanLeftRatio,
scanTopRatio,
scanWidthRatio,
scanHeightRatio,
lineColor,
scanUIStyle,
backgroundHeightRatio,
isShowScanDesc,
isShowLight,
cornerLenthRatio,
scanDescription,
closeNcc: true,
},
handleResponse(_obj)
)
execEsnBridge("mdfCustomScanQRCode", data)
},
mdfChangeCustomScanMode(object) {
let _obj = object || {}
let { type } = _obj
let data = Object.assign(
{
type,
closeNcc: true,
},
handleResponse(_obj)
)
if (isAndroid()) {
execEsnBridge("changeCustomScanMode", data)
} else {
execEsnBridge("mdfChangeCustomScanMode", data)
}
},
mdfChangeFlashLightStatus(object) {
let _obj = object || {}
let { type, callback } = _obj
let data = Object.assign(
{
type,
callback,
closeNcc: true,
},
handleResponse(_obj)
)
if (isAndroid()) {
execEsnBridge("changeFlashLightStatus", data)
} else {
execEsnBridge("mdfChangeFlashLightStatus", data)
}
},
getUserYHTInfo(object) {
let _obj = object || {}
let closeNcc = true
let data = Object.assign({ closeNcc }, handleResponse(_obj))
execEsnBridge("getUserYHTInfo", data)
},
registerCallback(callbackName, inCallback) {
let obj = {}
obj[callbackName] = function (data, callback) {
console.log(data)
if (!!data && data !== "{}") {
inCallback(JSON.parse(data).qrString, callback)
} else {
inCallback("", callback)
}
}
// eslint-disable-next-line no-undef
YYEsnBridge.registerHandler(obj)
},
registerCommonCallback(callbackName, inCallback) {
let obj = {}
obj[callbackName] = function (data, callback) {
inCallback(data, callback)
}
// eslint-disable-next-line no-undef
YYEsnBridge.registerHandler(obj)
},
registerResumeCallback(callbackName, inCallback) {
let obj = {}
obj[callbackName] = function (data) {
inCallback(data)
}
// eslint-disable-next-line no-undef
YYEsnBridge.registerHandler(obj)
},
executeDBOperate(obj) {
let _obj = obj || {}
let data = {
executeType: _obj.executeType,
executeSql: _obj.executeSql,
success: function (res) {
_obj.success && _obj.success(res)
},
fail: function (err) {
_obj.fail && _obj.fail(err)
},
complete: function (res) {
_obj.complete && _obj.complete(res)
},
}
execEsnBridge("executeDBOperate", data)
},
loadImageFromLocal(object) {
let _obj = object || {}
let data = {
url: _obj.url,
closeNcc: true,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("loadImageFromLocal", data)
},
chooseImage(object) {
//{OriginalSize: 830617, OriginalUrl: "", thumbSize: 0, thumbUrl: ""}
//目前先写出 一个地址
let _obj = object || {}
let data = {
sourceType: _obj.sourceType,
count: _obj.count,
watermark: _obj.watermark,
returnThumbnail: _obj.returnThumbnail,
success: function (res) {
// let _localIds = [];
// for (let index in res.pictures) {
// let _picture = res.pictures[index];
// let _value = _picture.filePath;
// _localIds.push(_value);
// }
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("chooseImages", data)
},
chooseImageToServer(object) {
let _obj = object || {}
let { count = 9, sourceType = ["album", "camera"], watermark } = _obj
if (!!watermark && isEmpty("text", watermark.text, object)) {
return
}
let data = Object.assign({ count, sourceType, watermark }, handleResponse(_obj))
execEsnBridge("chooseImageToServer", data)
},
compressLocalImage(object) {
let _obj = object || {}
let data = {
type: _obj.type,
level: _obj.level,
imgData: _obj.imgData,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("compressLocalImage", data)
},
viewUserInfo(object) {
let _obj = object || {}
let data = {
memberId: _obj.memberId,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("viewUserInfo", data)
},
chooseDepartment(object) {
let _obj = object || {}
let { multiple, selectedList, maxCount, selectedCount, deptType } = _obj
let data = {
multiple,
selectedList: selectedList ? selectedList : [],
maxCount,
selectedCount: selectedCount ? selectedCount : 0,
deptType,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("chooseDepartment", data)
},
chooseContacts(object) {
let _obj = object || {}
let { multiple, selectedList, maxCount, navTitle, navColor, qzId, canDelete, canSelectDept, needYhtUserId, filterCondition } = _obj
let data = {
multiple,
selectedList: selectedList ? selectedList : [],
maxCount,
navTitle,
navColor,
qzId,
canDelete,
canSelectDept,
needYhtUserId,
filterCondition,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("chooseContacts", data)
},
chooseAllContacts(object) {
let _obj = object || {}
let data = {
multiple: _obj.multiple,
navTitle: _obj.navTitle,
selectedList: _obj.selectedList,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("chooseAllContacts", data)
},
chooseInsideGroup(object) {
let _obj = object || {}
let data = {
multiple: _obj.multiple,
selectedList: _obj.selectedList,
groupType: _obj.groupType,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
// eslint-disable-next-line no-undef
YYEsnBridge.do("chooseInsideGroup", data)
},
createFeedComponent(object) {
let _obj = object || {}
let data = {
groupId: _obj.groupId,
groupName: _obj.groupName,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("createFeedComponent", data)
},
openChatByUserId(object) {
let _obj = object || {}
let { userType, userId } = _obj
if (isEmpty("userId", userId, object)) {
return
}
let data = Object.assign({ userId, userType }, handleResponse(_obj))
execEsnBridge("openChatByUserId", data)
},
sendImageMessages(object) {
let _obj = object || {}
let data = {
userType: _obj.userType,
chatId: _obj.chatId,
chatType: _obj.chatType,
filePaths: _obj.filePaths,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("sendImageMessages", data)
},
createNewSchedule(object) {
let _obj = object || {}
let data = {
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("createNewSchedule", data)
},
viewScheduleList(object) {
let _obj = object || {}
let data = {
time: _obj.time,
memberId: _obj.memberId,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("viewScheduleList", data)
},
viewScheduleDetail(object) {
let _obj = object || {}
let data = {
scheduleId: _obj.scheduleId,
subId: _obj.subId,
memberId: _obj.memberId,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("viewScheduleDetail", data)
},
sendMiniMail(object) {
let _obj = object || {}
let data = {
users: _obj.users,
spaceId: _obj.spaceId,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("sendMiniMail", data)
},
openLibraryFiles(object) {
let _obj = object || {}
let { firstCatalog, secondCatalog, thirdCatalog } = _obj
let data = {
firstCatalog,
secondCatalog,
thirdCatalog,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("openLibraryFiles", data)
},
previewDoc(object) {
let _obj = object || {}
let { fileId, fromType = fromType ? fromType : fileId ? 0 : 5, downloadUrl, fileName, needDownload, upload_url } = _obj
if (!fileId) {
var message
// 下载地址 文件名称存在
if (!!downloadUrl && !!fileName) {
let index = fileName.lastIndexOf(".")
let ext = fileName.substr(index + 1)
let fileType = [
"doc",
"docx",
"wps",
"dps",
"wpt",
"pot",
"potx",
"ppt",
"pptx",
"dpt",
"pps",
"ppsx",
"xls",
"xlsx",
"txt",
"pdf",
"rar",
"zip",
"avi",
"rmvb",
"rm",
"asf",
"divx",
"mpg",
"mpeg",
"mpe",
"wmv",
"mp4",
"mkv",
"vob",
"flv",
"jpg",
"jpeg",
"bmp",
"psd",
"gif",
"png",
"tiff",
"mp3",
"wav",
]
if (!fileType.includes(ext)) {
message = "fileName format error "
} else if (fromType === 9 && !upload_url) {
message = "upload_url is error "
} else {
let data = Object.assign({ fromType, downloadUrl, fileName, needDownload, upload_url }, handleResponse(_obj))
execEsnBridge("previewDoc", data)
return
}
} else {
message = "parameter is null"
}
let err = {
code: FAIL_CODE,
message: message,
}
_obj.fail && object.fail(err)
_obj.complete && object.complete(err)
return
}
// 文件ID
let data = Object.assign({ fileId, fromType }, handleResponse(_obj))
execEsnBridge("previewDoc", data)
},
wpsPreview(object) {
const _obj = object || {}
const { fileName, fileExt, fileUrl, fileId, appId } = _obj
const data = Object.assign({ fileName, fileExt, fileUrl, fileId, appId }, handleResponse(_obj))
execEsnBridge("wpsPreview", data)
},
closeCurrentWebview(object) {
let _obj = object || {}
let data = {
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("closeCurrentWebview", data)
},
settingNavBar(object) {
let _obj = object || {}
let { hide, backgroundColor, tintColor, fullScreen, hideShadowImage, statusBarStyle, leftItems, centerItems, rightItems } = _obj
var data = {
hide,
backgroundColor,
tintColor,
fullScreen,
hideShadowImage,
statusBarStyle,
}
// 数据为null 不添加
if (leftItems) {
data.leftItems = leftItems
}
if (centerItems) {
data.centerItems = centerItems
}
if (rightItems) {
data.rightItems = rightItems
}
let allData = {
...data,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("settingNavBar", allData)
},
chooseLocalFileToServer(object) {
let _obj = object || {}
let data = {
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("chooseLocalFileToServer", data)
},
chooseLocalFiles(object = {}) {
let { maxNumber = 5 } = object
let data = { maxNumber, ...handleResponse(object) }
execEsnBridge("chooseLocalFiles", data)
},
chooseLibraryFiles(object) {
let _obj = object || {}
let { type } = _obj
let data = {
type,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("chooseLibraryFiles", data)
},
startContinuousLocation(object) {
let _obj = object || {}
let data = {
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("continuousLocationStart", data)
},
getContinuousLocation(object) {
let _obj = object || {}
let data = {
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("continuousLocationGet", data)
},
stopContinuousLocation(object) {
let _obj = object || {}
let data = {
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("continuousLocationStop", data)
},
shareWithType(object) {
let _obj = object || {}
let data = {
title: _obj.title,
type: _obj.type,
desc: _obj.desc,
imageUrl: _obj.imageUrl,
pageUrl: _obj.pageUrl,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("shareWithType", data)
},
showAlert(object) {
let _obj = object || {}
let data = {
type: _obj.type,
title: _obj.title,
content: _obj.content,
confirmButtonText: _obj.confirmButtonText,
cancelButtonText: _obj.cancelButtonText,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("showAlert", data)
},
getAppData(object) {
let _obj = object || {}
let data = {
appId: _obj.appId,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("getAppData", data)
},
faceDetect(object) {
let _obj = object || {}
let { spaceId, faceGroupId, needSmile } = _obj
let data = {
spaceId,
faceGroupId,
needSmile,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("faceDetect", data)
},
setGesturePassword(object) {
let _obj = object || {}
let data = {
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("setGesturePassword", data)
},
verifyGesturePassword(object) {
let _obj = object || {}
let data = {
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("verifyGesturePassword", data)
},
verifyLoginPassword(object) {
let _obj = object || {}
let { title } = _obj
let data = {
title,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("verifyLoginPassword", data)
},
showShareMenu(object) {
let _obj = object || {}
let { type, title, desc, imageUrl, pageUrl } = _obj
if (isEmpty("desc", desc, object) || isEmpty("pageUrl", pageUrl, object)) {
return
}
let closeNcc = true
let data = Object.assign(
{
title,
type,
desc,
imageUrl,
pageUrl,
closeNcc,
},
handleResponse(_obj)
)
execEsnBridge("showShareMenu", data)
},
voiceToText(object) {
execEsnBridge("voiceToText", handleResponse(object))
},
chooseFile(obj = {}) {
execEsnBridge("chooseFile", obj)
},
changeFlashLightStatus(object) {
let _obj = object || {}
let { type, callback } = _obj
let data = Object.assign(
{
callback,
type,
},
handleResponse(_obj)
)
execEsnBridge("changeFlashLightStatus", data)
},
isShowTabbar(object) {
let _obj = object || {}
let data = {
isShow: _obj.isShow,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("isShowTabbar", data)
},
openNewWebview(object) {
let _obj = object || {}
let data = {
url: _obj.url,
orientation: _obj.orientation,
navShow: _obj.navShow,
title: _obj.title,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("openNewWebview", data)
},
login(object) {
let path = object.url ? object.url : "ht" + "tps://mdf-mobile-dai" + "ly.yonyoucloud.com"
mtl.upesn.getUserYHTInfo({
success: (result) => {
const { yhtToken, yht_access_token, yht_userid, tenant_id } = result
const token = yhtToken || yht_access_token
if (token && yht_userid && tenant_id) {
axios
.get(path + "/mobile/app/index/yht/token/context", {
params: {
yhtAccessTokenCipher: token,
userId: yht_userid,
tenantId: tenant_id,
},
withCredentials: true,
})
.then((response) => {
object.success && object.success(response.data)
object.complete &&
object.complete({
code: 200,
data: response.data,
})
})
.catch((error) => {
object.fail && object.fail(error)
object.complete && object.complete(error)
})
}
},
fail: (err) => {
object.fail && object.fail(err)
object.complete && object.complete(err)
},
})
},
openAppWithParams(object) {
let _obj = object || {}
let data = {
app_id: _obj.app_id,
qz_id: _obj.qz_id,
pluginId: _obj.pluginId,
closeNcc: true,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("openAppWithParams", data)
},
getToken(object) {
let _obj = object || {}
let data = {
closeNcc: true,
success: function (res) {
_obj.success && object.success(res)
},
fail: function (err) {
_obj.fail && object.fail(err)
},
complete: function (res) {
_obj.complete && object.complete(res)
},
}
execEsnBridge("getToken", data)
},
getBlueToothState(object) {
const closeNcc = true
const data = Object.assign(
{
closeNcc,
},
handleResponse(object)
)
execEsnBridge("getBlueToothState", data)
},
blueToothConnectState(object) {
const closeNcc = true
const data = Object.assign(
{
closeNcc,
},
handleResponse(object)
)
execEsnBridge("blueToothConnectState", data)
},
blueToothScan(object) {
const closeNcc = true
const { registerFunc } = object
mtl.upesn.registerCommonCallback("blueToothDevices", function (res, responseCallback) {
registerFunc && registerFunc(res)
})
const data = Object.assign(
{
closeNcc,
registerFunc: "blueToothDevices",
},
handleResponse(object)
)
execEsnBridge("blueToothScan", data)
},
blueToothConnect(object) {
const closeNcc = true
const { deviceIndentify, deviceName } = object
const data = Object.assign(
{
closeNcc,
deviceIndentify,
deviceName,
},
handleResponse(object)
)
execEsnBridge("blueToothConnect", data)
},
blueToothPrint(object) {
const closeNcc = true
const { printNum, content } = object
const data = Object.assign(
{
closeNcc,
printNum,
content,
},
handleResponse(object)
)
execEsnBridge("blueToothPrint", data)
},
blueToothDisConnect(object) {
const closeNcc = true
const data = Object.assign(
{
closeNcc,
},
handleResponse(object)
)
execEsnBridge("blueToothDisConnect", data)
},
blueToothStopScan(object) {
const closeNcc = true
const data = Object.assign(
{
closeNcc,
},
handleResponse(object)
)
execEsnBridge("blueToothStopScan", data)
},
//连接RFID设备
rfidConnect(object) {
const closeNcc = true
const { callback } = object
mtl.upesn.registerCommonCallback("rfidConnectCallback", function (res, responseCallback) {
callback && callback(res)
})
const data = Object.assign(
{
closeNcc,
callback: "rfidConnectCallback",
},
handleResponse(object)
)
execEsnBridge("rfidConnect", data)
},
//断开连接RFID设备
rfidDisconnect(object) {
const closeNcc = true
const data = Object.assign(
{
closeNcc,
},
handleResponse(object)
)
execEsnBridge("rfidDisconnect", data)
},
//设置小程序胶囊样式
setAppletCapsuleStyle(object) {
let _obj = object || {}
const data = Object.assign(
{
..._obj,
closeNcc: true,
},
handleResponse(object)
)
execEsnBridge("setAppletCapsuleStyle", data)
},
//获取胶囊设置参数
getAppletCapsuleParams(object) {
let _obj = object || {}
const data = Object.assign(
{
..._obj,
closeNcc: true,
},
handleResponse(object)
)
execEsnBridge("getAppletCapsuleParams", data)
},
//设置状态栏样式
setStatusBarStyle(object) {
let _obj = object || {}
const data = Object.assign(
{
..._obj,
closeNcc: true,
},
handleResponse(object)
)
execEsnBridge("setStatusBarStyle", data)
},
sendTodoReceipt(object = {}) {
successCallBack(object)
},
chooseDocFiles(object = {}) {
successCallBack(object)
},
getAppInfomation(object = {}) {
successCallBack(object)
},
}
function execEsnBridge(method, source) {
let __start = source.closeNcc ? "" : __NCC
let data = {
...source,
fail: function (error) {
console.log("error:", error)
source.fail(getErrormsg(method, error, __start))
},
}
console.log("exec YYEsnBridge.do method :", __start + method)
console.log("data: ", data)
// eslint-disable-next-line no-undef
YYEsnBridge.do(__start + method, data)
}
/**
* 400 参数不合法
401 用户无权限访问
405 APP无权限进行此项操作,如打开照相机,APP未取得授权
406 文件大小超出限制
500 http请求错误
501 http服务器错误
1001 无网络
1002 解析错误
1003 用户取消
-1 未知错误
-2 界面超时
-1000 未找到对应方法
* @param {*} error
*/
function getErrormsg(method, error, __start) {
let esnError = {
code: -1,
message: errmsg,
}
if (typeof error === "object") {
let code = error && error.errCode
let msg = ""
if (code == 1003) {
msg = "by user cancel"
} else if (code == -1000) {
msg = "method no found"
} else if (code == 405) {
msg = "Unauthorized and unauthorized to perform this operation!"
} else if (code == 401) {
msg = "User doesn't have permission to access"
}
esnError.code = code
esnError.message = msg || JSON.stringify(error)
}
let errmsg = `YYZone api ${__start + method}, error message: ${esnError.message}`
esnError.message = errmsg
return esnError
}
/**
* 统一处理API的回调
* @param {*} object
* @param {*} callback
*/
function handleResponse(object, callback) {
return {
success: (res) => {
let data = (callback && callback(res)) || res
object.success && object.success(data)
object.complete &&
object.complete({
code: 200,
data,
})
},
fail: (res) => {
console.log("handleResponse:fail", res)
object.fail && object.fail(res)
object.complete && object.complete(res)
},
}
}
/**
* 参数为空判断
*/
function isEmpty(key, value, obj) {
if (!!!value) {
let res = {
code: -1,
message: `${key} is null`,
}
obj.fail && obj.fail(res)
obj.complete && obj.complete(res)
return true
}
return false
}
let exports = {
upesn,
execEsnBridge,
handleResponse,
successCallBack,
isEmpty,
}
export default exports