@etsoo/appscript 1.3.69 → 1.3.71

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 (56) hide show
  1. package/__tests__/app/CoreApp.ts +36 -1
  2. package/lib/cjs/address/AddressAutocomplete.d.ts +22 -0
  3. package/lib/cjs/address/AddressAutocomplete.js +2 -0
  4. package/lib/cjs/address/AddressCity.d.ts +17 -0
  5. package/lib/cjs/address/AddressCity.js +2 -0
  6. package/lib/cjs/address/AddressDistrict.d.ts +17 -0
  7. package/lib/cjs/address/AddressDistrict.js +2 -0
  8. package/lib/cjs/address/AddressLocation.d.ts +14 -0
  9. package/lib/cjs/address/AddressLocation.js +2 -0
  10. package/lib/cjs/address/AddressPlace.d.ts +28 -0
  11. package/lib/cjs/address/AddressPlace.js +2 -0
  12. package/lib/cjs/address/AddressPlaceBase.d.ts +37 -0
  13. package/lib/cjs/address/AddressPlaceBase.js +2 -0
  14. package/lib/cjs/erp/AddressApi.d.ts +49 -1
  15. package/lib/cjs/erp/AddressApi.js +71 -13
  16. package/lib/cjs/erp/rq/PlaceQueryRQ.d.ts +45 -0
  17. package/lib/cjs/erp/rq/PlaceQueryRQ.js +12 -0
  18. package/lib/cjs/i18n/en.json +3 -0
  19. package/lib/cjs/i18n/zh-Hans.json +3 -0
  20. package/lib/cjs/i18n/zh-Hant.json +3 -0
  21. package/lib/cjs/index.d.ts +7 -0
  22. package/lib/cjs/index.js +7 -0
  23. package/lib/mjs/address/AddressAutocomplete.d.ts +22 -0
  24. package/lib/mjs/address/AddressAutocomplete.js +1 -0
  25. package/lib/mjs/address/AddressCity.d.ts +17 -0
  26. package/lib/mjs/address/AddressCity.js +1 -0
  27. package/lib/mjs/address/AddressDistrict.d.ts +17 -0
  28. package/lib/mjs/address/AddressDistrict.js +1 -0
  29. package/lib/mjs/address/AddressLocation.d.ts +14 -0
  30. package/lib/mjs/address/AddressLocation.js +1 -0
  31. package/lib/mjs/address/AddressPlace.d.ts +28 -0
  32. package/lib/mjs/address/AddressPlace.js +1 -0
  33. package/lib/mjs/address/AddressPlaceBase.d.ts +37 -0
  34. package/lib/mjs/address/AddressPlaceBase.js +1 -0
  35. package/lib/mjs/erp/AddressApi.d.ts +49 -1
  36. package/lib/mjs/erp/AddressApi.js +72 -14
  37. package/lib/mjs/erp/rq/PlaceQueryRQ.d.ts +45 -0
  38. package/lib/mjs/erp/rq/PlaceQueryRQ.js +9 -0
  39. package/lib/mjs/i18n/en.json +3 -0
  40. package/lib/mjs/i18n/zh-Hans.json +3 -0
  41. package/lib/mjs/i18n/zh-Hant.json +3 -0
  42. package/lib/mjs/index.d.ts +7 -0
  43. package/lib/mjs/index.js +7 -0
  44. package/package.json +4 -4
  45. package/src/address/AddressAutocomplete.ts +25 -0
  46. package/src/address/AddressCity.ts +19 -0
  47. package/src/address/AddressDistrict.ts +19 -0
  48. package/src/address/AddressLocation.ts +15 -0
  49. package/src/address/AddressPlace.ts +32 -0
  50. package/src/address/AddressPlaceBase.ts +43 -0
  51. package/src/erp/AddressApi.ts +117 -13
  52. package/src/erp/rq/PlaceQueryRQ.ts +52 -0
  53. package/src/i18n/en.json +3 -0
  54. package/src/i18n/zh-Hans.json +3 -0
  55. package/src/i18n/zh-Hant.json +3 -0
  56. package/src/index.ts +7 -0
