@feedmepos/mf-order-setting 0.0.22 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{KioskDevicesView-C6YmdLKc.js → KioskDevicesView-DGkvW2mH.js} +1 -1
- package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-DiLHpWbm.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-BGZLd8T_.js} +2 -2
- package/dist/KioskSettingView-DLb5nnCu.js +821 -0
- package/dist/KioskView-kZZYSfUh.js +430 -0
- package/dist/{OrderSettingsView-D_bGK-3J.js → OrderSettingsView-Cil4j9G5.js} +14 -11
- package/dist/{app-C5qwExhL.js → app-D47VRl5B.js} +47 -39
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-kEC9G7bx.js → dayjs.min-R4180ukF.js} +1 -1
- package/dist/frontend/mf-order/src/app.d.ts +8 -0
- package/dist/frontend/mf-order/src/modules/order-setting/kiosk/interface.d.ts +17 -0
- package/dist/frontend/mf-order/src/stores/order-setting/index.d.ts +192 -12
- package/dist/frontend/mf-order/src/stores/order-setting/mapper.d.ts +4 -2
- package/dist/frontend/mf-order/src/views/kiosk/settings/KioskEnablePaxDialogSection.vue.d.ts +9 -0
- package/dist/frontend/mf-order/src/views/kiosk/settings/KioskInstructionSection.vue.d.ts +15 -0
- package/dist/frontend/mf-order/src/views/kiosk/settings/KioskPickAtCounterSection.vue.d.ts +4 -3
- package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{index-C_53CwBa.js → index-DgLlDwJK.js} +2 -2
- package/dist/package/entity/order-platform/foodpanda/foodpanda-order.do.d.ts +16 -16
- package/dist/package/entity/order-platform/foodpanda/foodpanda-order.dto.d.ts +6 -6
- package/dist/package/entity/order-setting/kiosk/kiosk.do.d.ts +129 -0
- package/dist/package/entity/order-setting/kiosk/kiosk.dto.d.ts +255 -0
- package/dist/package/entity/order-setting/kiosk/kiosk.enum.d.ts +3 -0
- package/dist/package/entity/order-setting/order-setting.do.d.ts +156 -8
- package/dist/package/entity/order-setting/order-setting.dto.d.ts +312 -16
- package/dist/package/entity/order-setting/sequence/sequence.do.d.ts +4 -4
- package/dist/package/entity/order-setting/sequence/sequence.dto.d.ts +4 -4
- package/dist/package/entity/payment/payment.enum.d.ts +2 -0
- package/dist/package/entity/restaurant/restaurant.dto.d.ts +154 -6
- package/dist/package/entity/websocket/websocket.dto.d.ts +328 -0
- package/dist/{queue.do-Vog69wnQ.js → queue.do-CNMuossU.js} +4540 -4517
- package/package.json +1 -1
- package/src/locales/en-US.json +5 -2
- package/src/locales/zh-CN.json +4 -0
- package/src/modules/order-setting/kiosk/interface.ts +20 -0
- package/src/stores/order-setting/mapper.ts +68 -11
- package/src/views/kiosk/settings/KioskDineInSection.vue +4 -5
- package/src/views/kiosk/settings/KioskDisplayStandSection.vue +36 -0
- package/src/views/kiosk/settings/KioskEnablePaxDialogSection.vue +33 -0
- package/src/views/kiosk/settings/KioskInstructionSection.vue +40 -0
- package/src/views/kiosk/settings/KioskPaymentTypeSection.vue +30 -19
- package/src/views/kiosk/settings/KioskPickAtCounterSection.vue +45 -7
- package/src/views/kiosk/settings/KioskSettingView.vue +41 -3
- package/src/views/kiosk/settings/KioskTakeawaySection.vue +38 -4
- package/src/views/order-settings/servicecharge/ServiceChargeRule.vue +3 -8
- package/dist/KioskSettingView-D-muNxlb.js +0 -649
- package/dist/KioskView-kcjjk4fF.js +0 -371
package/package.json
CHANGED
package/src/locales/en-US.json
CHANGED
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"customerItemRemarkSublabel": "Customer can attach remark to item",
|
|
61
61
|
"customOfflinePayment": "Custom Offline Payment",
|
|
62
62
|
"customOfflinePaymentHeader": "Custom offline payments",
|
|
63
|
-
"customServiceCharge": "Custom
|
|
63
|
+
"customServiceCharge": "Custom Service Charge",
|
|
64
64
|
"customTime": "Custom time",
|
|
65
65
|
"day": "Day",
|
|
66
66
|
"days": "days",
|
|
@@ -84,6 +84,8 @@
|
|
|
84
84
|
"dineInType": "Dine In Type",
|
|
85
85
|
"discountCampaign": "Discount Campaign",
|
|
86
86
|
"displayStand": "Display Stand",
|
|
87
|
+
"displayPaxDialogTitle": "Display Pax Dialog",
|
|
88
|
+
"displayPaxDialogDescription": "Display pax dialog in kiosk",
|
|
87
89
|
"edit": "Edit",
|
|
88
90
|
"editOfflinePayment": "Edit offline payment",
|
|
89
91
|
"editPickupPoint": "Edit pickup Point",
|
|
@@ -164,6 +166,7 @@
|
|
|
164
166
|
"orderSetting": "Order Setting",
|
|
165
167
|
"orderType": "Order Type",
|
|
166
168
|
"padDigit": "Pad Digit",
|
|
169
|
+
"paid": "Paid",
|
|
167
170
|
"payAtCounter": "Pay at Counter",
|
|
168
171
|
"paymentMethod": "Payment Method",
|
|
169
172
|
"paymentType": "Payment Type",
|
|
@@ -212,6 +215,7 @@
|
|
|
212
215
|
"staticQRcode": "Static QR code",
|
|
213
216
|
"staticQRcodeSublabel": "Customer can order with static QR code",
|
|
214
217
|
"status": "Status",
|
|
218
|
+
"submitOrderInstruction": "Submit order instruction",
|
|
215
219
|
"success": "SUCCESS",
|
|
216
220
|
"sunday": "Sunday",
|
|
217
221
|
"syncMenu": "Sync Menu",
|
|
@@ -248,7 +252,6 @@
|
|
|
248
252
|
"updateSetting": "Update setting",
|
|
249
253
|
"vendorBearPercentage": "Vendor bear percentage",
|
|
250
254
|
"wednesday": "Wednesday",
|
|
251
|
-
"integratedDeliveryCompany": "Integrated delivery company",
|
|
252
255
|
"externalDelivery": "External Delivery",
|
|
253
256
|
"manageExternalDelivery": "Manage external delivery",
|
|
254
257
|
"deliveryCatalog": "Delivery catalog",
|
package/src/locales/zh-CN.json
CHANGED
|
@@ -85,6 +85,8 @@
|
|
|
85
85
|
"dineInType": "堂食类型",
|
|
86
86
|
"discountCampaign": "促销活动",
|
|
87
87
|
"displayStand": "桌牌",
|
|
88
|
+
"displayPaxDialogTitle": "显示人数弹窗",
|
|
89
|
+
"displayPaxDialogDescription": "在自助点餐设备显示人数弹窗",
|
|
88
90
|
"edit": "编辑",
|
|
89
91
|
"editOfflinePayment": "编辑线下支付方式",
|
|
90
92
|
"editPickupPoint": "编辑取货地点",
|
|
@@ -165,6 +167,7 @@
|
|
|
165
167
|
"orderSetting": "订单设置",
|
|
166
168
|
"orderType": "订单类型",
|
|
167
169
|
"padDigit": "位数",
|
|
170
|
+
"paid": "已付款",
|
|
168
171
|
"payAtCounter": "在柜台付款",
|
|
169
172
|
"paymentMethod": "付款方式",
|
|
170
173
|
"paymentType": "交易类型",
|
|
@@ -212,6 +215,7 @@
|
|
|
212
215
|
"staticQRcode": "静态二维码",
|
|
213
216
|
"staticQRcodeSublabel": "客户可以通过静态二维码下单",
|
|
214
217
|
"status": "状态",
|
|
218
|
+
"submitOrderInstruction": "提交订单文本",
|
|
215
219
|
"success": "成功",
|
|
216
220
|
"sunday": "星期日",
|
|
217
221
|
"syncMenu": "同步菜单",
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { FdoEPaymentMethod, F_ORDER_PAYMENT_TYPE } from "@entity";
|
|
2
2
|
import { FdoOfflinePaymentMethod } from '@feedmepos/core/entity';
|
|
3
3
|
|
|
4
|
+
export interface MfKioskSubmitOrderInstruction {
|
|
5
|
+
payAtCounter: string | null,
|
|
6
|
+
paid: string | null,
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export type KioskSubmitOrderInstructionForm = MfKioskSubmitOrderInstruction;
|
|
4
10
|
|
|
5
11
|
export interface MfDisplayStandSetting {
|
|
6
12
|
enabled: boolean,
|
|
@@ -10,6 +16,8 @@ export interface MfDisplayStandSetting {
|
|
|
10
16
|
},
|
|
11
17
|
prefix: string | null,
|
|
12
18
|
padDigit: number,
|
|
19
|
+
enablePaxDialog: boolean,
|
|
20
|
+
submitOrderInstruction: MfKioskSubmitOrderInstruction,
|
|
13
21
|
}
|
|
14
22
|
|
|
15
23
|
export interface DisplayStandSettingForm {
|
|
@@ -20,9 +28,20 @@ export interface DisplayStandSettingForm {
|
|
|
20
28
|
},
|
|
21
29
|
prefix: string | null,
|
|
22
30
|
padDigit: number | null,
|
|
31
|
+
enablePaxDialog: boolean,
|
|
32
|
+
submitOrderInstruction: KioskSubmitOrderInstructionForm,
|
|
23
33
|
}
|
|
34
|
+
|
|
24
35
|
export interface MfKioskPickAtCounterSetting {
|
|
25
36
|
enabled: boolean,
|
|
37
|
+
enablePaxDialog: boolean,
|
|
38
|
+
submitOrderInstruction: MfKioskSubmitOrderInstruction,
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface PickAtCounterSettingForm {
|
|
42
|
+
enabled: boolean,
|
|
43
|
+
enablePaxDialog: boolean,
|
|
44
|
+
submitOrderInstruction: KioskSubmitOrderInstructionForm,
|
|
26
45
|
}
|
|
27
46
|
|
|
28
47
|
export interface MfKioskSequenceNumberSetting {
|
|
@@ -39,6 +58,7 @@ export interface MfKioskDineInSetting {
|
|
|
39
58
|
|
|
40
59
|
export interface MfKioskTakeawaySetting {
|
|
41
60
|
enabled: boolean,
|
|
61
|
+
submitOrderInstruction: MfKioskSubmitOrderInstruction,
|
|
42
62
|
}
|
|
43
63
|
|
|
44
64
|
export interface MfKioskPaymentSetting {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OrderSettingsDto, OrderKioskDineIn, OrderKioskDineInSequenceDto, FdoOrderKioskDineInSequence, FdoEPaymentMethod } from "@entity";
|
|
2
|
-
import type { MfKioskOrderSetting, MfKioskDineInSetting, MfDisplayStandSetting, KioskTakeawaySettingForm, MfKioskOrderSettingForm, MfKioskPaymentSetting } from '@/modules/order-setting/kiosk/interface';
|
|
2
|
+
import type { MfKioskOrderSetting, MfKioskDineInSetting, MfDisplayStandSetting, KioskTakeawaySettingForm, MfKioskOrderSettingForm, MfKioskPaymentSetting, MfKioskSubmitOrderInstruction, KioskPickAtCounterSettingForm } from '@/modules/order-setting/kiosk/interface';
|
|
3
3
|
import type { MfOrderSetting } from "@/modules/order-setting/interface";
|
|
4
4
|
import type { OrderKioskSettings, OrderKioskPaymentSetting } from "@entity";
|
|
5
5
|
|
|
@@ -11,10 +11,28 @@ export const defaultDisplayStand: MfDisplayStandSetting = {
|
|
|
11
11
|
min: 1,
|
|
12
12
|
max: 10,
|
|
13
13
|
},
|
|
14
|
+
enablePaxDialog: false,
|
|
15
|
+
submitOrderInstruction: {
|
|
16
|
+
payAtCounter: null,
|
|
17
|
+
paid: null,
|
|
18
|
+
},
|
|
14
19
|
}
|
|
15
20
|
|
|
16
|
-
export const
|
|
21
|
+
export const defaultTakeaway: KioskTakeawaySettingForm = {
|
|
17
22
|
enabled: false,
|
|
23
|
+
submitOrderInstruction: {
|
|
24
|
+
payAtCounter: null,
|
|
25
|
+
paid: null,
|
|
26
|
+
},
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const defaultPickUp: KioskPickAtCounterSettingForm = {
|
|
30
|
+
enabled: false,
|
|
31
|
+
submitOrderInstruction: {
|
|
32
|
+
payAtCounter: null,
|
|
33
|
+
paid: null,
|
|
34
|
+
},
|
|
35
|
+
enablePaxDialog: false,
|
|
18
36
|
}
|
|
19
37
|
|
|
20
38
|
export const defaultKioskOrderSetting: MfKioskOrderSettingForm = {
|
|
@@ -24,9 +42,7 @@ export const defaultKioskOrderSetting: MfKioskOrderSettingForm = {
|
|
|
24
42
|
sequenceNumber: FdoOrderKioskDineInSequence.parse({}),
|
|
25
43
|
displayStand: defaultDisplayStand,
|
|
26
44
|
},
|
|
27
|
-
takeaway:
|
|
28
|
-
enabled: false,
|
|
29
|
-
},
|
|
45
|
+
takeaway: defaultTakeaway,
|
|
30
46
|
paymentSetting: {
|
|
31
47
|
paymentTypes: [],
|
|
32
48
|
offlinePaymentTypes: [],
|
|
@@ -46,6 +62,11 @@ export const defaultKioskOrderSetting: MfKioskOrderSettingForm = {
|
|
|
46
62
|
}
|
|
47
63
|
}
|
|
48
64
|
|
|
65
|
+
export const defaultSubmitOrderInstruction: MfKioskSubmitOrderInstruction = {
|
|
66
|
+
payAtCounter: null,
|
|
67
|
+
paid: null,
|
|
68
|
+
}
|
|
69
|
+
|
|
49
70
|
const convertOrderSettingDto = (dto: OrderSettingsDto): MfOrderSetting => {
|
|
50
71
|
return {
|
|
51
72
|
kiosk: toKiosk(dto.kioskSettings, dto.sequenceSettings?.kioskDineIn),
|
|
@@ -59,7 +80,11 @@ const toKiosk = (kioskOrderSettings: OrderKioskSettings, kioskDineInSeq?: OrderK
|
|
|
59
80
|
prefix: '#K',
|
|
60
81
|
}, kioskOrderSettings.dineIn ?? undefined),
|
|
61
82
|
takeaway: {
|
|
62
|
-
enabled: kioskOrderSettings?.canTakeaway ?? false
|
|
83
|
+
enabled: kioskOrderSettings?.canTakeaway ?? false,
|
|
84
|
+
submitOrderInstruction: kioskOrderSettings?.takeaway?.submitOrderInstruction ? {
|
|
85
|
+
payAtCounter: kioskOrderSettings.takeaway.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
|
|
86
|
+
paid: kioskOrderSettings.takeaway.submitOrderInstruction?.paid?.['en'] ?? null,
|
|
87
|
+
} : defaultSubmitOrderInstruction,
|
|
63
88
|
},
|
|
64
89
|
paymentSetting: {
|
|
65
90
|
paymentTypes: kioskOrderSettings?.paymentSetting?.paymentTypes ?? [],
|
|
@@ -85,12 +110,24 @@ const toKioskDineInSetting = (kioskDineInSeq: OrderKioskDineInSequenceDto, kiosk
|
|
|
85
110
|
return {
|
|
86
111
|
enabled: !!kioskDineInSetting,
|
|
87
112
|
sequenceNumber: kioskDineInSeq,
|
|
88
|
-
pickUp: kioskDineInSetting?.pickUp
|
|
113
|
+
pickUp: kioskDineInSetting?.pickUp ? {
|
|
114
|
+
...kioskDineInSetting.pickUp,
|
|
115
|
+
submitOrderInstruction: kioskDineInSetting.pickUp.submitOrderInstruction ? {
|
|
116
|
+
payAtCounter: kioskDineInSetting.pickUp.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
|
|
117
|
+
paid: kioskDineInSetting.pickUp.submitOrderInstruction?.paid?.['en'] ?? null,
|
|
118
|
+
} : defaultSubmitOrderInstruction,
|
|
119
|
+
enablePaxDialog: kioskDineInSetting.pickUp.enablePaxDialog ? kioskDineInSetting.pickUp.enablePaxDialog : false,
|
|
120
|
+
} : defaultPickUp,
|
|
89
121
|
displayStand: kioskDineInSetting?.displayStand ? {
|
|
90
122
|
enabled: kioskDineInSetting.displayStand.enabled,
|
|
91
123
|
standSlotRange: kioskDineInSetting.displayStand.standSlotRange,
|
|
92
124
|
prefix: kioskDineInSetting.displayStand.prefix,
|
|
93
125
|
padDigit: kioskDineInSetting.displayStand.padDigit,
|
|
126
|
+
enablePaxDialog: kioskDineInSetting.displayStand.enablePaxDialog ?? false,
|
|
127
|
+
submitOrderInstruction: kioskDineInSetting.displayStand.submitOrderInstruction ? {
|
|
128
|
+
payAtCounter: kioskDineInSetting.displayStand.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
|
|
129
|
+
paid: kioskDineInSetting.displayStand.submitOrderInstruction?.paid?.['en'] ?? null,
|
|
130
|
+
} : defaultSubmitOrderInstruction,
|
|
94
131
|
} : defaultDisplayStand
|
|
95
132
|
}
|
|
96
133
|
}
|
|
@@ -98,10 +135,30 @@ const toOrderKioskSettingsDto = (kioskSetting: MfKioskOrderSetting): {
|
|
|
98
135
|
kioskSettings: OrderKioskSettings,
|
|
99
136
|
kioskDineIn?: OrderKioskDineInSequenceDto
|
|
100
137
|
} => {
|
|
101
|
-
const createDineInSettings = (dineInSetting: MfKioskDineInSetting) => ({
|
|
138
|
+
const createDineInSettings = (dineInSetting: MfKioskDineInSetting): OrderKioskDineIn => ({
|
|
102
139
|
requiredSlot: !!dineInSetting.displayStand,
|
|
103
|
-
displayStand:
|
|
104
|
-
|
|
140
|
+
displayStand: {
|
|
141
|
+
...dineInSetting.displayStand,
|
|
142
|
+
submitOrderInstruction: {
|
|
143
|
+
payAtCounter: dineInSetting.displayStand.submitOrderInstruction?.payAtCounter ? {
|
|
144
|
+
en: dineInSetting.displayStand.submitOrderInstruction.payAtCounter,
|
|
145
|
+
} : null,
|
|
146
|
+
paid: dineInSetting.displayStand.submitOrderInstruction?.paid ? {
|
|
147
|
+
en: dineInSetting.displayStand.submitOrderInstruction.paid,
|
|
148
|
+
} : null,
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
pickUp: {
|
|
152
|
+
...dineInSetting.pickUp,
|
|
153
|
+
submitOrderInstruction: {
|
|
154
|
+
payAtCounter: dineInSetting.pickUp.submitOrderInstruction?.payAtCounter ? {
|
|
155
|
+
en: dineInSetting.pickUp.submitOrderInstruction.payAtCounter,
|
|
156
|
+
} : null,
|
|
157
|
+
paid: dineInSetting.pickUp.submitOrderInstruction?.paid ? {
|
|
158
|
+
en: dineInSetting.pickUp.submitOrderInstruction.paid,
|
|
159
|
+
} : null,
|
|
160
|
+
}
|
|
161
|
+
}
|
|
105
162
|
})
|
|
106
163
|
|
|
107
164
|
const createKioskSettings = (dineIn?: OrderKioskDineIn) => ({
|
|
@@ -111,7 +168,7 @@ const toOrderKioskSettingsDto = (kioskSetting: MfKioskOrderSetting): {
|
|
|
111
168
|
paymentSetting: createPaymentSettings(kioskSetting.paymentSetting)
|
|
112
169
|
})
|
|
113
170
|
|
|
114
|
-
const createPaymentSettings = (paymentSetting: MfKioskPaymentSetting)
|
|
171
|
+
const createPaymentSettings = (paymentSetting: MfKioskPaymentSetting): OrderKioskPaymentSetting | undefined => {
|
|
115
172
|
return {
|
|
116
173
|
paymentTypes: paymentSetting.paymentTypes,
|
|
117
174
|
offlinePaymentTypes: paymentSetting.offlinePaymentTypes,
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<div v-show="v.enabled" class="flex flex-col gap-16">
|
|
11
11
|
<KioskPickAtCounterSection
|
|
12
12
|
v-if="v.pickUp"
|
|
13
|
-
:
|
|
13
|
+
:form="v.pickUp"
|
|
14
14
|
@update-pick-up="updatePickUp"
|
|
15
15
|
/>
|
|
16
16
|
<KioskDisplayStandSection
|
|
@@ -29,6 +29,7 @@ import type {
|
|
|
29
29
|
} from '@/modules/order-setting/kiosk/interface'
|
|
30
30
|
import KioskDisplayStandSection from './KioskDisplayStandSection.vue'
|
|
31
31
|
import KioskPickAtCounterSection from './KioskPickAtCounterSection.vue'
|
|
32
|
+
import type { PickAtCounterSettingForm } from '@/modules/order-setting/kiosk/interface'
|
|
32
33
|
import { useI18n } from '@feedmepos/mf-common'
|
|
33
34
|
|
|
34
35
|
const { t } = useI18n()
|
|
@@ -41,12 +42,10 @@ interface Emits {
|
|
|
41
42
|
(e: 'updateDineIn', setting: KioskDineInSettingForm): void
|
|
42
43
|
}
|
|
43
44
|
|
|
44
|
-
function updatePickUp(
|
|
45
|
+
function updatePickUp(form: PickAtCounterSettingForm) {
|
|
45
46
|
emits('updateDineIn', {
|
|
46
47
|
...props.v,
|
|
47
|
-
pickUp:
|
|
48
|
-
enabled: v
|
|
49
|
-
}
|
|
48
|
+
pickUp: form,
|
|
50
49
|
})
|
|
51
50
|
}
|
|
52
51
|
|
|
@@ -55,6 +55,12 @@
|
|
|
55
55
|
/>
|
|
56
56
|
</div>
|
|
57
57
|
</div>
|
|
58
|
+
|
|
59
|
+
<kiosk-instruction-section
|
|
60
|
+
v-show="displayStand.enabled"
|
|
61
|
+
:fields="instructionFields"
|
|
62
|
+
@update:field="updateInstruction"
|
|
63
|
+
/>
|
|
58
64
|
</div>
|
|
59
65
|
</template>
|
|
60
66
|
<script lang="ts" setup>
|
|
@@ -62,6 +68,7 @@ import { computed } from 'vue'
|
|
|
62
68
|
import { NumberUtil } from '@/utils/number'
|
|
63
69
|
import type { DisplayStandSettingForm } from '@/modules/order-setting/kiosk/interface'
|
|
64
70
|
import { useI18n } from '@feedmepos/mf-common'
|
|
71
|
+
import KioskInstructionSection from './KioskInstructionSection.vue'
|
|
65
72
|
|
|
66
73
|
const { t } = useI18n()
|
|
67
74
|
|
|
@@ -76,6 +83,35 @@ interface Emits {
|
|
|
76
83
|
const props = defineProps<Props>()
|
|
77
84
|
const emits = defineEmits<Emits>()
|
|
78
85
|
|
|
86
|
+
const instructionFields = computed(() => {
|
|
87
|
+
const instructions = props.displayStand.submitOrderInstruction
|
|
88
|
+
return [
|
|
89
|
+
{
|
|
90
|
+
id: 'payAtCounter',
|
|
91
|
+
value: instructions.payAtCounter ?? undefined,
|
|
92
|
+
title: t('order.payAtCounter'),
|
|
93
|
+
defaultValue: 'Collect your transaction slip below and present it to the cashier'
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: 'paid',
|
|
97
|
+
value: instructions.paid ?? undefined,
|
|
98
|
+
title: t('order.paid'),
|
|
99
|
+
defaultValue:
|
|
100
|
+
"Please collect your receipt and we'll bring your food to your table once it's ready."
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
function updateInstruction(id: string, value: string) {
|
|
106
|
+
emits('updateDisplayStand', {
|
|
107
|
+
...props.displayStand,
|
|
108
|
+
submitOrderInstruction: {
|
|
109
|
+
...props.displayStand.submitOrderInstruction,
|
|
110
|
+
[id]: value
|
|
111
|
+
}
|
|
112
|
+
})
|
|
113
|
+
}
|
|
114
|
+
|
|
79
115
|
const nonNegativeRule = (val: any) => {
|
|
80
116
|
if (val < 0) {
|
|
81
117
|
return t('order.nonNegativeRule')
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<FmSwitch
|
|
4
|
+
:model-value="v"
|
|
5
|
+
:label="t('order.displayPaxDialogDescription')"
|
|
6
|
+
label-placement="right"
|
|
7
|
+
@update:model-value="updateEnablePaxDialog"
|
|
8
|
+
class="mb-5"
|
|
9
|
+
/>
|
|
10
|
+
</div>
|
|
11
|
+
</template>
|
|
12
|
+
<script setup lang="ts">
|
|
13
|
+
import type { KioskDineInSettingForm } from '@/modules/order-setting/kiosk/interface'
|
|
14
|
+
import { useI18n } from '@feedmepos/mf-common'
|
|
15
|
+
import { computed } from 'vue'
|
|
16
|
+
|
|
17
|
+
const { t } = useI18n()
|
|
18
|
+
|
|
19
|
+
interface Props {
|
|
20
|
+
v: boolean
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface Emits {
|
|
24
|
+
(e: 'updateEnablePaxDialog', v: boolean): void
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const props = defineProps<Props>()
|
|
28
|
+
const emits = defineEmits<Emits>()
|
|
29
|
+
|
|
30
|
+
function updateEnablePaxDialog(v: boolean) {
|
|
31
|
+
emits('updateEnablePaxDialog', v)
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="border p-[1.5rem] fm-corner-radius-lg flex flex-col gap-2 my-5 w-11/12">
|
|
3
|
+
<span class="fm-typo-en-title-sm-600">{{ t('order.submitOrderInstruction') }}</span>
|
|
4
|
+
<div class="flex flex-col gap-10" v-for="field in props.fields" :key="field.title">
|
|
5
|
+
<FmTextField
|
|
6
|
+
:model-value="field.value"
|
|
7
|
+
:label="field.title"
|
|
8
|
+
:placeholder="field.defaultValue"
|
|
9
|
+
@update:model-value="(v: string) => updateField(field.id, v)"
|
|
10
|
+
/>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
<script lang="ts" setup>
|
|
15
|
+
import { useI18n } from '@feedmepos/mf-common'
|
|
16
|
+
const { t } = useI18n()
|
|
17
|
+
|
|
18
|
+
interface ITextField {
|
|
19
|
+
id: string
|
|
20
|
+
value: string | undefined
|
|
21
|
+
title: string
|
|
22
|
+
defaultValue: string
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
interface Props {
|
|
26
|
+
fields: ITextField[]
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const props = defineProps<Props>()
|
|
30
|
+
|
|
31
|
+
interface Emits {
|
|
32
|
+
(e: 'update:field', id: string, value: string): void
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const emit = defineEmits<Emits>()
|
|
36
|
+
|
|
37
|
+
function updateField(id: string, value: string) {
|
|
38
|
+
emit('update:field', id, value)
|
|
39
|
+
}
|
|
40
|
+
</script>
|
|
@@ -54,7 +54,7 @@ const allowOfflinePayment = computed(() => {
|
|
|
54
54
|
const parentCheckbox = ref(false)
|
|
55
55
|
const paymentCheckboxVal = ref<string[]>([])
|
|
56
56
|
const cardPaymentRadioVal = ref<string>()
|
|
57
|
-
const
|
|
57
|
+
const eWalletPaymentCheckboxVal = ref<string[]>([])
|
|
58
58
|
const useCard = ref(false)
|
|
59
59
|
const useEwallet = ref(false)
|
|
60
60
|
|
|
@@ -79,10 +79,12 @@ const initializeCheckboxes = () => {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
if (props.ePaymentTypes.eWallet.qrPay) {
|
|
82
|
-
|
|
82
|
+
eWalletPaymentCheckboxVal.value.push(F_ORDER_E_PAYMENT_TYPE.enum.QRPAY)
|
|
83
83
|
useEwallet.value = true
|
|
84
|
-
}
|
|
85
|
-
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (props.ePaymentTypes.eWallet.scanPay) {
|
|
87
|
+
eWalletPaymentCheckboxVal.value.push(F_ORDER_E_PAYMENT_TYPE.enum.SCANPAY)
|
|
86
88
|
useEwallet.value = true
|
|
87
89
|
}
|
|
88
90
|
}
|
|
@@ -159,12 +161,12 @@ const handleEPaymentCardUpdate = (ev: string) => {
|
|
|
159
161
|
ePaymentObj.card.nfc = true
|
|
160
162
|
}
|
|
161
163
|
|
|
162
|
-
if (
|
|
163
|
-
if (
|
|
164
|
+
if (eWalletPaymentCheckboxVal.value.length > 0) {
|
|
165
|
+
if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.QRPAY)) {
|
|
164
166
|
ePaymentObj.eWallet.qrPay = true
|
|
165
167
|
}
|
|
166
168
|
|
|
167
|
-
if (
|
|
169
|
+
if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.SCANPAY)) {
|
|
168
170
|
ePaymentObj.eWallet.scanPay = true
|
|
169
171
|
}
|
|
170
172
|
}
|
|
@@ -196,11 +198,11 @@ const handleEPaymentEWalletUpdate = () => {
|
|
|
196
198
|
}
|
|
197
199
|
}
|
|
198
200
|
|
|
199
|
-
if (
|
|
201
|
+
if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.QRPAY)) {
|
|
200
202
|
ePaymentObj.eWallet.qrPay = true
|
|
201
203
|
}
|
|
202
204
|
|
|
203
|
-
if (
|
|
205
|
+
if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.SCANPAY)) {
|
|
204
206
|
ePaymentObj.eWallet.scanPay = true
|
|
205
207
|
}
|
|
206
208
|
}
|
|
@@ -217,9 +219,12 @@ const updateCardSwitch = (enabled: boolean) => {
|
|
|
217
219
|
}
|
|
218
220
|
|
|
219
221
|
const updateECardSwitch = (enabled: boolean) => {
|
|
220
|
-
|
|
222
|
+
eWalletPaymentCheckboxVal.value = []
|
|
221
223
|
if (enabled) {
|
|
222
|
-
|
|
224
|
+
eWalletPaymentCheckboxVal.value = [
|
|
225
|
+
F_ORDER_E_PAYMENT_TYPE.enum.QRPAY,
|
|
226
|
+
F_ORDER_E_PAYMENT_TYPE.enum.SCANPAY
|
|
227
|
+
]
|
|
223
228
|
}
|
|
224
229
|
handleEPaymentEWalletUpdate()
|
|
225
230
|
}
|
|
@@ -324,14 +329,20 @@ onMounted(() => {
|
|
|
324
329
|
/>
|
|
325
330
|
<br />
|
|
326
331
|
<div v-show="useEwallet" class="ml-7">
|
|
327
|
-
<
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
332
|
+
<div class="flex flex-row gap-9">
|
|
333
|
+
<FmCheckbox
|
|
334
|
+
v-model="eWalletPaymentCheckboxVal"
|
|
335
|
+
:label="t('order.qrPay')"
|
|
336
|
+
:value="F_ORDER_E_PAYMENT_TYPE.enum.QRPAY"
|
|
337
|
+
@update:model-value="handleEPaymentEWalletUpdate"
|
|
338
|
+
/>
|
|
339
|
+
<FmCheckbox
|
|
340
|
+
v-model="eWalletPaymentCheckboxVal"
|
|
341
|
+
:label="t('order.scanPay')"
|
|
342
|
+
:value="F_ORDER_E_PAYMENT_TYPE.enum.SCANPAY"
|
|
343
|
+
@update:model-value="handleEPaymentEWalletUpdate"
|
|
344
|
+
/>
|
|
345
|
+
</div>
|
|
335
346
|
</div>
|
|
336
347
|
</FmCardSection>
|
|
337
348
|
</FmCard>
|
|
@@ -1,30 +1,68 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
3
|
<FmSwitch
|
|
4
|
-
:model-value="enabled"
|
|
4
|
+
:model-value="form.enabled"
|
|
5
5
|
:label="t('order.pickAtCounter')"
|
|
6
6
|
label-placement="right"
|
|
7
|
-
@update:model-value="
|
|
7
|
+
@update:model-value="updatePickUpEnabled"
|
|
8
|
+
/>
|
|
9
|
+
<kiosk-instruction-section
|
|
10
|
+
v-show="form.enabled"
|
|
11
|
+
:fields="instructionFields"
|
|
12
|
+
@update:field="updatePickUpInstruction"
|
|
8
13
|
/>
|
|
9
14
|
</div>
|
|
10
15
|
</template>
|
|
11
16
|
<script lang="ts" setup>
|
|
17
|
+
import type { PickAtCounterSettingForm } from '@/modules/order-setting/kiosk/interface'
|
|
12
18
|
import { useI18n } from '@feedmepos/mf-common'
|
|
19
|
+
import { computed } from 'vue'
|
|
20
|
+
import KioskInstructionSection from './KioskInstructionSection.vue'
|
|
13
21
|
|
|
14
22
|
const { t } = useI18n()
|
|
15
23
|
|
|
16
24
|
interface Props {
|
|
17
|
-
|
|
25
|
+
form: PickAtCounterSettingForm
|
|
18
26
|
}
|
|
19
27
|
|
|
20
28
|
interface Emits {
|
|
21
|
-
(e: 'update-pick-up',
|
|
29
|
+
(e: 'update-pick-up', form: PickAtCounterSettingForm): void
|
|
22
30
|
}
|
|
23
31
|
|
|
24
|
-
defineProps<Props>()
|
|
32
|
+
const props = defineProps<Props>()
|
|
25
33
|
const emits = defineEmits<Emits>()
|
|
26
34
|
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
const instructionFields = computed(() => {
|
|
36
|
+
return [
|
|
37
|
+
{
|
|
38
|
+
id: 'payAtCounter',
|
|
39
|
+
value: props.form.submitOrderInstruction.payAtCounter ?? undefined,
|
|
40
|
+
title: t('order.payAtCounter'),
|
|
41
|
+
defaultValue: 'Collect your transaction slip below and present it to the cashier'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'paid',
|
|
45
|
+
value: props.form.submitOrderInstruction.paid ?? undefined,
|
|
46
|
+
title: t('order.paid'),
|
|
47
|
+
defaultValue: "Please wait as we prepare your food. We'll call your number when it's ready."
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
function updatePickUpEnabled(enabled: boolean) {
|
|
53
|
+
emits('update-pick-up', {
|
|
54
|
+
...props.form,
|
|
55
|
+
enabled
|
|
56
|
+
})
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function updatePickUpInstruction(id: string, instruction: string) {
|
|
60
|
+
emits('update-pick-up', {
|
|
61
|
+
...props.form,
|
|
62
|
+
submitOrderInstruction: {
|
|
63
|
+
...props.form.submitOrderInstruction,
|
|
64
|
+
[id]: instruction
|
|
65
|
+
}
|
|
66
|
+
})
|
|
29
67
|
}
|
|
30
68
|
</script>
|