pukaad-ui-lib 1.371.0 → 1.372.0
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/module.json +1 -1
- package/dist/runtime/components/card/card-place-detail.vue +22 -19
- package/dist/runtime/components/card/card-profile-header.d.vue.ts +1 -1
- package/dist/runtime/components/card/card-profile-header.vue.d.ts +1 -1
- package/dist/runtime/components/card/card-reaction.d.vue.ts +1 -1
- package/dist/runtime/components/card/card-reaction.vue.d.ts +1 -1
- package/dist/runtime/components/card/card-review.d.vue.ts +5 -5
- package/dist/runtime/components/card/card-review.vue.d.ts +5 -5
- package/dist/runtime/components/display/display-image-place.d.vue.ts +1 -1
- package/dist/runtime/components/display/display-image-place.vue.d.ts +1 -1
- package/dist/runtime/components/drawer/drawer-profile-network.d.vue.ts +1 -1
- package/dist/runtime/components/drawer/drawer-profile-network.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-autocomplete.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-autocomplete.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-localized-name.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-localized-name.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-tag.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-tag.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-typed-field.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-typed-field.vue.d.ts +1 -1
- package/dist/runtime/components/modal/modal-media-view.d.vue.ts +1 -1
- package/dist/runtime/components/modal/modal-media-view.vue.d.ts +1 -1
- package/dist/runtime/components/modal/suggest-edit-place/modal-suggest-edit-place.vue +154 -69
- package/package.json +1 -1
- /package/dist/runtime/assets/svg/socials/{TikTok.svg → Tiktok.svg} +0 -0
- /package/dist/runtime/assets/svg/socials/{WhatsApp.svg → Whatsapp.svg} +0 -0
- /package/dist/runtime/assets/svg/socials/{YouTube.svg → Youtube.svg} +0 -0
- /package/dist/runtime/assets/svg/socials/{Facebook.svg → facebook.svg} +0 -0
- /package/dist/runtime/assets/svg/socials/{Instagram.svg → instagram.svg} +0 -0
package/dist/module.json
CHANGED
|
@@ -48,25 +48,27 @@
|
|
|
48
48
|
<div v-if="props.item.phone">{{ props.item.phone }}</div>
|
|
49
49
|
<div v-else class="text-cloud">ไม่มีข้อมูลเบอร์โทรศัพท์</div>
|
|
50
50
|
</div>
|
|
51
|
-
<
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
51
|
+
<template v-if="!props.item.owner_profile_id">
|
|
52
|
+
<div class="flex gap-[12px]">
|
|
53
|
+
<Icon
|
|
54
|
+
name="lucide:shield-check"
|
|
55
|
+
:size="20"
|
|
56
|
+
class="text-primary shrink-0 mt-[2px]"
|
|
57
|
+
/>
|
|
58
|
+
<div class="font-body-large">หากคุณเป็นเจ้าของธุรกิจนี้</div>
|
|
59
|
+
</div>
|
|
60
|
+
<div
|
|
61
|
+
class="flex gap-[12px] hover:cursor-pointer"
|
|
62
|
+
@click="isOpenModalSuggestEdit = true"
|
|
63
|
+
>
|
|
64
|
+
<Icon
|
|
65
|
+
name="lucide:square-pen"
|
|
66
|
+
:size="20"
|
|
67
|
+
class="text-primary shrink-0 mt-[2px]"
|
|
68
|
+
/>
|
|
69
|
+
<div class="font-body-large">แนะนำให้แก้ไข</div>
|
|
70
|
+
</div>
|
|
71
|
+
</template>
|
|
70
72
|
<Divider />
|
|
71
73
|
|
|
72
74
|
<div v-if="socialLinks.length" class="flex flex-col gap-[8px]">
|
|
@@ -90,6 +92,7 @@
|
|
|
90
92
|
</div>
|
|
91
93
|
</div>
|
|
92
94
|
<ModalSuggestEditPlace
|
|
95
|
+
v-if="!props.item.owner_profile_id"
|
|
93
96
|
v-model="isOpenModalSuggestEdit"
|
|
94
97
|
:item="props.item"
|
|
95
98
|
/>
|
|
@@ -7,9 +7,9 @@ declare const __VLS_export: import("vue").DefineComponent<CardProfileAboutProps,
|
|
|
7
7
|
onChat?: (() => any) | undefined;
|
|
8
8
|
}>, {
|
|
9
9
|
type: "article" | "media" | "sale-info";
|
|
10
|
+
preview: boolean;
|
|
10
11
|
optionMenuButtonType: "solid" | "text";
|
|
11
12
|
actionsHidden: boolean;
|
|
12
|
-
preview: boolean;
|
|
13
13
|
disabledPadding: boolean;
|
|
14
14
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
15
|
declare const _default: typeof __VLS_export;
|
|
@@ -7,9 +7,9 @@ declare const __VLS_export: import("vue").DefineComponent<CardProfileAboutProps,
|
|
|
7
7
|
onChat?: (() => any) | undefined;
|
|
8
8
|
}>, {
|
|
9
9
|
type: "article" | "media" | "sale-info";
|
|
10
|
+
preview: boolean;
|
|
10
11
|
optionMenuButtonType: "solid" | "text";
|
|
11
12
|
actionsHidden: boolean;
|
|
12
|
-
preview: boolean;
|
|
13
13
|
disabledPadding: boolean;
|
|
14
14
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
15
|
declare const _default: typeof __VLS_export;
|
|
@@ -24,8 +24,8 @@ type __VLS_Props = {
|
|
|
24
24
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
25
25
|
disabled: boolean;
|
|
26
26
|
id: string;
|
|
27
|
-
disabledPadding: boolean;
|
|
28
27
|
state: string;
|
|
28
|
+
disabledPadding: boolean;
|
|
29
29
|
itemCount: Count;
|
|
30
30
|
itemActive: Reacted;
|
|
31
31
|
padding: string | number;
|
|
@@ -24,8 +24,8 @@ type __VLS_Props = {
|
|
|
24
24
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
25
25
|
disabled: boolean;
|
|
26
26
|
id: string;
|
|
27
|
-
disabledPadding: boolean;
|
|
28
27
|
state: string;
|
|
28
|
+
disabledPadding: boolean;
|
|
29
29
|
itemCount: Count;
|
|
30
30
|
itemActive: Reacted;
|
|
31
31
|
padding: string | number;
|
|
@@ -36,17 +36,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
36
36
|
"onReply-delete"?: ((item: CardReviewProps) => any) | undefined;
|
|
37
37
|
}>, {
|
|
38
38
|
item: CardReviewProps;
|
|
39
|
-
disabledMenu: boolean;
|
|
40
|
-
isProfile: boolean;
|
|
41
|
-
disabledLike: boolean;
|
|
42
|
-
allowReply: boolean;
|
|
43
|
-
replyAvatar: string;
|
|
44
39
|
place: {
|
|
45
40
|
id: string | number;
|
|
46
41
|
name?: string;
|
|
47
42
|
address?: string;
|
|
48
43
|
cover?: string;
|
|
49
44
|
};
|
|
45
|
+
disabledMenu: boolean;
|
|
46
|
+
isProfile: boolean;
|
|
47
|
+
disabledLike: boolean;
|
|
48
|
+
allowReply: boolean;
|
|
49
|
+
replyAvatar: string;
|
|
50
50
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
51
51
|
declare const _default: typeof __VLS_export;
|
|
52
52
|
export default _default;
|
|
@@ -36,17 +36,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
36
36
|
"onReply-delete"?: ((item: CardReviewProps) => any) | undefined;
|
|
37
37
|
}>, {
|
|
38
38
|
item: CardReviewProps;
|
|
39
|
-
disabledMenu: boolean;
|
|
40
|
-
isProfile: boolean;
|
|
41
|
-
disabledLike: boolean;
|
|
42
|
-
allowReply: boolean;
|
|
43
|
-
replyAvatar: string;
|
|
44
39
|
place: {
|
|
45
40
|
id: string | number;
|
|
46
41
|
name?: string;
|
|
47
42
|
address?: string;
|
|
48
43
|
cover?: string;
|
|
49
44
|
};
|
|
45
|
+
disabledMenu: boolean;
|
|
46
|
+
isProfile: boolean;
|
|
47
|
+
disabledLike: boolean;
|
|
48
|
+
allowReply: boolean;
|
|
49
|
+
replyAvatar: string;
|
|
50
50
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
51
51
|
declare const _default: typeof __VLS_export;
|
|
52
52
|
export default _default;
|
|
@@ -15,9 +15,9 @@ type __VLS_Props = {
|
|
|
15
15
|
};
|
|
16
16
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
17
17
|
title: string;
|
|
18
|
-
state: "personal" | "office" | "business";
|
|
19
18
|
photos: MediaItem[];
|
|
20
19
|
videos: MediaItem[];
|
|
20
|
+
state: "personal" | "office" | "business";
|
|
21
21
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
22
|
declare const _default: typeof __VLS_export;
|
|
23
23
|
export default _default;
|
|
@@ -15,9 +15,9 @@ type __VLS_Props = {
|
|
|
15
15
|
};
|
|
16
16
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
17
17
|
title: string;
|
|
18
|
-
state: "personal" | "office" | "business";
|
|
19
18
|
photos: MediaItem[];
|
|
20
19
|
videos: MediaItem[];
|
|
20
|
+
state: "personal" | "office" | "business";
|
|
21
21
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
22
|
declare const _default: typeof __VLS_export;
|
|
23
23
|
export default _default;
|
|
@@ -30,9 +30,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
30
30
|
"onExplore-places"?: (() => any) | undefined;
|
|
31
31
|
"onRequire-auth"?: (() => any) | undefined;
|
|
32
32
|
}>, {
|
|
33
|
-
isMyProfile: boolean;
|
|
34
33
|
profileId: string;
|
|
35
34
|
defaultTab: "followers" | "following" | "favorites";
|
|
35
|
+
isMyProfile: boolean;
|
|
36
36
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
37
37
|
declare const _default: typeof __VLS_export;
|
|
38
38
|
export default _default;
|
|
@@ -30,9 +30,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
30
30
|
"onExplore-places"?: (() => any) | undefined;
|
|
31
31
|
"onRequire-auth"?: (() => any) | undefined;
|
|
32
32
|
}>, {
|
|
33
|
-
isMyProfile: boolean;
|
|
34
33
|
profileId: string;
|
|
35
34
|
defaultTab: "followers" | "following" | "favorites";
|
|
35
|
+
isMyProfile: boolean;
|
|
36
36
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
37
37
|
declare const _default: typeof __VLS_export;
|
|
38
38
|
export default _default;
|
|
@@ -49,10 +49,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
|
49
49
|
name: string;
|
|
50
50
|
required: boolean;
|
|
51
51
|
description: string;
|
|
52
|
-
options: AutocompleteOption[] | string[] | number[];
|
|
53
52
|
labelKey: string;
|
|
54
53
|
placeholder: string;
|
|
55
54
|
limit: number;
|
|
55
|
+
options: AutocompleteOption[] | string[] | number[];
|
|
56
56
|
disabledErrorMessage: boolean;
|
|
57
57
|
disabledBorder: boolean;
|
|
58
58
|
showCounter: boolean;
|
|
@@ -49,10 +49,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
|
49
49
|
name: string;
|
|
50
50
|
required: boolean;
|
|
51
51
|
description: string;
|
|
52
|
-
options: AutocompleteOption[] | string[] | number[];
|
|
53
52
|
labelKey: string;
|
|
54
53
|
placeholder: string;
|
|
55
54
|
limit: number;
|
|
55
|
+
options: AutocompleteOption[] | string[] | number[];
|
|
56
56
|
disabledErrorMessage: boolean;
|
|
57
57
|
disabledBorder: boolean;
|
|
58
58
|
showCounter: boolean;
|
|
@@ -11,9 +11,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
11
11
|
label: string;
|
|
12
12
|
name: string;
|
|
13
13
|
modelValue: LocalizedNameItem[];
|
|
14
|
-
options: InputSelectItem[];
|
|
15
14
|
placeholder: string;
|
|
16
15
|
limit: number;
|
|
16
|
+
options: InputSelectItem[];
|
|
17
17
|
showCounter: boolean;
|
|
18
18
|
addLabel: string;
|
|
19
19
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -11,9 +11,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
11
11
|
label: string;
|
|
12
12
|
name: string;
|
|
13
13
|
modelValue: LocalizedNameItem[];
|
|
14
|
-
options: InputSelectItem[];
|
|
15
14
|
placeholder: string;
|
|
16
15
|
limit: number;
|
|
16
|
+
options: InputSelectItem[];
|
|
17
17
|
showCounter: boolean;
|
|
18
18
|
addLabel: string;
|
|
19
19
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -25,8 +25,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
25
25
|
"onUpdate:modelValue"?: ((value: SelectedTag[]) => any) | undefined;
|
|
26
26
|
}>, {
|
|
27
27
|
name: string;
|
|
28
|
-
state: "user" | "admin";
|
|
29
28
|
placeholder: string;
|
|
29
|
+
state: "user" | "admin";
|
|
30
30
|
limit: number;
|
|
31
31
|
ignore: string[];
|
|
32
32
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -25,8 +25,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
25
25
|
"onUpdate:modelValue"?: ((value: SelectedTag[]) => any) | undefined;
|
|
26
26
|
}>, {
|
|
27
27
|
name: string;
|
|
28
|
-
state: "user" | "admin";
|
|
29
28
|
placeholder: string;
|
|
29
|
+
state: "user" | "admin";
|
|
30
30
|
limit: number;
|
|
31
31
|
ignore: string[];
|
|
32
32
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -19,8 +19,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
19
19
|
}>, {
|
|
20
20
|
name: string;
|
|
21
21
|
required: boolean;
|
|
22
|
-
options: import("../../../types/components/input/input-select.js").InputSelectItem[];
|
|
23
22
|
limit: number;
|
|
23
|
+
options: import("../../../types/components/input/input-select.js").InputSelectItem[];
|
|
24
24
|
showCounter: boolean;
|
|
25
25
|
selectClass: import("vue").HTMLAttributes["class"];
|
|
26
26
|
resetOnTypeChange: boolean;
|
|
@@ -19,8 +19,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
19
19
|
}>, {
|
|
20
20
|
name: string;
|
|
21
21
|
required: boolean;
|
|
22
|
-
options: import("../../../types/components/input/input-select.js").InputSelectItem[];
|
|
23
22
|
limit: number;
|
|
23
|
+
options: import("../../../types/components/input/input-select.js").InputSelectItem[];
|
|
24
24
|
showCounter: boolean;
|
|
25
25
|
selectClass: import("vue").HTMLAttributes["class"];
|
|
26
26
|
resetOnTypeChange: boolean;
|
|
@@ -23,8 +23,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
23
23
|
}>, {
|
|
24
24
|
title: string;
|
|
25
25
|
items: CarouselItem[];
|
|
26
|
-
startIndex: number;
|
|
27
26
|
uploaderLabel: string;
|
|
27
|
+
startIndex: number;
|
|
28
28
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
29
|
declare const _default: typeof __VLS_export;
|
|
30
30
|
export default _default;
|
|
@@ -23,8 +23,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
23
23
|
}>, {
|
|
24
24
|
title: string;
|
|
25
25
|
items: CarouselItem[];
|
|
26
|
-
startIndex: number;
|
|
27
26
|
uploaderLabel: string;
|
|
27
|
+
startIndex: number;
|
|
28
28
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
29
|
declare const _default: typeof __VLS_export;
|
|
30
30
|
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<Modal class="w-[512px]" v-model="isOpen" :loading="
|
|
2
|
+
<Modal class="w-[512px]" v-model="isOpen" :loading="isSubmitting" @submit="onSubmit">
|
|
3
3
|
<template #header>
|
|
4
4
|
<div v-if="activeField === 'list'" class="font-title-medium-prominent">
|
|
5
5
|
แนะนำให้แก้ไข
|
|
@@ -396,79 +396,164 @@ const openLinkEditField = (channel) => {
|
|
|
396
396
|
const cancelEdit = () => {
|
|
397
397
|
activeField.value = "list";
|
|
398
398
|
};
|
|
399
|
-
const
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
399
|
+
const isSubmitting = ref(false);
|
|
400
|
+
const buildSuggestEditBody = () => {
|
|
401
|
+
switch (activeField.value) {
|
|
402
|
+
case "place_name":
|
|
403
|
+
return {
|
|
404
|
+
topic_key: "name",
|
|
405
|
+
edit_type: editType.value,
|
|
406
|
+
name: newName.value,
|
|
407
|
+
localized_names: localizedNames.value.filter((r) => r.editType === "new" && r.newName.trim()).map((r) => ({ language: r.language, name: r.newName }))
|
|
408
|
+
};
|
|
409
|
+
case "address":
|
|
410
|
+
return {
|
|
411
|
+
topic_key: "address",
|
|
412
|
+
edit_type: addressEditType.value,
|
|
413
|
+
address: addressValue.value,
|
|
414
|
+
latLng: addressLatLng.value ?? void 0
|
|
415
|
+
};
|
|
416
|
+
case "category":
|
|
417
|
+
return {
|
|
418
|
+
topic_key: "category",
|
|
419
|
+
edit_type: categoryEditType.value,
|
|
420
|
+
categories: categories.value
|
|
421
|
+
};
|
|
422
|
+
case "description":
|
|
423
|
+
return {
|
|
424
|
+
topic_key: "description",
|
|
425
|
+
edit_type: descriptionEditType.value,
|
|
426
|
+
description: descriptionValue.value
|
|
427
|
+
};
|
|
428
|
+
case "dateopening":
|
|
429
|
+
return {
|
|
430
|
+
topic_key: "opening_hours",
|
|
431
|
+
edit_type: dateOpeningEditType.value,
|
|
432
|
+
opening_hours: newOpeningHours.value,
|
|
433
|
+
special_days: newSpecialDays.value
|
|
434
|
+
};
|
|
435
|
+
case "phone":
|
|
436
|
+
return {
|
|
437
|
+
topic_key: "phone",
|
|
438
|
+
edit_type: "add",
|
|
439
|
+
value: phoneValue.value
|
|
440
|
+
};
|
|
441
|
+
case "phone_edit":
|
|
442
|
+
return {
|
|
443
|
+
topic_key: "phone",
|
|
444
|
+
edit_type: phoneEditType.value,
|
|
445
|
+
target_value: editingPhone.value,
|
|
446
|
+
value: editPhoneValue.value
|
|
447
|
+
};
|
|
448
|
+
case "link":
|
|
449
|
+
return {
|
|
450
|
+
topic_key: "contact_channels",
|
|
451
|
+
edit_type: "add",
|
|
452
|
+
contact_channels: newContactChannels.value
|
|
453
|
+
};
|
|
454
|
+
case "link_edit":
|
|
455
|
+
return {
|
|
456
|
+
topic_key: "contact_channels",
|
|
457
|
+
edit_type: linkEditType.value,
|
|
458
|
+
target_channel_id: editingChannel.value?.id,
|
|
459
|
+
target_value: editingChannel.value?.value,
|
|
460
|
+
value: editChannelValue.value
|
|
461
|
+
};
|
|
462
|
+
default:
|
|
463
|
+
return null;
|
|
443
464
|
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
465
|
+
};
|
|
466
|
+
const onSubmit = async () => {
|
|
467
|
+
const body = buildSuggestEditBody();
|
|
468
|
+
if (!body || isSubmitting.value) return;
|
|
469
|
+
isSubmitting.value = true;
|
|
470
|
+
try {
|
|
471
|
+
await api(`/suggest-places/${props.item.id}/suggest-edits`, {
|
|
472
|
+
method: "post",
|
|
473
|
+
body
|
|
450
474
|
});
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
475
|
+
if (activeField.value === "place_name") {
|
|
476
|
+
emit("submit-field", {
|
|
477
|
+
field: "place_name",
|
|
478
|
+
editType: editType.value,
|
|
479
|
+
value: newName.value,
|
|
480
|
+
localizedNames: localizedNames.value
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
if (activeField.value === "address") {
|
|
484
|
+
emit("submit-field", {
|
|
485
|
+
field: "address",
|
|
486
|
+
editType: addressEditType.value,
|
|
487
|
+
addressValue: addressValue.value,
|
|
488
|
+
latLng: addressLatLng.value
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
if (activeField.value === "category") {
|
|
492
|
+
emit("submit-field", {
|
|
493
|
+
field: "category",
|
|
494
|
+
editType: categoryEditType.value,
|
|
495
|
+
categories: categories.value
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
if (activeField.value === "description") {
|
|
499
|
+
emit("submit-field", {
|
|
500
|
+
field: "description",
|
|
501
|
+
editType: descriptionEditType.value,
|
|
502
|
+
value: descriptionValue.value
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
if (activeField.value === "dateopening") {
|
|
506
|
+
emit("submit-field", {
|
|
507
|
+
field: "dateopening",
|
|
508
|
+
editType: dateOpeningEditType.value,
|
|
509
|
+
openingHours: newOpeningHours.value,
|
|
510
|
+
specialDays: newSpecialDays.value
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
if (activeField.value === "phone") {
|
|
514
|
+
emit("submit-field", {
|
|
515
|
+
field: "phone",
|
|
516
|
+
value: phoneValue.value
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
if (activeField.value === "phone_edit") {
|
|
520
|
+
emit("submit-field", {
|
|
521
|
+
field: "phone_edit",
|
|
522
|
+
currentPhone: editingPhone.value,
|
|
523
|
+
editType: phoneEditType.value,
|
|
524
|
+
value: editPhoneValue.value
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
if (activeField.value === "link") {
|
|
528
|
+
emit("submit-field", {
|
|
529
|
+
field: "link",
|
|
530
|
+
channels: newContactChannels.value
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
if (activeField.value === "link_edit") {
|
|
534
|
+
emit("submit-field", {
|
|
535
|
+
field: "link_edit",
|
|
536
|
+
currentChannel: editingChannel.value,
|
|
537
|
+
editType: linkEditType.value,
|
|
538
|
+
value: editChannelValue.value
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
activeField.value = "list";
|
|
542
|
+
$alert.show({
|
|
543
|
+
type: "success",
|
|
544
|
+
title: "\u0E02\u0E2D\u0E1A\u0E04\u0E38\u0E13\u0E17\u0E35\u0E48\u0E41\u0E08\u0E49\u0E07\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E17\u0E23\u0E32\u0E1A !",
|
|
545
|
+
description: "\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E2A\u0E2D\u0E07\u0E2A\u0E32\u0E21\u0E27\u0E31\u0E19\u0E43\u0E19\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13"
|
|
456
546
|
});
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
value: editChannelValue.value
|
|
547
|
+
} catch (error) {
|
|
548
|
+
console.error(error);
|
|
549
|
+
$alert.show({
|
|
550
|
+
type: "error",
|
|
551
|
+
title: "\u0E40\u0E01\u0E34\u0E14\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14",
|
|
552
|
+
description: "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E25\u0E2D\u0E07\u0E43\u0E2B\u0E21\u0E48\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07 !"
|
|
464
553
|
});
|
|
554
|
+
} finally {
|
|
555
|
+
isSubmitting.value = false;
|
|
465
556
|
}
|
|
466
|
-
activeField.value = "list";
|
|
467
|
-
$alert.show({
|
|
468
|
-
type: "success",
|
|
469
|
-
title: "\u0E02\u0E2D\u0E1A\u0E04\u0E38\u0E13\u0E17\u0E35\u0E48\u0E41\u0E08\u0E49\u0E07\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E17\u0E23\u0E32\u0E1A !",
|
|
470
|
-
description: "\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E2A\u0E2D\u0E07\u0E2A\u0E32\u0E21\u0E27\u0E31\u0E19\u0E43\u0E19\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13"
|
|
471
|
-
});
|
|
472
557
|
};
|
|
473
558
|
const canSubmit = computed(() => {
|
|
474
559
|
switch (activeField.value) {
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|