@ibiz-template/runtime 0.3.4 → 0.3.5

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 (79) hide show
  1. package/dist/index.esm.js +308 -163
  2. package/dist/index.system.min.js +2 -2
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/constant/index.d.ts +1 -0
  5. package/out/constant/index.d.ts.map +1 -1
  6. package/out/constant/index.js +1 -0
  7. package/out/constant/platform-type.d.ts +43 -0
  8. package/out/constant/platform-type.d.ts.map +1 -0
  9. package/out/constant/platform-type.js +44 -0
  10. package/out/constant/view-call-tag.d.ts +5 -1
  11. package/out/constant/view-call-tag.d.ts.map +1 -1
  12. package/out/constant/view-call-tag.js +4 -0
  13. package/out/controller/control/chart/generator/funnel-series-generator.js +1 -1
  14. package/out/controller/control/chart/generator/pie-series-generator.js +1 -1
  15. package/out/index.d.ts +1 -0
  16. package/out/index.d.ts.map +1 -1
  17. package/out/index.js +1 -0
  18. package/out/install.d.ts.map +1 -1
  19. package/out/install.js +6 -0
  20. package/out/interface/provider/i-platform-provider.d.ts +49 -0
  21. package/out/interface/provider/i-platform-provider.d.ts.map +1 -0
  22. package/out/interface/provider/i-platform-provider.js +1 -0
  23. package/out/interface/provider/index.d.ts +1 -0
  24. package/out/interface/provider/index.d.ts.map +1 -1
  25. package/out/interface/service/service/i-auth.service.d.ts +1 -1
  26. package/out/interface/service/service/i-auth.service.d.ts.map +1 -1
  27. package/out/platform/index.d.ts +3 -0
  28. package/out/platform/index.d.ts.map +1 -0
  29. package/out/platform/index.js +2 -0
  30. package/out/platform/platform-util.d.ts +11 -0
  31. package/out/platform/platform-util.d.ts.map +1 -0
  32. package/out/platform/platform-util.js +50 -0
  33. package/out/platform/provider/browser-platform-provider.d.ts +13 -0
  34. package/out/platform/provider/browser-platform-provider.d.ts.map +1 -0
  35. package/out/platform/provider/browser-platform-provider.js +12 -0
  36. package/out/platform/provider/index.d.ts +12 -0
  37. package/out/platform/provider/index.d.ts.map +1 -0
  38. package/out/platform/provider/index.js +17 -0
  39. package/out/platform/provider/platform-provider-base.d.ts +18 -0
  40. package/out/platform/provider/platform-provider-base.d.ts.map +1 -0
  41. package/out/platform/provider/platform-provider-base.js +42 -0
  42. package/out/register/helper/index.d.ts +1 -0
  43. package/out/register/helper/index.d.ts.map +1 -1
  44. package/out/register/helper/index.js +1 -0
  45. package/out/register/helper/platform-register.d.ts +23 -0
  46. package/out/register/helper/platform-register.d.ts.map +1 -0
  47. package/out/register/helper/platform-register.js +44 -0
  48. package/out/service/app-data-entity/app-data-entity.d.ts.map +1 -1
  49. package/out/service/app-data-entity/app-data-entity.js +9 -2
  50. package/out/service/service/auth/v7-auth.service.d.ts +1 -1
  51. package/out/service/service/auth/v7-auth.service.d.ts.map +1 -1
  52. package/out/service/service/auth/v7-auth.service.js +6 -2
  53. package/out/types.d.ts +10 -1
  54. package/out/types.d.ts.map +1 -1
  55. package/out/ui-action/provider/front-ui-action-provider.d.ts +1 -1
  56. package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
  57. package/out/ui-action/provider/front-ui-action-provider.js +8 -9
  58. package/package.json +3 -3
  59. package/src/constant/index.ts +1 -0
  60. package/src/constant/platform-type.ts +50 -0
  61. package/src/constant/view-call-tag.ts +4 -0
  62. package/src/controller/control/chart/generator/funnel-series-generator.ts +1 -1
  63. package/src/controller/control/chart/generator/pie-series-generator.ts +1 -1
  64. package/src/index.ts +1 -0
  65. package/src/install.ts +6 -0
  66. package/src/interface/provider/i-platform-provider.ts +55 -0
  67. package/src/interface/provider/index.ts +1 -0
  68. package/src/interface/service/service/i-auth.service.ts +5 -1
  69. package/src/platform/index.ts +2 -0
  70. package/src/platform/platform-util.ts +57 -0
  71. package/src/platform/provider/browser-platform-provider.ts +12 -0
  72. package/src/platform/provider/index.ts +19 -0
  73. package/src/platform/provider/platform-provider-base.ts +50 -0
  74. package/src/register/helper/index.ts +1 -0
  75. package/src/register/helper/platform-register.ts +56 -0
  76. package/src/service/app-data-entity/app-data-entity.ts +9 -2
  77. package/src/service/service/auth/v7-auth.service.ts +10 -2
  78. package/src/types.ts +11 -0
  79. package/src/ui-action/provider/front-ui-action-provider.ts +23 -5
