2025-08-31 19:48:07 +03:30
|
|
|
# سیستم حسابداری - 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
|
2025-09-01 20:51:04 +03:30
|
|
|
│ │ ├── assets/ # فایلهای استاتیک
|
|
|
|
|
│ │ │ └── styles/ # فایلهای CSS
|
|
|
|
|
│ │ └── i18n/ # بینالمللیسازی
|
2025-08-31 19:48:07 +03:30
|
|
|
│ ├── public/
|
|
|
|
|
│ ├── package.json
|
|
|
|
|
│ └── webpack.config.js
|
|
|
|
|
├── public_html/ # فایلهای build شده
|
|
|
|
|
└── vendor/ # PHP dependencies
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🚀 نصب و راهاندازی
|
|
|
|
|
|
|
|
|
|
### پیشنیازها
|
|
|
|
|
- PHP 8.2+
|
|
|
|
|
- Node.js 18+
|
|
|
|
|
- Composer
|
|
|
|
|
- npm
|
|
|
|
|
|
|
|
|
|
### Backend (Symfony)
|
|
|
|
|
```bash
|
|
|
|
|
cd core
|
|
|
|
|
composer install
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Frontend (Vue.js)
|
|
|
|
|
```bash
|
|
|
|
|
cd frontend
|
|
|
|
|
npm install
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🔧 دستورات توسعه
|
|
|
|
|
|
|
|
|
|
### Development
|
|
|
|
|
```bash
|
|
|
|
|
cd frontend
|
|
|
|
|
npm run dev # Build development
|
|
|
|
|
npm run watch # Build + watch changes
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Production
|
|
|
|
|
```bash
|
|
|
|
|
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**: پشتیبانی کامل از راست به چپ
|
2025-09-01 20:51:04 +03:30
|
|
|
- **Persian Font**: فونت Vazir و Tahoma
|
2025-08-31 19:48:07 +03:30
|
|
|
- **Material Design**: کامپوننتهای زیبا
|
|
|
|
|
- **Responsive**: سازگار با همه دستگاهها
|
|
|
|
|
- **Dark/Light Theme**: تمهای مختلف
|
2025-09-01 20:51:04 +03:30
|
|
|
- **Multilingual**: پشتیبانی از فارسی و انگلیسی
|
|
|
|
|
|
|
|
|
|
## 🌍 پشتیبانی از RTL (راستچین)
|
|
|
|
|
|
|
|
|
|
### ویژگیهای RTL
|
|
|
|
|
- **تغییر خودکار جهت**: صفحه به صورت خودکار راستچین/چپچین میشود
|
|
|
|
|
- **فونتهای مناسب**: Vazir برای فارسی، Roboto برای انگلیسی
|
|
|
|
|
- **کامپوننتهای Vuetify**: تمام کامپوننتها از RTL پشتیبانی میکنند
|
|
|
|
|
- **Responsive RTL**: سازگار با تمام اندازههای صفحه
|
|
|
|
|
|
|
|
|
|
### فایلهای RTL
|
|
|
|
|
- `src/assets/styles/rtl-ltr.css` - استایلهای پایه RTL/LTR
|
|
|
|
|
- `src/assets/styles/vuetify-rtl.css` - پشتیبانی RTL برای Vuetify
|
|
|
|
|
- `src/assets/styles/components-rtl.css` - RTL برای کامپوننتهای خاص
|
|
|
|
|
- `src/components/RTLTest.vue` - کامپوننت تست RTL
|
|
|
|
|
|
|
|
|
|
### نحوه استفاده
|
|
|
|
|
```javascript
|
|
|
|
|
// تغییر زبان و جهت
|
|
|
|
|
import { changeLocale } from './i18n'
|
|
|
|
|
changeLocale('fa') // فارسی - راستچین
|
|
|
|
|
changeLocale('en') // انگلیسی - چپچین
|
|
|
|
|
```
|
2025-08-31 19:48:07 +03:30
|
|
|
|
|
|
|
|
## 📊 کامپوننتهای Vuetify
|
|
|
|
|
|
|
|
|
|
- **Data Tables**: نمایش دادهها
|
|
|
|
|
- **Cards**: کارتهای اطلاعاتی
|
|
|
|
|
- **Forms**: فرمهای ورودی
|
|
|
|
|
- **Navigation**: منوهای کاربری
|
|
|
|
|
- **Charts**: نمودارها (آینده)
|
|
|
|
|
- **Dialogs**: پنجرههای تعاملی
|
|
|
|
|
|
|
|
|
|
## 🔄 Build Process
|
|
|
|
|
|
|
|
|
|
1. **Development**: `npm run dev`
|
|
|
|
|
2. **Watch Mode**: `npm run watch`
|
|
|
|
|
3. **Production**: `npm run build`
|
|
|
|
|
|
|
|
|
|
فایلهای build شده در `public_html/build/` قرار میگیرند.
|
|
|
|
|
|
|
|
|
|
## 🚀 Deployment
|
|
|
|
|
|
|
|
|
|
### Development Server
|
|
|
|
|
```bash
|
|
|
|
|
cd frontend
|
|
|
|
|
npm run dev-server
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Production Build
|
|
|
|
|
```bash
|
|
|
|
|
cd frontend
|
|
|
|
|
npm run build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 📝 نکات مهم
|
|
|
|
|
|
|
|
|
|
- فایلهای frontend در پوشه جداگانه قرار دارند
|
|
|
|
|
- Build process کاملاً مستقل است
|
|
|
|
|
- Symfony به عنوان API backend عمل میکند
|
|
|
|
|
- Vue Router برای client-side routing استفاده میشود
|
2025-09-01 20:51:04 +03:30
|
|
|
- فونت فارسی Vazir برای RTL استفاده شده
|
|
|
|
|
- پشتیبانی کامل از RTL در تمام کامپوننتها
|
2025-08-31 19:48:07 +03:30
|
|
|
|
|
|
|
|
## 🐛 عیبیابی
|
|
|
|
|
|
|
|
|
|
### مشکلات رایج
|
|
|
|
|
1. **Node modules**: `rm -rf node_modules && npm install`
|
|
|
|
|
2. **Build errors**: بررسی webpack.config.js
|
|
|
|
|
3. **Routing issues**: بررسی .htaccess
|
2025-09-01 20:51:04 +03:30
|
|
|
4. **RTL issues**: بررسی فایلهای CSS و i18n
|
2025-08-31 19:48:07 +03:30
|
|
|
|
|
|
|
|
### Logs
|
|
|
|
|
- Symfony: `core/var/log/`
|
|
|
|
|
- Webpack: `frontend/` console
|
|
|
|
|
|
2025-09-01 20:51:04 +03:30
|
|
|
## 📚 مستندات اضافی
|
|
|
|
|
|
|
|
|
|
- `frontend/RTL_SETUP.md` - راهنمای کامل RTL
|
|
|
|
|
- `frontend/MULTILINGUAL_SETUP.md` - راهنمای چندزبانه
|
|
|
|
|
- `frontend/THEME_SETUP.md` - راهنمای تمها
|
|
|
|
|
|
2025-08-31 19:48:07 +03:30
|
|
|
## 📞 پشتیبانی
|
|
|
|
|
|
|
|
|
|
برای سوالات و مشکلات:
|
|
|
|
|
- بررسی documentation
|
|
|
|
|
- بررسی console errors
|
|
|
|
|
- بررسی network tab
|
2025-09-01 20:51:04 +03:30
|
|
|
- تست کامپوننت RTLTest
|