shared-ritm 1.2.104 → 1.2.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/shared-ritm.es.js +3025 -3001
  3. package/dist/shared-ritm.umd.js +148 -148
  4. package/dist/types/api/services/BrigadesService.d.ts +18 -0
  5. package/dist/types/api/services/PhotoService.d.ts +38 -51
  6. package/dist/types/api/types/Api_Brigades.d.ts +31 -0
  7. package/dist/types/index.d.ts +3 -1
  8. package/package.json +64 -64
  9. package/src/api/services/BrigadesService.ts +32 -0
  10. package/src/api/services/EquipmentService.ts +29 -29
  11. package/src/api/services/InstrumentsService.ts +22 -22
  12. package/src/api/services/UserService.ts +101 -101
  13. package/src/api/services/VideoService.ts +62 -62
  14. package/src/api/settings/ApiService.ts +126 -123
  15. package/src/api/types/Api_Brigades.ts +36 -0
  16. package/src/api/types/Api_Equipment.ts +3 -3
  17. package/src/api/types/Api_Instruments.ts +98 -98
  18. package/src/api/types/Api_User.ts +117 -117
  19. package/src/api/types/Api_Video.ts +123 -123
  20. package/src/common/app-input-new/AppInputNew.vue +167 -167
  21. package/src/common/app-layout/components/AppLayoutHeader.vue +250 -250
  22. package/src/common/app-sheet-new/AppSheetNew.vue +246 -246
  23. package/src/common/app-table/AppTable.vue +312 -312
  24. package/src/common/app-table/AppTableLayout.vue +137 -137
  25. package/src/common/app-table/components/ModalSelect.vue +270 -270
  26. package/src/common/app-table/components/TableModal.vue +356 -356
  27. package/src/common/app-table/controllers/useBaseTable.ts +45 -45
  28. package/src/index.ts +119 -116
  29. package/src/styles/variables.sass +12 -12
  30. package/dist/types/api/services/ComentsServise.d.ts +0 -10
  31. package/dist/types/api/types/Api_Users.d.ts +0 -43
