Prechádzať zdrojové kódy

feat(merchant): 优化首页二维码扫描功能

- 添加二维码类型检查,仅支持店内核销类型- 优化扫描结果处理逻辑,提高用户体验
- 引入 QrCodeBusinessType 枚举,规范二维码业务类型
- 移除不必要的 console.log 语句,清理代码
EvilDragon 4 mesiacov pred
rodič
commit
5e96575d1e

+ 8 - 8
packages/merchant/src/pages/home/index.vue

@@ -17,8 +17,9 @@ import Card from '@designer-hub/app/src/components/card.vue'
 import { merchantPageHeaderBg, scanIcon, bookIcon } from '@designer-hub/assets/src/svgs'
 import { useUserStore } from '../../store'
 import { storeToRefs } from 'pinia'
-import { requestToast } from '@designer-hub/app/src/core/utils/common'
+import { qrCodeString2Object, requestToast } from '@designer-hub/app/src/core/utils/common'
 import { useRouter } from '@designer-hub/app/src/core/utils/router'
+import { QrCodeBusinessType } from '@designer-hub/app/src/core/libs/models'
 
 defineOptions({
   name: 'Home',
@@ -104,17 +105,16 @@ console.log(data.value)
 const toDesigner = () => {
   uni.navigateTo({ url: '/pages/designer/index' })
 }
-const toSettlement = async () => {
-  console.log('11')
-
-  await uni.navigateTo({ url: '/pages/home/merchant/settlement' })
-}
 const handleScanning = async () => {
   console.log('handleScanning')
 
   const { result } = await uni.scanCode({ scanType: ['qrCode'] })
-  console.log(result)
-  await requestToast(() => scanCodeCheckPaper({ orderNo: result }), {
+  const { type, options } = qrCodeString2Object(result)
+  if (type !== QrCodeBusinessType.InStoreWriteOff) {
+    uni.showToast({ title: '不支持此二维码/条码', icon: 'none', duration: 5000 })
+    return
+  }
+  await requestToast(() => scanCodeCheckPaper({ orderNo: options.no }), {
     success: true,
     successTitle: '验券成功',
   })