@@ -1 +1 @@
1
- {"version":3,"file":"v7-auth.service.d.ts","sourceRoot":"","sources":["../../../../src/service/service/auth/v7-auth.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,YAAY;IAC1C,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB5D,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAcjC"}
1
+ {"version":3,"file":"v7-auth.service.d.ts","sourceRoot":"","sources":["../../../../src/service/service/auth/v7-auth.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,YAAY;IAC1C,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,OAAO,CAAC;IAyBb,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAcjC"}
@@ -9,10 +9,14 @@ import { clearCookie, setCookie } from 'qx-util';
9
9
  * @class AuthService
10
10
  */
11
11
  export class V7AuthService {
12
- async login(loginname, password) {
12
+ async login(loginname, password, rememberme) {
13
13
  // eslint-disable-next-line no-useless-catch
14
14
  try {
15
- const res = await ibiz.net.post('/v7/login', { loginname, password });
15
+ const res = await ibiz.net.post('/v7/login', {
16
+ loginname,
17
+ password,
18
+ rememberme,
19
+ });
16
20
  const { data } = res;
17
21
  if (data && data.token) {
18
22
  setCookie(CoreConst.TOKEN, data.token, 0, true);
package/out/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { I18n } from '@ibiz-template/core/src/interface';
2
2
  import { EngineFactory } from './engine';
3
3
  import { GlobalUtil } from './global';
4
- import { IMessageUtil, INotificationUtil, IOpenViewUtil, IModalUtil, IConfirmUtil, ILoadingUtil, IPluginFactory, IOverlayController, IGlobalConfig, IAppHubService, IAuthService, IAsyncActionService } from './interface';
4
+ import { IMessageUtil, INotificationUtil, IOpenViewUtil, IModalUtil, IConfirmUtil, ILoadingUtil, IPluginFactory, IOverlayController, IGlobalConfig, IAppHubService, IAuthService, IAsyncActionService, IPlatformProvider } from './interface';
5
5
  import { LogicSchedulerCenter } from './logic-scheduler';
6
6
  import { RegisterCenter } from './register/register-center';
7
7
  declare module '@ibiz-template/core' {
@@ -145,6 +145,15 @@ declare module '@ibiz-template/core' {
145
145
  * @type {LogicSchedulerCenter}
146
146
  */
147
147
  scheduler: LogicSchedulerCenter;
148
+ /**
149
+ * 搭载平台
150
+ *
151
+ * @author zk
152
+ * @date 2023-11-23 09:11:37
153
+ * @type {IPlatformProvider}
154
+ * @memberof IBizSys
155
+ */
156
+ platform: IPlatformProvider;
148
157
  }
149
158
  interface IEnvironment {
150
159
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf;;;;;;WAMG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;WAMG;QACH,GAAG,EAAE,cAAc,CAAC;QAEpB;;;;;;;WAOG;QACH,KAAK,EAAE,UAAU,CAAC;QAElB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,YAAY,EAAE,iBAAiB,CAAC;QAEhC;;;;;;;WAOG;QACH,QAAQ,EAAE,aAAa,CAAC;QAExB;;;;;;WAMG;QACH,OAAO,EAAE,kBAAkB,CAAC;QAE5B;;;;;;WAMG;QACH,MAAM,EAAE,cAAc,CAAC;QAEvB;;;;;;WAMG;QACH,QAAQ,EAAE,cAAc,CAAC;QAEzB;;;;;;WAMG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,YAAY,CAAC;QAEnB;;;;;;WAMG;QACH,WAAW,EAAE,mBAAmB,CAAC;QAEjC;;;;;WAKG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,UAAU,CAAC;QAEjB;;;;;;WAMG;QACH,IAAI,EAAE,IAAI,CAAC;QAEX;;;;;WAKG;QACH,SAAS,EAAE,oBAAoB,CAAC;KACjC;IAED,UAAU,YAAY;QACpB;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,aAAa,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf;;;;;;WAMG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;WAMG;QACH,GAAG,EAAE,cAAc,CAAC;QAEpB;;;;;;;WAOG;QACH,KAAK,EAAE,UAAU,CAAC;QAElB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,YAAY,EAAE,iBAAiB,CAAC;QAEhC;;;;;;;WAOG;QACH,QAAQ,EAAE,aAAa,CAAC;QAExB;;;;;;WAMG;QACH,OAAO,EAAE,kBAAkB,CAAC;QAE5B;;;;;;WAMG;QACH,MAAM,EAAE,cAAc,CAAC;QAEvB;;;;;;WAMG;QACH,QAAQ,EAAE,cAAc,CAAC;QAEzB;;;;;;WAMG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,YAAY,CAAC;QAEnB;;;;;;WAMG;QACH,WAAW,EAAE,mBAAmB,CAAC;QAEjC;;;;;WAKG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,UAAU,CAAC;QAEjB;;;;;;WAMG;QACH,IAAI,EAAE,IAAI,CAAC;QAEX;;;;;WAKG;QACH,SAAS,EAAE,oBAAoB,CAAC;QAEhC;;;;;;;WAOG;QACH,QAAQ,EAAE,iBAAiB,CAAC;KAC7B;IAED,UAAU,YAAY;QACpB;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,aAAa,CAAC;KAC9B;CACF"}
@@ -45,6 +45,6 @@ export declare class FrontUIActionProvider extends UIActionProviderBase {
45
45
  * @param {IUILogicParams} args
46
46
  * @return {*}
47
47
  */
48
- protected executeDataExport(action: IAppDEUIAction, _args: IUILogicParams): Promise<void>;
48
+ protected executeDataExport(action: IAppDEUIAction, args: IUILogicParams): Promise<void>;
49
49
  }
50
50
  //# sourceMappingURL=front-ui-action-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"front-ui-action-provider.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/front-ui-action-provider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAc,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;IACvD,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IAgE3B;;;;;;;;OAQG;IAEH,SAAS,CAAC,OAAO,CACf,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,eAAe;IAalB;;;;;;OAMG;cACa,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;IAiChB;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC;IA8B3B;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC;CA4CjB"}
1
+ {"version":3,"file":"front-ui-action-provider.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/front-ui-action-provider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAc,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;IACvD,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IA+D3B;;;;;;;;OAQG;IAEH,SAAS,CAAC,OAAO,CACf,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,eAAe;IAalB;;;;;;OAMG;cACa,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;IA4ChB;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC;IA8B3B;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;CAoDjB"}
@@ -15,7 +15,6 @@ export class FrontUIActionProvider extends UIActionProviderBase {
15
15
  async execAction(action, args) {
16
16
  const { context, params, data, event, noWaitRoute } = args;
17
17
  let actionResult = {};
18
- // todo
19
18
  switch (action.frontProcessType) {
20
19
  case 'OPENHTMLPAGE': {
21
20
  const url = StringUtil.fill(action.htmlPageUrl, context, data === null || data === void 0 ? void 0 : data[0]);
@@ -87,6 +86,8 @@ export class FrontUIActionProvider extends UIActionProviderBase {
87
86
  */
88
87
  async executePrint(action, args) {
89
88
  var _a, _b;
89
+ // 处理参数
90
+ const { resultParams } = await this.handleParams(action, args.context, args.data, args.params);
90
91
  const appDataEntity = await ibiz.hub.getAppDataEntity(action.appDataEntityId);
91
92
  const appDEPrint = (_a = appDataEntity.appDEPrints) === null || _a === void 0 ? void 0 : _a.find(print => {
92
93
  return print.id === action.appDEPrintId;
@@ -96,7 +97,7 @@ export class FrontUIActionProvider extends UIActionProviderBase {
96
97
  const { context } = args;
97
98
  if (context && context[appDataEntity.codeName.toLowerCase()]) {
98
99
  // TODO 临时写死printdata, 非标准,后续优化
99
- requestUrl += `/${(_b = appDataEntity.codeName2) === null || _b === void 0 ? void 0 : _b.toLowerCase()}/printdata/${context[appDataEntity.codeName.toLowerCase()]}?srfprinttag=${appDEPrint.codeName}`;
100
+ requestUrl += `/${(_b = appDataEntity.codeName2) === null || _b === void 0 ? void 0 : _b.toLowerCase()}/printdata/${context[appDataEntity.codeName.toLowerCase()]}`;
100
101
  }
101
102
  else {
102
103
  throw new RuntimeError('没有找到数据主键');
@@ -104,6 +105,7 @@ export class FrontUIActionProvider extends UIActionProviderBase {
104
105
  const res = await ibiz.net.request(requestUrl, {
105
106
  method: 'get',
106
107
  responseType: 'blob',
108
+ params: Object.assign({ srfprinttag: appDEPrint.codeName }, resultParams),
107
109
  });
108
110
  if (res.ok) {
109
111
  const link = window.URL.createObjectURL(res.data);
@@ -153,8 +155,10 @@ export class FrontUIActionProvider extends UIActionProviderBase {
153
155
  * @param {IUILogicParams} args
154
156
  * @return {*}
155
157
  */
156
- async executeDataExport(action, _args) {
158
+ async executeDataExport(action, args) {
157
159
  var _a, _b;
160
+ // 处理参数
161
+ const { resultParams } = await this.handleParams(action, args.context, args.data, args.params);
158
162
  const appDataEntity = await ibiz.hub.getAppDataEntity(action.appDataEntityId);
159
163
  const appDEDataExport = (_a = appDataEntity.appDEDataExports) === null || _a === void 0 ? void 0 : _a.find(dataExport => {
160
164
  return dataExport.id === action.appDEDataExportId;
@@ -163,15 +167,10 @@ export class FrontUIActionProvider extends UIActionProviderBase {
163
167
  // TODO 临时写死fetchdefault,应该从appDEDataExport的主表格上获取加载行为,但现在缺主表格模型,后续优化
164
168
  const url = `/${(_b = appDataEntity.codeName2) === null || _b === void 0 ? void 0 : _b.toLowerCase()}/exportdata/fetchdefault?srfexporttag=${appDEDataExport.codeName}`;
165
169
  // 参数
166
- const params = {
167
- page: 0,
168
- size: appDEDataExport.maxRowCount ? appDEDataExport.maxRowCount : 1000,
169
- responseType: 'blob',
170
- };
170
+ const params = Object.assign(Object.assign({ page: 0, size: appDEDataExport.maxRowCount ? appDEDataExport.maxRowCount : 1000 }, args.params), resultParams);
171
171
  const res = await ibiz.net.request(url, {
172
172
  method: 'post',
173
173
  data: params,
174
- responseType: 'blob',
175
174
  });
176
175
  if (res.status === 200) {
177
176
  let fileName = `${appDataEntity.logicName}表.xlsx`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "控制器包",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -29,7 +29,7 @@
29
29
  "author": "chitanda",
30
30
  "license": "MIT",
31
31
  "devDependencies": {
32
- "@ibiz-template/core": "^0.3.4",
32
+ "@ibiz-template/core": "^0.3.5",
33
33
  "@ibiz/model-core": "^0.0.20",
34
34
  "@types/path-browserify": "^1.0.2",
35
35
  "@types/qs": "^6.9.10",
@@ -59,5 +59,5 @@
59
59
  "qx-util": "^0.4.8",
60
60
  "ramda": "^0.29.0"
61
61
  },
62
- "gitHead": "a6a5031e07ec179ddb6c855023243fe5006290e7"
62
+ "gitHead": "63087e7d7a9566137cdad2d40b2d37263194a752"
63
63
  }
@@ -4,4 +4,5 @@ export { ViewMode } from './view-mode';
4
4
  export { SysUIActionTag } from './sys-uiaction-tag';
5
5
  export { ViewCallTag } from './view-call-tag';
6
6
  export { ValueOP } from './value-op';
7
+ export { PlatformType } from './platform-type';
7
8
  export * from './studio-event';
@@ -0,0 +1,50 @@
1
+ /* eslint-disable no-shadow */
2
+ /**
3
+ * 搭载平台类型
4
+ *
5
+ * @author zk
6
+ * @date 2023-11-20 03:11:28
7
+ * @export
8
+ * @enum {number}
9
+ */
10
+ export enum PlatformType {
11
+ /**
12
+ * IOS
13
+ */
14
+ IOS = 'IOS',
15
+
16
+ /**
17
+ * 安卓
18
+ */
19
+ ANDROID = 'Android',
20
+
21
+ /**
22
+ * 微信
23
+ */
24
+ WECHAT = 'WeChat',
25
+
26
+ /**
27
+ * 腾讯QQ
28
+ */
29
+ QQ = 'QQ',
30
+
31
+ /**
32
+ * 钉钉
33
+ */
34
+ DINGTALK = 'DingTalk',
35
+
36
+ /**
37
+ * 浏览器
38
+ */
39
+ BROWSER = 'Browser',
40
+
41
+ /**
42
+ * 微信小程序
43
+ */
44
+ WCMP = 'WeChatMiniProgram',
45
+
46
+ /**
47
+ * 桌面端
48
+ */
49
+ DESKTOP = 'Desktop',
50
+ }
@@ -27,4 +27,8 @@ export enum ViewCallTag {
27
27
  * 切换折叠(首页视图才用)
28
28
  */
29
29
  'TOGGLE_COLLAPSE' = 'ToggleCollapse',
30
+ /**
31
+ * 流程撤回
32
+ */
33
+ 'WF_WITHDRAW' = 'WFWithdraw',
30
34
  }
@@ -19,7 +19,7 @@ export class FunnelSeriesGenerator extends BaseSeriesGenerator<IChartSeriesFunne
19
19
  protected calcStaticOptions(): SeriesOption {
20
20
  const options = super.calcStaticOptions() as FunnelSeriesOption;
21
21
 
22
- options.label!.formatter = '{b}: {d}%({c})';
22
+ options.label!.formatter = '{b}: {d}%';
23
23
  options.label!.position = 'outer';
24
24
 
25
25
  return options;
@@ -19,7 +19,7 @@ export class PieSeriesGenerator extends BaseSeriesGenerator<IChartSeriesPie> {
19
19
  protected calcStaticOptions(): SeriesOption {
20
20
  const options = super.calcStaticOptions() as PieSeriesOption;
21
21
 
22
- options.label!.formatter = '{b}: {d}%({c})';
22
+ options.label!.formatter = '{b}: {d}%';
23
23
  options.label!.position = 'outside';
24
24
 
25
25
  return options;
package/src/index.ts CHANGED
@@ -14,4 +14,5 @@ export * from './ui-logic';
14
14
  export * from './de-logic';
15
15
  export * from './engine';
16
16
  export * from './model';
17
+ export * from './platform';
17
18
  export { Application } from './application';
package/src/install.ts CHANGED
@@ -11,6 +11,8 @@ import { EngineFactory } from './engine';
11
11
  import { GlobalUtil } from './global';
12
12
  import { presetUIActionProvider } from './ui-action';
13
13
  import { installLogicSchedule } from './logic-scheduler';
14
+ import { install as installPlatformProvider } from './platform/provider';
15
+ import { getPlatformProvider } from './register';
14
16
 
15
17
  /**
16
18
  * 安装运行时
@@ -43,4 +45,8 @@ export function install(): void {
43
45
  presetAppCounterProvider();
44
46
  // 安装逻辑调度器
45
47
  installLogicSchedule();
48
+ // 注册搭载平台适配器
49
+ installPlatformProvider();
50
+ // 搭载平台 - 先注册 后挂载
51
+ ibiz.platform = getPlatformProvider();
46
52
  }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * 搭载平台适配器接口
3
+ *
4
+ * @author zk
5
+ * @date 2023-11-20 02:11:24
6
+ * @export
7
+ * @interface IPlatformProvider
8
+ */
9
+ export interface IPlatformProvider {
10
+ /**
11
+ * 登录
12
+ *
13
+ * @author zk
14
+ * @date 2023-11-20 03:11:10
15
+ * @param {string} loginName 账号!
16
+ * @param {string} passWord 密码!
17
+ * @param {string} [verificationCode] 验证码?
18
+ * @return {*} {Promise<boolean>}
19
+ * @memberof IPlatformProvider
20
+ */
21
+ login(
22
+ loginName: string,
23
+ passWord: string,
24
+ verificationCode?: string,
25
+ ): Promise<boolean>;
26
+
27
+ /**
28
+ * 下载
29
+ *
30
+ * @author zk
31
+ * @date 2023-11-20 04:11:54
32
+ * @param {string} url 下载地址
33
+ * @param {string} name 文件名称
34
+ * @memberof IPlatformProvider
35
+ */
36
+ download(url: string, name: string): Promise<boolean>;
37
+
38
+ /**
39
+ * 初始化
40
+ *
41
+ * @author zk
42
+ * @date 2023-11-21 11:11:57
43
+ * @memberof IPlatformProvider
44
+ */
45
+ init(): Promise<void>;
46
+
47
+ /**
48
+ * 返回
49
+ *
50
+ * @author zk
51
+ * @date 2023-11-21 08:11:36
52
+ * @memberof IPlatformProvider
53
+ */
54
+ back(): void;
55
+ }
@@ -11,3 +11,4 @@ export type * from './i-portlet.provider';
11
11
  export type { IAppCounterProvider } from './i-app-counter.provider';
12
12
  export type { IUILogicNodeProvider } from './i-ui-login-node.provider';
13
13
  export type { IAsyncActionProvider } from './i-async-action.provider';
14
+ export type { IPlatformProvider } from './i-platform-provider';
@@ -16,7 +16,11 @@ export interface IAuthService {
16
16
  * @param {string} password
17
17
  * @return {*} {Promise<boolean>}
18
18
  */
19
- login(loginName: string, password: string): Promise<boolean>;
19
+ login(
20
+ loginName: string,
21
+ password: string,
22
+ rememberme?: boolean,
23
+ ): Promise<boolean>;
20
24
 
21
25
  /**
22
26
  * 登出
@@ -0,0 +1,2 @@
1
+ export * from './provider';
2
+ export * from './platform-util';
@@ -0,0 +1,57 @@
1
+ import { PlatformType } from '../constant';
2
+
3
+ const ua = window.navigator.userAgent.toLowerCase();
4
+
5
+ // android平台
6
+ function isAndroid(): boolean {
7
+ return /Android|Adr/i.test(ua);
8
+ }
9
+
10
+ // ios平台
11
+ function isIos(): boolean {
12
+ return /iPhone|iPod|iPad/i.test(ua);
13
+ }
14
+ // 微信生态
15
+ function isWeChat(): boolean {
16
+ return /MicroMessenger/i.test(ua);
17
+ }
18
+
19
+ // 钉钉环境
20
+ function isDingDing(): boolean {
21
+ return /DingTalk/i.test(ua);
22
+ }
23
+ // 微信小程序
24
+ function isWxMp(): boolean {
25
+ return (
26
+ /miniProgram/i.test(ua) ||
27
+ (window as IData).__wxjs_environment === 'miniprogram'
28
+ );
29
+ }
30
+
31
+ /**
32
+ * 获取搭载平台名称
33
+ *
34
+ * @author zk
35
+ * @date 2023-11-21 02:11:28
36
+ * @export
37
+ * @return {*} {PlatformType}
38
+ */
39
+ export function getPlatformType(): PlatformType {
40
+ if (isAndroid()) {
41
+ return PlatformType.ANDROID;
42
+ }
43
+ if (isIos()) {
44
+ return PlatformType.IOS;
45
+ }
46
+ if (isWeChat()) {
47
+ return PlatformType.WECHAT;
48
+ }
49
+ if (isDingDing()) {
50
+ return PlatformType.DINGTALK;
51
+ }
52
+ if (isWxMp()) {
53
+ return PlatformType.WCMP;
54
+ }
55
+ // 默认为浏览器
56
+ return PlatformType.BROWSER;
57
+ }
@@ -0,0 +1,12 @@
1
+ import { PlatformProviderBase } from './platform-provider-base';
2
+
3
+ /**
4
+ * 浏览器搭载平台适配器
5
+ *
6
+ * @author zk
7
+ * @date 2023-11-20 03:11:25
8
+ * @export
9
+ * @class BrowserPlatformProvider
10
+ * @extends {PlatformProviderBase}
11
+ */
12
+ export class BrowserPlatformProvider extends PlatformProviderBase {}
@@ -0,0 +1,19 @@
1
+ import { PlatformType } from '../../constant';
2
+ import { registerPlatformProvider } from '../../register';
3
+ import { BrowserPlatformProvider } from './browser-platform-provider';
4
+ import { PlatformProviderBase } from './platform-provider-base';
5
+
6
+ /**
7
+ * 预置搭载平台适配器
8
+ *
9
+ * @author zk
10
+ * @date 2023-11-20 03:11:00
11
+ * @export
12
+ */
13
+ export function install(): void {
14
+ // 预制浏览器搭载平台
15
+ const browserPlatformProvider = new BrowserPlatformProvider();
16
+ registerPlatformProvider(PlatformType.BROWSER, () => browserPlatformProvider);
17
+ }
18
+
19
+ export { BrowserPlatformProvider, PlatformProviderBase };
@@ -0,0 +1,50 @@
1
+ import { downloadFileFromBlob, RuntimeError } from '@ibiz-template/core';
2
+ import { IPlatformProvider } from '../../interface';
3
+
4
+ /**
5
+ * 搭载平台处理器基类
6
+ *
7
+ * @author zk
8
+ * @date 2023-11-20 03:11:13
9
+ * @export
10
+ * @abstract
11
+ * @class PlatformProviderBase
12
+ * @implements {IPlatformProvider}
13
+ */
14
+ export abstract class PlatformProviderBase implements IPlatformProvider {
15
+ back(): void {
16
+ throw new Error('Method not implemented.');
17
+ }
18
+
19
+ init(): Promise<void> {
20
+ throw new Error('Method not implemented.');
21
+ }
22
+
23
+ async login(
24
+ loginName: string,
25
+ passWord: string,
26
+ _verificationCode?: string | undefined,
27
+ ): Promise<boolean> {
28
+ return ibiz.auth.login(loginName, passWord);
29
+ }
30
+
31
+ async download(url: string, name: string): Promise<boolean> {
32
+ // 发送get请求
33
+ const response = await ibiz.net.request(url, {
34
+ method: 'get',
35
+ responseType: 'blob',
36
+ });
37
+ if (response.status !== 200) {
38
+ throw new RuntimeError('下载文件失败');
39
+ }
40
+ // 请求成功,后台返回的是一个文件流
41
+ if (!response.data) {
42
+ throw new RuntimeError('文件流数据不存在');
43
+ } else {
44
+ // 获取文件名
45
+ const fileName = name;
46
+ downloadFileFromBlob(response.data as Blob, fileName);
47
+ return Promise.resolve(true);
48
+ }
49
+ }
50
+ }
@@ -9,3 +9,4 @@ export * from './ui-action-register';
9
9
  export * from './ui-logic-node-register';
10
10
  export * from './view-register';
11
11
  export * from './async-action-register';
12
+ export * from './platform-register';
@@ -0,0 +1,56 @@
1
+ import { IPlatformProvider } from '../../interface';
2
+
3
+ import { PlatformType } from '../../constant';
4
+ import { getPlatformType } from '../../platform';
5
+
6
+ /** 搭载平台适配器前缀 */
7
+ export const PLATFORM_PROVIDER_PREFIX = 'PLATFORM';
8
+
9
+ /**
10
+ * 注册搭载平台适配器
11
+ * @author zk
12
+ * @date 2023-11-20 02:11:36
13
+ * @export
14
+ * @param {string} key
15
+ * @param {() => IPlatformProvider} callback 生成搭载平台适配器的回调
16
+ */
17
+
18
+ export function registerPlatformProvider(
19
+ key: PlatformType,
20
+ callback: () => IPlatformProvider,
21
+ ): void {
22
+ ibiz.register.register(`${PLATFORM_PROVIDER_PREFIX}_${key}`, callback);
23
+ }
24
+
25
+ /**
26
+ * 获取适配器
27
+ *
28
+ * @author zk
29
+ * @date 2023-11-20 02:11:00
30
+ * @param {string} key
31
+ * @return {*} {(IPlatformProvider | undefined)}
32
+ */
33
+ function getProvider(key: PlatformType): IPlatformProvider | undefined {
34
+ return ibiz.register.get(
35
+ `${PLATFORM_PROVIDER_PREFIX}_${key}`,
36
+ ) as IPlatformProvider;
37
+ }
38
+
39
+ /**
40
+ * 获取搭载平台适配器
41
+ * @author zk
42
+ * @date 2023-11-20 02:11:38
43
+ * @export
44
+ * @param {IAppView} model
45
+ * @return {*} {Promise<IPlatformProvider>}
46
+ */
47
+ export function getPlatformProvider(): IPlatformProvider {
48
+ // 搭载平台类型
49
+ const platformType = getPlatformType();
50
+ const provider: IPlatformProvider | undefined = getProvider(platformType);
51
+ if (!provider) {
52
+ // 默认返回浏览器搭载平台适配器
53
+ return getProvider(PlatformType.BROWSER)!;
54
+ }
55
+ return provider;
56
+ }
@@ -192,11 +192,18 @@ export class AppDataEntity implements IDataEntity {
192
192
  * @return {*} {AppDataEntity}
193
193
  */
194
194
  assign(data: IData | AppDataEntity): AppDataEntity {
195
+ let _data: IData = {};
195
196
  if (data instanceof AppDataEntity) {
196
- Object.assign(this._data, data._data);
197
+ _data = data._data;
197
198
  } else {
198
- Object.assign(this._data, data);
199
+ _data = data;
199
200
  }
201
+ Object.keys(_data).forEach(key => {
202
+ if (_data[key] === undefined) {
203
+ delete _data[key];
204
+ }
205
+ });
206
+ Object.assign(this._data, _data);
200
207
  return this;
201
208
  }
202
209
 
@@ -11,10 +11,18 @@ import { IAuthService } from '../../../interface';
11
11
  * @class AuthService
12
12
  */
13
13
  export class V7AuthService implements IAuthService {
14
- async login(loginname: string, password: string): Promise<boolean> {
14
+ async login(
15
+ loginname: string,
16
+ password: string,
17
+ rememberme?: boolean,
18
+ ): Promise<boolean> {
15
19
  // eslint-disable-next-line no-useless-catch
16
20
  try {
17
- const res = await ibiz.net.post('/v7/login', { loginname, password });
21
+ const res = await ibiz.net.post('/v7/login', {
22
+ loginname,
23
+ password,
24
+ rememberme,
25
+ });
18
26
  const { data } = res;
19
27
  if (data && data.token) {
20
28
  setCookie(CoreConst.TOKEN, data.token, 0, true);
package/src/types.ts CHANGED
@@ -14,6 +14,7 @@ import {
14
14
  IAppHubService,
15
15
  IAuthService,
16
16
  IAsyncActionService,
17
+ IPlatformProvider,
17
18
  } from './interface';
18
19
  import { LogicSchedulerCenter } from './logic-scheduler';
19
20
  import { RegisterCenter } from './register/register-center';
@@ -175,6 +176,16 @@ declare module '@ibiz-template/core' {
175
176
  * @type {LogicSchedulerCenter}
176
177
  */
177
178
  scheduler: LogicSchedulerCenter;
179
+
180
+ /**
181
+ * 搭载平台
182
+ *
183
+ * @author zk
184
+ * @date 2023-11-23 09:11:37
185
+ * @type {IPlatformProvider}
186
+ * @memberof IBizSys
187
+ */
188
+ platform: IPlatformProvider;
178
189
  }
179
190
 
180
191
  interface IEnvironment {