diff --git a/hesabixCore/src/Controller/GeneralController.php b/hesabixCore/src/Controller/GeneralController.php
index 2160ff0..de167ed 100644
--- a/hesabixCore/src/Controller/GeneralController.php
+++ b/hesabixCore/src/Controller/GeneralController.php
@@ -39,12 +39,6 @@ class GeneralController extends AbstractController
]);
}
- #[Route('/api/general/statements', name: 'general_statement')]
- public function general_statement(EntityManagerInterface $entityManager): JsonResponse
- {
- return $this->json($entityManager->getRepository(Statment::class)->findBy([], ['id' => 'DESC']));
- }
-
#[Route('/api/general/get/time', name: 'general_get_time')]
public function general_get_time(Jdate $jdate, Request $request): JsonResponse
{
diff --git a/hesabixCore/src/Controller/System/StatementController.php b/hesabixCore/src/Controller/System/StatementController.php
new file mode 100644
index 0000000..a949950
--- /dev/null
+++ b/hesabixCore/src/Controller/System/StatementController.php
@@ -0,0 +1,80 @@
+json($entityManager->getRepository(Statment::class)->findBy([], ['id' => 'DESC']));
+ }
+
+ #[Route('/api/admin/statement/list', name: 'system_statement_admin_list')]
+ public function admin_statement_list(EntityManagerInterface $entityManager): JsonResponse
+ {
+ return $this->json($entityManager->getRepository(Statment::class)->findBy([], ['id' => 'DESC']));
+ }
+
+ #[Route('/api/admin/statement/mod', name: 'system_statement_admin_create', methods: ['POST'])]
+ public function admin_statement_create(EntityManagerInterface $entityManager, Request $request): JsonResponse
+ {
+ $data = json_decode($request->getContent(), true);
+ $statement = new Statment();
+
+ $statement->setTitle($data['title'] ?? '');
+ $statement->setBody($data['body'] ?? '');
+ $statement->setDateSubmit($data['dateSubmit'] ?? date('Y-m-d'));
+
+ $entityManager->persist($statement);
+ $entityManager->flush();
+
+ return $this->json(['success' => true, 'id' => $statement->getId()]);
+ }
+
+ #[Route('/api/admin/statement/mod/{id}', name: 'system_statement_admin_mod', methods: ['GET', 'PUT', 'DELETE'])]
+ public function admin_statement_mod(
+ EntityManagerInterface $entityManager,
+ Request $request,
+ ?string $id = null
+ ): JsonResponse {
+ if (!$id) {
+ return $this->json(['error' => 'ID is required'], 400);
+ }
+
+ $statement = $entityManager->getRepository(Statment::class)->find($id);
+ if (!$statement) {
+ return $this->json(['error' => 'Statement not found'], 404);
+ }
+
+ if ($request->isMethod('GET')) {
+ return $this->json($statement);
+ }
+
+ if ($request->isMethod('DELETE')) {
+ $entityManager->remove($statement);
+ $entityManager->flush();
+ return $this->json(['success' => true]);
+ }
+
+ if ($request->isMethod('PUT')) {
+ $data = json_decode($request->getContent(), true);
+ $statement->setTitle($data['title'] ?? '');
+ $statement->setBody($data['body'] ?? '');
+ $statement->setDateSubmit($data['dateSubmit'] ?? date('Y-m-d'));
+ $entityManager->flush();
+ return $this->json(['success' => true]);
+ }
+
+ return $this->json(['error' => 'Method not allowed'], 405);
+ }
+}
diff --git a/webUI/src/router/index.ts b/webUI/src/router/index.ts
index 647e2c9..03dbf8f 100644
--- a/webUI/src/router/index.ts
+++ b/webUI/src/router/index.ts
@@ -107,878 +107,894 @@ const router = createRouter({
}
},
{
- path: 'manager/business/list',
- component: () => import('../views/user/manager/business/list.vue'),
+ path: 'manager/statments/list',
+ component: () => import('../views/user/manager/statements/list.vue'),
meta: {
- 'title': 'کسبوکارها',
+ 'title': 'اطلاعیهها',
'login': true
}
},
{
- path: 'manager/users/list',
- component: () => import('../views/user/manager/users/list.vue'),
+ path: 'manager/statments/mod/:id?',
+ component: () => import('../views/user/manager/statements/mod.vue'),
meta: {
- 'title': 'کاربران',
+ 'title': 'ویرایش اطلاعیه',
'login': true
}
},
- {
- path: 'manager/plugins/list',
- component: () => import('../views/user/manager/settings/plugins.vue'),
- meta: {
- 'title': 'افزونهها',
- 'login': true
- }
- },
- {
- path: 'manager/update-core',
- component: () => import('../views/user/manager/settings/update-core.vue'),
- meta: {
- 'title': 'به روز رسانی هسته',
- 'login': true
- }
- },
- {
- path: 'manager/logs/list',
- component: () => import('../views/user/manager/log/logs.vue'),
- meta: {
- 'title': 'تاریخچه سیستم',
- 'login': true
- }
- },
- {
- path: 'manager/wallet/list',
- component: () => import('../views/user/manager/wallet/list.vue'),
- meta: {
- 'title': 'کیف پول',
- 'login': true
- }
- },
- {
- path: 'manager/changes/list',
- component: () => import('../views/user/manager/reportchange/list.vue'),
- meta: {
- 'title': 'لیست تغییرات',
- 'login': true
- }
- },
- {
- path: 'manager/changes/mod/:id',
- component: () => import('../views/user/manager/reportchange/mod.vue'),
- meta: {
- 'title': 'ارائه تغییرات سیستم',
- 'login': true
- }
- },
- {
- path: 'manager/database/info',
- component: () => import('../views/user/manager/settings/database_info.vue'),
- meta: {
- 'title': 'خروجی از بانک اطلاعاتی',
- 'login': true
- }
- },
- {
- path: 'manager/system/mod',
- component: () => import('../views/user/manager/settings/system.vue'),
- meta: {
- 'title': 'تنظیمات پایه',
- 'login': true
- }
- },
- {
- path: 'manager/registry/mod',
- component: () => import('../views/user/manager/settings/registry.vue'),
- meta: {
- 'title': 'تنظیمات رجیستری',
- 'login': true
- }
- },
- {
- path: 'manager/system/sms/settings',
- component: () => import('../views/user/manager/settings/sms/smsSettings.vue'),
- meta: {
- 'title': 'تنظیمات پیامک',
- 'login': true
- }
- },
- {
- path: 'manager/users/onlinelist',
- component: () => import('../views/user/manager/online-users.vue'),
- meta: {
- 'title': 'کاربران آنلاین',
- 'login': true
- }
- },
- ],
+ {
+ path: 'manager/business/list',
+ component: () => import('../views/user/manager/business/list.vue'),
+ meta: {
+ 'title': 'کسبوکارها',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/users/list',
+ component: () => import('../views/user/manager/users/list.vue'),
+ meta: {
+ 'title': 'کاربران',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/plugins/list',
+ component: () => import('../views/user/manager/settings/plugins.vue'),
+ meta: {
+ 'title': 'افزونهها',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/update-core',
+ component: () => import('../views/user/manager/settings/update-core.vue'),
+ meta: {
+ 'title': 'به روز رسانی هسته',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/logs/list',
+ component: () => import('../views/user/manager/log/logs.vue'),
+ meta: {
+ 'title': 'تاریخچه سیستم',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/wallet/list',
+ component: () => import('../views/user/manager/wallet/list.vue'),
+ meta: {
+ 'title': 'کیف پول',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/changes/list',
+ component: () => import('../views/user/manager/reportchange/list.vue'),
+ meta: {
+ 'title': 'لیست تغییرات',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/changes/mod/:id',
+ component: () => import('../views/user/manager/reportchange/mod.vue'),
+ meta: {
+ 'title': 'ارائه تغییرات سیستم',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/database/info',
+ component: () => import('../views/user/manager/settings/database_info.vue'),
+ meta: {
+ 'title': 'خروجی از بانک اطلاعاتی',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/system/mod',
+ component: () => import('../views/user/manager/settings/system.vue'),
+ meta: {
+ 'title': 'تنظیمات پایه',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/registry/mod',
+ component: () => import('../views/user/manager/settings/registry.vue'),
+ meta: {
+ 'title': 'تنظیمات رجیستری',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/system/sms/settings',
+ component: () => import('../views/user/manager/settings/sms/smsSettings.vue'),
+ meta: {
+ 'title': 'تنظیمات پیامک',
+ 'login': true
+ }
+ },
+ {
+ path: 'manager/users/onlinelist',
+ component: () => import('../views/user/manager/online-users.vue'),
+ meta: {
+ 'title': 'کاربران آنلاین',
+ 'login': true
+ }
+ },
+ ],
+}, {
+ path: '/acc/',
+ component: () => import('../views/acc/App.vue'),
+ children: [
+ {
+ path: 'dashboard',
+ component: () => import('../views/acc/dashboard.vue'),
+ name: 'acc_home',
+ meta: {
+ 'title': 'داشبورد کسبوکار',
+ 'login': true
+ }
+ },
+ {
+ path: 'business/printtemplates',
+ name: 'business_printtemplates',
+ component: () =>
+ import('../views/acc/printers/templates.vue')
+ },
+ {
+ path: 'printers/list',
+ name: 'printers_list',
+ component: () =>
+ import('../views/acc/printers/list.vue')
}, {
- path: '/acc/',
- component: () => import('../views/acc/App.vue'),
- children: [
- {
- path: 'dashboard',
- component: () => import('../views/acc/dashboard.vue'),
- name: 'acc_home',
- meta: {
- 'title': 'داشبورد کسبوکار',
- 'login': true
- }
- },
- {
- path: 'business/printtemplates',
- name: 'business_printtemplates',
- component: () =>
- import('../views/acc/printers/templates.vue')
- },
- {
- path: 'printers/list',
- name: 'printers_list',
- component: () =>
- import('../views/acc/printers/list.vue')
- }, {
- path: 'printers/printqueue/:id?',
- name: 'printers_queue',
- component: () =>
- import('../views/acc/printers/queue.vue')
- }, {
- path: 'reports/list',
- name: 'reports_list',
- component: () =>
- import('../views/acc/reports/reports.vue')
- },
- {
- path: 'reports/persons/debtors',
- name: 'person_debtors_list',
- component: () =>
- import('../views/acc/reports/persons/debtors.vue'),
- },
- {
- path: 'reports/acc/balance_sheet',
- name: 'acc_balanceSheet_list',
- component: () =>
- import('../views/acc/reports/balanceSheet.vue'),
- },
- {
- path: 'reports/acc/explore_accounts',
- name: 'acc_report_explore_accounts',
- component: () =>
- import('../views/acc/reports/explore_accounts.vue'),
- },
- {
- path: 'reports/commodity/buysell',
- name: 'commodity_report_buysell',
- component: () =>
- import('../views/acc/reports/commodity/buysellByCommodity.vue'),
- },
- {
- path: 'reports/persons/depositors',
- name: 'person_depositors_list',
- component: () =>
- import('../views/acc/reports/persons/depositors.vue'),
- },
- {
- path: 'reports/persons/buysell',
- name: 'person_buysell_by_person',
- component: () =>
- import('../views/acc/reports/persons/buysellByPerson.vue'),
- },
- {
- path: 'costs/list',
- name: 'costs_list',
- component: () =>
- import('../views/acc/costs/list.vue'),
- },
- {
- path: 'costs/mod/:id?',
- name: 'costs_mod',
- component: () =>
- import('../views/acc/costs/mod.vue'),
- },
- {
- path: 'incomes/list',
- name: 'incomes_list',
- component: () =>
- import('../views/acc/incomes/list.vue'),
- },
- {
- path: 'incomes/mod/:id?',
- name: 'incomes_mod',
- component: () =>
- import('../views/acc/incomes/mod.vue'),
- },
- {
- path: 'accounting/mod/:id?',
- name: 'accounting_mod',
- component: () =>
- import('../views/acc/accounting/mod.vue'),
- },
- {
- path: 'accounting/list',
- name: 'accounting_list_doc',
- component: () =>
- import('../views/acc/accounting/list.vue'),
- },
- {
- path: 'accounting/open_balance',
- name: 'accounting_open_balance',
- component: () =>
- import('../views/acc/accounting/openBalance.vue'),
- },
- {
- path: 'accounting/table',
- name: 'accounting_table',
- component: () =>
- import('../views/acc/accounting/table.vue'),
- },
- {
- path: 'accounting/close_year',
- name: 'accounting_close_year',
- component: () =>
- import('../views/acc/accounting/closeyear.vue'),
- },
- {
- path: 'accounting/view/:id?',
- name: 'accounting_view_doc',
- component: () =>
- import('../views/acc/accounting/viewDoc.vue'),
- },
- {
- path: 'banks/list',
- name: 'banks_list',
- component: () =>
- import('../views/acc/bank/list.vue')
- },
- {
- path: 'banks/card/view/:id?',
- name: 'bank_card_view',
- component: () =>
- import('../views/acc/bank/card.vue'),
- },
- {
- path: 'banks/mod/:id?',
- name: 'bank_mod',
- component: () =>
- import('../views/acc/bank/mod.vue'),
- },
- {
- path: 'salary/list',
- name: 'salary_list',
- component: () =>
- import('../views/acc/salary/list.vue')
- },
- {
- path: 'salary/card/view/:id?',
- name: 'salary_card_view',
- component: () =>
- import('../views/acc/salary/card.vue'),
- },
- {
- path: 'salary/mod/:id?',
- name: 'salary_mod',
- component: () =>
- import('../views/acc/salary/mod.vue'),
- },
- {
- path: 'wallet/view',
- name: 'wallet_view',
- component: () =>
- import('../views/acc/wallet/view.vue')
- },
- {
- path: 'cashdesk/list',
- name: 'cashdesk_list',
- component: () =>
- import('../views/acc/cashdesk/list.vue')
- },
- {
- path: 'cashdesk/card/view/:id?',
- name: 'cashdesk_card_view',
- component: () =>
- import('../views/acc/cashdesk/card.vue'),
- },
- {
- path: 'cashdesk/mod/:id?',
- name: 'cashdesk_mod',
- component: () =>
- import('../views/acc/cashdesk/mod.vue'),
- },
- {
- path: 'transfer/list',
- name: 'transfer_list',
- component: () =>
- import('../views/acc/transfer/list.vue')
- },
- {
- path: 'transfer/mod/:id?',
- name: 'transfer_mod',
- component: () =>
- import('../views/acc/transfer/mod.vue'),
- },
- {
- path: 'persons/receive/list',
- name: 'person_receive_list',
- component: () =>
- import('../views/acc/persons/receive/list.vue')
- },
- {
- path: 'persons/send/list',
- name: 'person_send_list',
- component: () =>
- import('../views/acc/persons/send/list.vue')
- },
- {
- path: 'persons/receive/mod/:id?',
- name: 'person_receive_mod',
- component: () =>
- import('../views/acc/persons/receive/mod.vue'),
- },
- {
- path: 'persons/send/mod/:id?',
- name: 'person_send_mod',
- component: () =>
- import('../views/acc/persons/send/mod.vue'),
- },
- {
- path: 'persons/card/view/:id?',
- name: 'person_card_view',
- component: () =>
- import('../views/acc/persons/card.vue'),
- },
- {
- path: 'persons/list',
- name: 'person_list',
- component: () =>
- import('../views/acc/persons/list.vue'),
- },
- {
- path: 'persons/mod/:id?',
- name: 'person_new',
- component: () =>
- import('../views/acc/persons/insert.vue'),
- },
- {
- path: 'business/settings',
- name: 'business_settings',
- component: () =>
- import('../views/acc/settings/bussiness.vue'),
- },
- {
- path: 'business/printoptions',
- name: 'print_settings',
- component: () =>
- import('../views/acc/settings/print.vue'),
- },
- {
- path: 'business/avatar',
- name: 'business_avatar',
- component: () =>
- import('../views/acc/settings/avatar.vue'),
- },
- {
- path: 'business/extramoneys',
- name: 'business_extramoneys',
- component: () =>
- import('../views/acc/settings/extramoneys.vue'),
- },
- {
- path: 'business/logs',
- name: 'business_logs',
- component: () =>
- import('../views/acc/settings/logs.vue'),
- },
- {
- path: 'business/apis',
- name: 'business_apis',
- component: () =>
- import('../views/acc/api/list.vue'),
- },
- {
- path: 'business/users',
- name: 'business_users',
- component: () =>
- import('../views/acc/settings/user_rolls.vue'),
- },
- {
- path: 'business/user/roll/edit/:email',
- name: 'business_user_roll_edit',
- component: () =>
- import('../views/acc/settings/user_perm_edit.vue'),
- },
- {
- path: 'commodity/cat/list',
- name: 'commodity_cat_list',
- component: () =>
- import('../views/acc/commodity/cat/list.vue'),
- },
- {
- path: 'commodity/pricelist/list',
- name: 'commodity_pricelist_list',
- component: () =>
- import('../views/acc/commodity/priceList/list.vue'),
- },
- {
- path: 'commodity/pricelist/mod/:id?',
- name: 'commodity_pricelist_mod',
- component: () =>
- import('../views/acc/commodity/priceList/mod.vue'),
- },
- {
- path: 'commodity/pricelist/view/:id?',
- name: 'commodity_pricelist_view',
- component: () =>
- import('../views/acc/commodity/priceList/view.vue'),
- }, {
- path: 'commodity/pricelist/list/mod/:id?',
- name: 'commodity_pricelist_list_mod',
- component: () =>
- import('../views/acc/commodity/priceList/pricelistedit.vue'),
- },
- {
- path: 'commodity/drop/list',
- name: 'commodity_drop_list',
- component: () =>
- import('../views/acc/commodity/drop/list.vue'),
- },
- {
- path: 'commodity/drop/mod/:id?',
- name: 'commodity_drop_mod',
- component: () =>
- import('../views/acc/commodity/drop/mod.vue'),
- },
- {
- path: 'commodity/list',
- name: 'commodity_list',
- component: () =>
- import('../views/acc/commodity/list.vue'),
- },
- {
- path: 'commodity/mod/:id?',
- name: 'commodity_mod',
- component: () =>
- import('../views/acc/commodity/mod.vue'),
- },
- {
- path: 'cheque/input/:id?',
- name: 'cheque_input',
- component: () =>
- import('../views/acc/cheque/input.vue'),
- },
- {
- path: 'cheque/output/:id?',
- name: 'cheque_output',
- component: () =>
- import('../views/acc/cheque/output.vue'),
- },
- {
- path: 'cheque/list',
- name: 'cheque_list',
- component: () =>
- import('../views/acc/cheque/list.vue'),
- },
- {
- path: 'cheque/transfer/:id',
- name: 'cheque_transfer',
- component: () =>
- import('../views/acc/cheque/transfer.vue'),
- },
- {
- path: 'buy/mod/:id?',
- name: 'buy_mod',
- component: () =>
- import('../views/acc/buy/mod.vue'),
- },
- {
- path: 'buy/list',
- name: 'buy_list',
- component: () =>
- import('../views/acc/buy/list.vue'),
- },
- {
- path: 'buy/view/:id?',
- name: 'buy_view',
- component: () =>
- import('../views/acc/buy/viewInvoice.vue'),
- },
- {
- path: 'sell/mod/:id?',
- name: 'sell_mod',
- component: () =>
- import('../views/acc/sell/mod.vue'),
- },
- {
- path: 'sell/fast-mod/:id?',
- name: 'sell_fast_mod',
- component: () =>
- import('../views/acc/sell/fastMod.vue'),
- },
- {
- path: 'sell/list',
- name: 'sell_list',
- component: () =>
- import('../views/acc/sell/list.vue'),
- },
- {
- path: 'sell/view/:id?',
- name: 'sell_view',
- component: () =>
- import('../views/acc/sell/viewInvoice.vue'),
- },
- {
- path: 'presell/mod/:id?',
- name: 'presell_mod',
- component: () =>
- import('../views/acc/presell/mod.vue'),
- },
- {
- path: 'presell/list',
- name: 'presell_list',
- component: () =>
- import('../views/acc/presell/list.vue'),
- },
- {
- path: 'presell/view/:id?',
- name: 'presell_view',
- component: () =>
- import('../views/acc/presell/viewInvoice.vue'),
- },
- {
- path: 'rfbuy/mod/:id?',
- name: 'rfbuy_mod',
- component: () =>
- import('../views/acc/rfbuy/mod.vue'),
- },
- {
- path: 'rfbuy/list',
- name: 'rfbuy_list',
- component: () =>
- import('../views/acc/rfbuy/list.vue'),
- },
- {
- path: 'rfbuy/view/:id?',
- name: 'rfbuy_view',
- component: () =>
- import('../views/acc/rfbuy/viewInvoice.vue'),
- },
- {
- path: 'rfsell/mod/:id?',
- name: 'rfsell_mod',
- component: () =>
- import('../views/acc/rfsell/mod.vue'),
- },
- {
- path: 'rfsell/list',
- name: 'rfsell_list',
- component: () =>
- import('../views/acc/rfsell/list.vue'),
- },
- {
- path: 'rfsell/view/:id?',
- name: 'rfsell_view',
- component: () =>
- import('../views/acc/rfsell/viewInvoice.vue'),
- },
- {
- path: 'wizard/home',
- name: 'wizard_home',
- component: () =>
- import('../views/wizard/home.vue'),
- },
- {
- path: 'plugin-center/list',
- name: 'plugin_center_list',
- component: () =>
- import('../views/acc/store/plugin-world.vue'),
- },
- {
- path: 'plugin-center/my',
- name: 'plugin_center_my',
- component: () =>
- import('../views/acc/store/plugin-my.vue'),
- },
- {
- path: 'plugin-center/invoice',
- name: 'plugin_center_invoice',
- component: () =>
- import('../views/acc/store/plugin-invoice.vue'),
- },
- {
- path: 'plugin-center/view-end/:id?',
- name: 'plugin_center_view_prodect',
- component: () =>
- import('../views/acc/store/viewProdect.vue'),
- },
- {
- path: 'plugins/apartemanma/intro',
- name: 'plugin_apartemanma_intro',
- component: () =>
- import('../views/acc/plugins/amartemanma/intro.vue'),
- },
- {
- path: 'plugins/accpro/intro',
- name: 'plugin_accpro_intro',
- component: () =>
- import('../views/acc/plugins/accpro/intro.vue'),
- },
- {
- path: 'plugins/repservice/intro',
- name: 'plugin_repservice_intro',
- component: () =>
- import('../views/acc/plugins/repservice/intro.vue'),
- }, {
- path: 'plugin/repservice/order/mod/:id?',
- name: 'plugin_repservice_order_mod',
- component: () =>
- import('../views/acc/plugins/repservice/mod.vue'),
- },
- {
- path: 'plugin/repservice/order/view/:id?',
- name: 'plugin_repservice_order_view',
- component: () =>
- import('../views/acc/plugins/repservice/view.vue'),
- },
- {
- path: 'plugin/repservice/order/list',
- name: 'plugin_repservice_order_list',
- component: () =>
- import('../views/acc/plugins/repservice/list.vue'),
- },
- {
- path: 'plugins/restamap/intro',
- name: 'plugin_restamap_intro',
- component: () =>
- import('../views/acc/plugins/resamap/intro.vue'),
- },
- {
- path: 'plugins/noghre/intro',
- name: 'plugin_noghre_intro',
- component: () =>
- import('../views/acc/plugins/noghre/intro.vue'),
- },
- {
- path: 'plugins/cc/intro',
- name: 'plugin_cc_intro',
- component: () =>
- import('../views/acc/plugins/cc/intro.vue'),
- },
- {
- path: 'plugins/onlinestore/intro',
- name: 'plugin_onlinestore_intro',
- component: () =>
- import('../views/acc/plugins/onlinestore/intro.vue'),
- },
- {
- path: 'notifications/list',
- name: 'notification_list',
- component: () =>
- import('../views/acc/notifications/notifications.vue'),
- },
- {
- path: 'sms/panel',
- name: 'sms_panel_dashboard',
- component: () =>
- import('../views/acc/smspanel/smspanel.vue'),
- },
- {
- path: 'plugin/noghre/employees/list',
- name: 'plugin_noghre_employees_list',
- component: () =>
- import('../views/acc/plugins/noghre/employess/list.vue'),
- },
- {
- path: 'plugin/noghre/employees/mod/:id?',
- name: 'plugin_noghre_employees_mod',
- component: () =>
- import('../views/acc/plugins/noghre/employess/mod.vue'),
- },
- {
- path: 'plugin/noghre/order/list',
- name: 'plugin_noghre_order_list',
- component: () =>
- import('../views/acc/plugins/noghre/order/list.vue'),
- },
- {
- path: 'plugin/noghre/order/mod/:id?',
- name: 'plugin_noghre_order_mod',
- component: () =>
- import('../views/acc/plugins/noghre/order/mod.vue'),
- },
- {
- path: 'plugin/noghre/order/view/:id?',
- name: 'plugin_noghre_order_view',
- component: () =>
- import('../views/acc/plugins/noghre/order/view.vue'),
- },
- {
- path: 'plugin/noghre/pays/view/:id?',
- name: 'plugin_noghre_pays_view',
- component: () =>
- import('../views/acc/plugins/noghre/pays.vue'),
- },
- {
- path: 'storeroom/commodity/check/exist',
- name: 'storeroom_commodity_check_exist',
- component: () =>
- import('../views/acc/storeroom/commodityCheck/checkByStoreroom.vue'),
- },
- {
- path: 'storeroom/new/ticket/type',
- name: 'storeroom_new_ticket_type',
- component: () =>
- import('../views/acc/storeroom/io/modalNew.vue'),
- },
- {
- path: 'storeroom/tickets/list',
- name: 'storeroom_tickets_list',
- component: () =>
- import('../views/acc/storeroom/io/ticketList.vue'),
- },
- {
- path: 'storeroom/ticket/view/:id',
- name: 'storeroom_ticket_view',
- component: () =>
- import('../views/acc/storeroom/io/view.vue'),
- },
- {
- path: 'storeroom/new/ticket/buy/:doc/:storeID',
- name: 'storeroom_new_ticket_buy',
- component: () =>
- import('../views/acc/storeroom/io/buy.vue'),
- },
- {
- path: 'storeroom/new/ticket/sell/:doc/:storeID',
- name: 'storeroom_new_ticket_sell',
- component: () =>
- import('../views/acc/storeroom/io/sell.vue'),
- },
- {
- path: 'storeroom/new/ticket/rfbuy/:doc/:storeID',
- name: 'storeroom_new_ticket_rfbuy',
- component: () =>
- import('../views/acc/storeroom/io/rfbuy.vue'),
- },
- {
- path: 'storeroom/new/ticket/rfsell/:doc/:storeID',
- name: 'storeroom_new_ticket_rfsell',
- component: () =>
- import('../views/acc/storeroom/io/rfsell.vue'),
- },
- {
- path: 'storeroom/list',
- name: 'storeroom_list',
- component: () =>
- import('../views/acc/storeroom/list.vue'),
- },
- {
- path: 'storeroom/mod/:id?',
- name: 'storeroom_mod',
- component: () =>
- import('../views/acc/storeroom/mod.vue'),
- },
- {
- path: 'archive/list',
- name: 'archive_list',
- component: () =>
- import('../views/acc/archive/view_files.vue'),
- },
- {
- path: 'archive/order/new',
- name: 'order_new',
- component: () =>
- import('../views/acc/archive/order_new.vue'),
- },
- {
- path: 'archive/order/list',
- name: 'order_list',
- component: () =>
- import('../views/acc/archive/orders_list.vue'),
- },
- {
- path: 'package/order/new',
- name: 'package_new',
- component: () =>
- import('../views/acc/ultimatepackage/new.vue'),
- },
- {
- path: 'package/order/list',
- name: 'package_list',
- component: () =>
- import('../views/acc/ultimatepackage/list.vue'),
- },
- {
- path: 'shareholders/list',
- name: 'shareholders_list',
- component: () =>
- import('../views/acc/shareholder/list.vue'),
- },
- ],
+ path: 'printers/printqueue/:id?',
+ name: 'printers_queue',
+ component: () =>
+ import('../views/acc/printers/queue.vue')
+ }, {
+ path: 'reports/list',
+ name: 'reports_list',
+ component: () =>
+ import('../views/acc/reports/reports.vue')
},
{
- path: '/user/',
- component: () => import('../views/user/single.vue'),
- children: [
- {
- path: 'login',
- name: 'user_login',
- component: () => import('../views/user/login.vue'),
- meta: {
- 'title': 'ورود کاربر',
- }
- },
- {
- path: 'forget-password',
- name: 'user_forget_password',
- component: () => import('../views/user/profile/forget-password.vue'),
- meta: {
- 'title': 'بازیابی گذرواژه',
- }
- },
- {
- path: 'forget-password-submit-code/:id',
- name: 'user_forget_password_submit_code',
- component: () => import('../views/user/profile/forget-password-submit-code.vue'),
- meta: {
- 'title': 'تایید کد بازیابی گذرواژه',
- }
- },
- {
- path: 'register',
- name: 'user_register',
- component: () => import('../views/user/register.vue'),
- meta: {
- 'title': 'عضویت',
- }
- },
- {
- path: 'active-account/:id',
- name: 'user_active_account',
- component: () => import('../views/user/active-account.vue'),
- meta: {
- 'title': 'فعال سازی حساب کاربری',
- }
- },
- ],
+ path: 'reports/persons/debtors',
+ name: 'person_debtors_list',
+ component: () =>
+ import('../views/acc/reports/persons/debtors.vue'),
},
{
- path: '/ms/:param',
- name: 'ReferralRedirect',
- component: () => import('../views/user/ReferralRedirect.vue'),
+ path: 'reports/acc/balance_sheet',
+ name: 'acc_balanceSheet_list',
+ component: () =>
+ import('../views/acc/reports/balanceSheet.vue'),
},
{
- path: '/install-pwa',
- name: 'install_pwa',
- component: () => import('../views/user/InstallPWA.vue'),
- meta: {
- 'title': 'نصب وب اپلیکیشن ',
- }
+ path: 'reports/acc/explore_accounts',
+ name: 'acc_report_explore_accounts',
+ component: () =>
+ import('../views/acc/reports/explore_accounts.vue'),
},
{
- path: "/:catchAll(.*)",
- name: "not-found",
- component: () => import("../views/NotFound.vue"),
- meta: {
- 'title': 'صفحه یافت نشد',
- }
+ path: 'reports/commodity/buysell',
+ name: 'commodity_report_buysell',
+ component: () =>
+ import('../views/acc/reports/commodity/buysellByCommodity.vue'),
+ },
+ {
+ path: 'reports/persons/depositors',
+ name: 'person_depositors_list',
+ component: () =>
+ import('../views/acc/reports/persons/depositors.vue'),
+ },
+ {
+ path: 'reports/persons/buysell',
+ name: 'person_buysell_by_person',
+ component: () =>
+ import('../views/acc/reports/persons/buysellByPerson.vue'),
+ },
+ {
+ path: 'costs/list',
+ name: 'costs_list',
+ component: () =>
+ import('../views/acc/costs/list.vue'),
+ },
+ {
+ path: 'costs/mod/:id?',
+ name: 'costs_mod',
+ component: () =>
+ import('../views/acc/costs/mod.vue'),
+ },
+ {
+ path: 'incomes/list',
+ name: 'incomes_list',
+ component: () =>
+ import('../views/acc/incomes/list.vue'),
+ },
+ {
+ path: 'incomes/mod/:id?',
+ name: 'incomes_mod',
+ component: () =>
+ import('../views/acc/incomes/mod.vue'),
+ },
+ {
+ path: 'accounting/mod/:id?',
+ name: 'accounting_mod',
+ component: () =>
+ import('../views/acc/accounting/mod.vue'),
+ },
+ {
+ path: 'accounting/list',
+ name: 'accounting_list_doc',
+ component: () =>
+ import('../views/acc/accounting/list.vue'),
+ },
+ {
+ path: 'accounting/open_balance',
+ name: 'accounting_open_balance',
+ component: () =>
+ import('../views/acc/accounting/openBalance.vue'),
+ },
+ {
+ path: 'accounting/table',
+ name: 'accounting_table',
+ component: () =>
+ import('../views/acc/accounting/table.vue'),
+ },
+ {
+ path: 'accounting/close_year',
+ name: 'accounting_close_year',
+ component: () =>
+ import('../views/acc/accounting/closeyear.vue'),
+ },
+ {
+ path: 'accounting/view/:id?',
+ name: 'accounting_view_doc',
+ component: () =>
+ import('../views/acc/accounting/viewDoc.vue'),
+ },
+ {
+ path: 'banks/list',
+ name: 'banks_list',
+ component: () =>
+ import('../views/acc/bank/list.vue')
+ },
+ {
+ path: 'banks/card/view/:id?',
+ name: 'bank_card_view',
+ component: () =>
+ import('../views/acc/bank/card.vue'),
+ },
+ {
+ path: 'banks/mod/:id?',
+ name: 'bank_mod',
+ component: () =>
+ import('../views/acc/bank/mod.vue'),
+ },
+ {
+ path: 'salary/list',
+ name: 'salary_list',
+ component: () =>
+ import('../views/acc/salary/list.vue')
+ },
+ {
+ path: 'salary/card/view/:id?',
+ name: 'salary_card_view',
+ component: () =>
+ import('../views/acc/salary/card.vue'),
+ },
+ {
+ path: 'salary/mod/:id?',
+ name: 'salary_mod',
+ component: () =>
+ import('../views/acc/salary/mod.vue'),
+ },
+ {
+ path: 'wallet/view',
+ name: 'wallet_view',
+ component: () =>
+ import('../views/acc/wallet/view.vue')
+ },
+ {
+ path: 'cashdesk/list',
+ name: 'cashdesk_list',
+ component: () =>
+ import('../views/acc/cashdesk/list.vue')
+ },
+ {
+ path: 'cashdesk/card/view/:id?',
+ name: 'cashdesk_card_view',
+ component: () =>
+ import('../views/acc/cashdesk/card.vue'),
+ },
+ {
+ path: 'cashdesk/mod/:id?',
+ name: 'cashdesk_mod',
+ component: () =>
+ import('../views/acc/cashdesk/mod.vue'),
+ },
+ {
+ path: 'transfer/list',
+ name: 'transfer_list',
+ component: () =>
+ import('../views/acc/transfer/list.vue')
+ },
+ {
+ path: 'transfer/mod/:id?',
+ name: 'transfer_mod',
+ component: () =>
+ import('../views/acc/transfer/mod.vue'),
+ },
+ {
+ path: 'persons/receive/list',
+ name: 'person_receive_list',
+ component: () =>
+ import('../views/acc/persons/receive/list.vue')
+ },
+ {
+ path: 'persons/send/list',
+ name: 'person_send_list',
+ component: () =>
+ import('../views/acc/persons/send/list.vue')
+ },
+ {
+ path: 'persons/receive/mod/:id?',
+ name: 'person_receive_mod',
+ component: () =>
+ import('../views/acc/persons/receive/mod.vue'),
+ },
+ {
+ path: 'persons/send/mod/:id?',
+ name: 'person_send_mod',
+ component: () =>
+ import('../views/acc/persons/send/mod.vue'),
+ },
+ {
+ path: 'persons/card/view/:id?',
+ name: 'person_card_view',
+ component: () =>
+ import('../views/acc/persons/card.vue'),
+ },
+ {
+ path: 'persons/list',
+ name: 'person_list',
+ component: () =>
+ import('../views/acc/persons/list.vue'),
+ },
+ {
+ path: 'persons/mod/:id?',
+ name: 'person_new',
+ component: () =>
+ import('../views/acc/persons/insert.vue'),
+ },
+ {
+ path: 'business/settings',
+ name: 'business_settings',
+ component: () =>
+ import('../views/acc/settings/bussiness.vue'),
+ },
+ {
+ path: 'business/printoptions',
+ name: 'print_settings',
+ component: () =>
+ import('../views/acc/settings/print.vue'),
+ },
+ {
+ path: 'business/avatar',
+ name: 'business_avatar',
+ component: () =>
+ import('../views/acc/settings/avatar.vue'),
+ },
+ {
+ path: 'business/extramoneys',
+ name: 'business_extramoneys',
+ component: () =>
+ import('../views/acc/settings/extramoneys.vue'),
+ },
+ {
+ path: 'business/logs',
+ name: 'business_logs',
+ component: () =>
+ import('../views/acc/settings/logs.vue'),
+ },
+ {
+ path: 'business/apis',
+ name: 'business_apis',
+ component: () =>
+ import('../views/acc/api/list.vue'),
+ },
+ {
+ path: 'business/users',
+ name: 'business_users',
+ component: () =>
+ import('../views/acc/settings/user_rolls.vue'),
+ },
+ {
+ path: 'business/user/roll/edit/:email',
+ name: 'business_user_roll_edit',
+ component: () =>
+ import('../views/acc/settings/user_perm_edit.vue'),
+ },
+ {
+ path: 'commodity/cat/list',
+ name: 'commodity_cat_list',
+ component: () =>
+ import('../views/acc/commodity/cat/list.vue'),
+ },
+ {
+ path: 'commodity/pricelist/list',
+ name: 'commodity_pricelist_list',
+ component: () =>
+ import('../views/acc/commodity/priceList/list.vue'),
+ },
+ {
+ path: 'commodity/pricelist/mod/:id?',
+ name: 'commodity_pricelist_mod',
+ component: () =>
+ import('../views/acc/commodity/priceList/mod.vue'),
+ },
+ {
+ path: 'commodity/pricelist/view/:id?',
+ name: 'commodity_pricelist_view',
+ component: () =>
+ import('../views/acc/commodity/priceList/view.vue'),
+ }, {
+ path: 'commodity/pricelist/list/mod/:id?',
+ name: 'commodity_pricelist_list_mod',
+ component: () =>
+ import('../views/acc/commodity/priceList/pricelistedit.vue'),
+ },
+ {
+ path: 'commodity/drop/list',
+ name: 'commodity_drop_list',
+ component: () =>
+ import('../views/acc/commodity/drop/list.vue'),
+ },
+ {
+ path: 'commodity/drop/mod/:id?',
+ name: 'commodity_drop_mod',
+ component: () =>
+ import('../views/acc/commodity/drop/mod.vue'),
+ },
+ {
+ path: 'commodity/list',
+ name: 'commodity_list',
+ component: () =>
+ import('../views/acc/commodity/list.vue'),
+ },
+ {
+ path: 'commodity/mod/:id?',
+ name: 'commodity_mod',
+ component: () =>
+ import('../views/acc/commodity/mod.vue'),
+ },
+ {
+ path: 'cheque/input/:id?',
+ name: 'cheque_input',
+ component: () =>
+ import('../views/acc/cheque/input.vue'),
+ },
+ {
+ path: 'cheque/output/:id?',
+ name: 'cheque_output',
+ component: () =>
+ import('../views/acc/cheque/output.vue'),
+ },
+ {
+ path: 'cheque/list',
+ name: 'cheque_list',
+ component: () =>
+ import('../views/acc/cheque/list.vue'),
+ },
+ {
+ path: 'cheque/transfer/:id',
+ name: 'cheque_transfer',
+ component: () =>
+ import('../views/acc/cheque/transfer.vue'),
+ },
+ {
+ path: 'buy/mod/:id?',
+ name: 'buy_mod',
+ component: () =>
+ import('../views/acc/buy/mod.vue'),
+ },
+ {
+ path: 'buy/list',
+ name: 'buy_list',
+ component: () =>
+ import('../views/acc/buy/list.vue'),
+ },
+ {
+ path: 'buy/view/:id?',
+ name: 'buy_view',
+ component: () =>
+ import('../views/acc/buy/viewInvoice.vue'),
+ },
+ {
+ path: 'sell/mod/:id?',
+ name: 'sell_mod',
+ component: () =>
+ import('../views/acc/sell/mod.vue'),
+ },
+ {
+ path: 'sell/fast-mod/:id?',
+ name: 'sell_fast_mod',
+ component: () =>
+ import('../views/acc/sell/fastMod.vue'),
+ },
+ {
+ path: 'sell/list',
+ name: 'sell_list',
+ component: () =>
+ import('../views/acc/sell/list.vue'),
+ },
+ {
+ path: 'sell/view/:id?',
+ name: 'sell_view',
+ component: () =>
+ import('../views/acc/sell/viewInvoice.vue'),
+ },
+ {
+ path: 'presell/mod/:id?',
+ name: 'presell_mod',
+ component: () =>
+ import('../views/acc/presell/mod.vue'),
+ },
+ {
+ path: 'presell/list',
+ name: 'presell_list',
+ component: () =>
+ import('../views/acc/presell/list.vue'),
+ },
+ {
+ path: 'presell/view/:id?',
+ name: 'presell_view',
+ component: () =>
+ import('../views/acc/presell/viewInvoice.vue'),
+ },
+ {
+ path: 'rfbuy/mod/:id?',
+ name: 'rfbuy_mod',
+ component: () =>
+ import('../views/acc/rfbuy/mod.vue'),
+ },
+ {
+ path: 'rfbuy/list',
+ name: 'rfbuy_list',
+ component: () =>
+ import('../views/acc/rfbuy/list.vue'),
+ },
+ {
+ path: 'rfbuy/view/:id?',
+ name: 'rfbuy_view',
+ component: () =>
+ import('../views/acc/rfbuy/viewInvoice.vue'),
+ },
+ {
+ path: 'rfsell/mod/:id?',
+ name: 'rfsell_mod',
+ component: () =>
+ import('../views/acc/rfsell/mod.vue'),
+ },
+ {
+ path: 'rfsell/list',
+ name: 'rfsell_list',
+ component: () =>
+ import('../views/acc/rfsell/list.vue'),
+ },
+ {
+ path: 'rfsell/view/:id?',
+ name: 'rfsell_view',
+ component: () =>
+ import('../views/acc/rfsell/viewInvoice.vue'),
+ },
+ {
+ path: 'wizard/home',
+ name: 'wizard_home',
+ component: () =>
+ import('../views/wizard/home.vue'),
+ },
+ {
+ path: 'plugin-center/list',
+ name: 'plugin_center_list',
+ component: () =>
+ import('../views/acc/store/plugin-world.vue'),
+ },
+ {
+ path: 'plugin-center/my',
+ name: 'plugin_center_my',
+ component: () =>
+ import('../views/acc/store/plugin-my.vue'),
+ },
+ {
+ path: 'plugin-center/invoice',
+ name: 'plugin_center_invoice',
+ component: () =>
+ import('../views/acc/store/plugin-invoice.vue'),
+ },
+ {
+ path: 'plugin-center/view-end/:id?',
+ name: 'plugin_center_view_prodect',
+ component: () =>
+ import('../views/acc/store/viewProdect.vue'),
+ },
+ {
+ path: 'plugins/apartemanma/intro',
+ name: 'plugin_apartemanma_intro',
+ component: () =>
+ import('../views/acc/plugins/amartemanma/intro.vue'),
+ },
+ {
+ path: 'plugins/accpro/intro',
+ name: 'plugin_accpro_intro',
+ component: () =>
+ import('../views/acc/plugins/accpro/intro.vue'),
+ },
+ {
+ path: 'plugins/repservice/intro',
+ name: 'plugin_repservice_intro',
+ component: () =>
+ import('../views/acc/plugins/repservice/intro.vue'),
+ }, {
+ path: 'plugin/repservice/order/mod/:id?',
+ name: 'plugin_repservice_order_mod',
+ component: () =>
+ import('../views/acc/plugins/repservice/mod.vue'),
+ },
+ {
+ path: 'plugin/repservice/order/view/:id?',
+ name: 'plugin_repservice_order_view',
+ component: () =>
+ import('../views/acc/plugins/repservice/view.vue'),
+ },
+ {
+ path: 'plugin/repservice/order/list',
+ name: 'plugin_repservice_order_list',
+ component: () =>
+ import('../views/acc/plugins/repservice/list.vue'),
+ },
+ {
+ path: 'plugins/restamap/intro',
+ name: 'plugin_restamap_intro',
+ component: () =>
+ import('../views/acc/plugins/resamap/intro.vue'),
+ },
+ {
+ path: 'plugins/noghre/intro',
+ name: 'plugin_noghre_intro',
+ component: () =>
+ import('../views/acc/plugins/noghre/intro.vue'),
+ },
+ {
+ path: 'plugins/cc/intro',
+ name: 'plugin_cc_intro',
+ component: () =>
+ import('../views/acc/plugins/cc/intro.vue'),
+ },
+ {
+ path: 'plugins/onlinestore/intro',
+ name: 'plugin_onlinestore_intro',
+ component: () =>
+ import('../views/acc/plugins/onlinestore/intro.vue'),
+ },
+ {
+ path: 'notifications/list',
+ name: 'notification_list',
+ component: () =>
+ import('../views/acc/notifications/notifications.vue'),
+ },
+ {
+ path: 'sms/panel',
+ name: 'sms_panel_dashboard',
+ component: () =>
+ import('../views/acc/smspanel/smspanel.vue'),
+ },
+ {
+ path: 'plugin/noghre/employees/list',
+ name: 'plugin_noghre_employees_list',
+ component: () =>
+ import('../views/acc/plugins/noghre/employess/list.vue'),
+ },
+ {
+ path: 'plugin/noghre/employees/mod/:id?',
+ name: 'plugin_noghre_employees_mod',
+ component: () =>
+ import('../views/acc/plugins/noghre/employess/mod.vue'),
+ },
+ {
+ path: 'plugin/noghre/order/list',
+ name: 'plugin_noghre_order_list',
+ component: () =>
+ import('../views/acc/plugins/noghre/order/list.vue'),
+ },
+ {
+ path: 'plugin/noghre/order/mod/:id?',
+ name: 'plugin_noghre_order_mod',
+ component: () =>
+ import('../views/acc/plugins/noghre/order/mod.vue'),
+ },
+ {
+ path: 'plugin/noghre/order/view/:id?',
+ name: 'plugin_noghre_order_view',
+ component: () =>
+ import('../views/acc/plugins/noghre/order/view.vue'),
+ },
+ {
+ path: 'plugin/noghre/pays/view/:id?',
+ name: 'plugin_noghre_pays_view',
+ component: () =>
+ import('../views/acc/plugins/noghre/pays.vue'),
+ },
+ {
+ path: 'storeroom/commodity/check/exist',
+ name: 'storeroom_commodity_check_exist',
+ component: () =>
+ import('../views/acc/storeroom/commodityCheck/checkByStoreroom.vue'),
+ },
+ {
+ path: 'storeroom/new/ticket/type',
+ name: 'storeroom_new_ticket_type',
+ component: () =>
+ import('../views/acc/storeroom/io/modalNew.vue'),
+ },
+ {
+ path: 'storeroom/tickets/list',
+ name: 'storeroom_tickets_list',
+ component: () =>
+ import('../views/acc/storeroom/io/ticketList.vue'),
+ },
+ {
+ path: 'storeroom/ticket/view/:id',
+ name: 'storeroom_ticket_view',
+ component: () =>
+ import('../views/acc/storeroom/io/view.vue'),
+ },
+ {
+ path: 'storeroom/new/ticket/buy/:doc/:storeID',
+ name: 'storeroom_new_ticket_buy',
+ component: () =>
+ import('../views/acc/storeroom/io/buy.vue'),
+ },
+ {
+ path: 'storeroom/new/ticket/sell/:doc/:storeID',
+ name: 'storeroom_new_ticket_sell',
+ component: () =>
+ import('../views/acc/storeroom/io/sell.vue'),
+ },
+ {
+ path: 'storeroom/new/ticket/rfbuy/:doc/:storeID',
+ name: 'storeroom_new_ticket_rfbuy',
+ component: () =>
+ import('../views/acc/storeroom/io/rfbuy.vue'),
+ },
+ {
+ path: 'storeroom/new/ticket/rfsell/:doc/:storeID',
+ name: 'storeroom_new_ticket_rfsell',
+ component: () =>
+ import('../views/acc/storeroom/io/rfsell.vue'),
+ },
+ {
+ path: 'storeroom/list',
+ name: 'storeroom_list',
+ component: () =>
+ import('../views/acc/storeroom/list.vue'),
+ },
+ {
+ path: 'storeroom/mod/:id?',
+ name: 'storeroom_mod',
+ component: () =>
+ import('../views/acc/storeroom/mod.vue'),
+ },
+ {
+ path: 'archive/list',
+ name: 'archive_list',
+ component: () =>
+ import('../views/acc/archive/view_files.vue'),
+ },
+ {
+ path: 'archive/order/new',
+ name: 'order_new',
+ component: () =>
+ import('../views/acc/archive/order_new.vue'),
+ },
+ {
+ path: 'archive/order/list',
+ name: 'order_list',
+ component: () =>
+ import('../views/acc/archive/orders_list.vue'),
+ },
+ {
+ path: 'package/order/new',
+ name: 'package_new',
+ component: () =>
+ import('../views/acc/ultimatepackage/new.vue'),
+ },
+ {
+ path: 'package/order/list',
+ name: 'package_list',
+ component: () =>
+ import('../views/acc/ultimatepackage/list.vue'),
+ },
+ {
+ path: 'shareholders/list',
+ name: 'shareholders_list',
+ component: () =>
+ import('../views/acc/shareholder/list.vue'),
+ },
+ ],
+},
+ {
+ path: '/user/',
+ component: () => import('../views/user/single.vue'),
+ children: [
+ {
+ path: 'login',
+ name: 'user_login',
+ component: () => import('../views/user/login.vue'),
+ meta: {
+ 'title': 'ورود کاربر',
+ }
+ },
+ {
+ path: 'forget-password',
+ name: 'user_forget_password',
+ component: () => import('../views/user/profile/forget-password.vue'),
+ meta: {
+ 'title': 'بازیابی گذرواژه',
+ }
+ },
+ {
+ path: 'forget-password-submit-code/:id',
+ name: 'user_forget_password_submit_code',
+ component: () => import('../views/user/profile/forget-password-submit-code.vue'),
+ meta: {
+ 'title': 'تایید کد بازیابی گذرواژه',
+ }
+ },
+ {
+ path: 'register',
+ name: 'user_register',
+ component: () => import('../views/user/register.vue'),
+ meta: {
+ 'title': 'عضویت',
+ }
+ },
+ {
+ path: 'active-account/:id',
+ name: 'user_active_account',
+ component: () => import('../views/user/active-account.vue'),
+ meta: {
+ 'title': 'فعال سازی حساب کاربری',
+ }
+ },
+ ],
+ },
+ {
+ path: '/ms/:param',
+ name: 'ReferralRedirect',
+ component: () => import('../views/user/ReferralRedirect.vue'),
+ },
+ {
+ path: '/install-pwa',
+ name: 'install_pwa',
+ component: () => import('../views/user/InstallPWA.vue'),
+ meta: {
+ 'title': 'نصب وب اپلیکیشن ',
}
+ },
+ {
+ path: "/:catchAll(.*)",
+ name: "not-found",
+ component: () => import("../views/NotFound.vue"),
+ meta: {
+ 'title': 'صفحه یافت نشد',
+ }
+ }
]
})
diff --git a/webUI/src/views/user/manager/statements/list.vue b/webUI/src/views/user/manager/statements/list.vue
new file mode 100644
index 0000000..dfba47a
--- /dev/null
+++ b/webUI/src/views/user/manager/statements/list.vue
@@ -0,0 +1,116 @@
+
+
+ لیست اطلاعیهها
+
+
+ افزودن اطلاعیه جدید
+
+
+
+
+
+
+
+
+ mdi-pencil
+ ویرایش
+
+
+ mdi-delete
+ حذف
+
+
+
+
+
+
+
+
+
+
+
diff --git a/webUI/src/views/user/manager/statements/mod.vue b/webUI/src/views/user/manager/statements/mod.vue
new file mode 100644
index 0000000..5751420
--- /dev/null
+++ b/webUI/src/views/user/manager/statements/mod.vue
@@ -0,0 +1,139 @@
+
+
+ {{ isEdit ? 'ویرایش اطلاعیه' : 'افزودن اطلاعیه جدید' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ isEdit ? 'ویرایش' : 'افزودن' }}
+
+
+
+
+
+
+
+
+
+
diff --git a/webUI/src/views/user/profile/profile-main.vue b/webUI/src/views/user/profile/profile-main.vue
index 876ef1b..488aabf 100644
--- a/webUI/src/views/user/profile/profile-main.vue
+++ b/webUI/src/views/user/profile/profile-main.vue
@@ -106,6 +106,7 @@ export default defineComponent({
{ text: 'تغییرات', url: '/profile/manager/changes/list', icon: 'mdi-cellphone-arrow-down', visible: true },
{ text: 'تاریخچه سیستم', url: '/profile/manager/logs/list', icon: 'mdi-history', visible: true },
{ text: 'کیف پول', url: '/profile/manager/wallet/list', icon: 'mdi-wallet', visible: true },
+ { text: 'اطلاعیهها', url: '/profile/manager/statments/list', icon: 'mdi-bell', visible: true },
],
adminSettings: [