@feedmepos/mf-order-setting 0.0.21-beta.3 → 0.0.23
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-Cb7Rw7t8.js → KioskDevicesView-BdJCcotz.js} +1 -1
- package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-raPhhBpi.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-DUPfN7ti.js} +2 -2
- package/dist/KioskSettingView-BChhriPk.js +782 -0
- package/dist/KioskView-DPU-oQ1H.js +426 -0
- package/dist/{OrderSettingsView-BJ1b1Qjg.js → OrderSettingsView-BOiflwB_.js} +34011 -32822
- package/dist/{app-BY258ajB.js → app-CaYWSLe1.js} +39 -17
- package/dist/app.js +1 -1
- package/dist/common/convertor/index.d.ts +2 -0
- package/dist/common/sms/index.d.ts +1 -1
- package/dist/common/util/index.d.ts +6 -0
- package/dist/{dayjs.min-4COVK72W.js → dayjs.min-8NyoNely.js} +36 -36
- package/dist/frontend/mf-order/src/api/remoteOrder/index.d.ts +5 -2
- package/dist/frontend/mf-order/src/app.d.ts +22 -0
- package/dist/frontend/mf-order/src/helpers/menu.d.ts +1 -1
- package/dist/frontend/mf-order/src/modules/order-setting/kiosk/interface.d.ts +13 -0
- package/dist/frontend/mf-order/src/stores/app/index.d.ts +14 -4
- package/dist/frontend/mf-order/src/stores/menu/menu.d.ts +45 -35
- package/dist/frontend/mf-order/src/stores/order-setting/index.d.ts +168 -12
- package/dist/frontend/mf-order/src/stores/order-setting/mapper.d.ts +2 -1
- package/dist/frontend/mf-order/src/stores/restaurant/index.d.ts +581 -716
- package/dist/frontend/mf-order/src/views/all-orders/ReflowOrder.vue.d.ts +140 -174
- 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/src/views/order-settings/delivery/DeliverySetting.vue.d.ts +2 -2
- package/dist/frontend/mf-order/src/views/order-settings/delivery/delivery.d.ts +2 -1
- package/dist/frontend/mf-order/src/views/order-settings/delivery/delivery.data.d.ts +3 -0
- package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/ExternalSetting.vue.d.ts +97 -0
- package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/ShopeefoodSetting.vue.d.ts +3 -3
- package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{index-t_7ThPjm.js → index-B7GFhkAE.js} +2 -2
- package/dist/package/entity/booking/booking.do.d.ts +1516 -1276
- package/dist/package/entity/delivery/delivery.dto.d.ts +298 -251
- package/dist/package/entity/incoming-order/incoming-order-to-bill.dto.d.ts +539 -0
- package/dist/package/entity/incoming-order/incoming-order.do.d.ts +114 -9
- package/dist/package/entity/incoming-order/incoming-order.dto.d.ts +862 -4
- package/dist/package/entity/incoming-order/incoming-order.enum.d.ts +1 -1
- package/dist/package/entity/index.d.ts +34 -22
- package/dist/package/entity/kiosk/kiosk.do.d.ts +12 -12
- package/dist/package/entity/kiosk/kiosk.dto.d.ts +12 -12
- package/dist/package/entity/kiosk/marketing/marketing.dto.d.ts +1942 -1642
- package/dist/package/entity/member/member.dto.d.ts +33 -0
- package/dist/package/entity/order/order-item/order-item.dto.d.ts +15 -0
- package/dist/package/entity/order/order.do.d.ts +37 -0
- package/dist/package/entity/order/order.dto.d.ts +808 -17435
- package/dist/package/entity/order/order.enum.d.ts +2 -0
- package/dist/package/entity/order-platform/external/auth/external-auth.do.d.ts +12 -0
- package/dist/package/entity/order-platform/external/auth/external-auth.dto.d.ts +27 -0
- package/dist/package/entity/order-platform/external/menu/external-menu.do.d.ts +2868 -0
- package/dist/package/entity/order-platform/external/menu/external-menu.dto.d.ts +21 -0
- package/dist/package/entity/order-platform/external/menu/external-menu.enum.d.ts +3 -0
- package/dist/package/entity/order-platform/external/order/external-order.do.d.ts +1373 -0
- package/dist/package/entity/order-platform/external/order/external-order.dto.d.ts +2834 -0
- package/dist/package/entity/order-platform/external/order/external-order.enum.d.ts +9 -0
- package/dist/package/entity/order-platform/external/setting/external-setting.do.d.ts +127 -0
- package/dist/package/entity/order-platform/external/setting/external-setting.dto.d.ts +95 -0
- package/dist/package/entity/order-platform/foodpanda/foodpanda-order.do.d.ts +98 -98
- package/dist/package/entity/order-platform/foodpanda/foodpanda-order.dto.d.ts +345 -297
- package/dist/package/entity/order-platform/foodpanda/foodpanda-settings.do.d.ts +4 -4
- package/dist/package/entity/order-platform/foodpanda/foodpanda-settings.dto.d.ts +3 -3
- package/dist/package/entity/order-platform/grabfood/grabfood-menu.do.d.ts +65 -65
- package/dist/package/entity/order-platform/grabfood/grabfood-order.do.d.ts +311 -263
- package/dist/package/entity/order-platform/grabfood/grabfood-settings.do.d.ts +2 -2
- package/dist/package/entity/order-platform/grabfood/grabfood.dto.d.ts +7 -7
- package/dist/package/entity/order-platform/menu.dto.d.ts +126 -0
- package/dist/package/entity/order-platform/order-platform.dto.d.ts +4 -4
- package/dist/package/entity/order-platform/order-platform.enum.d.ts +1 -1
- package/dist/package/entity/order-platform/shopeefood/shopeefood-order.do.d.ts +298 -250
- package/dist/package/entity/order-setting/kiosk/kiosk.do.d.ts +115 -0
- package/dist/package/entity/order-setting/kiosk/kiosk.dto.d.ts +225 -41
- package/dist/package/entity/order-setting/kiosk/kiosk.enum.d.ts +3 -0
- package/dist/package/entity/order-setting/order-setting.do.d.ts +138 -8
- package/dist/package/entity/order-setting/order-setting.dto.d.ts +276 -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/printer/printer.do.d.ts +2 -2
- package/dist/package/entity/pubsub/ably/ably.do.d.ts +60 -9
- package/dist/package/entity/pubsub/ably/ably.enum.d.ts +1 -1
- package/dist/package/entity/queue/queue.do.d.ts +40 -0
- package/dist/package/entity/restaurant/restaurant.dto.d.ts +136 -6
- package/dist/package/entity/websocket/websocket.dto.d.ts +288 -0
- package/dist/{auth.dto-BOoRSQkS.js → queue.do-CIyIpp22.js} +30390 -29706
- package/package.json +4 -3
- package/src/api/remoteOrder/index.ts +13 -2
- package/src/helpers/menu.ts +2 -2
- package/src/locales/en-US.json +13 -2
- package/src/locales/zh-CN.json +12 -1
- package/src/modules/order-setting/kiosk/interface.ts +16 -0
- package/src/stores/order-setting/mapper.ts +58 -7
- package/src/stores/restaurant/index.ts +4 -1
- package/src/views/kiosk/settings/KioskDineInSection.vue +4 -5
- package/src/views/kiosk/settings/KioskDisplayStandSection.vue +36 -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 +15 -3
- package/src/views/kiosk/settings/KioskTakeawaySection.vue +38 -4
- package/src/views/order-settings/delivery/DeliverySetting.vue +82 -6
- package/src/views/order-settings/delivery/delivery.data.ts +16 -1
- package/src/views/order-settings/delivery/delivery.ts +1 -0
- package/src/views/order-settings/delivery/integrated-delivery/ExternalSetting.vue +114 -0
- package/src/views/order-settings/delivery/integrated-delivery/FoodpandaSetting.vue +23 -6
- package/src/views/order-settings/delivery/integrated-delivery/GrabfoodSetting.vue +21 -16
- package/src/views/order-settings/delivery/integrated-delivery/ShopeefoodSetting.vue +58 -59
- package/src/views/order-settings/pickup/PickUpSetting.vue +1 -1
- package/src/views/order-settings/servicecharge/ServiceChargeRule.vue +216 -165
- package/src/views/order-settings/servicecharge/ServiceChargeSetting.vue +1 -0
- package/dist/KioskSettingView-BQgyeWbo.js +0 -649
- package/dist/KioskView-BLkuqfZ_.js +0 -371
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feedmepos/mf-order-setting",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "./dist/app.js",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -25,14 +25,15 @@
|
|
|
25
25
|
"format": "prettier --write src/"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@feedmepos/core": "^2.
|
|
29
|
-
"@feedmepos/menu": "^1.
|
|
28
|
+
"@feedmepos/core": "^2.14.0",
|
|
29
|
+
"@feedmepos/menu": "^1.5.6",
|
|
30
30
|
"@feedmepos/mf-common": "^1.11.6",
|
|
31
31
|
"@feedmepos/ordering": "^0.0.3",
|
|
32
32
|
"@feedmepos/ui-library": "^1.2.27",
|
|
33
33
|
"@types/googlemaps": "^3.43.3",
|
|
34
34
|
"axios": "^1.7.2",
|
|
35
35
|
"change-case": "^5.4.4",
|
|
36
|
+
"zod-openapi": "^4.1.0",
|
|
36
37
|
"date-fns": "^3.6.0",
|
|
37
38
|
"dayjs": "^1.11.12",
|
|
38
39
|
"firebase": "^10.13.1",
|
|
@@ -2,9 +2,9 @@ import type { AxiosInstance } from 'axios';
|
|
|
2
2
|
import { baseClientInstance, getData, SvcConfig } from '..';
|
|
3
3
|
import type { DeliveryCompany, LinkedDeliveryDoc } from '../../views/order-settings/delivery/delivery';
|
|
4
4
|
import { FdoFoodpandaSettings, FdoLinkedDelivery, FdoRestaurant, FdoRestaurantFeedmeDelivery, FdoRestaurantInHouseDelivery, FdoShopeeFoodOrder } from '@feedmepos/core/entity';
|
|
5
|
-
import type { FdoFoodpandaOrderOutput, FdoGrabfoodOrderOutput, FdoGrabfoodSettings, FdoShopeeFoodOrderOutput, FdoShopeeFoodSettings, FdtoGetOrderReq } from '@entity';
|
|
5
|
+
import type { FdoExternalSetting, FdoFoodpandaOrderOutput, FdoGrabfoodOrderOutput, FdoGrabfoodSettings, FdoShopeeFoodOrderOutput, FdoShopeeFoodSettings, FdtoGetOrderReq } from '@entity';
|
|
6
6
|
|
|
7
|
-
type DeliveryCompanyUrl = 'foodpanda' | 'grabfood' | 'shopeefood'
|
|
7
|
+
type DeliveryCompanyUrl = 'foodpanda' | 'grabfood' | 'shopeefood' | 'external'
|
|
8
8
|
|
|
9
9
|
const deliveryClientInstance = (
|
|
10
10
|
deliveryCompany: DeliveryCompanyUrl
|
|
@@ -110,6 +110,17 @@ export const remoteOrderApi = {
|
|
|
110
110
|
async syncShopeefoodMenu(storeId: string): Promise<FdoShopeeFoodSettings> {
|
|
111
111
|
return getData(await deliveryClientInstance('shopeefood').get(`/menu-sync/${storeId}`));
|
|
112
112
|
},
|
|
113
|
+
async readExternal(restaurantId: string): Promise<FdoExternalSetting | null> {
|
|
114
|
+
return getData(await deliveryClientInstance('external').get(`/setting/${restaurantId}`))
|
|
115
|
+
},
|
|
116
|
+
async updateExternal(restaurantId: string, dto: FdoExternalSetting): Promise<FdoExternalSetting> {
|
|
117
|
+
return getData(await deliveryClientInstance('external').put(`setting/${restaurantId}`, {
|
|
118
|
+
...dto
|
|
119
|
+
}))
|
|
120
|
+
},
|
|
121
|
+
async syncExternalMenu(restaurantId: string): Promise<FdoExternalSetting> {
|
|
122
|
+
return getData(await deliveryClientInstance('external').get(`/menu-sync/${restaurantId}`));
|
|
123
|
+
},
|
|
113
124
|
async flowTestOrder(
|
|
114
125
|
restaurantId: string,
|
|
115
126
|
platform: DeliveryCompanyUrl
|
package/src/helpers/menu.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface Option {
|
|
|
11
11
|
value: string | null;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
type Item = Omit<FdoMenuV4Item, 'variant'> & {
|
|
14
|
+
export type Item = Omit<FdoMenuV4Item, 'variant'> & {
|
|
15
15
|
codeName: string;
|
|
16
16
|
variant?: Omit<FdoItemVariant, 'variantCombinations'> & {
|
|
17
17
|
variantCombinations: (VariantItem & { codeName: string })[]
|
|
@@ -76,7 +76,7 @@ export class ItemTax {
|
|
|
76
76
|
return {
|
|
77
77
|
systemCode: [...new Set(countryFlattenTaxes.map((tax) => tax.systemCode))].join('/'),
|
|
78
78
|
countryTaxOptions: countryFlattenTaxes.map((tax) => ({
|
|
79
|
-
label: `${tax.name} (${
|
|
79
|
+
label: `${tax.name} (${Dinero.fromFdoDecimal({
|
|
80
80
|
decimal: tax.rate
|
|
81
81
|
}).multiply(100).toFormat(false)}%)`,
|
|
82
82
|
value: ItemTax.encodeTax(tax),
|
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",
|
|
@@ -164,6 +164,7 @@
|
|
|
164
164
|
"orderSetting": "Order Setting",
|
|
165
165
|
"orderType": "Order Type",
|
|
166
166
|
"padDigit": "Pad Digit",
|
|
167
|
+
"paid": "Paid",
|
|
167
168
|
"payAtCounter": "Pay at Counter",
|
|
168
169
|
"paymentMethod": "Payment Method",
|
|
169
170
|
"paymentType": "Payment Type",
|
|
@@ -194,6 +195,7 @@
|
|
|
194
195
|
"scanPay": "Scan Pay",
|
|
195
196
|
"search": "Search",
|
|
196
197
|
"searchRestaurant": "Search restaurants",
|
|
198
|
+
"selectAllItemsIncludeCustomItem": "All (Including custom item)",
|
|
197
199
|
"selectItem": "Select item",
|
|
198
200
|
"selectRestaurant": "Select Restaurant",
|
|
199
201
|
"selectServiceChargeType": "Select service charge type",
|
|
@@ -211,9 +213,11 @@
|
|
|
211
213
|
"staticQRcode": "Static QR code",
|
|
212
214
|
"staticQRcodeSublabel": "Customer can order with static QR code",
|
|
213
215
|
"status": "Status",
|
|
216
|
+
"submitOrderInstruction": "Submit order instruction",
|
|
214
217
|
"success": "SUCCESS",
|
|
215
218
|
"sunday": "Sunday",
|
|
216
219
|
"syncMenu": "Sync Menu",
|
|
220
|
+
"syncMenuSuccess": "Sync menu successfully",
|
|
217
221
|
"table": "Table",
|
|
218
222
|
"tableSelected": "table(s) selected",
|
|
219
223
|
"tableService": "Table Service",
|
|
@@ -245,6 +249,13 @@
|
|
|
245
249
|
"updatePickupSetting": "Update Pickup Setting",
|
|
246
250
|
"updateSetting": "Update setting",
|
|
247
251
|
"vendorBearPercentage": "Vendor bear percentage",
|
|
248
|
-
"wednesday": "Wednesday"
|
|
252
|
+
"wednesday": "Wednesday",
|
|
253
|
+
"externalDelivery": "External Delivery",
|
|
254
|
+
"manageExternalDelivery": "Manage external delivery",
|
|
255
|
+
"deliveryCatalog": "Delivery catalog",
|
|
256
|
+
"pickupCatalog": "Pickup catalog",
|
|
257
|
+
"DeliverySettingUpdated": "Delivery setting updated.",
|
|
258
|
+
"selectPlatform": "Select Platform",
|
|
259
|
+
"platform": "Platform"
|
|
249
260
|
}
|
|
250
261
|
}
|
package/src/locales/zh-CN.json
CHANGED
|
@@ -165,6 +165,7 @@
|
|
|
165
165
|
"orderSetting": "订单设置",
|
|
166
166
|
"orderType": "订单类型",
|
|
167
167
|
"padDigit": "位数",
|
|
168
|
+
"paid": "已付款",
|
|
168
169
|
"payAtCounter": "在柜台付款",
|
|
169
170
|
"paymentMethod": "付款方式",
|
|
170
171
|
"paymentType": "交易类型",
|
|
@@ -194,6 +195,7 @@
|
|
|
194
195
|
"scanPay": "扫码支付",
|
|
195
196
|
"search": "搜索",
|
|
196
197
|
"searchRestaurant": "搜索餐厅",
|
|
198
|
+
"selectAllItemsIncludeCustomItem": "全部 (包括自定义商品)",
|
|
197
199
|
"selectItem": "请选择",
|
|
198
200
|
"selectRestaurant": "选择餐厅",
|
|
199
201
|
"selectServiceChargeType": "选择服务费类型",
|
|
@@ -211,9 +213,11 @@
|
|
|
211
213
|
"staticQRcode": "静态二维码",
|
|
212
214
|
"staticQRcodeSublabel": "客户可以通过静态二维码下单",
|
|
213
215
|
"status": "状态",
|
|
216
|
+
"submitOrderInstruction": "提交订单文本",
|
|
214
217
|
"success": "成功",
|
|
215
218
|
"sunday": "星期日",
|
|
216
219
|
"syncMenu": "同步菜单",
|
|
220
|
+
"syncMenuSuccess": "同步菜单成功",
|
|
217
221
|
"table": "餐桌",
|
|
218
222
|
"tableSelected": "已选择餐桌",
|
|
219
223
|
"tableService": "餐桌服务",
|
|
@@ -245,6 +249,13 @@
|
|
|
245
249
|
"updatePickupSetting": "更新自取设置",
|
|
246
250
|
"updateSetting": "更新设置",
|
|
247
251
|
"vendorBearPercentage": "供应商承担百分比",
|
|
248
|
-
"wednesday": "星期三"
|
|
252
|
+
"wednesday": "星期三",
|
|
253
|
+
"externalDelivery": "External 配送",
|
|
254
|
+
"manageExternalDelivery": "管理外部配送",
|
|
255
|
+
"deliveryCatalog": "配送目录",
|
|
256
|
+
"pickupCatalog": "自取目录",
|
|
257
|
+
"DeliverySettingUpdated": "配送设置已更新",
|
|
258
|
+
"selectPlatform": "选择平台",
|
|
259
|
+
"platform": "平台"
|
|
249
260
|
}
|
|
250
261
|
}
|
|
@@ -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,7 @@ export interface MfDisplayStandSetting {
|
|
|
10
16
|
},
|
|
11
17
|
prefix: string | null,
|
|
12
18
|
padDigit: number,
|
|
19
|
+
submitOrderInstruction: MfKioskSubmitOrderInstruction,
|
|
13
20
|
}
|
|
14
21
|
|
|
15
22
|
export interface DisplayStandSettingForm {
|
|
@@ -20,9 +27,17 @@ export interface DisplayStandSettingForm {
|
|
|
20
27
|
},
|
|
21
28
|
prefix: string | null,
|
|
22
29
|
padDigit: number | null,
|
|
30
|
+
submitOrderInstruction: KioskSubmitOrderInstructionForm,
|
|
23
31
|
}
|
|
32
|
+
|
|
24
33
|
export interface MfKioskPickAtCounterSetting {
|
|
25
34
|
enabled: boolean,
|
|
35
|
+
submitOrderInstruction: MfKioskSubmitOrderInstruction,
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface PickAtCounterSettingForm {
|
|
39
|
+
enabled: boolean,
|
|
40
|
+
submitOrderInstruction: KioskSubmitOrderInstructionForm,
|
|
26
41
|
}
|
|
27
42
|
|
|
28
43
|
export interface MfKioskSequenceNumberSetting {
|
|
@@ -39,6 +54,7 @@ export interface MfKioskDineInSetting {
|
|
|
39
54
|
|
|
40
55
|
export interface MfKioskTakeawaySetting {
|
|
41
56
|
enabled: boolean,
|
|
57
|
+
submitOrderInstruction: MfKioskSubmitOrderInstruction,
|
|
42
58
|
}
|
|
43
59
|
|
|
44
60
|
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 } 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,18 @@ export const defaultDisplayStand: MfDisplayStandSetting = {
|
|
|
11
11
|
min: 1,
|
|
12
12
|
max: 10,
|
|
13
13
|
},
|
|
14
|
+
submitOrderInstruction: {
|
|
15
|
+
payAtCounter: null,
|
|
16
|
+
paid: null,
|
|
17
|
+
},
|
|
14
18
|
}
|
|
15
19
|
|
|
16
20
|
export const defaultPickUp: KioskTakeawaySettingForm = {
|
|
17
21
|
enabled: false,
|
|
22
|
+
submitOrderInstruction: {
|
|
23
|
+
payAtCounter: null,
|
|
24
|
+
paid: null,
|
|
25
|
+
},
|
|
18
26
|
}
|
|
19
27
|
|
|
20
28
|
export const defaultKioskOrderSetting: MfKioskOrderSettingForm = {
|
|
@@ -26,6 +34,10 @@ export const defaultKioskOrderSetting: MfKioskOrderSettingForm = {
|
|
|
26
34
|
},
|
|
27
35
|
takeaway: {
|
|
28
36
|
enabled: false,
|
|
37
|
+
submitOrderInstruction: {
|
|
38
|
+
payAtCounter: null,
|
|
39
|
+
paid: null,
|
|
40
|
+
},
|
|
29
41
|
},
|
|
30
42
|
paymentSetting: {
|
|
31
43
|
paymentTypes: [],
|
|
@@ -46,6 +58,11 @@ export const defaultKioskOrderSetting: MfKioskOrderSettingForm = {
|
|
|
46
58
|
}
|
|
47
59
|
}
|
|
48
60
|
|
|
61
|
+
export const defaultSubmitOrderInstruction: MfKioskSubmitOrderInstruction = {
|
|
62
|
+
payAtCounter: null,
|
|
63
|
+
paid: null,
|
|
64
|
+
}
|
|
65
|
+
|
|
49
66
|
const convertOrderSettingDto = (dto: OrderSettingsDto): MfOrderSetting => {
|
|
50
67
|
return {
|
|
51
68
|
kiosk: toKiosk(dto.kioskSettings, dto.sequenceSettings?.kioskDineIn),
|
|
@@ -59,7 +76,11 @@ const toKiosk = (kioskOrderSettings: OrderKioskSettings, kioskDineInSeq?: OrderK
|
|
|
59
76
|
prefix: '#K',
|
|
60
77
|
}, kioskOrderSettings.dineIn ?? undefined),
|
|
61
78
|
takeaway: {
|
|
62
|
-
enabled: kioskOrderSettings?.canTakeaway ?? false
|
|
79
|
+
enabled: kioskOrderSettings?.canTakeaway ?? false,
|
|
80
|
+
submitOrderInstruction: kioskOrderSettings?.takeaway?.submitOrderInstruction ? {
|
|
81
|
+
payAtCounter: kioskOrderSettings.takeaway.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
|
|
82
|
+
paid: kioskOrderSettings.takeaway.submitOrderInstruction?.paid?.['en'] ?? null,
|
|
83
|
+
} : defaultSubmitOrderInstruction,
|
|
63
84
|
},
|
|
64
85
|
paymentSetting: {
|
|
65
86
|
paymentTypes: kioskOrderSettings?.paymentSetting?.paymentTypes ?? [],
|
|
@@ -85,12 +106,22 @@ const toKioskDineInSetting = (kioskDineInSeq: OrderKioskDineInSequenceDto, kiosk
|
|
|
85
106
|
return {
|
|
86
107
|
enabled: !!kioskDineInSetting,
|
|
87
108
|
sequenceNumber: kioskDineInSeq,
|
|
88
|
-
pickUp: kioskDineInSetting?.pickUp
|
|
109
|
+
pickUp: kioskDineInSetting?.pickUp ? {
|
|
110
|
+
...kioskDineInSetting.pickUp,
|
|
111
|
+
submitOrderInstruction: kioskDineInSetting.pickUp.submitOrderInstruction ? {
|
|
112
|
+
payAtCounter: kioskDineInSetting.pickUp.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
|
|
113
|
+
paid: kioskDineInSetting.pickUp.submitOrderInstruction?.paid?.['en'] ?? null,
|
|
114
|
+
} : defaultSubmitOrderInstruction,
|
|
115
|
+
} : defaultPickUp,
|
|
89
116
|
displayStand: kioskDineInSetting?.displayStand ? {
|
|
90
117
|
enabled: kioskDineInSetting.displayStand.enabled,
|
|
91
118
|
standSlotRange: kioskDineInSetting.displayStand.standSlotRange,
|
|
92
119
|
prefix: kioskDineInSetting.displayStand.prefix,
|
|
93
120
|
padDigit: kioskDineInSetting.displayStand.padDigit,
|
|
121
|
+
submitOrderInstruction: kioskDineInSetting.displayStand.submitOrderInstruction ? {
|
|
122
|
+
payAtCounter: kioskDineInSetting.displayStand.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
|
|
123
|
+
paid: kioskDineInSetting.displayStand.submitOrderInstruction?.paid?.['en'] ?? null,
|
|
124
|
+
} : defaultSubmitOrderInstruction,
|
|
94
125
|
} : defaultDisplayStand
|
|
95
126
|
}
|
|
96
127
|
}
|
|
@@ -98,10 +129,30 @@ const toOrderKioskSettingsDto = (kioskSetting: MfKioskOrderSetting): {
|
|
|
98
129
|
kioskSettings: OrderKioskSettings,
|
|
99
130
|
kioskDineIn?: OrderKioskDineInSequenceDto
|
|
100
131
|
} => {
|
|
101
|
-
const createDineInSettings = (dineInSetting: MfKioskDineInSetting) => ({
|
|
132
|
+
const createDineInSettings = (dineInSetting: MfKioskDineInSetting): OrderKioskDineIn => ({
|
|
102
133
|
requiredSlot: !!dineInSetting.displayStand,
|
|
103
|
-
displayStand:
|
|
104
|
-
|
|
134
|
+
displayStand: {
|
|
135
|
+
...dineInSetting.displayStand,
|
|
136
|
+
submitOrderInstruction: {
|
|
137
|
+
payAtCounter: dineInSetting.displayStand.submitOrderInstruction?.payAtCounter ? {
|
|
138
|
+
en: dineInSetting.displayStand.submitOrderInstruction.payAtCounter,
|
|
139
|
+
} : null,
|
|
140
|
+
paid: dineInSetting.displayStand.submitOrderInstruction?.paid ? {
|
|
141
|
+
en: dineInSetting.displayStand.submitOrderInstruction.paid,
|
|
142
|
+
} : null,
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
pickUp: {
|
|
146
|
+
...dineInSetting.pickUp,
|
|
147
|
+
submitOrderInstruction: {
|
|
148
|
+
payAtCounter: dineInSetting.pickUp.submitOrderInstruction?.payAtCounter ? {
|
|
149
|
+
en: dineInSetting.pickUp.submitOrderInstruction.payAtCounter,
|
|
150
|
+
} : null,
|
|
151
|
+
paid: dineInSetting.pickUp.submitOrderInstruction?.paid ? {
|
|
152
|
+
en: dineInSetting.pickUp.submitOrderInstruction.paid,
|
|
153
|
+
} : null,
|
|
154
|
+
}
|
|
155
|
+
}
|
|
105
156
|
})
|
|
106
157
|
|
|
107
158
|
const createKioskSettings = (dineIn?: OrderKioskDineIn) => ({
|
|
@@ -111,7 +162,7 @@ const toOrderKioskSettingsDto = (kioskSetting: MfKioskOrderSetting): {
|
|
|
111
162
|
paymentSetting: createPaymentSettings(kioskSetting.paymentSetting)
|
|
112
163
|
})
|
|
113
164
|
|
|
114
|
-
const createPaymentSettings = (paymentSetting: MfKioskPaymentSetting)
|
|
165
|
+
const createPaymentSettings = (paymentSetting: MfKioskPaymentSetting): OrderKioskPaymentSetting | undefined => {
|
|
115
166
|
return {
|
|
116
167
|
paymentTypes: paymentSetting.paymentTypes,
|
|
117
168
|
offlinePaymentTypes: paymentSetting.offlinePaymentTypes,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
type FdoProfile,
|
|
15
15
|
type FdoRestaurant
|
|
16
16
|
} from '@feedmepos/core/entity'
|
|
17
|
-
import { FdoGrabfoodSettings } from '@entity'
|
|
17
|
+
import { FdoExternalSetting, FdoGrabfoodSettings } from '@entity'
|
|
18
18
|
import { FeatureFlag, Pos } from '@feedmepos/core'
|
|
19
19
|
import { SvcConfig } from '@/api'
|
|
20
20
|
import { remoteOrderApi } from '@/api/remoteOrder'
|
|
@@ -112,6 +112,9 @@ export const useRestaurantStore = defineStore('restaurant', {
|
|
|
112
112
|
async updateIntegratedShopeefoodDelivery(restaurantId: string, dto: FdoShopeeFoodSettings) {
|
|
113
113
|
await remoteOrderApi.integratedDelivery.updateShopeefood(restaurantId, dto)
|
|
114
114
|
},
|
|
115
|
+
async updateExternalDelivery(restaurantId: string, dto: FdoExternalSetting) {
|
|
116
|
+
await remoteOrderApi.integratedDelivery.updateExternal(restaurantId, dto)
|
|
117
|
+
},
|
|
115
118
|
getRestaurantEPayment(dto?: FdoRestaurant | undefined): true | string {
|
|
116
119
|
const { t } = useI18n()
|
|
117
120
|
if (!dto) {
|
|
@@ -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,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>
|