@@ -1,4 +1,4 @@
1
- import { DataTypes } from '@etsoo/shared';
1
+ import { DataTypes, Utils } from '@etsoo/shared';
2
2
  import { AddressContinent } from '../address/AddressContinent';
3
3
  import { AddressRegion, AddressRegionDb } from '../address/AddressRegion';
4
4
  import { AddressState } from '../address/AddressState';
@@ -6,6 +6,11 @@ import { IdLabelConditional } from './dto/IdLabelDto';
6
6
  import { BaseApi } from './BaseApi';
7
7
  import { IApiPayload } from '@etsoo/restclient';
8
8
  import { RegionsRQ } from './rq/RegionsRQ';
9
+ import { AddressCity } from '../address/AddressCity';
10
+ import { AddressDistrict } from '../address/AddressDistrict';
11
+ import { PlaceQueryRQ } from './rq/PlaceQueryRQ';
12
+ import { AddressAutocomplete } from '../address/AddressAutocomplete';
13
+ import { AddressPlace } from '../address/AddressPlace';
9
14
 
10
15
  const cachedRegions: { [P: string]: AddressRegionDb[] | undefined | null } = {};
11
16
 
@@ -13,6 +18,19 @@ const cachedRegions: { [P: string]: AddressRegionDb[] | undefined | null } = {};
13
18
  * Address Api
14
19
  */
