@kengic/uni 0.3.6 → 0.3.7-beta.0
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.
- package/dist/api/WMS/Controllers/CommonController/GetLatestApkVersion.ts +28 -0
- package/dist/api/WMS/Controllers/CommonController/index.ts +1 -0
- package/dist/api/WMS/Controllers/LoginController/Logout.ts +28 -28
- package/dist/api/WMS/Controllers/LoginController/index.ts +1 -1
- package/dist/api/WMS/Controllers/WhController/ListVO.ts +92 -89
- package/dist/api/WMS/Controllers/WhController/index.ts +1 -1
- package/dist/api/WMS/Controllers/index.ts +3 -2
- package/dist/api/WMS/index.ts +2 -2
- package/dist/api/WMS/models.ts +192 -189
- package/dist/api/api.ts +1 -1
- package/dist/api/def.ts +1 -1
- package/dist/api/index.ts +2 -2
- package/dist/component/KgNavBar/KgNavBar.vue +4 -0
- package/dist/component/KgTabBar/KgTabBar.vue +4 -0
- package/dist/component/KgUpdatePopup/KgUpdatePopup.vue +148 -0
- package/dist/component/KgUpdatePopup/index.ts +1 -0
- package/dist/component/index.ts +1 -0
- package/dist/store/app.store.ts +19 -0
- package/dist/util/kg.ts +42 -0
- package/package.json +19 -16
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// noinspection ES6UnusedImports
|
|
2
|
+
|
|
3
|
+
import { httpClient, IRequestConfig, IRequestOptions } from '../../../../service';
|
|
4
|
+
import * as DEF from '../../../def';
|
|
5
|
+
import { keys } from '../../models';
|
|
6
|
+
|
|
7
|
+
/** 请求参数. */
|
|
8
|
+
export class GetLatestApkVersionQuery {}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 获取 APK 最新的版本号.
|
|
12
|
+
*
|
|
13
|
+
* @param config 请求配置.
|
|
14
|
+
* @param option 请求选项.
|
|
15
|
+
*/
|
|
16
|
+
export function GetLatestApkVersion(config?: IRequestConfig<GetLatestApkVersionQuery, {}>, option?: IRequestOptions): Promise<number> {
|
|
17
|
+
return httpClient().request(
|
|
18
|
+
{
|
|
19
|
+
method: GetLatestApkVersion.method,
|
|
20
|
+
url: `${option?.mock ? '/mock' : ''}${GetLatestApkVersion.url}`,
|
|
21
|
+
...(config ?? {}),
|
|
22
|
+
},
|
|
23
|
+
option,
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
GetLatestApkVersion.method = 'GET' as const;
|
|
28
|
+
GetLatestApkVersion.url = '/sys/common/getLatestApkVersion';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GetLatestApkVersion, GetLatestApkVersionQuery } from './GetLatestApkVersion';
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
// noinspection ES6UnusedImports
|
|
2
|
-
|
|
3
|
-
import { httpClient, IRequestConfig, IRequestOptions } from '../../../../service';
|
|
4
|
-
import * as DEF from '../../../def';
|
|
5
|
-
import { keys } from '../../models';
|
|
6
|
-
|
|
7
|
-
/** 请求参数. */
|
|
8
|
-
export class LogoutQuery {}
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* 退出登录.
|
|
12
|
-
*
|
|
13
|
-
* @param config 请求配置.
|
|
14
|
-
* @param option 请求选项.
|
|
15
|
-
*/
|
|
16
|
-
export function Logout(config?: IRequestConfig<LogoutQuery, {}>, option?: IRequestOptions): Promise<Record<any, any>> {
|
|
17
|
-
return httpClient().request(
|
|
18
|
-
{
|
|
19
|
-
method: Logout.method,
|
|
20
|
-
url: `${option?.mock ? '/mock' : ''}${Logout.url}`,
|
|
21
|
-
...(config ?? {}),
|
|
22
|
-
},
|
|
23
|
-
option,
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
Logout.method = 'GET' as const;
|
|
28
|
-
Logout.url = '/sys/logout';
|
|
1
|
+
// noinspection ES6UnusedImports
|
|
2
|
+
|
|
3
|
+
import { httpClient, IRequestConfig, IRequestOptions } from '../../../../service';
|
|
4
|
+
import * as DEF from '../../../def';
|
|
5
|
+
import { keys } from '../../models';
|
|
6
|
+
|
|
7
|
+
/** 请求参数. */
|
|
8
|
+
export class LogoutQuery {}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 退出登录.
|
|
12
|
+
*
|
|
13
|
+
* @param config 请求配置.
|
|
14
|
+
* @param option 请求选项.
|
|
15
|
+
*/
|
|
16
|
+
export function Logout(config?: IRequestConfig<LogoutQuery, {}>, option?: IRequestOptions): Promise<Record<any, any>> {
|
|
17
|
+
return httpClient().request(
|
|
18
|
+
{
|
|
19
|
+
method: Logout.method,
|
|
20
|
+
url: `${option?.mock ? '/mock' : ''}${Logout.url}`,
|
|
21
|
+
...(config ?? {}),
|
|
22
|
+
},
|
|
23
|
+
option,
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
Logout.method = 'GET' as const;
|
|
28
|
+
Logout.url = '/sys/logout';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Logout, LogoutQuery } from './Logout';
|
|
1
|
+
export { Logout, LogoutQuery } from './Logout';
|
|
@@ -1,89 +1,92 @@
|
|
|
1
|
-
// noinspection ES6UnusedImports
|
|
2
|
-
|
|
3
|
-
import { httpClient, IRequestConfig, IRequestOptions } from '../../../../service';
|
|
4
|
-
import * as DEF from '../../../def';
|
|
5
|
-
import { keys } from '../../models';
|
|
6
|
-
|
|
7
|
-
/** 请求参数. */
|
|
8
|
-
export class ListVOQuery {
|
|
9
|
-
/**
|
|
10
|
-
public activeFlg?: number | null;
|
|
11
|
-
/** 地址编号 */
|
|
12
|
-
public adrId?: string | null;
|
|
13
|
-
/**
|
|
14
|
-
public adrnam?: string | null;
|
|
15
|
-
/**
|
|
16
|
-
public
|
|
17
|
-
/**
|
|
18
|
-
public
|
|
19
|
-
/**
|
|
20
|
-
public
|
|
21
|
-
/**
|
|
22
|
-
public
|
|
23
|
-
/**
|
|
24
|
-
public
|
|
25
|
-
/**
|
|
26
|
-
public
|
|
27
|
-
/**
|
|
28
|
-
public
|
|
29
|
-
/**
|
|
30
|
-
public
|
|
31
|
-
/**
|
|
32
|
-
public
|
|
33
|
-
/**
|
|
34
|
-
public
|
|
35
|
-
/**
|
|
36
|
-
public
|
|
37
|
-
/**
|
|
38
|
-
public
|
|
39
|
-
/**
|
|
40
|
-
public
|
|
41
|
-
|
|
42
|
-
public
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
case '
|
|
48
|
-
case '
|
|
49
|
-
case '
|
|
50
|
-
case '
|
|
51
|
-
case '
|
|
52
|
-
case '
|
|
53
|
-
case '
|
|
54
|
-
case '
|
|
55
|
-
case '
|
|
56
|
-
case '
|
|
57
|
-
case '
|
|
58
|
-
case '
|
|
59
|
-
case '
|
|
60
|
-
case '
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
*
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
1
|
+
// noinspection ES6UnusedImports
|
|
2
|
+
|
|
3
|
+
import { httpClient, IRequestConfig, IRequestOptions } from '../../../../service';
|
|
4
|
+
import * as DEF from '../../../def';
|
|
5
|
+
import { keys } from '../../models';
|
|
6
|
+
|
|
7
|
+
/** 请求参数. */
|
|
8
|
+
export class ListVOQuery {
|
|
9
|
+
/** 是否可用 */
|
|
10
|
+
public activeFlg?: number | null;
|
|
11
|
+
/** 地址编号 */
|
|
12
|
+
public adrId?: string | null;
|
|
13
|
+
/** 地址名 */
|
|
14
|
+
public adrnam?: string | null;
|
|
15
|
+
/** 公司代码 */
|
|
16
|
+
public comCod?: string | null;
|
|
17
|
+
/** 默认仓库 */
|
|
18
|
+
public defWhFlg?: number | null;
|
|
19
|
+
/** 主键. */
|
|
20
|
+
public id?: string | null;
|
|
21
|
+
/** 所属地/国编号 */
|
|
22
|
+
public orgcod?: string | null;
|
|
23
|
+
/** 永久调整托盘 */
|
|
24
|
+
public permAdjLod?: string | null;
|
|
25
|
+
/** 永久调整箱 */
|
|
26
|
+
public permAdjSub?: string | null;
|
|
27
|
+
/** 永久创建托盘 */
|
|
28
|
+
public permCreLod?: string | null;
|
|
29
|
+
/** 永久创建箱 */
|
|
30
|
+
public permCreSub?: string | null;
|
|
31
|
+
/** 仓库名称 */
|
|
32
|
+
public whDsc?: string | null;
|
|
33
|
+
/** 仓库编号 */
|
|
34
|
+
public whId?: string | null;
|
|
35
|
+
/** 排序字段. */
|
|
36
|
+
public column?: string | null;
|
|
37
|
+
/** 排序方式. */
|
|
38
|
+
public order?: 'asc' | 'desc' | null;
|
|
39
|
+
/** 当前页数. */
|
|
40
|
+
public pageNo?: number | null;
|
|
41
|
+
/** 每页条数. */
|
|
42
|
+
public pageSize?: number | null;
|
|
43
|
+
|
|
44
|
+
public constructor(obj?: ListVOQuery) {
|
|
45
|
+
keys(obj ?? {}).forEach((key: PropertyKey) => {
|
|
46
|
+
switch (key) {
|
|
47
|
+
case 'activeFlg':
|
|
48
|
+
case 'adrId':
|
|
49
|
+
case 'adrnam':
|
|
50
|
+
case 'comCod':
|
|
51
|
+
case 'defWhFlg':
|
|
52
|
+
case 'id':
|
|
53
|
+
case 'orgcod':
|
|
54
|
+
case 'permAdjLod':
|
|
55
|
+
case 'permAdjSub':
|
|
56
|
+
case 'permCreLod':
|
|
57
|
+
case 'permCreSub':
|
|
58
|
+
case 'whDsc':
|
|
59
|
+
case 'whId':
|
|
60
|
+
case 'column':
|
|
61
|
+
case 'order':
|
|
62
|
+
case 'pageNo':
|
|
63
|
+
case 'pageSize':
|
|
64
|
+
Reflect.set(this, key, Reflect.get(obj ?? {}, key));
|
|
65
|
+
break;
|
|
66
|
+
default:
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* wh-分页列表查询VO
|
|
75
|
+
wh-分页列表查询VO
|
|
76
|
+
*
|
|
77
|
+
* @param config 请求配置.
|
|
78
|
+
* @param option 请求选项.
|
|
79
|
+
*/
|
|
80
|
+
export function ListVO(config?: IRequestConfig<ListVOQuery, {}>, option?: IRequestOptions): Promise<DEF.WMS.IPage<DEF.WMS.WhDTO>> {
|
|
81
|
+
return httpClient().request(
|
|
82
|
+
{
|
|
83
|
+
method: ListVO.method,
|
|
84
|
+
url: `${option?.mock ? '/mock' : ''}${ListVO.url}`,
|
|
85
|
+
...(config ?? {}),
|
|
86
|
+
},
|
|
87
|
+
option,
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
ListVO.method = 'GET' as const;
|
|
92
|
+
ListVO.url = '/wh/wh/listVO';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { ListVO, ListVOQuery } from './ListVO';
|
|
1
|
+
export { ListVO, ListVOQuery } from './ListVO';
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export * as
|
|
2
|
-
export * as
|
|
1
|
+
export * as CommonController from './CommonController';
|
|
2
|
+
export * as LoginController from './LoginController';
|
|
3
|
+
export * as WhController from './WhController';
|
package/dist/api/WMS/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * as WMSAPI from './Controllers';
|
|
2
|
-
export * as WMSDEF from './models';
|
|
1
|
+
export * as WMSAPI from './Controllers';
|
|
2
|
+
export * as WMSDEF from './models';
|
package/dist/api/WMS/models.ts
CHANGED
|
@@ -1,189 +1,192 @@
|
|
|
1
|
-
export class IPage<T0> {
|
|
2
|
-
/** Current. */
|
|
3
|
-
public current?: number | null;
|
|
4
|
-
/** Pages. */
|
|
5
|
-
public pages?: number | null;
|
|
6
|
-
/** Records. */
|
|
7
|
-
public records?: Array<T0> | null;
|
|
8
|
-
/** Size. */
|
|
9
|
-
public size?: number | null;
|
|
10
|
-
/** Total. */
|
|
11
|
-
public total?: number | null;
|
|
12
|
-
|
|
13
|
-
public constructor(obj?: IPage<T0>) {
|
|
14
|
-
keys(obj ?? {}).forEach((key: PropertyKey) => {
|
|
15
|
-
switch (key) {
|
|
16
|
-
case 'current':
|
|
17
|
-
case 'pages':
|
|
18
|
-
case 'records':
|
|
19
|
-
case 'size':
|
|
20
|
-
case 'total':
|
|
21
|
-
Reflect.set(this, key, Reflect.get(obj ?? {}, key));
|
|
22
|
-
break;
|
|
23
|
-
default:
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** 用户. */
|
|
31
|
-
export class SysUser {
|
|
32
|
-
/** Activiti Sync. */
|
|
33
|
-
public activitiSync?: number | null;
|
|
34
|
-
/** 头像. */
|
|
35
|
-
public avatar?: string | null;
|
|
36
|
-
/** Birthday. */
|
|
37
|
-
public birthday?: string | null;
|
|
38
|
-
/** Client Id. */
|
|
39
|
-
public clientId?: string | null;
|
|
40
|
-
/** Create By. */
|
|
41
|
-
public createBy?: string | null;
|
|
42
|
-
/** Create Time. */
|
|
43
|
-
public createTime?: string | null;
|
|
44
|
-
/** Del Flag. */
|
|
45
|
-
public delFlag?: number | null;
|
|
46
|
-
/** Depart Ids. */
|
|
47
|
-
public departIds?: string | null;
|
|
48
|
-
/** 邮件. */
|
|
49
|
-
public email?: string | null;
|
|
50
|
-
/** Home Path. */
|
|
51
|
-
public homePath?: string | null;
|
|
52
|
-
/** Id. */
|
|
53
|
-
public id?: string | null;
|
|
54
|
-
/** Org Code. */
|
|
55
|
-
public orgCode?: string | null;
|
|
56
|
-
/** Org Code Txt. */
|
|
57
|
-
public orgCodeTxt?: string | null;
|
|
58
|
-
/** Password. */
|
|
59
|
-
public password?: string | null;
|
|
60
|
-
/** 电话. */
|
|
61
|
-
public phone?: string | null;
|
|
62
|
-
/** Post. */
|
|
63
|
-
public post?: string | null;
|
|
64
|
-
/** 姓名. */
|
|
65
|
-
public realname?: string | null;
|
|
66
|
-
/** Rel Tenant Ids. */
|
|
67
|
-
public relTenantIds?: string | null;
|
|
68
|
-
/** Salt. */
|
|
69
|
-
public salt?: string | null;
|
|
70
|
-
/** Sex. */
|
|
71
|
-
public sex?: number | null;
|
|
72
|
-
/** 状态. */
|
|
73
|
-
public status?: number | null;
|
|
74
|
-
/** Telephone. */
|
|
75
|
-
public telephone?: string | null;
|
|
76
|
-
/** Update By. */
|
|
77
|
-
public updateBy?: string | null;
|
|
78
|
-
/** Update Time. */
|
|
79
|
-
public updateTime?: string | null;
|
|
80
|
-
/** User Identity. */
|
|
81
|
-
public userIdentity?: number | null;
|
|
82
|
-
/** 账号. */
|
|
83
|
-
public username?: string | null;
|
|
84
|
-
/** 工号. */
|
|
85
|
-
public workNo?: string | null;
|
|
86
|
-
|
|
87
|
-
public constructor(obj?: SysUser) {
|
|
88
|
-
keys(obj ?? {}).forEach((key: PropertyKey) => {
|
|
89
|
-
switch (key) {
|
|
90
|
-
case 'activitiSync':
|
|
91
|
-
case 'avatar':
|
|
92
|
-
case 'birthday':
|
|
93
|
-
case 'clientId':
|
|
94
|
-
case 'createBy':
|
|
95
|
-
case 'createTime':
|
|
96
|
-
case 'delFlag':
|
|
97
|
-
case 'departIds':
|
|
98
|
-
case 'email':
|
|
99
|
-
case 'homePath':
|
|
100
|
-
case 'id':
|
|
101
|
-
case 'orgCode':
|
|
102
|
-
case 'orgCodeTxt':
|
|
103
|
-
case 'password':
|
|
104
|
-
case 'phone':
|
|
105
|
-
case 'post':
|
|
106
|
-
case 'realname':
|
|
107
|
-
case 'relTenantIds':
|
|
108
|
-
case 'salt':
|
|
109
|
-
case 'sex':
|
|
110
|
-
case 'status':
|
|
111
|
-
case 'telephone':
|
|
112
|
-
case 'updateBy':
|
|
113
|
-
case 'updateTime':
|
|
114
|
-
case 'userIdentity':
|
|
115
|
-
case 'username':
|
|
116
|
-
case 'workNo':
|
|
117
|
-
Reflect.set(this, key, Reflect.get(obj ?? {}, key));
|
|
118
|
-
break;
|
|
119
|
-
default:
|
|
120
|
-
break;
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
export class WhDTO {
|
|
128
|
-
/**
|
|
129
|
-
public activeFlg?: number | null;
|
|
130
|
-
/** 地址编号 */
|
|
131
|
-
public adrId?: string | null;
|
|
132
|
-
/**
|
|
133
|
-
public adrnam?: string | null;
|
|
134
|
-
/**
|
|
135
|
-
public
|
|
136
|
-
/**
|
|
137
|
-
public
|
|
138
|
-
/**
|
|
139
|
-
public
|
|
140
|
-
/**
|
|
141
|
-
public
|
|
142
|
-
/**
|
|
143
|
-
public
|
|
144
|
-
/**
|
|
145
|
-
public
|
|
146
|
-
/**
|
|
147
|
-
public
|
|
148
|
-
/**
|
|
149
|
-
public
|
|
150
|
-
/**
|
|
151
|
-
public
|
|
152
|
-
|
|
153
|
-
public
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
case '
|
|
159
|
-
case '
|
|
160
|
-
case '
|
|
161
|
-
case '
|
|
162
|
-
case '
|
|
163
|
-
case '
|
|
164
|
-
case '
|
|
165
|
-
case '
|
|
166
|
-
case '
|
|
167
|
-
case '
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
1
|
+
export class IPage<T0> {
|
|
2
|
+
/** Current. */
|
|
3
|
+
public current?: number | null;
|
|
4
|
+
/** Pages. */
|
|
5
|
+
public pages?: number | null;
|
|
6
|
+
/** Records. */
|
|
7
|
+
public records?: Array<T0> | null;
|
|
8
|
+
/** Size. */
|
|
9
|
+
public size?: number | null;
|
|
10
|
+
/** Total. */
|
|
11
|
+
public total?: number | null;
|
|
12
|
+
|
|
13
|
+
public constructor(obj?: IPage<T0>) {
|
|
14
|
+
keys(obj ?? {}).forEach((key: PropertyKey) => {
|
|
15
|
+
switch (key) {
|
|
16
|
+
case 'current':
|
|
17
|
+
case 'pages':
|
|
18
|
+
case 'records':
|
|
19
|
+
case 'size':
|
|
20
|
+
case 'total':
|
|
21
|
+
Reflect.set(this, key, Reflect.get(obj ?? {}, key));
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** 用户. */
|
|
31
|
+
export class SysUser {
|
|
32
|
+
/** Activiti Sync. */
|
|
33
|
+
public activitiSync?: number | null;
|
|
34
|
+
/** 头像. */
|
|
35
|
+
public avatar?: string | null;
|
|
36
|
+
/** Birthday. */
|
|
37
|
+
public birthday?: string | null;
|
|
38
|
+
/** Client Id. */
|
|
39
|
+
public clientId?: string | null;
|
|
40
|
+
/** Create By. */
|
|
41
|
+
public createBy?: string | null;
|
|
42
|
+
/** Create Time. */
|
|
43
|
+
public createTime?: string | null;
|
|
44
|
+
/** Del Flag. */
|
|
45
|
+
public delFlag?: number | null;
|
|
46
|
+
/** Depart Ids. */
|
|
47
|
+
public departIds?: string | null;
|
|
48
|
+
/** 邮件. */
|
|
49
|
+
public email?: string | null;
|
|
50
|
+
/** Home Path. */
|
|
51
|
+
public homePath?: string | null;
|
|
52
|
+
/** Id. */
|
|
53
|
+
public id?: string | null;
|
|
54
|
+
/** Org Code. */
|
|
55
|
+
public orgCode?: string | null;
|
|
56
|
+
/** Org Code Txt. */
|
|
57
|
+
public orgCodeTxt?: string | null;
|
|
58
|
+
/** Password. */
|
|
59
|
+
public password?: string | null;
|
|
60
|
+
/** 电话. */
|
|
61
|
+
public phone?: string | null;
|
|
62
|
+
/** Post. */
|
|
63
|
+
public post?: string | null;
|
|
64
|
+
/** 姓名. */
|
|
65
|
+
public realname?: string | null;
|
|
66
|
+
/** Rel Tenant Ids. */
|
|
67
|
+
public relTenantIds?: string | null;
|
|
68
|
+
/** Salt. */
|
|
69
|
+
public salt?: string | null;
|
|
70
|
+
/** Sex. */
|
|
71
|
+
public sex?: number | null;
|
|
72
|
+
/** 状态. */
|
|
73
|
+
public status?: number | null;
|
|
74
|
+
/** Telephone. */
|
|
75
|
+
public telephone?: string | null;
|
|
76
|
+
/** Update By. */
|
|
77
|
+
public updateBy?: string | null;
|
|
78
|
+
/** Update Time. */
|
|
79
|
+
public updateTime?: string | null;
|
|
80
|
+
/** User Identity. */
|
|
81
|
+
public userIdentity?: number | null;
|
|
82
|
+
/** 账号. */
|
|
83
|
+
public username?: string | null;
|
|
84
|
+
/** 工号. */
|
|
85
|
+
public workNo?: string | null;
|
|
86
|
+
|
|
87
|
+
public constructor(obj?: SysUser) {
|
|
88
|
+
keys(obj ?? {}).forEach((key: PropertyKey) => {
|
|
89
|
+
switch (key) {
|
|
90
|
+
case 'activitiSync':
|
|
91
|
+
case 'avatar':
|
|
92
|
+
case 'birthday':
|
|
93
|
+
case 'clientId':
|
|
94
|
+
case 'createBy':
|
|
95
|
+
case 'createTime':
|
|
96
|
+
case 'delFlag':
|
|
97
|
+
case 'departIds':
|
|
98
|
+
case 'email':
|
|
99
|
+
case 'homePath':
|
|
100
|
+
case 'id':
|
|
101
|
+
case 'orgCode':
|
|
102
|
+
case 'orgCodeTxt':
|
|
103
|
+
case 'password':
|
|
104
|
+
case 'phone':
|
|
105
|
+
case 'post':
|
|
106
|
+
case 'realname':
|
|
107
|
+
case 'relTenantIds':
|
|
108
|
+
case 'salt':
|
|
109
|
+
case 'sex':
|
|
110
|
+
case 'status':
|
|
111
|
+
case 'telephone':
|
|
112
|
+
case 'updateBy':
|
|
113
|
+
case 'updateTime':
|
|
114
|
+
case 'userIdentity':
|
|
115
|
+
case 'username':
|
|
116
|
+
case 'workNo':
|
|
117
|
+
Reflect.set(this, key, Reflect.get(obj ?? {}, key));
|
|
118
|
+
break;
|
|
119
|
+
default:
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** 仓库数据传输对象 */
|
|
127
|
+
export class WhDTO {
|
|
128
|
+
/** 是否可用 */
|
|
129
|
+
public activeFlg?: number | null;
|
|
130
|
+
/** 地址编号 */
|
|
131
|
+
public adrId?: string | null;
|
|
132
|
+
/** 地址名 */
|
|
133
|
+
public adrnam?: string | null;
|
|
134
|
+
/** 公司代码 */
|
|
135
|
+
public comCod?: string | null;
|
|
136
|
+
/** 默认仓库 */
|
|
137
|
+
public defWhFlg?: number | null;
|
|
138
|
+
/** 主键. */
|
|
139
|
+
public id?: string | null;
|
|
140
|
+
/** 所属地/国编号 */
|
|
141
|
+
public orgcod?: string | null;
|
|
142
|
+
/** 永久调整托盘 */
|
|
143
|
+
public permAdjLod?: string | null;
|
|
144
|
+
/** 永久调整箱 */
|
|
145
|
+
public permAdjSub?: string | null;
|
|
146
|
+
/** 永久创建托盘 */
|
|
147
|
+
public permCreLod?: string | null;
|
|
148
|
+
/** 永久创建箱 */
|
|
149
|
+
public permCreSub?: string | null;
|
|
150
|
+
/** 仓库名称 */
|
|
151
|
+
public whDsc?: string | null;
|
|
152
|
+
/** 仓库编号 */
|
|
153
|
+
public whId?: string | null;
|
|
154
|
+
|
|
155
|
+
public constructor(obj?: WhDTO) {
|
|
156
|
+
keys(obj ?? {}).forEach((key: PropertyKey) => {
|
|
157
|
+
switch (key) {
|
|
158
|
+
case 'activeFlg':
|
|
159
|
+
case 'adrId':
|
|
160
|
+
case 'adrnam':
|
|
161
|
+
case 'comCod':
|
|
162
|
+
case 'defWhFlg':
|
|
163
|
+
case 'id':
|
|
164
|
+
case 'orgcod':
|
|
165
|
+
case 'permAdjLod':
|
|
166
|
+
case 'permAdjSub':
|
|
167
|
+
case 'permCreLod':
|
|
168
|
+
case 'permCreSub':
|
|
169
|
+
case 'whDsc':
|
|
170
|
+
case 'whId':
|
|
171
|
+
Reflect.set(this, key, Reflect.get(obj ?? {}, key));
|
|
172
|
+
break;
|
|
173
|
+
default:
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* 获取对象的属性名数组.
|
|
182
|
+
* @param obj 对象.
|
|
183
|
+
*/
|
|
184
|
+
export function keys<C extends object>(obj: C): Array<keyof C> {
|
|
185
|
+
const type = typeof obj;
|
|
186
|
+
|
|
187
|
+
if (!(obj != null && (type === 'object' || type === 'function'))) {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return Reflect.ownKeys(obj) as Array<keyof C>;
|
|
192
|
+
}
|
package/dist/api/api.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { WMSAPI as WMS } from './WMS';
|
|
1
|
+
export { WMSAPI as WMS } from './WMS';
|
package/dist/api/def.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { WMSDEF as WMS } from './WMS';
|
|
1
|
+
export { WMSDEF as WMS } from './WMS';
|
package/dist/api/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * as API from './api';
|
|
2
|
-
export * as DEF from './def';
|
|
1
|
+
export * as API from './api';
|
|
2
|
+
export * as DEF from './def';
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
import { UniIcons, UniNavBar } from '../../uni';
|
|
15
15
|
import { Kg } from '../../util';
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* 顶部标题栏.
|
|
19
|
+
*/
|
|
20
|
+
|
|
17
21
|
//region DATA
|
|
18
22
|
// ----------------------------------------------------------------------------------------------------
|
|
19
23
|
/** 标题. */
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<view class="kg-update-popup">
|
|
3
|
+
<UniPopup ref="popupRef" type="dialog">
|
|
4
|
+
<UniPopupDialog
|
|
5
|
+
:beforeClose="true"
|
|
6
|
+
:cancelText="downloadTask ? '取消升级' : '以后再说'"
|
|
7
|
+
:confirmText="downloadTask ? (downloadProgress < 100 ? '正在下载' : '下载完成') : '立即升级'"
|
|
8
|
+
title="检测到新版本"
|
|
9
|
+
@close="cancel"
|
|
10
|
+
@confirm="confirm"
|
|
11
|
+
>
|
|
12
|
+
<template v-slot>
|
|
13
|
+
<progress v-if="downloadTask" :percent="downloadProgress" show-info />
|
|
14
|
+
<text v-else class="message">优化用户体验,修复已知问题</text>
|
|
15
|
+
</template>
|
|
16
|
+
</UniPopupDialog>
|
|
17
|
+
</UniPopup>
|
|
18
|
+
</view>
|
|
19
|
+
</template>
|
|
20
|
+
|
|
21
|
+
<script lang="ts" name="KgUpdatePopup" setup>
|
|
22
|
+
import { onMounted, onUnmounted, ref } from 'vue';
|
|
23
|
+
import { UniPopup, UniPopupDialog } from '../../uni';
|
|
24
|
+
import { useAppStore } from '../../store/app.store';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 版本升级弹窗.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
const appStore = useAppStore();
|
|
31
|
+
|
|
32
|
+
//region DATA
|
|
33
|
+
// ----------------------------------------------------------------------------------------------------
|
|
34
|
+
const popupRef = ref<any>(null);
|
|
35
|
+
/** 下载任务. */
|
|
36
|
+
const downloadTask = ref<UniNamespace.DownloadTask | null>(null);
|
|
37
|
+
/** 下载进度. */
|
|
38
|
+
const downloadProgress = ref<number>(0);
|
|
39
|
+
/** 最新版本. */
|
|
40
|
+
const version = ref<number>(0);
|
|
41
|
+
/** 更新下载进度的计时器, 用来模拟下载进度. */
|
|
42
|
+
const downloadProgressTimer = ref<number>(-1);
|
|
43
|
+
/** 退订弹窗打开事件. */
|
|
44
|
+
const unsubscribe = ref<(() => void) | null>(null);
|
|
45
|
+
//endregion
|
|
46
|
+
|
|
47
|
+
//region FUNCTION
|
|
48
|
+
// ----------------------------------------------------------------------------------------------------
|
|
49
|
+
/**
|
|
50
|
+
* 立即升级.
|
|
51
|
+
*/
|
|
52
|
+
function confirm() {
|
|
53
|
+
if (downloadTask.value) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
downloadTask.value = uni.downloadFile({
|
|
58
|
+
url: `${appStore.getApiUrl}/sys/common/static/apks/release/WMS-PDA-${version.value}.apk`,
|
|
59
|
+
success: (response) => {
|
|
60
|
+
clearInterval(downloadProgressTimer.value);
|
|
61
|
+
|
|
62
|
+
switch (response.statusCode) {
|
|
63
|
+
case 200:
|
|
64
|
+
downloadProgress.value = 100;
|
|
65
|
+
plus.runtime.install(response.tempFilePath);
|
|
66
|
+
break;
|
|
67
|
+
|
|
68
|
+
default:
|
|
69
|
+
close();
|
|
70
|
+
uni.showToast({ title: String(response.errMsg || response.statusCode), icon: 'none' });
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
fail: (e) => {
|
|
75
|
+
close();
|
|
76
|
+
uni.showToast({ title: e, icon: 'none' });
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
downloadProgressTimer.value = setInterval(() => {
|
|
81
|
+
const delta = Math.floor(Math.random() * 5);
|
|
82
|
+
downloadProgress.value = Math.min(downloadProgress.value + delta, 99);
|
|
83
|
+
|
|
84
|
+
if (downloadProgress.value === 99) {
|
|
85
|
+
clearInterval(downloadProgressTimer.value);
|
|
86
|
+
}
|
|
87
|
+
}, 500);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* 取消升级.
|
|
92
|
+
*/
|
|
93
|
+
function cancel() {
|
|
94
|
+
appStore.setIsUpdateCancel(true);
|
|
95
|
+
|
|
96
|
+
downloadTask.value?.abort();
|
|
97
|
+
downloadTask.value = null;
|
|
98
|
+
downloadProgress.value = 0;
|
|
99
|
+
|
|
100
|
+
clearInterval(downloadProgressTimer.value);
|
|
101
|
+
|
|
102
|
+
popupRef.value?.close();
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* 关闭弹窗.
|
|
107
|
+
*/
|
|
108
|
+
function close() {
|
|
109
|
+
downloadTask.value?.abort();
|
|
110
|
+
downloadTask.value = null;
|
|
111
|
+
downloadProgress.value = 0;
|
|
112
|
+
|
|
113
|
+
clearInterval(downloadProgressTimer.value);
|
|
114
|
+
|
|
115
|
+
popupRef.value?.close();
|
|
116
|
+
}
|
|
117
|
+
//endregion
|
|
118
|
+
|
|
119
|
+
onMounted(() => {
|
|
120
|
+
unsubscribe.value = appStore.$onAction(async ({ name, args }) => {
|
|
121
|
+
switch (name) {
|
|
122
|
+
case 'openKgUpdatePopup':
|
|
123
|
+
version.value = args[0];
|
|
124
|
+
popupRef.value?.open();
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
onUnmounted(() => {
|
|
131
|
+
downloadTask.value?.abort();
|
|
132
|
+
downloadTask.value = null;
|
|
133
|
+
downloadProgress.value = 0;
|
|
134
|
+
|
|
135
|
+
clearInterval(downloadProgressTimer.value);
|
|
136
|
+
unsubscribe.value?.();
|
|
137
|
+
});
|
|
138
|
+
</script>
|
|
139
|
+
|
|
140
|
+
<style lang="scss" scoped>
|
|
141
|
+
.kg-update-popup uni-progress {
|
|
142
|
+
width: 100%;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.kg-update-popup .message {
|
|
146
|
+
font-size: 14px;
|
|
147
|
+
}
|
|
148
|
+
</style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as KgUpdatePopup } from './KgUpdatePopup.vue';
|
package/dist/component/index.ts
CHANGED
package/dist/store/app.store.ts
CHANGED
|
@@ -9,6 +9,9 @@ interface IAppState {
|
|
|
9
9
|
|
|
10
10
|
/** 当前登录用户. */
|
|
11
11
|
user: SysUser | null;
|
|
12
|
+
|
|
13
|
+
/** 是否取消本次升级. 取消之后, 使用应用期间不会再提示升级, 下次重新打开应用才会提示升级. */
|
|
14
|
+
isUpdateCancel: boolean;
|
|
12
15
|
}
|
|
13
16
|
|
|
14
17
|
export const useAppStore = defineStore('app', {
|
|
@@ -16,6 +19,7 @@ export const useAppStore = defineStore('app', {
|
|
|
16
19
|
apiUrl: '',
|
|
17
20
|
token: '',
|
|
18
21
|
user: {},
|
|
22
|
+
isUpdateCancel: false,
|
|
19
23
|
}),
|
|
20
24
|
getters: {
|
|
21
25
|
getApiUrl(state) {
|
|
@@ -30,6 +34,11 @@ export const useAppStore = defineStore('app', {
|
|
|
30
34
|
getUser(state) {
|
|
31
35
|
return state.user || uni.getStorageSync(STORAGE_KEYS.USER);
|
|
32
36
|
},
|
|
37
|
+
|
|
38
|
+
/** 是否取消本次升级. */
|
|
39
|
+
getIsUpdateCancel(state) {
|
|
40
|
+
return state.isUpdateCancel;
|
|
41
|
+
},
|
|
33
42
|
},
|
|
34
43
|
actions: {
|
|
35
44
|
setApiUrl(apiUrl: string) {
|
|
@@ -47,6 +56,10 @@ export const useAppStore = defineStore('app', {
|
|
|
47
56
|
this.user = user;
|
|
48
57
|
},
|
|
49
58
|
|
|
59
|
+
setIsUpdateCancel(value: boolean) {
|
|
60
|
+
this.isUpdateCancel = value;
|
|
61
|
+
},
|
|
62
|
+
|
|
50
63
|
/**
|
|
51
64
|
* 退出登录.
|
|
52
65
|
*/
|
|
@@ -58,5 +71,11 @@ export const useAppStore = defineStore('app', {
|
|
|
58
71
|
this.setUser(null);
|
|
59
72
|
uni.reLaunch({ url: '/pages/login/Login' });
|
|
60
73
|
},
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* 打开更新弹窗.
|
|
77
|
+
* @param version 最新版本.
|
|
78
|
+
*/
|
|
79
|
+
openKgUpdatePopup(version: number) {},
|
|
61
80
|
},
|
|
62
81
|
});
|
package/dist/util/kg.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { isArray, isObjectLike } from 'lodash-es';
|
|
2
2
|
import { toRaw, unref } from 'vue';
|
|
3
|
+
import { API } from '../api';
|
|
3
4
|
import { useKgWarehouse } from '../component';
|
|
5
|
+
import { useAppStore } from '../store/app.store';
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* 通用工具.
|
|
@@ -71,6 +73,46 @@ export class Kg {
|
|
|
71
73
|
Kg.getCurrentWebview()?.evalJS(js);
|
|
72
74
|
}
|
|
73
75
|
|
|
76
|
+
/**
|
|
77
|
+
* 检查更新.
|
|
78
|
+
* @param isShowToast 是否显示消息提示.
|
|
79
|
+
* @param isRespectCancel 是否检查「取消本次更新」.
|
|
80
|
+
* @return {boolean} 是否有新版本.
|
|
81
|
+
*/
|
|
82
|
+
public static async checkForUpdate(isShowToast: boolean = true, isRespectCancel: boolean = false): Promise<boolean> {
|
|
83
|
+
// #ifdef APP-PLUS
|
|
84
|
+
|
|
85
|
+
const appStore = useAppStore();
|
|
86
|
+
|
|
87
|
+
if (isRespectCancel && appStore.getIsUpdateCancel) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// 当前版本
|
|
92
|
+
const oldVersion: number = Number(plus.runtime.versionCode);
|
|
93
|
+
|
|
94
|
+
try {
|
|
95
|
+
const newVersion = await API.WMS.CommonController.GetLatestApkVersion();
|
|
96
|
+
|
|
97
|
+
// 无新版本
|
|
98
|
+
if (newVersion === 0 || oldVersion >= newVersion) {
|
|
99
|
+
if (isShowToast) {
|
|
100
|
+
uni.showToast({ title: '已是最新版本.', icon: 'none' });
|
|
101
|
+
}
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// 有新版本
|
|
106
|
+
appStore.openKgUpdatePopup(newVersion);
|
|
107
|
+
return true;
|
|
108
|
+
} catch (e) {
|
|
109
|
+
console.error(e);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return false;
|
|
113
|
+
// #endif
|
|
114
|
+
}
|
|
115
|
+
|
|
74
116
|
/**
|
|
75
117
|
* 处理请求参数: 解析字符串类型的参数值.
|
|
76
118
|
* @param value 参数的原始值.
|
package/package.json
CHANGED
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kengic/uni",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7-beta.0",
|
|
4
4
|
"scripts": {
|
|
5
|
-
"build": "rimraf dist && vue-tsc && vite build",
|
|
5
|
+
"build": "npm run switch-node-version && rimraf dist && vue-tsc && vite build",
|
|
6
|
+
"------ -------------------------------------------": "",
|
|
6
7
|
"publish:all:beta": "npm run bump-version:beta && npm run publish:all",
|
|
7
8
|
"publish:all:patch": "npm run bump-version:patch && npm run publish:all",
|
|
8
9
|
"publish:all:minor": "npm run bump-version:minor && npm run publish:all",
|
|
9
10
|
"publish:all:major": "npm run bump-version:major && npm run publish:all",
|
|
10
|
-
"
|
|
11
|
-
"gen:apis:WMS": "kengic-pont generate-apis --config kg.config.ts --origin WMS",
|
|
12
|
-
"-
|
|
11
|
+
"--------------------------------------------------": "",
|
|
12
|
+
"gen:apis:WMS": "npm run switch-node-version && kengic-pont generate-apis --config kg.config.ts --origin WMS",
|
|
13
|
+
"- ------------------------------------------------": "",
|
|
13
14
|
"bump-to:luotao.wms-pda--dev-1.0": "npm run switch-node-version && node scripts/bump-to.luotao.wms-pda--dev-1.0.mjs --experimental-default-type=module",
|
|
14
15
|
"copy-to:luotao.wms-pda--dev-1.0": "npm run build && node scripts/copy-to.luotao.wms-pda--dev-1.0.mjs --experimental-default-type=module",
|
|
15
16
|
"bump-to:luotao.wms-pda--focus": "npm run switch-node-version && node scripts/bump-to.luotao.wms-pda--focus.mjs --experimental-default-type=module",
|
|
16
17
|
"copy-to:luotao.wms-pda--focus": "npm run build && node scripts/copy-to.luotao.wms-pda--focus.mjs --experimental-default-type=module",
|
|
17
|
-
"--
|
|
18
|
+
"-- -----------------------------------------------": "",
|
|
18
19
|
"cnpm:sync": "cnpm sync @kengic/uni",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"bump-version:
|
|
23
|
-
"bump-version:
|
|
24
|
-
"
|
|
25
|
-
"
|
|
20
|
+
"--- ----------------------------------------------": "",
|
|
21
|
+
"switch-node-version": "nvm use 20.11.0 && corepack enable && corepack prepare pnpm@7.30.5",
|
|
22
|
+
"---- ---------------------------------------------": "",
|
|
23
|
+
"bump-version:beta": "npm run switch-node-version && node scripts/bump.mjs beta --experimental-default-type=module",
|
|
24
|
+
"bump-version:major": "npm run switch-node-version && node scripts/bump.mjs major --experimental-default-type=module",
|
|
25
|
+
"bump-version:minor": "npm run switch-node-version && node scripts/bump.mjs minor --experimental-default-type=module",
|
|
26
|
+
"bump-version:patch": "npm run switch-node-version && node scripts/bump.mjs patch --experimental-default-type=module",
|
|
27
|
+
"----- --------------------------------------------": "",
|
|
28
|
+
"publish:all": "npm run switch-node-version && node scripts/publish.mjs --experimental-default-type=module",
|
|
29
|
+
"publish:npm": "npm run switch-node-version && npmrc kengic && npm publish ./ --registry https://registry.npmjs.org/ --access public"
|
|
26
30
|
},
|
|
27
31
|
"dependencies": {
|
|
28
32
|
"@ant-design/icons-vue": "~6.1.0",
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
},
|
|
39
43
|
"devDependencies": {
|
|
40
44
|
"@dcloudio/types": "~3.3.3",
|
|
41
|
-
"@kengic/pont": "~1.2.
|
|
45
|
+
"@kengic/pont": "~1.2.12",
|
|
42
46
|
"@types/lodash-es": "~4.17.7",
|
|
43
47
|
"@types/node": "~18.14.6",
|
|
44
48
|
"@types/semver": "~7.3.13",
|
|
@@ -46,13 +50,12 @@
|
|
|
46
50
|
"@vitejs/plugin-vue": "~4.2.1",
|
|
47
51
|
"chalk": "~4.1.2",
|
|
48
52
|
"less": "~4.1.3",
|
|
49
|
-
"prettier": "~2.
|
|
53
|
+
"prettier": "~3.2.4",
|
|
50
54
|
"rimraf": "~3.0.2",
|
|
51
55
|
"rollup": "~2.79.1",
|
|
52
56
|
"sass": "~1.62.1",
|
|
53
57
|
"sass-loader": "~10.4.1",
|
|
54
58
|
"semver": "~7.3.8",
|
|
55
|
-
"tsx": "~3.12.7",
|
|
56
59
|
"typescript": "~4.9.5",
|
|
57
60
|
"vite": "~4.3.4",
|
|
58
61
|
"vue": "~3.2.47",
|