3. 订单处理
封装了订单相关的操作函数,如提交订单、取消订单、获取订单列表等。在提交订单时,会将购物车中的商品信息进行整理并发送给后端。
export function addDnOrderUtil(list: Array<CarGoodInfo>, params: AddDnOrderReq): Promise<number> {
return new Promise((resolve, reject) => {
let sz = list?.map((carGood: CarGoodInfo) => {
return {
id: carGood.goodId,
img: carGood.logo,
money: carGood.money,
name: carGood.name,
num: carGood.num,
spec: carGood.spec,
combination: carGood.combination,
} as GoodReq
}) as Array<GoodReq>
let req = {
tableId: AppStorage.get('tableId') as string,
userId: AppStorage.get('userId') as string,
storeId: AppStorage.get('storeId') as string,
money: params.money,
reductionMoney: params.reductionMoney,
discount: '0',
mjMoney: params.mjMoney,
xyhMoney: params.xyhMoney,
note: params.note,
type: 2,
formId: 1,
formId2: 1,
payType: 0,
sz: JSON.stringify(sz),
tableware: AppStorage.get('dinerNum') as number,
yhqMoney: params.yhqMoney ?? '0',
couponId: params.couponId,
orderType: params.orderType,
boxMoney: params.orderType === OrderTypeEnum.STORE_DINING ? 0 : params.boxMoney, // orderType为0堂食,无打包费;为4外带,有打包费
} as AddDnOrderReq
HttpRequestApi.addDnOrder(req).then((resp: number) => {
if (resp) {
console.info(`AddDnOrderUtil resp:${JSON.stringify(resp)}.`);
getMyCarUtil()
resolve(resp)
} else {
console.error(`AddDnOrderUtil error: ${JSON.stringify(resp)}.`);
reject(resp)
}
})
.catch((e: BusinessError) => {
console.error(`AddDnOrderUtil error: ${JSON.stringify(e)}.`);
reject(e)
})
})
}
4. 其他功能
还封装了一些实用工具函数,如复制字符串、拨打电话、支付操作等。这些函数利用了 HarmonyOS 提供的系统能力,为用户提供了更好的交互体验。
export function copyString(param: string) {
let pasteData: pasteboard.PasteData =
pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, param)
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setData(pasteData)
.then(() => {
console.info('succeeded in setting PasteData. ')
promptAction.showToast({
message: $r('app.string.copy_success'),
duration: 2000,
});
})
.catch((err: BusinessError) => {
console.error(`faild to set PasteData, ${JSON.stringify(err)}`)
})
}
通过这些工具函数的封装,在 HarmonyOS 5 应用开发中可以更加高效地实现各种业务功能,同时也方便了代码的管理和维护。