Files
fabric_trade_user/src/views/checkout/CheckModeSelectView.vue
T

117 lines
2.7 KiB
Vue
Raw Normal View History

<script setup lang="ts">
import { useRouter } from 'vue-router'
import { useOrderStore } from '@/stores/order'
import PageHeader from '@/components/layout/PageHeader.vue'
import IconCheckBook from '@/components/icons/IconCheckBook.vue'
import IconEditPen from '@/components/icons/IconEditPen.vue'
const router = useRouter()
const orderStore = useOrderStore()
function selectMode(mode: 'full' | 'brief') {
orderStore.setCheckMode(mode)
router.push('/checkout/check-form')
}
</script>
<template>
<div class="page check-mode-page">
<PageHeader
title="تسویه چکی"
subtitle="نحوه ثبت اطلاعات چک‌ها را انتخاب کنید"
show-back
centered
@back="router.push('/checkout/settlement')"
/>
<div class="page__scroll check-mode-page__scroll">
<div class="mode-options">
<button type="button" class="mode-card" @click="selectMode('full')">
<span class="mode-card__icon">
<IconCheckBook :size="36" />
</span>
<h3 class="mode-card__title">ثبت کامل (پیشنهادی)</h3>
<p class="mode-card__desc">وارد کردن همه اطلاعات چک</p>
</button>
<button type="button" class="mode-card" @click="selectMode('brief')">
<span class="mode-card__icon">
<IconEditPen :size="36" />
</span>
<h3 class="mode-card__title">ثبت مختصر</h3>
<p class="mode-card__desc">وارد کردن حداقل اطلاعات</p>
</button>
</div>
</div>
</div>
</template>
<style scoped>
.check-mode-page {
background: var(--color-bg);
}
.check-mode-page__scroll {
padding-bottom: 24px;
}
.mode-options {
display: flex;
flex-direction: column;
gap: 16px;
padding-top: 8px;
}
.mode-card {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
width: 100%;
padding: 32px 24px;
border: none;
border-radius: 16px;
2026-08-06 17:12:57 +03:30
background: var(--color-elevated);
color: var(--color-text);
box-shadow: var(--shadow-sm);
cursor: pointer;
transition:
box-shadow 0.15s,
transform 0.15s;
}
.mode-card:hover {
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.1);
}
.mode-card:active {
transform: scale(0.99);
}
.mode-card__icon {
width: 64px;
height: 64px;
border-radius: 50%;
background: var(--color-primary-light);
color: var(--color-primary);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 16px;
}
.mode-card__title {
margin: 0 0 8px;
font-size: 1.0625rem;
font-weight: 700;
color: var(--color-primary);
}
.mode-card__desc {
margin: 0;
font-size: 0.875rem;
color: var(--color-text-muted);
line-height: 1.5;
}
</style>