| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- import { BasicType, BookItem, IBestToast, YTAvoid, yTRouter } from "basic"
- import { Address } from "../../model/Address"
- import { OrderStatus } from "../../model/EnumState"
- import { OrderDetailData } from "../../model/OrderModelIndex"
- import { OrderDetailModel } from "../../model/RouterModel"
- import { pasteboard } from "@kit.BasicServicesKit"
- @ObservedV2
- export class OrderDetailViewModel{
- @Trace safeBottom: number = AppStorage.get(YTAvoid.SAFE_BOTTOM_KEY) as number
- // 地址
- @Trace address: Address = {}
- // 书籍列表
- @Trace bookList: Array<BookItem> = []
- // 小计
- @Trace totalPrice: string = ''
- // 支付方式
- @Trace payWay: number = 0
- // 是否展开实付
- @Trace isExpand: boolean = false
- // 订单信息遍历
- @Trace forEach1: Array<BasicType> = []
- @Trace forEach2: Array<BasicType> = []
- @Trace orderInfo: OrderDetailData = {}
- // 订单状态
- @Trace status: OrderStatus
- // 支付方式遍历
- payWayList: Array<BasicType> = [
- { text: '微信支付', src: $r('[basic].media.icon_wx'), color: '#20BB06'},
- { text: '支付宝支付', src: $r('[basic].media.ali_pay'), color: '#06B4FD'},
- ]
- constructor(param: OrderDetailModel) {
- this.forEach1 = [
- { text: '租借期限', message: '30天' },
- { text: '租借时间', message: '快递签收日起30天' },
- { text: '租借价格', message: `¥${param.orderInfo.bookPrice}` },
- { text: '往返运费', message: `¥${param.orderInfo.postFee}` },
- { text: '租借期限', message: '30天' },
- ]
- this.forEach2 = [
- { text: '订单号', message: param.orderInfo.id, type: 'Copy' },
- { text: '下单时间', message: '2025-11-14 16:05', type: 'Text' },
- { text: '支付时间', message: '2025-11-14 16:05', type: 'Text' },
- { text: '支付方式', message: '2025-11-14 16:05', type: 'Text' },
- { text: '备注', message: param.orderInfo.remark ?? '无', type: 'Text' },
- ]
- this.address = {
- address: param.orderInfo.address,
- userName: param.orderInfo.userName,
- phone: param.orderInfo.phone,
- region: param.orderInfo.region,
- }
- this.bookList = param.orderInfo.bookList ?? []
- this.totalPrice = param.orderInfo.orderPrice!
- this.status = param.status
- }
- onCopyOrderNumber(order: string){
- // 1. 创建 PasteData 对象
- let pasteData = pasteboard.createPlainTextData(order);
- // 2. 获取系统剪贴板实例
- let systemPasteboard = pasteboard.getSystemPasteboard();
- // 3. 同步写入数据
- try {
- systemPasteboard.setDataSync(pasteData);
- console.log('写入剪贴板成功');
- IBestToast.show('复制成功')
- } catch (error) {
- console.error('写入失败,错误码: ' + error.code);
- IBestToast.show('复制失败,请重试')
- }
- }
- // 返回对应文案
- getOrderStatusText(status: OrderStatus): BasicType {
- switch (status) {
- case OrderStatus.PENDING_PAYMENT:
- // todo 待支付的需要完善
- return { text: '待支付' };
- case OrderStatus.BORROWING:
- return { text: '借阅中', message: '敬请享受阅读的快乐!阅读完成,请预约快递上门取书' };
- case OrderStatus.PENDING_OUTBOUND:
- return { text: '待出库', message: '图书正在检测消毒,尽快发货~' };
- case OrderStatus.PENDING_PICKUP:
- // todo 待取书的需要完善
- return { text: '待取书' };
- case OrderStatus.CLOSED:
- return { text: '订单关闭', message: '期待您的下一次借阅!' };
- case OrderStatus.BORROWING_COMPLETED:
- return { text: '借阅完成', message: '期待您的下一次借阅!' };
- case OrderStatus.PENDING_ACCEPTANCE:
- return { text: '待验收', message: '收到书后,工作人员将尽快验收入库' };
- case OrderStatus.PENDING_RECEIPT:
- // todo 待收书的需要完善
- return { text: '待收书' };
- default:
- return { text: '', message: '' };
- }
- }
- // 切换支付方式
- changePayWay(index: number){
- this.payWay = index
- }
- /** 前往联系客服 */
- gotoCustomerService() {}
- }
|