5.4 KiB
5.4 KiB
سیستم حسابداری - Vue.js + Vuetify + Symfony
این پروژه یک سیستم حسابداری کامل است که از Vue.js 3، Vuetify 3 و Symfony 7 استفاده میکند.
🏗️ ساختار پروژه
/var/www/v2.hesabix.ir/
├── core/ # Symfony backend
├── frontend/ # Vue.js + Vuetify frontend
│ ├── src/
│ │ ├── components/ # کامپوننتهای Vue
│ │ ├── views/ # صفحات اصلی
│ │ ├── router/ # Vue Router
│ │ ├── store/ # Vuex store
│ │ ├── assets/ # فایلهای استاتیک
│ │ │ └── styles/ # فایلهای CSS
│ │ └── i18n/ # بینالمللیسازی
│ ├── public/
│ ├── package.json
│ └── webpack.config.js
├── public_html/ # فایلهای build شده
└── vendor/ # PHP dependencies
🚀 نصب و راهاندازی
پیشنیازها
- PHP 8.2+
- Node.js 18+
- Composer
- npm
Backend (Symfony)
cd core
composer install
Frontend (Vue.js)
cd frontend
npm install
🔧 دستورات توسعه
Development
cd frontend
npm run dev # Build development
npm run watch # Build + watch changes
Production
cd frontend
npm run build # Build production
📱 ویژگیها
کامپوننتهای اصلی
- Dashboard: نمایش خلاصه مالی
- Accounts: مدیریت حسابها
- Transactions: مدیریت تراکنشها
- Reports: گزارشات مالی
- Settings: تنظیمات سیستم
تکنولوژیها
- Vue 3: Composition API
- Vuetify 3: Material Design components
- Vue Router 4: Client-side routing
- Vuex 4: State management
- Webpack Encore: Asset compilation
🌐 روتینگ
Vue Router (Frontend)
/- Dashboard/accounts- مدیریت حسابها/transactions- مدیریت تراکنشها/reports- گزارشات/settings- تنظیمات
Symfony Routes (Backend)
/api/*- API endpoints
🎨 UI/UX Features
- RTL Support: پشتیبانی کامل از راست به چپ
- Persian Font: فونت Vazir و Tahoma
- Material Design: کامپوننتهای زیبا
- Responsive: سازگار با همه دستگاهها
- Dark/Light Theme: تمهای مختلف
- Multilingual: پشتیبانی از فارسی و انگلیسی
🌍 پشتیبانی از RTL (راستچین)
ویژگیهای RTL
- تغییر خودکار جهت: صفحه به صورت خودکار راستچین/چپچین میشود
- فونتهای مناسب: Vazir برای فارسی، Roboto برای انگلیسی
- کامپوننتهای Vuetify: تمام کامپوننتها از RTL پشتیبانی میکنند
- Responsive RTL: سازگار با تمام اندازههای صفحه
فایلهای RTL
src/assets/styles/rtl-ltr.css- استایلهای پایه RTL/LTRsrc/assets/styles/vuetify-rtl.css- پشتیبانی RTL برای Vuetifysrc/assets/styles/components-rtl.css- RTL برای کامپوننتهای خاصsrc/components/RTLTest.vue- کامپوننت تست RTL
نحوه استفاده
// تغییر زبان و جهت
import { changeLocale } from './i18n'
changeLocale('fa') // فارسی - راستچین
changeLocale('en') // انگلیسی - چپچین
📊 کامپوننتهای Vuetify
- Data Tables: نمایش دادهها
- Cards: کارتهای اطلاعاتی
- Forms: فرمهای ورودی
- Navigation: منوهای کاربری
- Charts: نمودارها (آینده)
- Dialogs: پنجرههای تعاملی
🔄 Build Process
- Development:
npm run dev - Watch Mode:
npm run watch - Production:
npm run build
فایلهای build شده در public_html/build/ قرار میگیرند.
🚀 Deployment
Development Server
cd frontend
npm run dev-server
Production Build
cd frontend
npm run build
📝 نکات مهم
- فایلهای frontend در پوشه جداگانه قرار دارند
- Build process کاملاً مستقل است
- Symfony به عنوان API backend عمل میکند
- Vue Router برای client-side routing استفاده میشود
- فونت فارسی Vazir برای RTL استفاده شده
- پشتیبانی کامل از RTL در تمام کامپوننتها
🐛 عیبیابی
مشکلات رایج
- Node modules:
rm -rf node_modules && npm install - Build errors: بررسی webpack.config.js
- Routing issues: بررسی .htaccess
- RTL issues: بررسی فایلهای CSS و i18n
Logs
- Symfony:
core/var/log/ - Webpack:
frontend/console
📚 مستندات اضافی
frontend/RTL_SETUP.md- راهنمای کامل RTLfrontend/MULTILINGUAL_SETUP.md- راهنمای چندزبانهfrontend/THEME_SETUP.md- راهنمای تمها
📞 پشتیبانی
برای سوالات و مشکلات:
- بررسی documentation
- بررسی console errors
- بررسی network tab
- تست کامپوننت RTLTest