15
20
  export class AddressApi extends BaseApi {
21
+ /**
22
+ * Place autocomplete
23
+ * @param rq Request data
24
+ * @param payload Payload
25
+ * @returns Result
26
+ */
27
+ autocomplete(
28
+ rq: PlaceQueryRQ,
29
+ payload?: IApiPayload<AddressAutocomplete[]>
30
+ ) {
31
+ return this.api.post('Address/Autocomplete', rq, payload);
32
+ }
33
+
16
34
  /**
17
35
  * Get all continents
18
36
  * @param isNumberKey Is number key or key as id
@@ -106,15 +124,7 @@ export class AddressApi extends BaseApi {
106
124
 
107
125
  // Order by favoredIds
108
126
  if (favoredIds.length > 0) {
109
- regions = [...regions].sort((r1, r2) => {
110
- const n1 = favoredIds.indexOf(r1.id);
111
- const n2 = favoredIds.indexOf(r2.id);
112
-
113
- if (n1 === n2) return 0;
114
- if (n1 === -1) return 1;
115
- if (n2 === -1) return -1;
116
- return n1 - n2;
117
- });
127
+ regions = Utils.sortByFieldFavor([...regions], 'id', favoredIds);
118
128
  }
119
129
 
120
130
  // Return the top items
@@ -169,16 +179,110 @@ export class AddressApi extends BaseApi {
169
179
  /**
170
180
  * Get state list
171
181
  * @param regionId Region id
182
+ * @param favoredIds Favored ids
183
+ * @param payload Payload
184
+ * @param culture Culture
185
+ * @returns Result
186
+ */
187
+ async states(
188
+ regionId: string,
189
+ favoredIds: string[] = [],
190
+ payload?: IApiPayload<AddressState[]>,
191
+ culture?: string
192
+ ) {
193
+ payload ??= { defaultValue: [], showLoading: false };
194
+ culture ??= this.app.culture;
195
+
196
+ var items = await this.api.get(
197
+ `Address/StateList?regionId=${regionId}&language=${culture}`,
198
+ undefined,
199
+ payload
200
+ );
201
+
202
+ if (items == null || favoredIds.length === 0) return items;
203
+ return Utils.sortByFieldFavor(items, 'id', favoredIds);
204
+ }
205
+
206
+ /**
207
+ * Get city list
208
+ * @param stateId State id
209
+ * @param favoredIds Favored ids
210
+ * @param payload Payload
211
+ * @param culture Culture
212
+ *
213
+ * @returns Result
214
+ */
215
+ async cities(
216
+ stateId: string,
217
+ favoredIds: number[] = [],
218
+ payload?: IApiPayload<AddressCity[]>,
219
+ culture?: string
220
+ ) {
221
+ payload ??= { defaultValue: [], showLoading: false };
222
+ culture ??= this.app.culture;
223
+
224
+ const items = await this.api.get(
225
+ `Address/CityList?stateId=${stateId}&language=${culture}`,
226
+ undefined,
227
+ payload
228
+ );
229
+
230
+ if (items == null || favoredIds.length === 0) return items;
231
+ return Utils.sortByFieldFavor(items, 'id', favoredIds);
232
+ }
233
+
234
+ /**
235
+ * Get district list
236
+ * @param cityId City id
237
+ * @param favoredIds Favored ids
172
238
  * @param payload Payload
239
+ * @param culture Culture
173
240
  * @returns Result
174
241
  */
175
- states(regionId: string, payload?: IApiPayload<AddressState[]>) {
242
+ async districts(
243
+ cityId: number,
244
+ favoredIds: number[] = [],
245
+ payload?: IApiPayload<AddressDistrict[]>,
246
+ culture?: string
247
+ ) {
176
248
  payload ??= { defaultValue: [], showLoading: false };
249
+ culture ??= this.app.culture;
177
250
 
178
- return this.api.get(
179
- `Address/StateList?regionId=${regionId}&language=${this.app.culture}`,
251
+ const items = await this.api.get(
252
+ `Address/DistrictList?cityId=${cityId}&language=${culture}`,
180
253
  undefined,
181
254
  payload
182
255
  );
256
+
257
+ if (items == null || favoredIds.length === 0) return items;
258
+ return Utils.sortByFieldFavor(items, 'id', favoredIds);
259
+ }
260
+
261
+ /**
262
+ * Get place details
263
+ * @param placeId Place id
264
+ * @param language Language
265
+ * @param payload Payload
266
+ * @returns Result
267
+ */
268
+ GetPlaceDetails(
269
+ placeId: string,
270
+ language?: string,
271
+ payload?: IApiPayload<AddressPlace>
272
+ ) {
273
+ const url = `Address/GetPlaceDetails/${placeId}/${
274
+ language == null ? '' : language
275
+ }`;
276
+ return this.api.get(url, undefined, payload);
277
+ }
278
+
279
+ /**
280
+ * Place autocomplete
281
+ * @param rq Request data
282
+ * @param payload Payload
283
+ * @returns Result
284
+ */
285
+ searchPlace(rq: PlaceQueryRQ, payload?: IApiPayload<AddressPlace[]>) {
286
+ return this.api.post('Address/SearchPlace', rq, payload);
183
287
  }
184
288
  }
@@ -0,0 +1,52 @@
1
+ import { AddressLocation } from '../../address/AddressLocation';
2
+
3
+ /**
4
+ * Place query output type
5
+ * 地址查询输出类型
6
+ */
7
+ export enum PlaceQueryOutput {
8
+ JSON,
9
+ XML
10
+ }
11
+
12
+ /**
13
+ * Place query request data
14
+ * 地址查询请求数据
15
+ */
16
+ export type PlaceQueryRQ = {
17
+ /**
18
+ * Query address
19
+ * 查询地址
20
+ */
21
+ query: string;
22
+
23
+ /**
24
+ * Output type
25
+ * 输出类型
26
+ */
27
+ output?: PlaceQueryOutput;
28
+
29
+ /**
30
+ * Language
31
+ * 语言
32
+ */
33
+ language?: string;
34
+
35
+ /**
36
+ * Limited region / country id, like CN
37
+ * 限定的地区获国家编号
38
+ */
39
+ region?: string;
40
+
41
+ /**
42
+ * Center location
43
+ * 中心位置
44
+ */
45
+ location?: AddressLocation;
46
+
47
+ /**
48
+ * Circle radius
49
+ * 方圆半径
50
+ */
51
+ radius?: number;
52
+ };
package/src/i18n/en.json CHANGED
@@ -11,6 +11,7 @@
11
11
  "back": "Back",
12
12
  "cancel": "Cancel",
13
13
  "changePassword": "Change password",
14
+ "city": "City",
14
15
  "clear": "Clear",
15
16
  "close": "Close",
16
17
  "confirm": "Confirm",
@@ -50,6 +51,7 @@
50
51
  "delete": "Delete",
51
52
  "deleteConfirm": "Are you sure you want to permanently delete this {0}?",
52
53
  "description": "Description",
54
+ "district": "District/County",
53
55
  "done": "Done",
54
56
  "download": "Download",
55
57
  "dragIndicator": "Drag indicator",
@@ -162,6 +164,7 @@
162
164
  "signout": "Sign out",
163
165
  "smartERP": "SmartERP",
164
166
  "sortTip": "Drag and drop items to sort",
167
+ "state": "Province/State",
165
168
  "status": "Status",
166
169
  "statusApproved": "Approved",
167
170
  "statusArchived": "Archived",
@@ -11,6 +11,7 @@
11
11
  "back": "后退",
12
12
  "cancel": "取消",
13
13
  "changePassword": "修改密码",
14
+ "city": "城市",
14
15
  "clear": "清除",
15
16
  "close": "关闭",
16
17
  "confirm": "确认",
@@ -50,6 +51,7 @@
50
51
  "delete": "删除",
51
52
  "deleteConfirm": "确定要永久删除此{0}吗?",
52
53
  "description": "描述",
54
+ "district": "区/县",
53
55
  "done": "完成",
54
56
  "download": "下载",
55
57
  "dragIndicator": "拖动指示",
@@ -162,6 +164,7 @@
162
164
  "signout": "退出",
163
165
  "smartERP": "司友®云ERP",
164
166
  "sortTip": "拖拽项目进行排序",
167
+ "state": "省/州",
165
168
  "status": "状态",
166
169
  "statusApproved": "已批准",
167
170
  "statusArchived": "已归档",
@@ -11,6 +11,7 @@
11
11
  "back": "後退",
12
12
  "cancel": "取消",
13
13
  "changePassword": "修改密碼",
14
+ "city": "城市",
14
15
  "clear": "清除",
15
16
  "close": "關閉",
16
17
  "confirm": "確認",
@@ -50,6 +51,7 @@
50
51
  "delete": "刪除",
51
52
  "deleteConfirm": "確定要永久刪除此{0}嗎?",
52
53
  "description": "描述",
54
+ "district": "區/縣",
53
55
  "done": "完成",
54
56
  "download": "下載",
55
57
  "dragIndicator": "拖動指示",
@@ -162,6 +164,7 @@
162
164
  "signout": "退出",
163
165
  "smartERP": "司友®雲ERP",
164
166
  "sortTip": "拖拽項目進行排序",
167
+ "state": "省/州",
165
168
  "status": "狀態",
166
169
  "statusApproved": "已批准",
167
170
  "statusArchived": "已歸檔",
package/src/index.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  // address
2
+ export * from './address/AddressAutocomplete';
3
+ export * from './address/AddressCity';
2
4
  export * from './address/AddressContinent';
5
+ export * from './address/AddressDistrict';
6
+ export * from './address/AddressLocation';
7
+ export * from './address/AddressPlace';
8
+ export * from './address/AddressPlaceBase';
3
9
  export * from './address/AddressRegion';
4
10
  export * from './address/AddressState';
5
11
  export * from './address/AddressUtils';
@@ -47,6 +53,7 @@ export * from './erp/rq/LoginRQ';
47
53
  export * from './erp/rq/MemberListRQ';
48
54
  export * from './erp/rq/OrgListRQ';
49
55
  export * from './erp/rq/OrgQueryRQ';
56
+ export * from './erp/rq/PlaceQueryRQ';
50
57
  export * from './erp/rq/QueryRQ';
51
58
  export * from './erp/rq/RefreshTokenRQ';
52
59
  export * from './erp/rq/RegionsRQ';