@feedmepos/mf-order-setting 0.0.44 → 0.0.46
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-KBpXQJmy.js → KioskDevicesView-Dd3xcM5X.js} +1 -1
- package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-taf41a-7.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-D-epeOIx.js} +101 -96
- package/dist/{KioskSettingView-DG12ZvfT.js → KioskSettingView-D50Gh7NR.js} +1 -1
- package/dist/KioskView-BGiHHSjd.js +448 -0
- package/dist/{OrderSettingsView-CEh1QUZm.js → OrderSettingsView-DNuKMNFe.js} +33723 -34786
- package/dist/{app-CKeIud_f.js → app-DGT9bC4M.js} +115 -43
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-D9bsUd57.js → dayjs.min-D-vfvSns.js} +1 -1
- package/dist/frontend/mf-order/src/api/remoteOrder/index.d.ts +2 -2
- package/dist/frontend/mf-order/src/api/restaurant-setting/index.d.ts +2 -1
- package/dist/frontend/mf-order/src/app.d.ts +72 -0
- package/dist/frontend/mf-order/src/main.d.ts +72 -0
- package/dist/frontend/mf-order/src/modules/kiosk/interface.d.ts +1 -0
- package/dist/frontend/mf-order/src/stores/kiosk/index.d.ts +3 -0
- package/dist/frontend/mf-order/src/stores/menu/menu.d.ts +111 -1
- package/dist/frontend/mf-order/src/stores/order-setting/index.d.ts +291 -288
- package/dist/frontend/mf-order/src/stores/restaurant/index.d.ts +20 -173
- package/dist/frontend/mf-order/src/views/all-orders/ReflowOrder.vue.d.ts +12 -114
- package/dist/frontend/mf-order/src/views/order-settings/delivery/delivery.data.d.ts +2 -2
- package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/InHouseDelivery.vue.d.ts +2 -2
- package/dist/frontend/mf-order/src/views/order-settings/pickup/PickUpSettingDialogContent.vue.d.ts +4 -4
- package/dist/frontend/mf-order/src/views/order-settings/queue/PresetRemarksSheet.vue.d.ts +19 -0
- package/dist/frontend/mf-order/src/views/order-settings/queue/QueueSetting.vue.d.ts +2 -0
- package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{index-D_Tmm1qL.js → index-DAruvcri.js} +2 -2
- package/dist/{menu.dto-BY9dVf93.js → menu.dto-B82ITnH5.js} +54755 -57698
- package/dist/package/entity/booking/booking.do.d.ts +168 -2368
- package/dist/package/entity/delivery/delivery.dto.d.ts +33 -473
- package/dist/package/entity/food-court/food-court.dto.d.ts +44 -44
- package/dist/package/entity/incoming-order/incoming-order-to-bill.dto.d.ts +23 -0
- package/dist/package/entity/incoming-order/incoming-order.do.d.ts +450 -60
- package/dist/package/entity/incoming-order/incoming-order.dto.d.ts +680 -628
- package/dist/package/entity/incoming-order/incoming-order.enum.d.ts +2 -2
- package/dist/package/entity/index.d.ts +2 -0
- package/dist/package/entity/kiosk/kiosk.do.d.ts +16 -0
- package/dist/package/entity/kiosk/kiosk.dto.d.ts +19 -0
- package/dist/package/entity/kiosk/marketing/marketing.dto.d.ts +201 -2031
- package/dist/package/entity/order/order-item/order-item.dto.d.ts +129 -16
- package/dist/package/entity/order/order.do.d.ts +8 -0
- package/dist/package/entity/order/order.dto.d.ts +390 -974
- package/dist/package/entity/order/order.enum.d.ts +2 -0
- package/dist/package/entity/order-platform/external/menu/external-master-menu.do.d.ts +367 -18
- package/dist/package/entity/order-platform/external/menu/external-menu.do.d.ts +48 -8
- package/dist/package/entity/order-platform/external/order/external-order.do.d.ts +1 -0
- package/dist/package/entity/order-platform/foodpanda/foodpanda-order.dto.d.ts +33 -473
- package/dist/package/entity/order-platform/grabfood/grabfood-omni.do.d.ts +672 -0
- package/dist/package/entity/order-platform/grabfood/grabfood-omni.dto.d.ts +9 -0
- package/dist/package/entity/order-platform/grabfood/grabfood-order.do.d.ts +90 -508
- package/dist/package/entity/order-platform/grabfood/grabfood-settings.do.d.ts +3 -0
- package/dist/package/entity/order-platform/grabfood/grabfood-webhook.dto.d.ts +1130 -0
- package/dist/package/entity/order-platform/grabfood/grabfood.dto.d.ts +34 -47
- package/dist/package/entity/order-platform/grabfood/grabfood.enum.d.ts +8 -2
- package/dist/package/entity/order-platform/menu.dto.d.ts +46 -12
- package/dist/package/entity/order-platform/order-platform.dto.d.ts +8 -5
- package/dist/package/entity/order-platform/shopeefood/shopeefood-order.do.d.ts +33 -473
- package/dist/package/entity/order-platform/shopeefood/shopeefood-settings.do.d.ts +3 -0
- package/dist/package/entity/order-platform/shopeefood/shopeefood-settings.dto.d.ts +3 -0
- package/dist/package/entity/order-setting/customization/color.do.d.ts +3 -0
- package/dist/package/entity/order-setting/kiosk/kiosk.dto.d.ts +18 -18
- package/dist/package/entity/order-setting/order-setting.do.d.ts +77 -88
- package/dist/package/entity/order-setting/order-setting.dto.d.ts +724 -1036
- package/dist/package/entity/order-setting/queue/queue.do.d.ts +22 -0
- package/dist/package/entity/order-setting/queue/queue.dto.d.ts +12 -0
- package/dist/package/entity/order-setting/reservation/reservation.do.d.ts +4 -51
- package/dist/package/entity/order-setting/reservation/reservation.dto.d.ts +248 -585
- package/dist/package/entity/pubsub/ably/ably.enum.d.ts +10 -1
- package/dist/package/entity/queue/queue.dto.d.ts +76 -14
- package/dist/package/entity/restaurant/restaurant.dto.d.ts +41 -26
- package/dist/package/entity/websocket/websocket.dto.d.ts +22 -22
- package/package.json +3 -3
- package/src/api/remoteOrder/index.ts +13 -2
- package/src/api/restaurant-setting/index.ts +6 -0
- package/src/locales/en-US.json +24 -0
- package/src/locales/th-TH.json +24 -0
- package/src/locales/zh-CN.json +24 -0
- package/src/modules/kiosk/interface.ts +1 -0
- package/src/stores/kiosk/mapper.ts +1 -0
- package/src/stores/order-setting/mapper.ts +20 -33
- package/src/stores/restaurant/index.ts +7 -3
- package/src/views/all-orders/FilterStatus.vue +1 -1
- package/src/views/kiosk/devices/KioskDeviceCard.vue +6 -0
- package/src/views/order-settings/OrderSettingsView.vue +13 -5
- package/src/views/order-settings/delivery/delivery.data.ts +7 -4
- package/src/views/order-settings/delivery/integrated-delivery/FoodpandaSetting.vue +2 -2
- package/src/views/order-settings/dine-in/DineInSetting.vue +18 -2
- package/src/views/order-settings/general/GeneralSetting.vue +2 -2
- package/src/views/order-settings/queue/PresetRemarksSheet.vue +103 -0
- package/src/views/order-settings/queue/QueueSetting.vue +358 -0
- package/dist/KioskView-KNiT-upH.js +0 -453
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
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
|
-
import {
|
|
5
|
-
import type {
|
|
4
|
+
import { FdoLinkedDelivery, FdoRestaurant, FdoRestaurantFeedmeDelivery, FdoRestaurantInHouseDelivery } from '@feedmepos/core/entity';
|
|
5
|
+
import type {
|
|
6
|
+
FdoDeliverooSettings,
|
|
7
|
+
FdoExternalSetting,
|
|
8
|
+
FdoFoodpandaOrderOutput,
|
|
9
|
+
FdoFoodpandaSettings,
|
|
10
|
+
FdoGrabfoodOrderOutput,
|
|
11
|
+
FdoGrabfoodSettings,
|
|
12
|
+
FdoShopeeFoodOrder,
|
|
13
|
+
FdoShopeeFoodOrderOutput,
|
|
14
|
+
FdoShopeeFoodSettings,
|
|
15
|
+
FdtoGetOrderReq
|
|
16
|
+
} from '@entity';
|
|
6
17
|
|
|
7
18
|
type DeliveryCompanyUrl = 'foodpanda' | 'grabfood' | 'shopeefood' | 'deliveroo' | 'external'
|
|
8
19
|
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
} from '@/api'
|
|
5
5
|
import type { OrderSettingsDto } from '@entity'
|
|
6
6
|
import {
|
|
7
|
+
FdoQueueQrSetting,
|
|
7
8
|
FdoRestaurantDineIn,
|
|
8
9
|
FdoRestaurantPickup,
|
|
9
10
|
FdoRestaurantSetting,
|
|
@@ -40,5 +41,10 @@ export const restaurantApi = {
|
|
|
40
41
|
|
|
41
42
|
async getMobileOrderSetting(): Promise<OrderSettingsDto> {
|
|
42
43
|
return await getData(await restaurantClientInstance().get('/order-settings'))
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
async updateQueueSetting(restaurantId: string, setting: Partial<FdoQueueQrSetting>): Promise<RestaurantSettingDoc> {
|
|
47
|
+
const result = await restaurantClientInstance().put(`/queue`, setting)
|
|
48
|
+
return getData<RestaurantSettingDoc>(result)
|
|
43
49
|
}
|
|
44
50
|
}
|
package/src/locales/en-US.json
CHANGED
|
@@ -39,6 +39,14 @@
|
|
|
39
39
|
"autoIntegrationCountryNotSupport": "Platform not support auto integration in current country.",
|
|
40
40
|
"autoSendKitchen": "Auto Send Kitchen",
|
|
41
41
|
"autoSendKitchenSublabel": "Required POS version 7 or above",
|
|
42
|
+
"presetRemarks": "Preset Remarks",
|
|
43
|
+
"editPresetRemarks": "Edit Preset Remarks",
|
|
44
|
+
"addNewRemark": "Add New Remark",
|
|
45
|
+
"enterRemark": "Enter remark",
|
|
46
|
+
"existingRemarks": "Existing Remarks",
|
|
47
|
+
"noPresetRemarks": "No preset remarks configured",
|
|
48
|
+
"noPresetRemarksAdded": "No remarks added yet",
|
|
49
|
+
"presetRemarksSaved": "Preset remarks saved successfully",
|
|
42
50
|
"balance": "Balance",
|
|
43
51
|
"bankCard": "Card",
|
|
44
52
|
"beforeBillDiscount": "Before bill discount",
|
|
@@ -72,6 +80,8 @@
|
|
|
72
80
|
"daysTo": "days to",
|
|
73
81
|
"deactivated": "Deactivated",
|
|
74
82
|
"default": "Default",
|
|
83
|
+
"enabled": "Enabled",
|
|
84
|
+
"disabled": "Disabled",
|
|
75
85
|
"delete": "delete",
|
|
76
86
|
"delivery": "Delivery",
|
|
77
87
|
"deliveryCompany": "Delivery Company",
|
|
@@ -115,6 +125,7 @@
|
|
|
115
125
|
"feedmeExpressPosVersionIssue": "Min POS version {minVersion} required for FeedMe Express",
|
|
116
126
|
"feedmeExpressTitle": "Update FeedMe express",
|
|
117
127
|
"fieldCannotBeEmpty": "Field cannot be empty",
|
|
128
|
+
"followDineIn": "Follow Dine In",
|
|
118
129
|
"fixedTime": "Fixed time",
|
|
119
130
|
"friday": "Friday",
|
|
120
131
|
"general": "General",
|
|
@@ -198,6 +209,19 @@
|
|
|
198
209
|
"processing": "PROCESSING",
|
|
199
210
|
"productSelected": "product(s) selected",
|
|
200
211
|
"promptAnonymousLoginDialog": "Prompt Login Dialog For Anonymous Order",
|
|
212
|
+
"queue": "Queue",
|
|
213
|
+
"queueSettings": "Queue Settings",
|
|
214
|
+
"enableQueueOrder": "Enable Queue Order",
|
|
215
|
+
"autoCalledLimit": "Auto Called Limit",
|
|
216
|
+
"duration": "Duration",
|
|
217
|
+
"disableRemoteQueue": "Disable Remote Queue",
|
|
218
|
+
"disableSMS": "Disable SMS",
|
|
219
|
+
"printChecklist": "Print Checklist",
|
|
220
|
+
"codeSettings": "Queue Code Settings",
|
|
221
|
+
"addCodeSetting": "Add Queue Code Setting",
|
|
222
|
+
"current": "Current",
|
|
223
|
+
"paxMin": "Pax Min",
|
|
224
|
+
"paxMax": "Pax Max",
|
|
201
225
|
"qrPay": "QR Pay",
|
|
202
226
|
"terminalScanPay": "Terminal Scan Pay",
|
|
203
227
|
"terminalQrPay": "Terminal QR Pay",
|
package/src/locales/th-TH.json
CHANGED
|
@@ -39,6 +39,14 @@
|
|
|
39
39
|
"autoIntegrationCountryNotSupport": "แพลตฟอร์มไม่รองรับการเชื่อมต่อการจัดส่งแบบไดนามิกในประเทศ/ภูมิภาคปัจจุบัน",
|
|
40
40
|
"autoSendKitchen": "ส่งอัตโนมัติครัว",
|
|
41
41
|
"autoSendKitchenSublabel": "ต้องใช้ POS เวอร์ชัน 7 ขึ้นไป",
|
|
42
|
+
"presetRemarks": "หมายเหตุที่ตั้งไว้ล่วงหน้า",
|
|
43
|
+
"editPresetRemarks": "แก้ไขหมายเหตุที่ตั้งไว้ล่วงหน้า",
|
|
44
|
+
"addNewRemark": "เพิ่มหมายเหตุใหม่",
|
|
45
|
+
"enterRemark": "ป้อนหมายเหตุ",
|
|
46
|
+
"existingRemarks": "หมายเหตุที่มีอยู่",
|
|
47
|
+
"noPresetRemarks": "ไม่มีหมายเหตุที่ตั้งไว้ล่วงหน้า",
|
|
48
|
+
"noPresetRemarksAdded": "ยังไม่ได้เพิ่มหมายเหตุ",
|
|
49
|
+
"presetRemarksSaved": "บันทึกหมายเหตุที่ตั้งไว้ล่วงหน้าสำเร็จ",
|
|
42
50
|
"balance": "ยอดคงเหลือ",
|
|
43
51
|
"bankCard": "บัตร",
|
|
44
52
|
"beforeBillDiscount": "ก่อนหักส่วนลดบิล",
|
|
@@ -73,6 +81,8 @@
|
|
|
73
81
|
"deactivated": "ปิดใช้งาน",
|
|
74
82
|
"default": "ค่าเริ่มต้น",
|
|
75
83
|
"delete": "ลบ",
|
|
84
|
+
"disabled": "ปิดใช้งาน",
|
|
85
|
+
"enabled": "เปิดใช้งาน",
|
|
76
86
|
"delivery": "การจัดส่ง",
|
|
77
87
|
"deliveryCompany": "บริษัทจัดส่ง",
|
|
78
88
|
"deliveryDescription": "เราบูรณาการการจัดส่งเหล่านี้กับระบบ POS ของคุณ คุณสามารถจัดส่งอาหารให้กับลูกค้าของคุณได้รวดเร็วและปลอดภัยยิ่งขึ้น",
|
|
@@ -113,6 +123,7 @@
|
|
|
113
123
|
"feedmeExpressPosVersionIssue": "จำเป็นต้องมีเวอร์ชัน POS ขั้นต่ำ {minVersion} สำหรับ FeedMe Express",
|
|
114
124
|
"feedmeExpressTitle": "อัปเดต FeedMe express",
|
|
115
125
|
"fieldCannotBeEmpty": "ไม่สามารถเว้นช่องได้",
|
|
126
|
+
"followDineIn": "ทำตามการรับประทานอาหารที่ร้าน",
|
|
116
127
|
"fixedTime": "เวลาที่กำหนด",
|
|
117
128
|
"friday": "วันศุกร์",
|
|
118
129
|
"general": "ข้อมูลทั่วไป",
|
|
@@ -188,6 +199,7 @@
|
|
|
188
199
|
"pleaseCompleteProfile": "โปรดกรอกโปรไฟล์ร้านอาหารของคุณเพื่อเปิดใช้งาน FeedMe Express",
|
|
189
200
|
"pleaseSelectRestaurant": "โปรดเลือกร้านอาหาร",
|
|
190
201
|
"prefix": "คำนำหน้า",
|
|
202
|
+
"printChecklist": "พิมพ์รายการตรวจสอบ",
|
|
191
203
|
"preOrder": "สั่งซื้อล่วงหน้า",
|
|
192
204
|
"preOrderHint": "สั่งซื้อในวันที่ {today} ลูกค้าสามารถสั่งซื้อได้ระหว่าง {start} และ {end} สูงสุด 7 วัน",
|
|
193
205
|
"pricePerMessage": "ราคาต่อข้อความ",
|
|
@@ -195,6 +207,18 @@
|
|
|
195
207
|
"processing": "กำลังประมวลผล",
|
|
196
208
|
"productSelected": "ผลิตภัณฑ์ที่เลือก",
|
|
197
209
|
"promptAnonymousLoginDialog": "กล่องโต้ตอบพร้อมท์เข้าสู่ระบบสำหรับคำสั่งซื้อแบบไม่เปิดเผยตัวตน",
|
|
210
|
+
"queue": "คิว",
|
|
211
|
+
"queueSettings": "การตั้งค่าคิว",
|
|
212
|
+
"enableQueueOrder": "เปิดใช้งานคำสั่งซื้อคิว",
|
|
213
|
+
"autoCalledLimit": "ขีดจำกัดการเรียกอัตโนมัติ",
|
|
214
|
+
"duration": "ระยะเวลา",
|
|
215
|
+
"disableRemoteQueue": "ปิดใช้งานคิวระยะไกล",
|
|
216
|
+
"disableSMS": "ปิดใช้งาน SMS",
|
|
217
|
+
"codeSettings": "การตั้งค่ารหัส",
|
|
218
|
+
"addCodeSetting": "เพิ่มการตั้งค่ารหัส",
|
|
219
|
+
"current": "ปัจจุบัน",
|
|
220
|
+
"paxMin": "จำนวนผู้โดยสารขั้นต่ำ",
|
|
221
|
+
"paxMax": "จำนวนผู้โดยสารสูงสุด",
|
|
198
222
|
"qrPay": "ชำระเงินด้วย QR",
|
|
199
223
|
"terminalScanPay": "ชำระเงินด้วยการสแกนเทอร์มินัล",
|
|
200
224
|
"terminalQrPay": "ชำระเงินด้วย QR เทอร์มินัล",
|
package/src/locales/zh-CN.json
CHANGED
|
@@ -39,6 +39,14 @@
|
|
|
39
39
|
"autoIntegrationCountryNotSupport": "平台不支持当前国家/地区的自动配送对接。",
|
|
40
40
|
"autoSendKitchen": "自动发送至厨房",
|
|
41
41
|
"autoSendKitchenSublabel": "需要POS版本7或以上",
|
|
42
|
+
"presetRemarks": "预设备注",
|
|
43
|
+
"editPresetRemarks": "编辑预设备注",
|
|
44
|
+
"addNewRemark": "添加新备注",
|
|
45
|
+
"enterRemark": "输入备注",
|
|
46
|
+
"existingRemarks": "现有备注",
|
|
47
|
+
"noPresetRemarks": "未配置预设备注",
|
|
48
|
+
"noPresetRemarksAdded": "尚未添加备注",
|
|
49
|
+
"presetRemarksSaved": "预设备注保存成功",
|
|
42
50
|
"balance": "余额",
|
|
43
51
|
"bankCard": "银行卡",
|
|
44
52
|
"beforeBillDiscount": "账单折扣前",
|
|
@@ -74,6 +82,8 @@
|
|
|
74
82
|
"deactivated": "已停用",
|
|
75
83
|
"default": "默认",
|
|
76
84
|
"delete": "删除",
|
|
85
|
+
"disabled": "禁用",
|
|
86
|
+
"enabled": "启用",
|
|
77
87
|
"delivery": "配送",
|
|
78
88
|
"deliveryCompany": "配送公司",
|
|
79
89
|
"deliveryDescription": "我们将以下配送服务与您的POS系统进行结合,让您能够更加快速且安全地将餐点送到客户手中。",
|
|
@@ -117,6 +127,7 @@
|
|
|
117
127
|
"feedmeExpressPosVersionIssue": "需要最低{minVersion}版本的POS系统才能使用FeedMe外卖快递",
|
|
118
128
|
"feedmeExpressTitle": "更新 Feedme 外卖快递",
|
|
119
129
|
"fieldCannotBeEmpty": "字段不可为空",
|
|
130
|
+
"followDineIn": "跟随堂食",
|
|
120
131
|
"fixedTime": "固定时间",
|
|
121
132
|
"friday": "星期五",
|
|
122
133
|
"general": "通用",
|
|
@@ -192,6 +203,7 @@
|
|
|
192
203
|
"pleaseCompleteProfile": "请完善您的餐厅资料以启用FeedMe外卖快递",
|
|
193
204
|
"pleaseSelectRestaurant": "请选择一个餐厅",
|
|
194
205
|
"prefix": "前缀",
|
|
206
|
+
"printChecklist": "打印清单",
|
|
195
207
|
"preOrder": "预订",
|
|
196
208
|
"preOrderHint": "于今日 {today} 下单,客户可以在 {start} 和 {end} 之间预订。最多 7 天。",
|
|
197
209
|
"printReceiptAfterClose": "自动关闭账单后打印收据",
|
|
@@ -199,6 +211,18 @@
|
|
|
199
211
|
"processing": "处理中",
|
|
200
212
|
"productSelected": "已选择商品",
|
|
201
213
|
"promptAnonymousLoginDialog": "为匿名用户弹出登入对话框",
|
|
214
|
+
"queue": "排队",
|
|
215
|
+
"queueSettings": "排队设置",
|
|
216
|
+
"enableQueueOrder": "启用排队订单",
|
|
217
|
+
"autoCalledLimit": "自动呼叫限制",
|
|
218
|
+
"duration": "持续时间",
|
|
219
|
+
"disableRemoteQueue": "禁用远程排队",
|
|
220
|
+
"disableSMS": "禁用短信",
|
|
221
|
+
"codeSettings": "代码设置",
|
|
222
|
+
"addCodeSetting": "添加代码设置",
|
|
223
|
+
"current": "当前",
|
|
224
|
+
"paxMin": "最少人数",
|
|
225
|
+
"paxMax": "最多人数",
|
|
202
226
|
"qrPay": "二维码支付",
|
|
203
227
|
"terminalScanPay": "终端扫描支付",
|
|
204
228
|
"terminalQrPay": "终端二维码支付",
|
|
@@ -15,6 +15,7 @@ const toMfKioskDevice = (dto: KioskDeviceDto): MfKioskDevice => {
|
|
|
15
15
|
slotInfo: dto.slotInfo ?? undefined,
|
|
16
16
|
pinInfo: dto.pinInfo ?? undefined,
|
|
17
17
|
deviceAppVersion: dto.deviceAppVersion ?? undefined,
|
|
18
|
+
deviceAppOTAVersion: dto.deviceAppOTAVersion ?? undefined,
|
|
18
19
|
};
|
|
19
20
|
};
|
|
20
21
|
|
|
@@ -90,48 +90,35 @@ const convertOrderSettingDto = (dto: OrderSettingsDto): MfOrderSetting => {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
const toKiosk = (
|
|
94
|
-
kioskOrderSettings: OrderKioskSettings,
|
|
95
|
-
kioskDineInSeq?: OrderKioskDineInSequenceDto
|
|
96
|
-
): MfKioskOrderSetting => {
|
|
93
|
+
const toKiosk = (kioskOrderSettings: OrderKioskSettings | null | undefined, kioskDineInSeq?: OrderKioskDineInSequenceDto): MfKioskOrderSetting => {
|
|
97
94
|
return {
|
|
98
|
-
dineIn: toKioskDineInSetting(
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
},
|
|
103
|
-
kioskOrderSettings.dineIn ?? undefined
|
|
104
|
-
),
|
|
95
|
+
dineIn: toKioskDineInSetting(kioskDineInSeq ?? {
|
|
96
|
+
current: 0,
|
|
97
|
+
prefix: '#K',
|
|
98
|
+
}, kioskOrderSettings?.dineIn ?? undefined),
|
|
105
99
|
takeaway: {
|
|
106
100
|
enabled: kioskOrderSettings?.canTakeaway ?? false,
|
|
107
|
-
submitOrderInstruction: kioskOrderSettings?.takeaway?.submitOrderInstruction
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
paid: kioskOrderSettings.takeaway.submitOrderInstruction?.paid?.['en'] ?? null
|
|
112
|
-
}
|
|
113
|
-
: defaultSubmitOrderInstruction
|
|
101
|
+
submitOrderInstruction: kioskOrderSettings?.takeaway?.submitOrderInstruction ? {
|
|
102
|
+
payAtCounter: kioskOrderSettings?.takeaway?.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
|
|
103
|
+
paid: kioskOrderSettings?.takeaway?.submitOrderInstruction?.paid?.['en'] ?? null,
|
|
104
|
+
} : defaultSubmitOrderInstruction,
|
|
114
105
|
},
|
|
115
106
|
paymentSetting: {
|
|
116
107
|
paymentTypes: kioskOrderSettings?.paymentSetting?.paymentTypes ?? [],
|
|
117
108
|
offlinePaymentTypes: kioskOrderSettings?.paymentSetting?.offlinePaymentTypes ?? [],
|
|
118
|
-
ePaymentTypes:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
terminalScanPay: false,
|
|
129
|
-
terminalQrPay: false
|
|
130
|
-
}
|
|
131
|
-
})
|
|
109
|
+
ePaymentTypes: kioskOrderSettings?.paymentSetting?.ePaymentTypes ?? FdoEPaymentMethod.parse({
|
|
110
|
+
card: {
|
|
111
|
+
terminal: false,
|
|
112
|
+
nfc: false
|
|
113
|
+
},
|
|
114
|
+
eWallet: {
|
|
115
|
+
qrPay: false,
|
|
116
|
+
scanPay: false
|
|
117
|
+
}
|
|
118
|
+
}),
|
|
132
119
|
},
|
|
133
120
|
menuItem: {
|
|
134
|
-
showAllOnly: kioskOrderSettings
|
|
121
|
+
showAllOnly: kioskOrderSettings?.menuItem?.showAllOnly ?? false,
|
|
135
122
|
}
|
|
136
123
|
}
|
|
137
124
|
}
|
|
@@ -3,20 +3,24 @@ import { restaurantApi, type RestaurantSettingDoc } from '@/api/restaurant-setti
|
|
|
3
3
|
import {
|
|
4
4
|
F_FEATURE,
|
|
5
5
|
F_PAYOUT_ACCOUNT_STATUS,
|
|
6
|
-
FdoFoodpandaSettings,
|
|
7
6
|
FdoRestaurantDineIn,
|
|
8
7
|
FdoRestaurantFeedmeDelivery,
|
|
9
8
|
FdoRestaurantInHouseDelivery,
|
|
10
9
|
FdoRestaurantPickup,
|
|
11
10
|
FdoServiceChargeSetting,
|
|
12
|
-
FdoShopeeFoodSettings,
|
|
13
11
|
type FdoAddress,
|
|
14
12
|
type FdoProfile,
|
|
15
13
|
FdoRestaurant,
|
|
16
14
|
FdoRestaurantSetting,
|
|
17
15
|
type FdoEffectGroup
|
|
18
16
|
} from '@feedmepos/core/entity'
|
|
19
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
FdoDeliverooSettings,
|
|
19
|
+
FdoGrabfoodSettings,
|
|
20
|
+
FdoExternalSetting,
|
|
21
|
+
FdoFoodpandaSettings,
|
|
22
|
+
FdoShopeeFoodSettings
|
|
23
|
+
} from '@entity'
|
|
20
24
|
import { FeatureFlag, Pos } from '@feedmepos/core'
|
|
21
25
|
import { SvcConfig } from '@/api'
|
|
22
26
|
import { remoteOrderApi } from '@/api/remoteOrder'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { ref, computed, watch } from 'vue'
|
|
3
|
-
import { F_SHOPEEFOOD_ORDER_STATUS, GF_ORDER_STATUS, FP_ORDER_STATUS } from '@
|
|
3
|
+
import { F_SHOPEEFOOD_ORDER_STATUS, GF_ORDER_STATUS, FP_ORDER_STATUS } from '@entity'
|
|
4
4
|
import { F_ORDER_STATUS } from '@feedmepos/ordering/package/entity'
|
|
5
5
|
import { sentenceCase } from 'change-case'
|
|
6
6
|
import FilterStatusMenu from './FilterStatusMenu.vue'
|
|
@@ -29,6 +29,12 @@
|
|
|
29
29
|
device.deviceAppVersion ?? 'Below 0.0.42'
|
|
30
30
|
}}</span>
|
|
31
31
|
</div>
|
|
32
|
+
<div class="flex flex-col gap-1 mb-2">
|
|
33
|
+
<span class="fm-typo-en-body-lg-400 text-fm-color-typo-secondary">OTA Version</span>
|
|
34
|
+
<span class="fm-typo-en-body-lg-600 block">{{
|
|
35
|
+
device.deviceAppOTAVersion ?? 'Not available'
|
|
36
|
+
}}</span>
|
|
37
|
+
</div>
|
|
32
38
|
<div class="flex flex-col gap-1 mb-2">
|
|
33
39
|
<span class="fm-typo-en-body-lg-400 text-fm-color-typo-secondary">PIN Code</span>
|
|
34
40
|
<span class="fm-typo-en-body-lg-600 block">{{ isPinUpdate ? 'Yes' : 'No' }}</span>
|
|
@@ -25,6 +25,7 @@ import SmsSetting from './sms/SmsSetting.vue'
|
|
|
25
25
|
// import DiscountRuleSetting from './discount-rule/DiscountRuleSetting.vue'
|
|
26
26
|
|
|
27
27
|
import GeneralSetting from './general/GeneralSetting.vue'
|
|
28
|
+
import QueueSetting from './queue/QueueSetting.vue'
|
|
28
29
|
import { useI18n, useCoreStore } from '@feedmepos/mf-common'
|
|
29
30
|
import { useMenuStore } from '@/stores/menu/menu'
|
|
30
31
|
import { useSnackbarFunctions } from '@/components/snackbar'
|
|
@@ -41,6 +42,7 @@ type OrderSettingMenuItemValue =
|
|
|
41
42
|
| 'sms'
|
|
42
43
|
// | 'discountRule'
|
|
43
44
|
| 'general'
|
|
45
|
+
| 'queue'
|
|
44
46
|
const selectedOrderSetting = ref<OrderSettingMenuItemValue>('delivery')
|
|
45
47
|
|
|
46
48
|
const settingItem = computed<FmTabProps[]>(() => [
|
|
@@ -50,7 +52,8 @@ const settingItem = computed<FmTabProps[]>(() => [
|
|
|
50
52
|
// { label: t('order.serviceCharge'), value: 'servicecharge' },
|
|
51
53
|
// { label: t('order.discountRule.title'), value: 'discountRule' },
|
|
52
54
|
{ label: t('order.sms'), value: 'sms' },
|
|
53
|
-
{ label: t('order.general'), value: 'general' }
|
|
55
|
+
{ label: t('order.general'), value: 'general' },
|
|
56
|
+
{ label: t('order.queue'), value: 'queue' }
|
|
54
57
|
])
|
|
55
58
|
|
|
56
59
|
const currentComponent = computed(() => {
|
|
@@ -69,6 +72,8 @@ const currentComponent = computed(() => {
|
|
|
69
72
|
// return DiscountRuleSetting
|
|
70
73
|
case 'general':
|
|
71
74
|
return GeneralSetting
|
|
75
|
+
case 'queue':
|
|
76
|
+
return QueueSetting
|
|
72
77
|
}
|
|
73
78
|
})
|
|
74
79
|
|
|
@@ -84,9 +89,12 @@ watch(currentRestaurant, async (newRestaurant) => {
|
|
|
84
89
|
}
|
|
85
90
|
})
|
|
86
91
|
|
|
87
|
-
watch(
|
|
88
|
-
|
|
89
|
-
|
|
92
|
+
watch(
|
|
93
|
+
() => menuStore.catalogOptionsError,
|
|
94
|
+
(errorKey) => {
|
|
95
|
+
if (errorKey) {
|
|
96
|
+
showError(t(errorKey))
|
|
97
|
+
}
|
|
90
98
|
}
|
|
91
|
-
|
|
99
|
+
)
|
|
92
100
|
</script>
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type {
|
|
2
|
+
FdoDeliverooSettings,
|
|
3
|
+
FdoExternalSetting,
|
|
4
4
|
FdoGrabfoodSettings,
|
|
5
5
|
FdoShopeeFoodSettings,
|
|
6
|
-
FdoFoodpandaSettings
|
|
6
|
+
FdoFoodpandaSettings
|
|
7
|
+
} from '@entity';
|
|
8
|
+
import {
|
|
9
|
+
FdoRestaurantFeedmeDelivery,
|
|
7
10
|
FdoRestaurantInHouseDelivery
|
|
8
11
|
} from '@feedmepos/core/entity'
|
|
9
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
3
|
-
import { FdoFoodpandaSettings } from '@entity'
|
|
2
|
+
import { FdoLinkedDelivery } from '@feedmepos/core/entity'
|
|
3
|
+
import { FdoFoodpandaReportCalculationConfig, FdoFoodpandaSettings } from '@entity'
|
|
4
4
|
import { type PropType, reactive, computed } from 'vue'
|
|
5
5
|
import IntegratedDelivery from './IntegratedDelivery.vue'
|
|
6
6
|
import { useCoreStore } from '@feedmepos/mf-common'
|
|
@@ -65,11 +65,18 @@
|
|
|
65
65
|
</div>
|
|
66
66
|
|
|
67
67
|
<FmSwitch
|
|
68
|
-
:model-value="orderSetting?.v3Settings
|
|
68
|
+
:model-value="orderSetting?.v3Settings?.dineInCanTakeaway ?? false"
|
|
69
69
|
:label="t('order.dineInCanTakeaway')"
|
|
70
70
|
label-placement="right"
|
|
71
71
|
@update:model-value="updateDineInCanTakeaway"
|
|
72
72
|
></FmSwitch>
|
|
73
|
+
|
|
74
|
+
<FmSwitch
|
|
75
|
+
:model-value="orderSetting?.dineInSettings?.printChecklist ?? false"
|
|
76
|
+
:label="t('order.printChecklist')"
|
|
77
|
+
label-placement="right"
|
|
78
|
+
@update:model-value="updatePrintChecklist"
|
|
79
|
+
></FmSwitch>
|
|
73
80
|
</div>
|
|
74
81
|
<div class="p-[1.5rem] flex flex-col gap-2 m-5 w-2/3">
|
|
75
82
|
<PaymentType
|
|
@@ -161,7 +168,7 @@ function enableLastOrder(v: boolean) {
|
|
|
161
168
|
}
|
|
162
169
|
|
|
163
170
|
function updateDineInCanTakeaway(v: boolean) {
|
|
164
|
-
if (orderSetting.value) {
|
|
171
|
+
if (orderSetting.value?.v3Settings) {
|
|
165
172
|
orderSetting.value.v3Settings.dineInCanTakeaway = v
|
|
166
173
|
}
|
|
167
174
|
}
|
|
@@ -172,6 +179,15 @@ function updateLastOrderMinutesBeforeClose(minutes: number) {
|
|
|
172
179
|
}
|
|
173
180
|
}
|
|
174
181
|
|
|
182
|
+
function updatePrintChecklist(v: boolean) {
|
|
183
|
+
if (orderSetting.value) {
|
|
184
|
+
if (!orderSetting.value.dineInSettings) {
|
|
185
|
+
orderSetting.value.dineInSettings = {}
|
|
186
|
+
}
|
|
187
|
+
orderSetting.value.dineInSettings.printChecklist = v
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
175
191
|
function initDineInSetting(): FdoRestaurantDineIn {
|
|
176
192
|
return {
|
|
177
193
|
ignoreStock: false,
|
|
@@ -151,7 +151,7 @@ async function init(): Promise<void> {
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
function updateAnonymousLoginDialog(v: boolean) {
|
|
154
|
-
if (orderSetting.value) {
|
|
154
|
+
if (orderSetting.value?.v3Settings) {
|
|
155
155
|
orderSetting.value.v3Settings.anonymousLoginDialog = v
|
|
156
156
|
}
|
|
157
157
|
}
|
|
@@ -188,7 +188,7 @@ function updateSeq(key: SequenceKey, dtoKey: string, dto?: number) {
|
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
function updateSubItemDisplayMode(v: boolean) {
|
|
191
|
-
if (orderSetting.value) {
|
|
191
|
+
if (orderSetting.value?.v3Settings) {
|
|
192
192
|
if (v) {
|
|
193
193
|
orderSetting.value.v3Settings.subItemDisplayMode = F_ORDER_SUBITEM_DISPLAY_MODE.enum.LIST
|
|
194
194
|
} else {
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref, watch, type PropType } from 'vue'
|
|
3
|
+
import { useI18n } from '@feedmepos/mf-common'
|
|
4
|
+
|
|
5
|
+
const { t } = useI18n()
|
|
6
|
+
|
|
7
|
+
const props = defineProps({
|
|
8
|
+
initialValue: {
|
|
9
|
+
type: Array as PropType<string[]>,
|
|
10
|
+
default: () => []
|
|
11
|
+
}
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
const emit = defineEmits<{
|
|
15
|
+
(event: 'update:modelValue', remarks: string[]): void
|
|
16
|
+
}>()
|
|
17
|
+
|
|
18
|
+
const remarks = ref<string[]>([...props.initialValue])
|
|
19
|
+
const newRemark = ref('')
|
|
20
|
+
|
|
21
|
+
watch(
|
|
22
|
+
() => props.initialValue,
|
|
23
|
+
(newValue) => {
|
|
24
|
+
remarks.value = [...newValue]
|
|
25
|
+
}
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
watch(
|
|
29
|
+
remarks,
|
|
30
|
+
(newValue) => {
|
|
31
|
+
const filtered = newValue.filter(remark => remark && remark.trim())
|
|
32
|
+
emit('update:modelValue', filtered)
|
|
33
|
+
},
|
|
34
|
+
{ deep: true }
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
function addRemark() {
|
|
38
|
+
if (newRemark.value.trim()) {
|
|
39
|
+
remarks.value.push(newRemark.value.trim())
|
|
40
|
+
newRemark.value = ''
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function removeRemark(index: number) {
|
|
45
|
+
remarks.value.splice(index, 1)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function updateRemark(index: number, value: string) {
|
|
49
|
+
remarks.value[index] = value
|
|
50
|
+
}
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<template>
|
|
54
|
+
<div class="flex flex-col gap-6 p-6">
|
|
55
|
+
<!-- Add New Remark Section -->
|
|
56
|
+
<div class="flex flex-col gap-3">
|
|
57
|
+
<span class="fm-typo-en-body-md-600">{{ t('order.addNewRemark') }}</span>
|
|
58
|
+
<div class="flex gap-3">
|
|
59
|
+
<FmTextField
|
|
60
|
+
v-model="newRemark"
|
|
61
|
+
:placeholder="t('order.enterRemark')"
|
|
62
|
+
@keydown.enter="addRemark"
|
|
63
|
+
class="flex-1"
|
|
64
|
+
/>
|
|
65
|
+
<FmButton
|
|
66
|
+
variant="secondary"
|
|
67
|
+
:label="t('order.add')"
|
|
68
|
+
icon="add"
|
|
69
|
+
@click="addRemark"
|
|
70
|
+
:disabled="!newRemark.trim()"
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<!-- Existing Remarks Section -->
|
|
76
|
+
<div v-if="remarks.length > 0" class="flex flex-col gap-3">
|
|
77
|
+
<span class="fm-typo-en-body-md-600">{{ t('order.existingRemarks') }}</span>
|
|
78
|
+
<div class="flex flex-col gap-3 items-start">
|
|
79
|
+
<div
|
|
80
|
+
v-for="(remark, index) in remarks"
|
|
81
|
+
:key="index"
|
|
82
|
+
class="flex items-center gap-3 bg-gray-50 p-4 rounded-lg"
|
|
83
|
+
>
|
|
84
|
+
<FmTextField
|
|
85
|
+
:model-value="remark"
|
|
86
|
+
@update:model-value="(v: string) => updateRemark(index, v)"
|
|
87
|
+
class="min-w-[400px]"
|
|
88
|
+
/>
|
|
89
|
+
<FmButton
|
|
90
|
+
color="error"
|
|
91
|
+
icon="delete"
|
|
92
|
+
@click="removeRemark(index)"
|
|
93
|
+
/>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<!-- Empty State -->
|
|
99
|
+
<div v-else class="text-gray-400 text-sm text-center py-8">
|
|
100
|
+
{{ t('order.noPresetRemarksAdded') }}
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
</template>
|