@kengic/uni 0.6.1 → 0.6.2-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/index.ts +1 -1
- 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 -92
- package/dist/api/WMS/Controllers/WhController/index.ts +1 -1
- package/dist/api/WMS/Controllers/index.ts +3 -3
- package/dist/api/WMS/index.ts +2 -2
- package/dist/api/WMS/models.ts +192 -192
- package/dist/api/api.ts +1 -1
- package/dist/api/def.ts +1 -1
- package/dist/api/index.ts +2 -2
- package/dist/component/KgWarehouse/index.store.ts +2 -2
- package/dist/const/index.ts +2 -0
- package/dist/const/index.vm.ts +69 -0
- package/dist/service/http-client.ts +86 -14
- package/dist/util/kg.ts +267 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
export { GetLatestApkVersion, GetLatestApkVersionQuery } from './GetLatestApkVersion';
|
|
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,92 +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 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
|
+
// 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,3 +1,3 @@
|
|
|
1
|
-
export * as CommonController from './CommonController';
|
|
2
|
-
export * as LoginController from './LoginController';
|
|
3
|
-
export * as WhController from './WhController';
|
|
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,192 +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 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
|
-
}
|
|
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';
|
|
@@ -9,7 +9,7 @@ export interface IKgWarehouseState {
|
|
|
9
9
|
warehouse: WhDTO | null;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
export type
|
|
12
|
+
export type IUseKgWarehouseStore = StoreDefinition<
|
|
13
13
|
'KgWarehouse',
|
|
14
14
|
IKgWarehouseState,
|
|
15
15
|
{
|
|
@@ -20,7 +20,7 @@ export type IKgWarehouseStoreDefinition = StoreDefinition<
|
|
|
20
20
|
}
|
|
21
21
|
>;
|
|
22
22
|
|
|
23
|
-
export type IKgWarehouseStore = ReturnType<
|
|
23
|
+
export type IKgWarehouseStore = ReturnType<IUseKgWarehouseStore>;
|
|
24
24
|
|
|
25
25
|
export const useKgWarehouseStore = defineStore('KgWarehouse', {
|
|
26
26
|
state: (): IKgWarehouseState => ({
|
package/dist/const/index.ts
CHANGED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/** 高级查询的操作符. */
|
|
2
|
+
export enum KG_DYNAMIC_QUERY_OPERATOR {
|
|
3
|
+
/** 等于. */
|
|
4
|
+
EQ = 'EQ',
|
|
5
|
+
|
|
6
|
+
/** 不等于. */
|
|
7
|
+
NE = 'NE',
|
|
8
|
+
|
|
9
|
+
/** 大于. */
|
|
10
|
+
GT = 'GT',
|
|
11
|
+
|
|
12
|
+
/** 小于. */
|
|
13
|
+
LT = 'LT',
|
|
14
|
+
|
|
15
|
+
/** 大于等于. */
|
|
16
|
+
GTE = 'GTE',
|
|
17
|
+
|
|
18
|
+
/** 小于等于. */
|
|
19
|
+
LTE = 'LTE',
|
|
20
|
+
|
|
21
|
+
/** 以之开始. */
|
|
22
|
+
START_WITH = 'START',
|
|
23
|
+
|
|
24
|
+
/** 以之结束. */
|
|
25
|
+
END_WITH = 'END',
|
|
26
|
+
|
|
27
|
+
/** 包含. */
|
|
28
|
+
CONTAIN = 'CONTAIN',
|
|
29
|
+
|
|
30
|
+
/** 属于. */
|
|
31
|
+
IN = 'IN',
|
|
32
|
+
|
|
33
|
+
/** 范围之内. */
|
|
34
|
+
BETWEEN = 'BETWEEN',
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** 请求头部. */
|
|
38
|
+
export enum KG_HTTP_HEADERS {
|
|
39
|
+
/** 界面标识. */
|
|
40
|
+
KG_FORM_ID = 'Kg-Form-Id',
|
|
41
|
+
|
|
42
|
+
KG_BUTTON_VAR_NAME = 'Kg-Button-Var-Name',
|
|
43
|
+
|
|
44
|
+
/** 是否启用高级查询. */
|
|
45
|
+
KG_IS_DYNAMIC_QUERY = 'Kg-Is-Dynamic-Query',
|
|
46
|
+
|
|
47
|
+
/** 查询语句中的 WHERE 片段. */
|
|
48
|
+
KG_QUERY_WHERE_SQL = 'Kg-Query-Where-Sql',
|
|
49
|
+
|
|
50
|
+
/** 查询语句中的 ORDER BY 片段. */
|
|
51
|
+
KG_QUERY_ORDER_BY_SQL = 'Kg-Query-Order-By-Sql',
|
|
52
|
+
|
|
53
|
+
/** 查询语句中的 OFFSET 片段. */
|
|
54
|
+
KG_QUERY_OFFSET_SQL = 'Kg-Query-Offset-Sql',
|
|
55
|
+
|
|
56
|
+
/** 查询语句中的 WHERE + ORDER BY + OFFSET 片段. */
|
|
57
|
+
KG_QUERY_SQL = 'Kg-Query-Sql',
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* <p>高级查询时, 每个查询字段的操作符(=,>,<...).</p>
|
|
61
|
+
* <p>是一个 JSON 字符串, 由后端进行解析. 其中的 key 表示查询字段的名称, 其中的 value 表示查询字段的操作符.</p>
|
|
62
|
+
*/
|
|
63
|
+
KG_QUERY_OPERATOR = 'Kg-Query-Operator',
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* 仓库编号.
|
|
67
|
+
*/
|
|
68
|
+
KG_WAREHOUSE = 'Kg-Warehouse',
|
|
69
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { useAppStore } from '../store/app.store';
|
|
2
2
|
import { Kg } from '../util';
|
|
3
|
+
import { KG_DYNAMIC_QUERY_OPERATOR, KG_HTTP_HEADERS } from '../const';
|
|
4
|
+
import { useKgWarehouse } from '../component/KgWarehouse/index.hooks';
|
|
3
5
|
|
|
4
6
|
/*
|
|
5
7
|
* 对请求做统一的拦截.
|
|
@@ -50,18 +52,25 @@ type IHttpClient = {
|
|
|
50
52
|
|
|
51
53
|
/** 请求配置. */
|
|
52
54
|
type IRequestOptions = Omit<UniApp.RequestOptions, 'url'> & {
|
|
55
|
+
/**
|
|
56
|
+
* 如果该参数不为空, 表示该请求启用了高级查询, 该参数包含各个字段的高级查询操作符.
|
|
57
|
+
*/
|
|
58
|
+
dynamicQueryOperatorModel?: Record<string, KG_DYNAMIC_QUERY_OPERATOR>;
|
|
59
|
+
|
|
53
60
|
/** 是否不显示错误消息提示. */
|
|
54
|
-
|
|
61
|
+
isSuppressError?: boolean;
|
|
62
|
+
|
|
55
63
|
/** 是否处理请求结果. */
|
|
56
64
|
isTransformResponse?: boolean;
|
|
65
|
+
|
|
57
66
|
/** 是否使用模拟数据. */
|
|
58
67
|
mock?: boolean;
|
|
59
68
|
};
|
|
60
69
|
|
|
61
70
|
/** 请求参数. */
|
|
62
|
-
interface IRequestConfig<
|
|
63
|
-
params?:
|
|
64
|
-
data?:
|
|
71
|
+
interface IRequestConfig<T1 = {}, T2 = {}> {
|
|
72
|
+
params?: T1;
|
|
73
|
+
data?: T2;
|
|
65
74
|
}
|
|
66
75
|
|
|
67
76
|
/**
|
|
@@ -91,20 +100,20 @@ function handleSuccess<T = any>(
|
|
|
91
100
|
* @param response
|
|
92
101
|
* @param resolve
|
|
93
102
|
* @param reject
|
|
94
|
-
* @param
|
|
103
|
+
* @param isSuppressError 是否不显示错误消息提示.
|
|
95
104
|
*/
|
|
96
105
|
function handleError<T = any>(
|
|
97
106
|
response: UniApp.RequestSuccessCallbackResult,
|
|
98
107
|
resolve: (value: T | PromiseLike<T>) => void,
|
|
99
108
|
reject: (reason?: any) => void,
|
|
100
|
-
|
|
109
|
+
isSuppressError: boolean,
|
|
101
110
|
) {
|
|
102
111
|
// @ts-ignore
|
|
103
112
|
if (response.errMsg === 'request:fail') {
|
|
104
113
|
return;
|
|
105
114
|
}
|
|
106
115
|
|
|
107
|
-
if (!
|
|
116
|
+
if (!isSuppressError) {
|
|
108
117
|
// @ts-ignore
|
|
109
118
|
const message = (response.data as any)?.message || response?.errMsg || '请求出错';
|
|
110
119
|
uni.showToast({ title: message, icon: 'none', duration: 3000 });
|
|
@@ -124,10 +133,12 @@ const _httpClient: IHttpClient = {
|
|
|
124
133
|
options?: IRequestOptions,
|
|
125
134
|
) {
|
|
126
135
|
const { method, url, params, data } = config;
|
|
136
|
+
|
|
127
137
|
return new Promise<T>((resolve, reject) => {
|
|
138
|
+
let _url = url;
|
|
139
|
+
|
|
128
140
|
// 对于 POST 请求, uni.request() 会统一将参数放到 body 参数里面而不是 query 参数里面,
|
|
129
141
|
// 因此如果 POST 请求包含 query 参数, 需要手动拼接到 url 后面.
|
|
130
|
-
let _url = url;
|
|
131
142
|
if (['POST', 'PUT', 'DELETE'].includes(method) && params) {
|
|
132
143
|
try {
|
|
133
144
|
const queryString = Object.keys(params)
|
|
@@ -142,11 +153,72 @@ const _httpClient: IHttpClient = {
|
|
|
142
153
|
}
|
|
143
154
|
}
|
|
144
155
|
|
|
156
|
+
let header: any = options?.header;
|
|
157
|
+
|
|
158
|
+
if (!header) {
|
|
159
|
+
header = {};
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const KG_IS_DYNAMIC_QUERY = KG_HTTP_HEADERS.KG_IS_DYNAMIC_QUERY;
|
|
163
|
+
const KG_QUERY_WHERE_SQL = KG_HTTP_HEADERS.KG_QUERY_WHERE_SQL;
|
|
164
|
+
const KG_QUERY_ORDER_BY_SQL = KG_HTTP_HEADERS.KG_QUERY_ORDER_BY_SQL;
|
|
165
|
+
const KG_QUERY_OFFSET_SQL = KG_HTTP_HEADERS.KG_QUERY_OFFSET_SQL;
|
|
166
|
+
const KG_QUERY_SQL = KG_HTTP_HEADERS.KG_QUERY_SQL;
|
|
167
|
+
const KG_QUERY_OPERATOR = KG_HTTP_HEADERS.KG_QUERY_OPERATOR;
|
|
168
|
+
|
|
169
|
+
// 启用高级查询
|
|
170
|
+
if (options?.dynamicQueryOperatorModel) {
|
|
171
|
+
let params: any = {};
|
|
172
|
+
|
|
173
|
+
if (config.method === 'GET') {
|
|
174
|
+
params = config.params;
|
|
175
|
+
} else if (config.method === 'POST' && !config.data && config.params) {
|
|
176
|
+
params = config.params;
|
|
177
|
+
} else if (config.method === 'POST' && config.data) {
|
|
178
|
+
params = config.data;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const { sql, whereSql, orderBySql, offsetSql, operatorJSON } = Kg.getQueryHeaders({
|
|
182
|
+
dynamicQueryOperatorModel: options?.dynamicQueryOperatorModel,
|
|
183
|
+
params: params,
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
header = {
|
|
187
|
+
...(header ?? {}),
|
|
188
|
+
[KG_IS_DYNAMIC_QUERY]: true,
|
|
189
|
+
[KG_QUERY_OFFSET_SQL]: offsetSql,
|
|
190
|
+
[KG_QUERY_OPERATOR]: operatorJSON,
|
|
191
|
+
[KG_QUERY_ORDER_BY_SQL]: orderBySql,
|
|
192
|
+
[KG_QUERY_SQL]: sql,
|
|
193
|
+
[KG_QUERY_WHERE_SQL]: whereSql,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (header[KG_QUERY_WHERE_SQL]) {
|
|
198
|
+
header[KG_QUERY_WHERE_SQL] = encodeURIComponent(decodeURIComponent(String(header[KG_QUERY_WHERE_SQL])));
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
if (header[KG_QUERY_ORDER_BY_SQL]) {
|
|
202
|
+
header[KG_QUERY_ORDER_BY_SQL] = encodeURIComponent(decodeURIComponent(String(header[KG_QUERY_ORDER_BY_SQL])));
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (header[KG_QUERY_OFFSET_SQL]) {
|
|
206
|
+
header[KG_QUERY_OFFSET_SQL] = encodeURIComponent(decodeURIComponent(String(header[KG_QUERY_OFFSET_SQL])));
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
if (header[KG_QUERY_SQL]) {
|
|
210
|
+
header[KG_QUERY_SQL] = encodeURIComponent(decodeURIComponent(String(header[KG_QUERY_SQL])));
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// 仓库编号
|
|
214
|
+
const warehouseId = useKgWarehouse().warehouse.value?.whId ?? '';
|
|
215
|
+
header[KG_HTTP_HEADERS.KG_WAREHOUSE] = encodeURIComponent(warehouseId);
|
|
216
|
+
|
|
145
217
|
uni.request({
|
|
146
218
|
...(options ?? {}),
|
|
147
|
-
method,
|
|
219
|
+
method: method,
|
|
148
220
|
url: _url,
|
|
149
|
-
header:
|
|
221
|
+
header: header,
|
|
150
222
|
data: { ...(params ?? {}), ...(data ?? {}) },
|
|
151
223
|
success(response) {
|
|
152
224
|
switch (response.statusCode) {
|
|
@@ -167,11 +239,11 @@ const _httpClient: IHttpClient = {
|
|
|
167
239
|
|
|
168
240
|
case 405:
|
|
169
241
|
response.data.message = `${response.data.code}: ${response.data.message}`;
|
|
170
|
-
handleError<T>(response, resolve, reject, options?.
|
|
242
|
+
handleError<T>(response, resolve, reject, options?.isSuppressError ?? false);
|
|
171
243
|
break;
|
|
172
244
|
|
|
173
245
|
case 500:
|
|
174
|
-
handleError<T>(response, resolve, reject, options?.
|
|
246
|
+
handleError<T>(response, resolve, reject, options?.isSuppressError ?? false);
|
|
175
247
|
break;
|
|
176
248
|
}
|
|
177
249
|
}
|
|
@@ -189,12 +261,12 @@ const _httpClient: IHttpClient = {
|
|
|
189
261
|
break;
|
|
190
262
|
|
|
191
263
|
default:
|
|
192
|
-
handleError<T>(response, resolve, reject, options?.
|
|
264
|
+
handleError<T>(response, resolve, reject, options?.isSuppressError ?? false);
|
|
193
265
|
break;
|
|
194
266
|
}
|
|
195
267
|
},
|
|
196
268
|
fail(err) {
|
|
197
|
-
handleError<T>(err as any, resolve, reject, options?.
|
|
269
|
+
handleError<T>(err as any, resolve, reject, options?.isSuppressError ?? false);
|
|
198
270
|
},
|
|
199
271
|
});
|
|
200
272
|
});
|
package/dist/util/kg.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { isArray, isObjectLike } from 'lodash-es';
|
|
1
|
+
import { cloneDeep, isArray, isNil, isObjectLike, reduce } from 'lodash-es';
|
|
2
2
|
import { toRaw, unref } from 'vue';
|
|
3
3
|
import { API } from '../api';
|
|
4
4
|
import { useKgWarehouse } from '../component';
|
|
5
5
|
import { useAppStore } from '../store/app.store';
|
|
6
|
+
import { KG_DYNAMIC_QUERY_OPERATOR } from '../const';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* 通用工具.
|
|
@@ -159,4 +160,269 @@ export class Kg {
|
|
|
159
160
|
return value;
|
|
160
161
|
}
|
|
161
162
|
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* <p>获取根据查询条件拼接后的 SQL 语句片段.</p>
|
|
166
|
+
*
|
|
167
|
+
* @param param.$dayjs dayjs.
|
|
168
|
+
* @param param.dynamicQueryOperators 各个字段的高级查询操作符.
|
|
169
|
+
* @param param.formID 界面标识.
|
|
170
|
+
* @param param.kgSearchFormID 查询条件的界面标识.
|
|
171
|
+
* @param param.params 请求参数.
|
|
172
|
+
*/
|
|
173
|
+
public static getQueryHeaders(param: {
|
|
174
|
+
dynamicQueryOperatorModel: Record<string, any> | null | undefined;
|
|
175
|
+
params: Record<string, any> | null | undefined;
|
|
176
|
+
}) {
|
|
177
|
+
const { params, dynamicQueryOperatorModel } = param ?? {};
|
|
178
|
+
|
|
179
|
+
let _params = cloneDeep(toRaw(unref(params ?? {})));
|
|
180
|
+
|
|
181
|
+
// 参数不是一个对象,
|
|
182
|
+
if (!_params || !isObjectLike(_params)) {
|
|
183
|
+
return { offsetSql: '', operatorJSON: '', orderBySql: '', sql: '', whereSql: '' };
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// 特殊字段, 这些特殊字段的值不做处理, 保持原样
|
|
187
|
+
const SPECIAL_FIELD_KEYS = ['pageNo', 'pageSize', 'column', 'order'];
|
|
188
|
+
|
|
189
|
+
const _paramsForWhereSql: Record<string, any> = {};
|
|
190
|
+
Object.keys(_params)
|
|
191
|
+
.sort()
|
|
192
|
+
.forEach((key) => {
|
|
193
|
+
// 特殊字段, 不放进 WHERE SQL 中
|
|
194
|
+
if (SPECIAL_FIELD_KEYS.includes(key)) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// 辅助属性, 用于业务逻辑, 不放进 WHERE SQL 中,
|
|
199
|
+
if (key.endsWith('_obj')) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
let _key = key;
|
|
204
|
+
const value = _params[key];
|
|
205
|
+
let operator: string = dynamicQueryOperatorModel?.[key] ?? KG_DYNAMIC_QUERY_OPERATOR.EQ;
|
|
206
|
+
|
|
207
|
+
switch (true) {
|
|
208
|
+
// array
|
|
209
|
+
case Array.isArray(value): {
|
|
210
|
+
if (value.length === 0) {
|
|
211
|
+
_paramsForWhereSql[key] = undefined;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
const _value = value.map((i: any) => `N'${String(i)}'`).join(', ');
|
|
216
|
+
|
|
217
|
+
_paramsForWhereSql[key] = ` AND (${_key} IN (${_value}))`;
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// object
|
|
222
|
+
case isObjectLike(value): {
|
|
223
|
+
throw new Error('不支持的参数类型.');
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// string
|
|
227
|
+
case typeof value === 'string': {
|
|
228
|
+
// 空白字符
|
|
229
|
+
if (value.trim() === '') {
|
|
230
|
+
_paramsForWhereSql[key] = undefined;
|
|
231
|
+
break;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
let _strValue = value;
|
|
235
|
+
|
|
236
|
+
switch (operator) {
|
|
237
|
+
case KG_DYNAMIC_QUERY_OPERATOR.NE: {
|
|
238
|
+
_strValue = ` AND (${_key} <> N'${_strValue}')`;
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
case KG_DYNAMIC_QUERY_OPERATOR.START_WITH: {
|
|
243
|
+
_strValue = ` AND (${_key} LIKE N'${_strValue}%')`;
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
case KG_DYNAMIC_QUERY_OPERATOR.END_WITH: {
|
|
248
|
+
_strValue = ` AND (${_key} LIKE N'%${_strValue}')`;
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
case KG_DYNAMIC_QUERY_OPERATOR.CONTAIN: {
|
|
253
|
+
_strValue = ` AND (${_key} LIKE N'%${_strValue}%')`;
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
case KG_DYNAMIC_QUERY_OPERATOR.EQ:
|
|
258
|
+
default: {
|
|
259
|
+
_strValue = ` AND (${_key} = N'${_strValue}')`;
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
_paramsForWhereSql[key] = _strValue;
|
|
265
|
+
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// number
|
|
270
|
+
case typeof value === 'number': {
|
|
271
|
+
let _strValue = '';
|
|
272
|
+
|
|
273
|
+
switch (operator) {
|
|
274
|
+
case KG_DYNAMIC_QUERY_OPERATOR.NE: {
|
|
275
|
+
_strValue = ` AND (${_key} <> ${value})`;
|
|
276
|
+
break;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
case KG_DYNAMIC_QUERY_OPERATOR.LT: {
|
|
280
|
+
_strValue = ` AND (${_key} < ${value})`;
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
case KG_DYNAMIC_QUERY_OPERATOR.LTE: {
|
|
285
|
+
_strValue = ` AND (${_key} <= ${value})`;
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
case KG_DYNAMIC_QUERY_OPERATOR.GT: {
|
|
290
|
+
_strValue = ` AND (${_key} > ${value})`;
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
case KG_DYNAMIC_QUERY_OPERATOR.GTE: {
|
|
295
|
+
_strValue = ` AND (${_key} >= ${value})`;
|
|
296
|
+
break;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
case KG_DYNAMIC_QUERY_OPERATOR.EQ:
|
|
300
|
+
default: {
|
|
301
|
+
_strValue = ` AND (${_key} = ${value})`;
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
_paramsForWhereSql[key] = _strValue;
|
|
307
|
+
|
|
308
|
+
break;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// boolean
|
|
312
|
+
case typeof value === 'boolean': {
|
|
313
|
+
let _strValue = '';
|
|
314
|
+
|
|
315
|
+
switch (operator) {
|
|
316
|
+
case KG_DYNAMIC_QUERY_OPERATOR.NE: {
|
|
317
|
+
_strValue = ` AND (${_key} <> ${value ? 1 : 0})`;
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
case KG_DYNAMIC_QUERY_OPERATOR.EQ:
|
|
322
|
+
default: {
|
|
323
|
+
_strValue = ` AND (${_key} = ${value ? 1 : 0})`;
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
_paramsForWhereSql[key] = _strValue;
|
|
329
|
+
|
|
330
|
+
break;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
// null, undefined
|
|
334
|
+
default: {
|
|
335
|
+
_paramsForWhereSql[key] = value;
|
|
336
|
+
|
|
337
|
+
break;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
|
|
342
|
+
const whereSqlSegment = reduce(
|
|
343
|
+
_paramsForWhereSql,
|
|
344
|
+
(sql, value) => {
|
|
345
|
+
if (!value) {
|
|
346
|
+
return sql;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
return sql + value;
|
|
350
|
+
},
|
|
351
|
+
'',
|
|
352
|
+
);
|
|
353
|
+
|
|
354
|
+
//region WHERE
|
|
355
|
+
// ----------------------------------------------------------------------------------------------------
|
|
356
|
+
let whereSql = `WHERE (1 = 1)${whereSqlSegment}`;
|
|
357
|
+
whereSql = encodeURIComponent(whereSql);
|
|
358
|
+
//endregion
|
|
359
|
+
|
|
360
|
+
//region ORDER BY
|
|
361
|
+
// ----------------------------------------------------------------------------------------------------
|
|
362
|
+
let orderBySql = '';
|
|
363
|
+
|
|
364
|
+
{
|
|
365
|
+
let _column = _params.column;
|
|
366
|
+
|
|
367
|
+
if (_column) {
|
|
368
|
+
orderBySql = `ORDER BY ${_column}`;
|
|
369
|
+
|
|
370
|
+
if (_params.order === 'asc') {
|
|
371
|
+
orderBySql += ' ASC';
|
|
372
|
+
} else if (_params.order === 'desc') {
|
|
373
|
+
orderBySql += ' DESC';
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
orderBySql = encodeURIComponent(orderBySql.trim());
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
//endregion
|
|
380
|
+
|
|
381
|
+
//region OFFSET
|
|
382
|
+
// ----------------------------------------------------------------------------------------------------
|
|
383
|
+
let offsetSql = '';
|
|
384
|
+
|
|
385
|
+
// 分页
|
|
386
|
+
if (!isNil(_params.pageNo)) {
|
|
387
|
+
const pageIndex = Number.parseInt(_params.pageNo);
|
|
388
|
+
if (Number.isNaN(pageIndex) || pageIndex <= 0) {
|
|
389
|
+
throw new Error('参数 pageNo 非法.');
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
const pageSize = Number.parseInt(_params.pageSize);
|
|
393
|
+
if (Number.isNaN(pageSize) || pageSize <= 0) {
|
|
394
|
+
throw new Error('参数 pageSize 非法.');
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
offsetSql = ` OFFSET ${(pageIndex - 1) * pageSize} ROWS FETCH NEXT ${pageSize} ROWS ONLY`;
|
|
398
|
+
}
|
|
399
|
+
//endregion
|
|
400
|
+
|
|
401
|
+
return {
|
|
402
|
+
/**
|
|
403
|
+
* OFFSET.
|
|
404
|
+
*/
|
|
405
|
+
offsetSql: offsetSql,
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* 查询操作符的 JSON 字符串.
|
|
409
|
+
*/
|
|
410
|
+
operatorJSON: JSON.stringify(dynamicQueryOperatorModel ?? {}),
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* ORDER BY.
|
|
414
|
+
*/
|
|
415
|
+
orderBySql: orderBySql,
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* WHERE + ORDRE BY + OFFSET.
|
|
419
|
+
*/
|
|
420
|
+
sql: `${whereSql} ${orderBySql}${offsetSql}`.trim(),
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* WHERE .
|
|
424
|
+
*/
|
|
425
|
+
whereSql: whereSql,
|
|
426
|
+
};
|
|
427
|
+
}
|
|
162
428
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kengic/uni",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.2-beta.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "npm run switch-node-version && rimraf dist && vue-tsc && vite build",
|
|
6
6
|
"------ -------------------------------------------": "",
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
"--------------------------------------------------": "",
|
|
12
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",
|
|
15
14
|
"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",
|
|
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",
|
|
17
15
|
"copy-to:luotao.wms-pda--focus": "npm run build && node scripts/copy-to.luotao.wms-pda--focus.mjs --experimental-default-type=module",
|
|
16
|
+
"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",
|
|
17
|
+
"bump-to:luotao.wms-pda--focus": "npm run switch-node-version && node scripts/bump-to.luotao.wms-pda--focus.mjs --experimental-default-type=module",
|
|
18
18
|
"-- -----------------------------------------------": "",
|
|
19
19
|
"cnpm:sync": "cnpm sync @kengic/uni",
|
|
20
20
|
"--- ----------------------------------------------": "",
|