File tree Expand file tree Collapse file tree
packages/database/src/types Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22 <ActiveCard >
33 <div class =" flex flex-row gap-2 items-center" >
44 <UAvatar
5- v-if =" item.userId"
5+ v-if =" item.userId && item.type === 'user_post' "
66 :src =" userAvatarUrl"
77 class =" size-8"
88 />
99 <UIcon
1010 v-else
11- name =" i-lucide-clipboard-check "
11+ : name =" getIconName(item.type) "
1212 class =" size-8 text-primary"
1313 />
1414
@@ -59,4 +59,18 @@ const { item } = defineProps<{
5959const userStore = useUserStore ()
6060const isViewed = computed (() => item .views .some ((view ) => view .userId === userStore ?.id ))
6161const userAvatarUrl = computed (() => userStore .users .find ((user ) => user .id === item .userId )?.avatarUrl ?? undefined )
62+
63+ function getIconName(type : FlowItemWithData [' type' ]): string {
64+ switch (type ) {
65+ case ' user_post' :
66+ return ' i-lucide-square-user-round'
67+ case ' partner_maintenance' :
68+ return ' i-lucide-user'
69+ case ' daily_task_report' :
70+ case ' weekly_task_report' :
71+ return ' i-lucide-clipboard-check'
72+ default :
73+ return ' i-lucide-clipboard'
74+ }
75+ }
6276 </script >
Original file line number Diff line number Diff line change 1+ <template >
2+ <UForm
3+ :validate =" createValidator(createFlowItemCommentSchema)"
4+ :state =" state"
5+ class =" flex flex-col gap-3"
6+ @submit =" onSubmit"
7+ >
8+ <UFormField label =" Ваше сообщение" name =" text" >
9+ <UTextarea
10+ v-model =" state.text"
11+ placeholder =" Не торопись, осмотрись..."
12+ autoresize
13+ size =" xl"
14+ class =" w-full"
15+ />
16+ </UFormField >
17+
18+ <UButton
19+ type =" submit"
20+ variant =" solid"
21+ color =" secondary"
22+ size =" xl"
23+ icon =" i-lucide-send"
24+ block
25+ class =" mt-3"
26+ :disabled =" !state.text"
27+ :label =" $t('common.send')"
28+ />
29+ </UForm >
30+ </template >
31+
32+ <script setup lang="ts">
33+ import type { CreateFlowItemComment } from ' #shared/services/flow'
34+ import type { FormSubmitEvent } from ' @nuxt/ui'
35+ import { createFlowItemCommentSchema } from ' #shared/services/flow'
36+
37+ const { itemId } = defineProps <{ itemId: string }>()
38+
39+ const emit = defineEmits ([' success' , ' submitted' ])
40+
41+ const { vibrate } = useFeedback ()
42+ const userStore = useUserStore ()
43+ const flowStore = useFlowStore ()
44+
45+ const state = ref <Partial <CreateFlowItemComment >>({
46+ text: undefined ,
47+ })
48+
49+ async function onSubmit(event : FormSubmitEvent <CreateFlowItemComment >) {
50+ emit (' submitted' )
51+
52+ try {
53+ await $fetch (` /api/flow/id/${itemId }/comment ` , {
54+ method: ' POST' ,
55+ headers: {
56+ Authorization: ` tma ${userStore .initDataRaw } ` ,
57+ },
58+ body: event .data ,
59+ })
60+
61+ await Promise .all ([
62+ flowStore .update (),
63+ userStore .update (),
64+ ])
65+
66+ vibrate (' success' )
67+ emit (' success' )
68+ } catch (error ) {
69+ console .error (error )
70+ vibrate (' error' )
71+ }
72+ }
73+ </script >
Original file line number Diff line number Diff line change 1+ <template >
2+ <PageContainer >
3+ <SectionTitle title =" Реестр договоров" />
4+
5+ <div >Чуть позже</div >
6+ </PageContainer >
7+ </template >
Original file line number Diff line number Diff line change 3737 Посмотрели
3838 </h3 >
3939
40- <div class =" flex flex-row gap-2 " >
40+ <div class =" flex flex-row flex-wrap gap-1 " >
4141 <UAvatar
4242 v-for =" view in item?.views"
4343 :key =" view.id"
6161 </UBadge >
6262 </div >
6363
64- <UButton
65- variant =" solid"
66- color =" secondary"
67- size =" xl"
68- block
69- class =" items-center justify-center"
70- icon =" i-lucide-message-circle"
71- label =" Написать сообщение"
72- @click =" vibrate()"
73- />
64+ <UDrawer v-model:open =" isDrawerOpened" >
65+ <UButton
66+ variant =" solid"
67+ color =" secondary"
68+ size =" xl"
69+ block
70+ class =" items-center justify-center"
71+ icon =" i-lucide-message-circle"
72+ label =" Написать сообщение"
73+ @click =" vibrate()"
74+ />
75+
76+ <template #body >
77+ <FormCreateFlowItemComment
78+ :item-id =" item?.id ?? ''"
79+ @submitted =" isDrawerOpened = false"
80+ @success =" isDrawerOpened = false"
81+ />
82+ </template >
83+ </UDrawer >
7484
7585 <div v-if =" item?.comments.length" class =" w-full flex flex-col gap-3.5 flex-1 last-of-type:mb-20" >
7686 <FlowItemComment
@@ -96,6 +106,8 @@ definePageMeta({
96106const { params } = useRoute (' flow-itemId' )
97107const { vibrate } = useFeedback ()
98108
109+ const isDrawerOpened = ref (false )
110+
99111const userStore = useUserStore ()
100112const flowStore = useFlowStore ()
101113const item = computed (() => flowStore .items .find ((item ) => item .id === params .itemId ))
Original file line number Diff line number Diff line change 1+ <template >
2+ <PageContainer >
3+ <SectionTitle title =" Кухни" />
4+
5+ <div >Чуть позже</div >
6+ </PageContainer >
7+ </template >
Original file line number Diff line number Diff line change 11<template >
22 <PageContainer >
3- <SectionTitle title =" В работе" />
3+ <div class =" flex flex-col gap-2" >
4+ <UButton
5+ v-for =" item in items"
6+ :key =" item.label"
7+ size =" xl"
8+ color =" neutral"
9+ variant =" ghost"
10+ :label =" item.label"
11+ :to =" item.to"
12+ :icon =" item.icon"
13+ :ui =" {
14+ base: 'px-0 pt-0 text-2xl/6 font-bold',
15+ }"
16+ @click =" item.onClick"
17+ />
18+ </div >
419 </PageContainer >
520</template >
21+
22+ <script lang="ts" setup>
23+ const { vibrate } = useFeedback ()
24+
25+ const items = ref ([
26+ {
27+ label: ' Реестр договоров' ,
28+ to: ' /agreement' ,
29+ icon: ' i-lucide-list-checks' ,
30+ onClick : () => vibrate (),
31+ },
32+ {
33+ label: ' Партнеры' ,
34+ to: ' /partner' ,
35+ icon: ' i-lucide-users' ,
36+ onClick : () => vibrate (),
37+ },
38+ {
39+ label: ' Кухни' ,
40+ to: ' /kitchen' ,
41+ icon: ' i-lucide-store' ,
42+ onClick : () => vibrate (),
43+ },
44+ ])
45+ </script >
Original file line number Diff line number Diff line change 1+ <template >
2+ <PageContainer >
3+ <SectionTitle title =" Партнеры" />
4+
5+ <div >Чуть позже</div >
6+ </PageContainer >
7+ </template >
Original file line number Diff line number Diff line change @@ -31,7 +31,10 @@ export type TimeZone = '+00:00'
3131 | '+11:00'
3232 | '+12:00'
3333
34- export type FlowItemType = 'daily_task_report' | 'weekly_task_report' | 'user_post' | 'task_list'
34+ export type FlowItemType = 'daily_task_report'
35+ | 'weekly_task_report'
36+ | 'user_post'
37+ | 'partner_maintenance'
3538
3639export type PermissionCode = 'product:view'
3740 | 'product:edit'
You can’t perform that action at this time.
0 commit comments