Frontend¶
Vue 3
Vuetify 3
Pinia
JWT auth
Stores¶
api.js¶
Работа с бекендом
const apiUrl = "https://sup.oboi.ru/service/" // передаю в настройку axios
const datasheff = reactive({ // коплю данные с которыми работал
2023: {02: { snapshot_time: utc,
data: {...}
}}
12023: {...},
122022: {...},
})
// functions
err.js¶
Обработчик ошибок - создает всплывающее окно для пользователя
const id = ref(0)
const show = ref(false)
// functions
add({
title: 'ваша сессия устарела',
message: 'введите логин и проль для авторизации на сайте',
level: 'info',
from: 'auth.oboi.ru/token/refresh'
})
auth.js¶
Авторизация
const isLoader = ref(false)
const isLogin = computed(() => refreshToken.value ? true : false)
const accessTokenHuman = ref(Object) // human readable varian with human time format
const userLogin = computed(() => accessTokenHuman.value.identity)
const userName = computed(() => accessTokenHuman.value.user_claims.name)
// functions
makeLogin(username, password)
makeLogout()
makeRefresh() // обновить accessToken с помощью refresh
Layouts¶
path | name | description |
---|---|---|
/ | Login | Логин и выбор Layout если несколько ролей |
/admin | Administrator | Менеджер |
/seller | Seller | Продавец |
/boss | Boss | Топ менеджер |
/producer | Producer | Поставщик - контроль продаж своего товара |
Vews¶
path | name | layout: M-A-D | role: A-S-B-P | description |
---|---|---|---|---|
/ | Login | --A-- | A-S-B-P | логин |
plan | Planning | A---B-- | магазины, планы, лимиты, смены | |
rating | Ratings | A-S-B-- | рейтинги | |
sell | SellEmployee | A-S---- | список продаж сотрудника | |
salary | SalaryEmployee | --S---- | зарплата сотрудника | |
salary | Salary | A---B-- | табель зарплаты по всем сотрудниками | |
salarySet | SalarySetting | A------ | настройка зарплаты | |
orders | Orders | --S---- | заказы через офис | |
| A-S-B-P |
Components¶
bar
@/components/bar/:
counter-widget: виджет заголовок и цифра # (1)!
- count: {default: 0, type: Number}
- name: {default: '---', type: String}
progress-rate-widget: прогресс факт план с одним показателем - есть смысл выкинуть... смотри ниже
- plan: {default: 0.0001, type: Number},
- fact: {default: 0, type: Number},
- name: {default: '---', type: String},
- color: {default: 'primary', type: String},
- bg_color: {default: 'phone-main', type: String},
progress-rate-prognosis-widget: прогресс + прогноз, # (2)!
- plan: {default: 0.0001, type: Number},
- fact: {default: 0, type: Number},
- name: {default: '---', type: String},
- color: {default: 'primary', type: String},
- bg_color: {default: 'phone-main', type: String},
progress-rate-circle-indicator: прогресс + прогноз 3,
- prognosPercent: {default: 0, type: Number},
- factPercent: {default: 0, type: Number},
- isCurrentTime: {default: true, type: Boolean},
- size: {default: 'small', type: String}
user
@/components/user/:
user-indicator: иконка пользователя отображающая состояние
- data: {default: {}, type: Object},
user-card: информация о сотруднике
- id: {default: null, type: Number},
user-sales: информация о продажах по сотруднику - разбито по сменам
- id: {default: null, type: Number},
-> @/components/sale
user-salary: информация о зарплате пользователя за месяц
- id: {default: null, type: Number},
user-state: информация о показателях за месяц
- id: {default: null, type: Number},
user-card-change: редактирование сотрудника
- id: {default: null, type: Number},
sale
@/components/sale/:
sales-list: перечень чеков
- data: {default: {}, type: Object},
sales-check: чек
- data: {default: {}, type: Object},
good
@/components/good/:
goods-icon: иконка товара
- id: {default: null, type: String},
- pic: {default: null, type: String},
goods-card: карточка товара
- id: {default: null, type: String},
shop
@/components/shop/:
shop-shift-icon: иконка состояния смены
- data: {default: {}, type: Object},
shop-work-time-widget: виджет текущего рабочего времени
- data: {default: {}, type: Object},
shop-work-time-card: график рабочего времени
- data: {default: {}, type: Object},
shop-work-time-card-change: форма изменения рабочего времени
- data: {default: {}, type: Object},