Refining the speech-to-text conversion structure
This commit is contained in:
@@ -6,6 +6,7 @@ import { api } from '@/lib/api';
|
||||
import { useAuthStore } from '@/stores/auth';
|
||||
import { canManageSettings } from '@/lib/roles';
|
||||
import UiIcon from '@/components/UiIcon.vue';
|
||||
import { UiDropdownMenu } from '@/components/ui';
|
||||
import { formatRelativeContact, toFaDigits } from '@/lib/jalali';
|
||||
import type {
|
||||
CreateLoyaltyRewardRequest,
|
||||
@@ -785,14 +786,20 @@ onBeforeUnmount(() => {
|
||||
<button class="act minus" type="button" title="کسر امتیاز" @click="openAdjust(m, -1)">
|
||||
<UiIcon name="minus" :size="14" />
|
||||
</button>
|
||||
<button class="act more" type="button" @click="menuId = menuId === m.id ? null : m.id">
|
||||
<UiIcon name="dots" :size="14" />
|
||||
</button>
|
||||
<div v-if="menuId === m.id" class="menu">
|
||||
<UiDropdownMenu
|
||||
:open="menuId === m.id"
|
||||
align="end"
|
||||
@update:open="(v) => (menuId = v ? m.id : null)"
|
||||
>
|
||||
<template #trigger="{ toggle }">
|
||||
<button class="act more" type="button" @click.stop="toggle">
|
||||
<UiIcon name="dots" :size="14" />
|
||||
</button>
|
||||
</template>
|
||||
<RouterLink :to="`/contacts/people/${m.id}`">پروفایل</RouterLink>
|
||||
<button type="button" @click="openLedger(m)">تاریخچه امتیاز</button>
|
||||
<button type="button" @click="openRedeem(undefined, m)">ثبت پاداش</button>
|
||||
</div>
|
||||
</UiDropdownMenu>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -815,9 +822,20 @@ onBeforeUnmount(() => {
|
||||
<b class="mob-pts"><span>امتیاز</span><em>{{ faNum(m.loyaltyPoints) }}</em></b>
|
||||
<div class="mob-side">
|
||||
<div class="ops">
|
||||
<button class="act more" type="button" @click.stop="menuId = menuId === m.id ? null : m.id">
|
||||
<UiIcon name="dots" :size="14" />
|
||||
</button>
|
||||
<UiDropdownMenu
|
||||
:open="menuId === m.id"
|
||||
align="end"
|
||||
@update:open="(v) => (menuId = v ? m.id : null)"
|
||||
>
|
||||
<template #trigger="{ toggle }">
|
||||
<button class="act more" type="button" @click.stop="toggle">
|
||||
<UiIcon name="dots" :size="14" />
|
||||
</button>
|
||||
</template>
|
||||
<RouterLink :to="`/contacts/people/${m.id}`">پروفایل</RouterLink>
|
||||
<button type="button" @click="openLedger(m)">تاریخچه امتیاز</button>
|
||||
<button type="button" @click="openRedeem(undefined, m)">ثبت پاداش</button>
|
||||
</UiDropdownMenu>
|
||||
<button class="act plus" type="button" @click="openAdjust(m, 1)">
|
||||
<UiIcon name="plus" :size="14" />
|
||||
</button>
|
||||
@@ -825,11 +843,6 @@ onBeforeUnmount(() => {
|
||||
<UiIcon name="minus" :size="14" />
|
||||
</button>
|
||||
</div>
|
||||
<div v-if="menuId === m.id" class="menu" @click.stop>
|
||||
<RouterLink :to="`/contacts/people/${m.id}`">پروفایل</RouterLink>
|
||||
<button type="button" @click="openLedger(m)">تاریخچه امتیاز</button>
|
||||
<button type="button" @click="openRedeem(undefined, m)">ثبت پاداش</button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -1287,17 +1300,6 @@ th { background: #f8fafc; color: #64748b; font-weight: 700; }
|
||||
.act.plus { background: #dcfce7; color: #15803d; }
|
||||
.act.minus { background: #fee2e2; color: #dc2626; }
|
||||
.act.more { background: #f1f5f9; color: #64748b; }
|
||||
.menu {
|
||||
position: absolute; inset-inline-end: 0; top: 34px; z-index: 5;
|
||||
background: #fff; border: 1px solid #e2e8f0; border-radius: var(--radius);
|
||||
box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
|
||||
display: grid; min-width: 140px; overflow: hidden;
|
||||
}
|
||||
.menu a, .menu button {
|
||||
background: none; border: 0; text-align: right; padding: 0.55rem 0.75rem;
|
||||
font: inherit; cursor: pointer; color: var(--ink); text-decoration: none;
|
||||
}
|
||||
.menu a:hover, .menu button:hover { background: #f8fafc; }
|
||||
|
||||
.mob-list { display: none; list-style: none; margin: 0; padding: 0; gap: 0.65rem; }
|
||||
.mob-list li {
|
||||
|
||||
Reference in New Issue
Block a user