72
72
<Icon class =" mr-5px" icon =" ep:refresh" />
73
73
重置
74
74
</el-button >
75
- <el-button @click =" handlePickup" type =" success" plain v-hasPermi =" ['trade:order:pick-up']" :disabled =" isUse" >
75
+ <el-button
76
+ @click =" handlePickup"
77
+ type =" success"
78
+ plain
79
+ v-hasPermi =" ['trade:order:pick-up']"
80
+ :disabled =" isUse"
81
+ >
76
82
<Icon class =" mr-5px" icon =" ep:check" />
77
83
核销
78
84
</el-button >
@@ -221,26 +227,20 @@ import { DeliveryTypeEnum } from '@/utils/constants'
221
227
import { TradeOrderSummaryRespVO } from ' @/api/mall/trade/order'
222
228
import { DeliveryPickUpStoreVO } from ' @/api/mall/trade/delivery/pickUpStore'
223
229
import OrderPickUpForm from ' @/views/mall/trade/order/form/OrderPickUpForm.vue'
224
- import { ref , onMounted } from " vue" ;
230
+ import { ref , onMounted } from ' vue'
231
+ import { useUserStore } from ' @/store/modules/user'
225
232
const message = useMessage () // 消息弹窗
226
233
227
- const port = ref (" " );
228
- const ports = ref ([]);
229
- const reader = ref (" " );
234
+ const port = ref (' ' )
235
+ const ports = ref ([])
236
+ const reader = ref (' ' )
230
237
231
238
defineOptions ({ name: ' PickUpOrder' })
232
239
233
- // 列表的加载中
234
- const loading = ref (true )
235
- // 列表的总页数
236
- const total = ref (2 )
237
- // 列表的数据
238
- const list = ref <TradeOrderApi .OrderVO []>([])
239
- // 搜索的表单
240
- const queryFormRef = ref <FormInstance >()
241
- const serialPort = ref (false )
242
- const isUse = ref (true )
243
- // 初始表单参数
240
+ const loading = ref (true ) // 列表的加载中
241
+ const total = ref (2 ) // 列表的总页数
242
+ const list = ref <TradeOrderApi .OrderVO []>([]) // 列表的数据
243
+ const queryFormRef = ref <FormInstance >() // 搜索的表单
244
244
const INIT_QUERY_PARAMS = {
245
245
// 页数
246
246
pageNo: 1 ,
@@ -251,15 +251,15 @@ const INIT_QUERY_PARAMS = {
251
251
// 配送方式
252
252
deliveryType: DeliveryTypeEnum .PICK_UP .type ,
253
253
// 自提门店
254
- pickUpStoreId: undefined
255
- }
254
+ pickUpStoreId: - 1
255
+ } // 初始表单参数
256
+
257
+ const queryParams = ref ({ ... INIT_QUERY_PARAMS }) // 表单搜索
258
+ const queryType = reactive ({ queryParam: ' no' }) // 订单搜索类型 queryParam
259
+ const summary = ref <TradeOrderSummaryRespVO >() // 订单统计数据
256
260
257
- // 表单搜索
258
- const queryParams = ref ({ ... INIT_QUERY_PARAMS })
259
- // 订单搜索类型 queryParam
260
- const queryType = reactive ({ queryParam: ' no' })
261
- // 订单统计数据
262
- const summary = ref <TradeOrderSummaryRespVO >()
261
+ const serialPort = ref (false ) // 是否连接扫码枪
262
+ const isUse = ref (true ) // 是否可核销
263
263
264
264
// 订单聚合搜索 select 类型配置(动态搜索)
265
265
const dynamicSearchList = ref ([
@@ -308,7 +308,7 @@ const handleQuery = async () => {
308
308
const resetQuery = () => {
309
309
queryFormRef .value ?.resetFields ()
310
310
queryParams .value = { ... INIT_QUERY_PARAMS }
311
- if (pickUpStoreList .value .length > 0 ) {
311
+ if (pickUpStoreList .value .length > 0 ) {
312
312
queryParams .value .pickUpStoreId = pickUpStoreList .value [0 ].id
313
313
}
314
314
handleQuery ()
@@ -317,7 +317,12 @@ const resetQuery = () => {
317
317
/** 自提门店精简列表 */
318
318
const pickUpStoreList = ref <DeliveryPickUpStoreVO []>([])
319
319
const getPickUpStoreList = async () => {
320
- pickUpStoreList .value = await PickUpStoreApi .getListAllSimple ()
320
+ pickUpStoreList .value = await PickUpStoreApi .getSimpleDeliveryPickUpStoreList ()
321
+ // 移除自己无法核销的门店
322
+ const userId = useUserStore ().getUser .id
323
+ pickUpStoreList .value = pickUpStoreList .value .filter ((item ) =>
324
+ item .verifyUserIds ?.includes (userId )
325
+ )
321
326
}
322
327
323
328
/** 显示核销表单 */
@@ -330,85 +335,92 @@ const handlePickup = () => {
330
335
const connectToSerialPort = async () => {
331
336
try {
332
337
// 判断浏览器支持串口通信
333
- if (" serial" in navigator && navigator .serial != null && typeof navigator .serial === ' object' && " requestPort" in navigator .serial ) {
338
+ if (
339
+ ' serial' in navigator &&
340
+ navigator .serial != null &&
341
+ typeof navigator .serial === ' object' &&
342
+ ' requestPort' in navigator .serial
343
+ ) {
334
344
// 提示用户选择一个串口
335
- port .value = await navigator .serial .requestPort ();
345
+ port .value = await navigator .serial .requestPort ()
336
346
} else {
337
- message .error (" 浏览器不支持扫码枪连接,请更换浏览器重试" )
347
+ message .error (' 浏览器不支持扫码枪连接,请更换浏览器重试' )
338
348
return
339
349
}
340
350
341
351
// 获取用户之前授予该网站访问权限的所有串口。
342
- ports .value = await navigator .serial .getPorts ();
352
+ ports .value = await navigator .serial .getPorts ()
343
353
344
354
// console.log(port.value, ports.value);
345
- console .log (port .value );
355
+ // console.log(port.value)
346
356
// 等待串口打开
347
- await port .value .open ({ baudRate: 9600 , dataBits: 8 , stopBits: 2 });
357
+ await port .value .open ({ baudRate: 9600 , dataBits: 8 , stopBits: 2 })
348
358
349
359
// console.log(typeof port.value);
350
- message .success (" 成功连接扫码枪" )
351
- serialPort .value = true ;
360
+ message .success (' 成功连接扫码枪' )
361
+ serialPort .value = true
352
362
// readData(port.value);
353
- readData ();
363
+ readData ()
354
364
} catch (error ) {
355
365
// 处理连接串口出错的情况
356
- console .log (" Error connecting to serial port:" , error );
366
+ console .log (' Error connecting to serial port:' , error )
357
367
}
358
- };
368
+ }
359
369
360
370
/** 监听扫码枪输入 */
361
371
const readData = async () => {
362
- reader .value = port .value .readable .getReader ();
363
- let data = " " ; // 扫码数据
372
+ reader .value = port .value .readable .getReader ()
373
+ let data = ' ' // 扫码数据
364
374
// 监听来自串口的数据
365
375
while (true ) {
366
- const { value, done } = await reader .value .read ();
376
+ const { value, done } = await reader .value .read ()
367
377
if (done ) {
368
378
// 允许稍后关闭串口
369
- reader .value .releaseLock ();
370
- break ;
379
+ reader .value .releaseLock ()
380
+ break
371
381
}
372
382
// 获取发送的数据
373
- const serialData = new TextDecoder ().decode (value );
374
- data = ` ${data }${serialData } ` ;
375
- if (serialData .includes (" \r " )) {
383
+ const serialData = new TextDecoder ().decode (value )
384
+ data = ` ${data }${serialData } `
385
+ if (serialData .includes (' \r ' )) {
376
386
// 读取结束
377
- let codeData = data .replace (" \r " , " " );
378
- data = " " ; // 清空下次读取不会叠加
379
- console .log (` 二维码数据:${codeData } ` );
387
+ let codeData = data .replace (' \r ' , ' ' )
388
+ data = ' ' // 清空下次读取不会叠加
389
+ console .log (` 二维码数据:${codeData } ` )
380
390
// 处理拿到数据逻辑
381
391
pickUpForm .value .open (codeData )
382
392
}
383
393
}
384
- };
394
+ }
385
395
386
396
/** 断开扫码枪 */
387
397
const cutPort = async () => {
388
- if (port .value !== " " ) {
389
- await reader .value .cancel ();
390
- await port .value .close ();
391
- port .value = " " ;
392
- console .log (" 断开扫码枪连接" );
393
- message .success (" 已成功断开扫码枪连接" )
394
- serialPort .value = false ;
398
+ if (port .value !== ' ' ) {
399
+ await reader .value .cancel ()
400
+ await port .value .close ()
401
+ port .value = ' '
402
+ console .log (' 断开扫码枪连接' )
403
+ message .success (' 已成功断开扫码枪连接' )
404
+ serialPort .value = false
395
405
} else {
396
- message .warning (" 请先连接或打开扫码枪" )
406
+ message .warning (' 请先连接或打开扫码枪' )
397
407
}
398
- };
408
+ }
399
409
400
410
/** 初始化 **/
401
411
onMounted (async () => {
402
412
await getPickUpStoreList ()
403
- if (pickUpStoreList .value .length > 0 ){
404
- queryParams .value .pickUpStoreId = pickUpStoreList .value [0 ].id
405
- isUse .value = false
406
- await getList ()
407
- }else {
408
- message .error (" 当前登录人没绑定任何自提点" )
413
+ if (pickUpStoreList .value .length === 0 ) {
414
+ message .error (' 当前登录人没绑定任何自提点' )
409
415
loading .value = false
410
416
isUse .value = true
417
+ return
411
418
}
419
+
420
+ // 查询
421
+ queryParams .value .pickUpStoreId = pickUpStoreList .value [0 ].id
422
+ isUse .value = false
423
+ await getList ()
412
424
})
413
425
</script >
414
426
<style lang="scss" scoped>
0 commit comments