@@ -1,62 +1,62 @@
1
- import ApiService from '../settings/ApiService'
2
- import { ResponseApi } from '@/api/types/Api_Service'
3
- import {
4
- Api_Video_Source_Create,
5
- Api_Video_Source_Search,
6
- Api_Work_Zone,
7
- Api_Work_Zone_Search,
8
- } from '@/api/types/Api_Video'
9
-
10
- class VideoService extends ApiService {
11
- public async startVideoAnalytics(): Promise<boolean> {
12
- return await this.post('/statanly/start', null)
13
- }
14
-
15
- public reloadVideoAnalytics(ids: string[]): Promise<any> {
16
- return this.post('/horizon/video-source/reload', { video_source_ids: ids })
17
- }
18
-
19
- public async fetchWorkZones(params?: any): Promise<ResponseApi<Api_Work_Zone_Search[]>> {
20
- return await this.get('/search/work_zones', { params })
21
- }
22
-
23
- public async fetchWorkZone(id: string): Promise<ResponseApi<Api_Work_Zone>> {
24
- return await this.get(`/work_zone/get_work_zone/${id}`)
25
- }
26
-
27
- public async editWorkZone(id: string, body: { title: string }): Promise<{ data: Api_Work_Zone; status: number }> {
28
- return await this.put(`/admin/work-zones/${id}`, body)
29
- }
30
-
31
- public async deleteWorkZone(id: string): Promise<{ data: boolean; status: number }> {
32
- return await this.delete(`/admin/work-zones/${id}`)
33
- }
34
-
35
- public async fetchVideoSources(params?: any): Promise<ResponseApi<Api_Video_Source_Search[]>> {
36
- return await this.get('/search/video_sources', { params })
37
- }
38
-
39
- public async createVideoSource(
40
- body: Api_Video_Source_Create,
41
- ): Promise<{ data: Api_Video_Source_Search; status: number }> {
42
- return await this.post('horizon/video-source', body)
43
- }
44
-
45
- public async editVideoSource(
46
- id: string,
47
- body: Partial<Api_Video_Source_Create>,
48
- ): Promise<{ data: Api_Video_Source_Search; status: number }> {
49
- return await this.put(`/horizon/video-source/${id}`, body)
50
- }
51
-
52
- public async deleteVideoSource(id: string): Promise<void> {
53
- await this.delete(`/horizon/video-source/${id}`)
54
- }
55
- }
56
-
57
- let api: VideoService
58
-
59
- export default function useVideoService() {
60
- if (!api) api = new VideoService()
61
- return api
62
- }
1
+ import ApiService from '../settings/ApiService'
2
+ import { ResponseApi } from '@/api/types/Api_Service'
3
+ import {
4
+ Api_Video_Source_Create,
5
+ Api_Video_Source_Search,
6
+ Api_Work_Zone,
7
+ Api_Work_Zone_Search,
8
+ } from '@/api/types/Api_Video'
9
+
10
+ class VideoService extends ApiService {
11
+ public async startVideoAnalytics(): Promise<boolean> {
12
+ return await this.post('/statanly/start', null)
13
+ }
14
+
15
+ public reloadVideoAnalytics(ids: string[]): Promise<any> {
16
+ return this.post('/horizon/video-source/reload', { video_source_ids: ids })
17
+ }
18
+
19
+ public async fetchWorkZones(params?: any): Promise<ResponseApi<Api_Work_Zone_Search[]>> {
20
+ return await this.get('/search/work_zones', { params })
21
+ }
22
+
23
+ public async fetchWorkZone(id: string): Promise<ResponseApi<Api_Work_Zone>> {
24
+ return await this.get(`/work_zone/get_work_zone/${id}`)
25
+ }
26
+
27
+ public async editWorkZone(id: string, body: { title: string }): Promise<{ data: Api_Work_Zone; status: number }> {
28
+ return await this.put(`/admin/work-zones/${id}`, body)
29
+ }
30
+
31
+ public async deleteWorkZone(id: string): Promise<{ data: boolean; status: number }> {
32
+ return await this.delete(`/admin/work-zones/${id}`)
33
+ }
34
+
35
+ public async fetchVideoSources(params?: any): Promise<ResponseApi<Api_Video_Source_Search[]>> {
36
+ return await this.get('/search/video_sources', { params })
37
+ }
38
+
39
+ public async createVideoSource(
40
+ body: Api_Video_Source_Create,
41
+ ): Promise<{ data: Api_Video_Source_Search; status: number }> {
42
+ return await this.post('horizon/video-source', body)
43
+ }
44
+
45
+ public async editVideoSource(
46
+ id: string,
47
+ body: Partial<Api_Video_Source_Create>,
48
+ ): Promise<{ data: Api_Video_Source_Search; status: number }> {
49
+ return await this.put(`/horizon/video-source/${id}`, body)
50
+ }
51
+
52
+ public async deleteVideoSource(id: string): Promise<void> {
53
+ await this.delete(`/horizon/video-source/${id}`)
54
+ }
55
+ }
56
+
57
+ let api: VideoService
58
+
59
+ export default function useVideoService() {
60
+ if (!api) api = new VideoService()
61
+ return api
62
+ }
@@ -1,123 +1,126 @@
1
- import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from 'axios'
2
-
3
- export enum ApiServiceType {
4
- SERVICE_AUTH = 'SERVICE_AUTH',
5
- }
6
-
7
- export default class ApiService {
8
- private axiosInstance: AxiosInstance
9
-
10
- constructor() {
11
- this.axiosInstance = axios.create({
12
- baseURL: process.env.VUE_APP_BACKEND,
13
- headers: {
14
- 'Content-Type': 'application/json',
15
- Accept: 'application/json',
16
- },
17
- })
18
-
19
- this.axiosInstance.interceptors.request.use(
20
- (config: InternalAxiosRequestConfig) => {
21
- const token = this.getToken()
22
- if (token && config.headers) {
23
- config.headers.Authorization = `Bearer ${token}`
24
- }
25
- return config
26
- },
27
- (error: AxiosError) => {
28
- return Promise.reject(error)
29
- },
30
- )
31
-
32
- this.axiosInstance.interceptors.response.use(
33
- (response: AxiosResponse) => {
34
- return response.data
35
- },
36
- (error: AxiosError) => {
37
- if (error.response?.status === 401 || error.response?.status === 403) {
38
- this.logout()
39
- }
40
- return Promise.reject(error)
41
- },
42
- )
43
- }
44
-
45
- private getToken() {
46
- return localStorage.getItem('token')
47
- }
48
-
49
- private removeToken() {
50
- localStorage.removeItem('token')
51
- }
52
-
53
- public logout(): void {
54
- this.removeToken()
55
- window.location.href = '/sign-in'
56
- }
57
-
58
- private handleError(error: AxiosError): void {
59
- if (error.response) {
60
- console.error('API Error:', error.response.status, error.response.data)
61
- } else if (error.request) {
62
- console.error('No response received:', error.request)
63
- } else {
64
- console.error('Error during request setup:', error.message)
65
- }
66
- }
67
-
68
- protected async get<T>(url: string, options?: AxiosRequestConfig) {
69
- try {
70
- const response: AxiosResponse<T> = await this.axiosInstance.get<T>(url, options)
71
- if (response?.data === false) return false as unknown as T
72
- return response?.data ?? (response as unknown as T)
73
- } catch (error) {
74
- const axiosError = error as AxiosError
75
- this.handleError(axiosError)
76
- throw error
77
- }
78
- }
79
-
80
- protected async delete<T>(url: string, options?: AxiosRequestConfig) {
81
- try {
82
- return await this.axiosInstance.delete<T>(url, options)
83
- } catch (error) {
84
- const axiosError = error as AxiosError
85
- this.handleError(axiosError)
86
- throw error
87
- }
88
- }
89
-
90
- protected async post<T1, T2>(url: string, payload: T1, options?: AxiosRequestConfig) {
91
- try {
92
- const response: AxiosResponse<T2> = await this.axiosInstance.post<T1, AxiosResponse<T2>>(url, payload, options)
93
- if (response?.data === false) return false
94
- return response?.data || (response as any)
95
- } catch (error) {
96
- const axiosError = error as AxiosError
97
- this.handleError(axiosError)
98
- throw error
99
- }
100
- }
101
-
102
- protected async patch<T1, T2>(url: string, payload: T1, options?: AxiosRequestConfig): Promise<T2> {
103
- try {
104
- const response: AxiosResponse<T2> = await this.axiosInstance.patch<T1, AxiosResponse<T2>>(url, payload, options)
105
- return response.data
106
- } catch (error) {
107
- const axiosError = error as AxiosError
108
- this.handleError(axiosError)
109
- throw error
110
- }
111
- }
112
-
113
- protected async put<T1, T2>(url: string, payload: T1, options?: AxiosRequestConfig) {
114
- try {
115
- const response: AxiosResponse<T2> = await this.axiosInstance.put<T1, AxiosResponse<T2>>(url, payload, options)
116
- return response.data
117
- } catch (error) {
118
- const axiosError = error as AxiosError
119
- this.handleError(axiosError)
120
- throw error
121
- }
122
- }
123
- }
1
+ import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from 'axios'
2
+
3
+ export enum ApiServiceType {
4
+ SERVICE_AUTH = 'SERVICE_AUTH',
5
+ }
6
+
7
+ export default class ApiService {
8
+ private axiosInstance: AxiosInstance
9
+
10
+ constructor() {
11
+ this.axiosInstance = axios.create({
12
+ baseURL: process.env.VUE_APP_BACKEND,
13
+ headers: {
14
+ 'Content-Type': 'application/json',
15
+ Accept: 'application/json',
16
+ },
17
+ })
18
+
19
+ this.axiosInstance.interceptors.request.use(
20
+ (config: InternalAxiosRequestConfig) => {
21
+ const token = this.getToken()
22
+ if (token && config.headers) {
23
+ config.headers.Authorization = `Bearer ${token}`
24
+ }
25
+ return config
26
+ },
27
+ (error: AxiosError) => {
28
+ return Promise.reject(error)
29
+ },
30
+ )
31
+
32
+ this.axiosInstance.interceptors.response.use(
33
+ (response: AxiosResponse) => {
34
+ return response.data
35
+ },
36
+ (error: AxiosError) => {
37
+ if (error.response?.status === 401 || error.response?.status === 403) {
38
+ this.logout()
39
+ }
40
+ return Promise.reject(error)
41
+ },
42
+ )
43
+ }
44
+
45
+ private getToken() {
46
+ return localStorage.getItem('token')
47
+ }
48
+
49
+ private removeToken() {
50
+ localStorage.removeItem('token')
51
+ }
52
+
53
+ public logout(): void {
54
+ this.removeToken()
55
+ window.location.href = '/sign-in'
56
+ }
57
+
58
+ private handleError(error: AxiosError): void {
59
+ if (error.response) {
60
+ console.error('API Error:', error.response.status, error.response.data)
61
+ } else if (error.request) {
62
+ console.error('No response received:', error.request)
63
+ } else {
64
+ console.error('Error during request setup:', error.message)
65
+ }
66
+ }
67
+
68
+ protected async get<T>(url: string, options?: AxiosRequestConfig) {
69
+ try {
70
+ const response: AxiosResponse<T> = await this.axiosInstance.get<T>(url, options)
71
+ if (response?.data === false) return false as unknown as T
72
+
73
+ if (Array.isArray(response?.data)) return response as unknown as T
74
+
75
+ return response?.data ?? (response as unknown as T)
76
+ } catch (error) {
77
+ const axiosError = error as AxiosError
78
+ this.handleError(axiosError)
79
+ throw error
80
+ }
81
+ }
82
+
83
+ protected async delete<T>(url: string, options?: AxiosRequestConfig) {
84
+ try {
85
+ return await this.axiosInstance.delete<T>(url, options)
86
+ } catch (error) {
87
+ const axiosError = error as AxiosError
88
+ this.handleError(axiosError)
89
+ throw error
90
+ }
91
+ }
92
+
93
+ protected async post<T1, T2>(url: string, payload: T1, options?: AxiosRequestConfig) {
94
+ try {
95
+ const response: AxiosResponse<T2> = await this.axiosInstance.post<T1, AxiosResponse<T2>>(url, payload, options)
96
+ if (response?.data === false) return false
97
+ return response?.data || (response as any)
98
+ } catch (error) {
99
+ const axiosError = error as AxiosError
100
+ this.handleError(axiosError)
101
+ throw error
102
+ }
103
+ }
104
+
105
+ protected async patch<T1, T2>(url: string, payload: T1, options?: AxiosRequestConfig): Promise<T2> {
106
+ try {
107
+ const response: AxiosResponse<T2> = await this.axiosInstance.patch<T1, AxiosResponse<T2>>(url, payload, options)
108
+ return response.data
109
+ } catch (error) {
110
+ const axiosError = error as AxiosError
111
+ this.handleError(axiosError)
112
+ throw error
113
+ }
114
+ }
115
+
116
+ protected async put<T1, T2>(url: string, payload: T1, options?: AxiosRequestConfig) {
117
+ try {
118
+ const response: AxiosResponse<T2> = await this.axiosInstance.put<T1, AxiosResponse<T2>>(url, payload, options)
119
+ return response.data
120
+ } catch (error) {
121
+ const axiosError = error as AxiosError
122
+ this.handleError(axiosError)
123
+ throw error
124
+ }
125
+ }
126
+ }
@@ -0,0 +1,36 @@
1
+ import { Api_User, Api_User_Team_Search } from '@/api/types/Api_User'
2
+ import { Api_Tasks_Position_Dto } from '@/api/types/Api_Tasks'
3
+
4
+ export type Api_Brigade_Master = {
5
+ id: string
6
+ full_name: string
7
+ email: string
8
+ }
9
+
10
+ export type Api_Brigade_Position = {
11
+ id: string
12
+ user: Pick<Api_User, 'id' | 'first_name' | 'last_name' | 'patronymic' | 'email' | 'full_name'> | null
13
+ position: Api_Tasks_Position_Dto
14
+ }
15
+
16
+ export type Api_Brigade = {
17
+ id: string
18
+ name: string
19
+ task_master: Api_Brigade_Master
20
+ teams: Api_User_Team_Search[]
21
+ positions: Api_Brigade_Position[]
22
+ }
23
+
24
+ export type Api_Brigade_Create = Pick<Api_Brigade, 'name' | 'teams'> & {
25
+ positions?: Api_Brigade_Position[]
26
+ task_master_user_id: string
27
+ }
28
+
29
+ export type Api_Brigade_Search = {
30
+ id: string
31
+ name: string
32
+ created_at: string
33
+ updated_at: string
34
+ task_master: Api_Brigade_Master
35
+ teams: Api_User_Team_Search[]
36
+ }
@@ -1,3 +1,3 @@
1
- import { Api_Equipment_Full_Dto } from '@/api/types/Api_Repairs'
2
-
3
- export type Api_Equipment_Create = Omit<Api_Equipment_Full_Dto, 'id'>
1
+ import { Api_Equipment_Full_Dto } from '@/api/types/Api_Repairs'
2
+
3
+ export type Api_Equipment_Create = Omit<Api_Equipment_Full_Dto, 'id'>
@@ -1,98 +1,98 @@
1
- import { Api_User } from '../types/Api_User'
2
-
3
- export type Api_Instrument_Storage = {
4
- id: string
5
- created_at: string
6
- deleted_at: string | null
7
- updated_at: string
8
- description: string
9
- name: string
10
- title: string
11
- parent: unknown | null
12
- parents: unknown[]
13
- state_id: unknown | null
14
- }
15
-
16
- export type Api_Instrument_Type = {
17
- id: string
18
- name: string
19
- created_at: string
20
- updated_at: string
21
- deleted_at: string | null
22
- icon: string
23
- storage_id: string
24
- storage: Api_Instrument_Storage
25
- }
26
-
27
- export type Api_Instrument_Location = {
28
- id: string
29
- name: string
30
- title: string
31
- description: string
32
- created_at: string
33
- updated_at: string
34
- deleted_at: string | null
35
- state_id: unknown | null
36
- }
37
-
38
- export type Api_Instrument_Status = {
39
- id: string
40
- description: string
41
- name: string
42
- title: string
43
- created_at: string
44
- updated_at: string
45
- deleted_at: string | null
46
- }
47
-
48
- export type Api_Instrument = {
49
- id: string
50
- RFID: string | null
51
- instrument_id: string
52
- arrival_at: string
53
- created_at: string
54
- supply_at: string
55
- updated_at: string
56
- deleted_at: string | null
57
- inventory_number: string
58
- instrument_type: Api_Instrument_Type
59
- invoice_ref_key: string
60
- last_status_updated_at: string
61
- location_id: string
62
- location: Api_Instrument_Location
63
- misplacement: boolean
64
- module: string | null
65
- module_id: string | null
66
- name: string
67
- pressure: unknown | null
68
- registry_module_id: string
69
- responsible_id: string
70
- responsible: Api_User
71
- status: Api_Instrument_Status
72
- status_id: string
73
- storage: Api_Instrument_Storage
74
- supervisor: unknown | null
75
- supervisor_id: string
76
- type: unknown | null
77
- weight: unknown | null
78
- }
79
-
80
- export type Api_instruments_HistoryResponse = {
81
- data: Api_Instrument[]
82
- from: number
83
- to: number
84
- total: number
85
- per_page: number
86
- current_page: number
87
- total_pages: number
88
- last_page_url: string
89
- first_page_url: string
90
- next_page_url: string | null
91
- prev_page_url: string | null
92
- path: string
93
- links: {
94
- label: string
95
- url: string
96
- active: boolean
97
- }[]
98
- }
1
+ import { Api_User } from '../types/Api_User'
2
+
3
+ export type Api_Instrument_Storage = {
4
+ id: string
5
+ created_at: string
6
+ deleted_at: string | null
7
+ updated_at: string
8
+ description: string
9
+ name: string
10
+ title: string
11
+ parent: unknown | null
12
+ parents: unknown[]
13
+ state_id: unknown | null
14
+ }
15
+
16
+ export type Api_Instrument_Type = {
17
+ id: string
18
+ name: string
19
+ created_at: string
20
+ updated_at: string
21
+ deleted_at: string | null
22
+ icon: string
23
+ storage_id: string
24
+ storage: Api_Instrument_Storage
25
+ }
26
+
27
+ export type Api_Instrument_Location = {
28
+ id: string
29
+ name: string
30
+ title: string
31
+ description: string
32
+ created_at: string
33
+ updated_at: string
34
+ deleted_at: string | null
35
+ state_id: unknown | null
36
+ }
37
+
38
+ export type Api_Instrument_Status = {
39
+ id: string
40
+ description: string
41
+ name: string
42
+ title: string
43
+ created_at: string
44
+ updated_at: string
45
+ deleted_at: string | null
46
+ }
47
+
48
+ export type Api_Instrument = {
49
+ id: string
50
+ RFID: string | null
51
+ instrument_id: string
52
+ arrival_at: string
53
+ created_at: string
54
+ supply_at: string
55
+ updated_at: string
56
+ deleted_at: string | null
57
+ inventory_number: string
58
+ instrument_type: Api_Instrument_Type
59
+ invoice_ref_key: string
60
+ last_status_updated_at: string
61
+ location_id: string
62
+ location: Api_Instrument_Location
63
+ misplacement: boolean
64
+ module: string | null
65
+ module_id: string | null
66
+ name: string
67
+ pressure: unknown | null
68
+ registry_module_id: string
69
+ responsible_id: string
70
+ responsible: Api_User
71
+ status: Api_Instrument_Status
72
+ status_id: string
73
+ storage: Api_Instrument_Storage
74
+ supervisor: unknown | null
75
+ supervisor_id: string
76
+ type: unknown | null
77
+ weight: unknown | null
78
+ }
79
+
80
+ export type Api_instruments_HistoryResponse = {
81
+ data: Api_Instrument[]
82
+ from: number
83
+ to: number
84
+ total: number
85
+ per_page: number
86
+ current_page: number
87
+ total_pages: number
88
+ last_page_url: string
89
+ first_page_url: string
90
+ next_page_url: string | null
91
+ prev_page_url: string | null
92
+ path: string
93
+ links: {
94
+ label: string
95
+ url: string
96
+ active: boolean
97
+ }[]
98
+ }