@reskin/core 0.0.1 → 0.0.3

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 (105) hide show
  1. package/README.md +1 -25
  2. package/bundles/reskin-core-classes.umd.js +3 -0
  3. package/bundles/reskin-core-classes.umd.js.map +1 -1
  4. package/bundles/reskin-core-directives.umd.js.map +1 -1
  5. package/bundles/reskin-core-entity-field.umd.js.map +1 -1
  6. package/bundles/reskin-core-entity-menu.umd.js.map +1 -1
  7. package/bundles/reskin-core-entity-org.umd.js +3 -3
  8. package/bundles/reskin-core-entity-org.umd.js.map +1 -1
  9. package/bundles/reskin-core-entity-scheme.umd.js.map +1 -1
  10. package/bundles/reskin-core-guards.umd.js.map +1 -1
  11. package/bundles/reskin-core-interceptors.umd.js +1 -1
  12. package/bundles/reskin-core-interceptors.umd.js.map +1 -1
  13. package/bundles/reskin-core-services.umd.js +233 -60
  14. package/bundles/reskin-core-services.umd.js.map +1 -1
  15. package/bundles/reskin-core-utils.umd.js +45 -12
  16. package/bundles/reskin-core-utils.umd.js.map +1 -1
  17. package/classes/table.helper.d.ts +0 -9
  18. package/entity/file/IUploadFileData.d.ts +1 -1
  19. package/entity/org/OrgTypeEnum.d.ts +3 -3
  20. package/esm2015/classes/public-api.js +1 -1
  21. package/esm2015/classes/table.helper.js +4 -1
  22. package/esm2015/directives/auth.directive.js +1 -1
  23. package/esm2015/directives/directives.module.js +1 -1
  24. package/esm2015/directives/public-api.js +1 -1
  25. package/esm2015/entity/Env.js +1 -1
  26. package/esm2015/entity/IPage.js +1 -1
  27. package/esm2015/entity/R.js +1 -1
  28. package/esm2015/entity/WC.js +1 -1
  29. package/esm2015/entity/dictionary/IDictionaryBaseInfo.js +1 -1
  30. package/esm2015/entity/dictionary/IDictionaryItem.js +1 -1
  31. package/esm2015/entity/dictionary/public-api.js +1 -1
  32. package/esm2015/entity/field/ColumnTypeEnum.js +1 -1
  33. package/esm2015/entity/field/ITableField.js +1 -1
  34. package/esm2015/entity/field/public-api.js +1 -1
  35. package/esm2015/entity/file/IUploadFileData.js +1 -1
  36. package/esm2015/entity/file/public-api.js +1 -1
  37. package/esm2015/entity/menu/IMenu.js +1 -1
  38. package/esm2015/entity/menu/MenuTypeEnum.js +1 -1
  39. package/esm2015/entity/menu/public-api.js +1 -1
  40. package/esm2015/entity/org/IOrgTreeNode.js +1 -1
  41. package/esm2015/entity/org/OrgTypeEnum.js +4 -4
  42. package/esm2015/entity/org/public-api.js +1 -1
  43. package/esm2015/entity/public-api.js +1 -1
  44. package/esm2015/entity/scheme/IFieldScheme.js +1 -1
  45. package/esm2015/entity/scheme/IScheme.js +1 -1
  46. package/esm2015/entity/scheme/SchemeEditTypeEnum.js +1 -1
  47. package/esm2015/entity/scheme/public-api.js +1 -1
  48. package/esm2015/entity/user/IAuth.js +1 -1
  49. package/esm2015/entity/user/IAuthAccount.js +1 -1
  50. package/esm2015/entity/user/public-api.js +1 -1
  51. package/esm2015/guards/auth.guard.js +1 -1
  52. package/esm2015/guards/public-api.js +1 -1
  53. package/esm2015/interceptors/blob.interceptor.js +1 -1
  54. package/esm2015/interceptors/cache.interceptor.js +1 -1
  55. package/esm2015/interceptors/error.interceptor.js +2 -2
  56. package/esm2015/interceptors/public-api.js +1 -1
  57. package/esm2015/interceptors/token.interceptor.js +1 -1
  58. package/esm2015/services/account.service.js +15 -2
  59. package/esm2015/services/app.config.js +27 -5
  60. package/esm2015/services/auth.service.js +11 -2
  61. package/esm2015/services/cache.http.service.js +34 -12
  62. package/esm2015/services/destroy.service.js +10 -1
  63. package/esm2015/services/dictionary.service.js +20 -13
  64. package/esm2015/services/down.file.service.js +15 -7
  65. package/esm2015/services/field.scheme.service.js +19 -6
  66. package/esm2015/services/file.service.js +54 -11
  67. package/esm2015/services/menu.service.js +20 -5
  68. package/esm2015/services/org.service.js +4 -2
  69. package/esm2015/services/public-api.js +1 -1
  70. package/esm2015/services/scheme.service.js +20 -6
  71. package/esm2015/utils/array.js +14 -3
  72. package/esm2015/utils/dom.js +13 -3
  73. package/esm2015/utils/public-api.js +1 -1
  74. package/esm2015/utils/store.js +21 -9
  75. package/fesm2015/reskin-core-classes.js +3 -0
  76. package/fesm2015/reskin-core-classes.js.map +1 -1
  77. package/fesm2015/reskin-core-directives.js.map +1 -1
  78. package/fesm2015/reskin-core-entity-field.js.map +1 -1
  79. package/fesm2015/reskin-core-entity-menu.js.map +1 -1
  80. package/fesm2015/reskin-core-entity-org.js +3 -3
  81. package/fesm2015/reskin-core-entity-org.js.map +1 -1
  82. package/fesm2015/reskin-core-entity-scheme.js.map +1 -1
  83. package/fesm2015/reskin-core-guards.js.map +1 -1
  84. package/fesm2015/reskin-core-interceptors.js +1 -1
  85. package/fesm2015/reskin-core-interceptors.js.map +1 -1
  86. package/fesm2015/reskin-core-services.js +237 -60
  87. package/fesm2015/reskin-core-services.js.map +1 -1
  88. package/fesm2015/reskin-core-utils.js +45 -12
  89. package/fesm2015/reskin-core-utils.js.map +1 -1
  90. package/package.json +1 -1
  91. package/services/account.service.d.ts +13 -1
  92. package/services/app.config.d.ts +12 -3
  93. package/services/auth.service.d.ts +2 -1
  94. package/services/cache.http.service.d.ts +30 -11
  95. package/services/destroy.service.d.ts +9 -0
  96. package/services/dictionary.service.d.ts +12 -12
  97. package/services/down.file.service.d.ts +14 -6
  98. package/services/field.scheme.service.d.ts +7 -3
  99. package/services/file.service.d.ts +45 -10
  100. package/services/menu.service.d.ts +4 -0
  101. package/services/org.service.d.ts +2 -1
  102. package/services/scheme.service.d.ts +8 -3
  103. package/utils/array.d.ts +6 -2
  104. package/utils/dom.d.ts +7 -2
  105. package/utils/store.d.ts +20 -8
@@ -513,7 +513,11 @@
513
513
  this.title = title;
514
514
  }
515
515
  /**
516
- * 加载配置
516
+ * 异步加载配置数据
517
+ * 通过调用API端点获取系统参数,解析并应用这些参数
518
+ * 如果获取参数失败或参数不正确,则抛出错误
519
+ *
520
+ * @returns {Promise<WC>} 返回配置数据的Promise
517
521
  */
518
522
  AppConfig.prototype.onLoad = function () {
519
523
  return __awaiter(this, void 0, void 0, function () {
@@ -528,13 +532,18 @@
528
532
  return [4 /*yield*/, response.json()];
529
533
  case 2:
530
534
  json = _a.sent();
535
+ // 检查响应码,如果不为0,则抛出错误
531
536
  if (json.code !== 0) {
532
537
  throw new Error(json.msg);
533
538
  }
534
539
  config = json.data.SYSTEM_PARAMETER_VALUE && JSON.parse(json.data.SYSTEM_PARAMETER_VALUE);
540
+ // 将production字符串转换为布尔值
535
541
  config.production = config.production === 'true';
542
+ // 将配置数据应用到应用配置中
536
543
  AppConfig.settings = config;
544
+ // 设置项目标题
537
545
  this.title.setTitle(config.insights.PROJECT_NAME);
546
+ // 返回配置数据
538
547
  return [2 /*return*/, config];
539
548
  }
540
549
  });
@@ -556,41 +565,56 @@
556
565
  }] }, { type: i1__namespace.Title }];
557
566
  } });
558
567
  /**
559
- * 项目初始化配置
560
- * @param environment
568
+ * 配置应用的提供者和初始化函数
569
+ *
570
+ * 此函数用于配置应用程序的提供者和服务初始化逻辑它通过依赖注入机制,
571
+ * 将环境配置和应用配置对象提供给应用,并在应用启动时执行一个加载函数
572
+ *
573
+ * @param environment 应用环境的配置对象,包含运行时的各种环境变量和配置
574
+ * @returns 返回一个包含提供者配置的数组,用于 AppModule 的提供者列表
561
575
  */
562
576
  function providerAppConfig(environment) {
563
577
  return [
578
+ // 提供环境配置的提供者,将环境对象作为值提供给 RK_ENVIRONMENT 令牌
564
579
  { provide: RK_ENVIRONMENT, useValue: environment },
580
+ // 将 AppConfig 服务本身作为提供者
565
581
  AppConfig,
582
+ // 配置 APP_INITIALIZER 提供者,使用工厂函数在应用启动时调用 appConfig 的 onLoad 方法
583
+ // 这允许在应用启动完成后执行一些初始化逻辑
566
584
  {
567
585
  provide: i0.APP_INITIALIZER,
568
586
  useFactory: function (appConfig) { return function () { return appConfig.onLoad(); }; },
569
587
  deps: [AppConfig],
570
- multi: true,
588
+ multi: true, // 标记此初始化函数为多值,可以有多个初始化函数
571
589
  },
572
590
  ];
573
591
  }
574
592
 
593
+ // RkAuthService 提供了与用户认证相关的服务
575
594
  var RkAuthService = /** @class */ (function () {
595
+ // 构造函数,注入环境配置和HTTP客户端
576
596
  function RkAuthService(env, http) {
577
597
  this.env = env;
578
598
  this.http = http;
599
+ // auth 存储认证信息
579
600
  this.auth = new utils.Store('auth', {});
580
601
  }
581
602
  /**
582
603
  * 系统登录
583
604
  * @param data 验证信息
584
- * @returns
605
+ * @returns 登录结果
585
606
  */
586
607
  RkAuthService.prototype.onLogin = function (data) {
587
608
  var _this = this;
588
609
  var url = 'api/gl-service-sys-user/v1/user/system/auth/login';
610
+ // 设置请求头,包含项目类型和无令牌控制信息
589
611
  var headers = new i1$1.HttpHeaders({
590
612
  'ProjectNo': this.env.config.PROJECT_TYPE,
591
613
  'Token-Control': 'no-token',
592
614
  });
615
+ // 发送POST请求,并在成功后处理响应
593
616
  return this.http.post(url, { data: data }, { headers: headers }).pipe(operators.tap(function (json) {
617
+ // 如果代码为0,表示登录成功,存储认证信息
594
618
  if (json.code === 0) {
595
619
  _this.auth.set(json.data);
596
620
  }
@@ -601,13 +625,16 @@
601
625
  */
602
626
  RkAuthService.prototype.onLogout = function () {
603
627
  var url = 'api/gl-service-sys-user/v1/user/system/auth/logoutByAuthId';
628
+ // 发送POST请求,使用当前的AUTH_ID进行注销
604
629
  return this.http.post(url, { AUTH_ID: this.token.id });
605
630
  };
606
631
  Object.defineProperty(RkAuthService.prototype, "token", {
607
632
  /**
608
633
  * 获得 token
634
+ * @returns 当前用户的认证信息
609
635
  */
610
636
  get: function () {
637
+ // 获取存储的认证信息
611
638
  return this.auth.get();
612
639
  },
613
640
  enumerable: false,
@@ -630,13 +657,18 @@
630
657
  } });
631
658
 
632
659
  var RkAccountService = /** @class */ (function () {
633
- function RkAccountService(http, auth) {
660
+ function RkAccountService(http, // HttpClient实例用于发送HTTP请求
661
+ auth) {
634
662
  this.http = http;
635
663
  this.auth = auth;
664
+ // 定义一个Store实例用于存储用户认证信息
636
665
  this.account = new utils.Store('account', {});
637
666
  }
638
667
  /**
639
668
  * 加载人员权限
669
+ *
670
+ * 本方法通过发送HTTP POST请求来加载当前认证用户的权限数据,
671
+ * 如果请求成功,将权限数据存储在account Store实例中
640
672
  */
641
673
  RkAccountService.prototype.onLoadAuth = function () {
642
674
  var _this = this;
@@ -651,6 +683,8 @@
651
683
  Object.defineProperty(RkAccountService.prototype, "userInfo", {
652
684
  /**
653
685
  * 获得账号基本信息
686
+ *
687
+ * @returns {IAccountProfile} 返回当前账号的基本信息对象
654
688
  */
655
689
  get: function () {
656
690
  return this.account.get().UserInfo;
@@ -661,6 +695,8 @@
661
695
  Object.defineProperty(RkAccountService.prototype, "personnelPool", {
662
696
  /**
663
697
  * 获得账号人员库权限
698
+ *
699
+ * @returns {IAuthPersonnelPool} 返回当前账号的人员库权限对象
664
700
  */
665
701
  get: function () {
666
702
  return this.account.get().AuthPersonnelPool;
@@ -671,6 +707,8 @@
671
707
  Object.defineProperty(RkAccountService.prototype, "workflowAuth", {
672
708
  /**
673
709
  * 获得账号业务权限
710
+ *
711
+ * @returns {IAuthWorkflow} 返回当前账号的业务权限对象
674
712
  */
675
713
  get: function () {
676
714
  return this.account.get().AuthWfId;
@@ -681,6 +719,8 @@
681
719
  Object.defineProperty(RkAccountService.prototype, "authOrgGroup", {
682
720
  /**
683
721
  * 获得账号机构分组权限
722
+ *
723
+ * @returns {Array<IAuthOrgGroup>} 返回当前账号的机构分组权限数组
684
724
  */
685
725
  get: function () {
686
726
  return this.account.get().AuthOrgGroup;
@@ -704,29 +744,42 @@
704
744
  this.cache = new Map();
705
745
  }
706
746
  /**
707
- * 获得已缓存的请求
708
- * @param url GET请求地址
747
+ * 从缓存中获取指定URL的HTTP响应
748
+ *
749
+ * 此方法尝试从缓存中获取与指定URL相关的HTTP响应如果缓存中存在相应的响应,则返回该响应,否则返回未定义(undefined)
750
+ * 它避免了不必要的网络请求,从而提高应用的性能
751
+ *
752
+ * @param url 要从缓存中获取的资源的URL
753
+ * @returns 返回一个Observable对象,该对象发出未知类型的HTTP事件,或者在缓存中未找到时返回未定义
709
754
  */
710
755
  RkCacheHttpService.prototype.get = function (url) {
711
756
  return this.cache.get(url);
712
757
  };
713
758
  /**
714
- * 缓存请求
715
- * @param url GET请求地址
716
- * @param response 响应内容
759
+ * 将HTTP响应缓存到指定的URL
760
+ *
761
+ * 此方法用于将给定的HTTP响应Observable对象与特定的URL关联,并存储在缓存中这样做的目的是为了在将来对同一URL的请求可以直接从缓存中获取响应,而不需要再次发送HTTP请求,从而提高应用的性能和响应速度
762
+ *
763
+ * @param url 要缓存响应的URL
764
+ * @param response HTTP响应的Observable对象,包含响应数据和状态
717
765
  */
718
766
  RkCacheHttpService.prototype.set = function (url, response) {
719
767
  this.cache.set(url, response);
720
768
  };
721
769
  /**
722
- * 删除指定已缓存的请求
723
- * @param url GET请求地址
770
+ * 删除指定的URL对应的缓存
771
+ *
772
+ * 本方法通过URL作为键,从缓存中删除对应的缓存项它使用了`cache.delete`方法来实现缓存的删除操作
773
+ *
774
+ * @param url {string} - 需要删除缓存的URL地址
724
775
  */
725
776
  RkCacheHttpService.prototype.delete = function (url) {
726
777
  this.cache.delete(url);
727
778
  };
728
779
  /**
729
- * 删除所有已缓存的请求
780
+ * 清除缓存
781
+ *
782
+ * 该方法清空当前实例的缓存
730
783
  */
731
784
  RkCacheHttpService.prototype.clear = function () {
732
785
  this.cache.clear();
@@ -742,42 +795,66 @@
742
795
  }]
743
796
  }] });
744
797
  /**
745
- * 设置为缓存请求
798
+ * 生成带有缓存策略的HTTP请求模板
746
799
  * 使用方法:http.get(...CacheHttpTemplate`api/response.json`)
747
- * @param urls 请求地址
748
- * @param params 模板参数
800
+ *
801
+ * 该函数用于创建一个带有特定缓存策略的HTTP请求URL和相关头部信息它通过模板字符串和参数数组,
802
+ * 构建一个最终的URL,并自动添加一个名为'Cache-Map'的自定义头部,其值为'Storage'
803
+ *
804
+ * @param urls 模板字符串数组,通常用于构建URL的一部分
805
+ * @param params 任意数量的参数,用于与模板字符串一起构建最终的URL
806
+ * @returns 返回一个元组,第一个元素是构建好的URL字符串,第二个元素是一个对象,
807
+ * 包含了HTTP请求的头部信息,目前只包含一个自定义的'Cache-Map'头部
749
808
  */
750
809
  function CacheHttpTemplate(urls) {
751
810
  var params = [];
752
811
  for (var _i = 1; _i < arguments.length; _i++) {
753
812
  params[_i - 1] = arguments[_i];
754
813
  }
814
+ // 初始化URL为模板字符串数组的第一个元素
755
815
  var _a = __read(urls, 1), url = _a[0];
816
+ // 如果参数数组非空,则使用模板字符串和参数数组构建最终的URL
756
817
  if (params.length > 0) {
757
818
  url = String.raw.apply(String, __spreadArray([urls], __read(params)));
758
819
  }
820
+ // 返回构建好的URL和带有缓存策略的头部信息
759
821
  return [url, { headers: new i1$1.HttpHeaders({ 'Cache-Map': 'Storage' }) }];
760
822
  }
761
823
 
824
+ // 通过@Injectable装饰器指定RkMenuService可以被Angular的依赖注入系统提供和使用
825
+ // RkMenuService类用于处理系统导航菜单相关的业务逻辑
762
826
  var RkMenuService = /** @class */ (function () {
827
+ // 构造函数,注入HttpClient实例用于发送HTTP请求
763
828
  function RkMenuService(http) {
764
829
  this.http = http;
830
+ // AppConfig.settings存储了应用程序的配置信息
765
831
  this.appSettings = AppConfig.settings;
766
832
  }
767
833
  /**
768
834
  * 获得系统导航列表
835
+ *
836
+ * 通过HTTP GET请求从后端获取系统导航数据,返回一个Observable对象
837
+ *
838
+ * @returns Observable<R<Array<IMenu>>> 包含导航菜单数据的Observable对象
769
839
  */
770
840
  RkMenuService.prototype.requestData = function () {
771
841
  var _a;
842
+ // 定义请求的URL
772
843
  var url = 'api/gl-service-sys-core/v1/core/system/resource/tree/selectListNav';
844
+ // 发送HTTP GET请求,并使用tap操作符对返回的数据进行处理
773
845
  return (_a = this.http).get.apply(_a, __spreadArray([], __read(CacheHttpTemplate(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["", "/", ""], ["", "/", ""])), url, this.appSettings.servers.RESOURCE_GROUP_ID)))).pipe(operators.tap(function (json) {
846
+ // 检查返回的状态码,如果不为0,则不处理
774
847
  if (json.code !== 0) {
775
- throw new Error("\u83B7\u5F97\u7CFB\u7EDF\u5BFC\u822A\u5217\u8868 " + url + " \u51FA\u73B0\u9519\u8BEF: " + json.msg);
848
+ return;
776
849
  }
850
+ // 提取导航菜单数据
777
851
  var menus = json.data;
778
- menus.forEach(function (menu) {
779
- menu.children = menus.filter(function (v) { return menu.SYSTEM_RESOURCE_TREE_ID === v.SYS_PARENT; }) || [];
780
- });
852
+ // 如果导航菜单为空,输出错误信息
853
+ if (menus.length) { // 处理返回的菜单数据,为每个菜单添加子菜单属性
854
+ menus.forEach(function (menu) {
855
+ menu.children = menus.filter(function (v) { return menu.SYSTEM_RESOURCE_TREE_ID === v.SYS_PARENT; }) || [];
856
+ });
857
+ }
781
858
  }));
782
859
  };
783
860
  return RkMenuService;
@@ -797,9 +874,12 @@
797
874
  this.http = http;
798
875
  }
799
876
  /**
800
- * 使用GET方法下载文件
801
- * @param url 请求链接; url可以传递自定义文件名优先级最高;如:api/file/down?fileName=身份证.jpg
802
- * @param params 请求参数
877
+ * 使用HTTP GET方法发送请求,以获取Blob类型的响应
878
+ * 此方法主要用于处理需要二进制响应的请求,如文件下载等
879
+ *
880
+ * @param url 请求的URL,必须提供,url可以传递自定义文件名优先级最高;如:api/file/down?fileName=身份证.jpg
881
+ * @param params 可选的查询参数,将作为URL查询字符串发送
882
+ * @returns 返回一个Observable,它发出HttpResponse对象,包含Blob类型的响应体
803
883
  */
804
884
  RkDownFileService.prototype.get = function (url, params) {
805
885
  var _this = this;
@@ -808,9 +888,14 @@
808
888
  .pipe(operators.tap(function (response) { return _this.handleResponse(response, url); }));
809
889
  };
810
890
  /**
811
- * 使用POST方法下载文件
812
- * @param url 请求链接; url可以传递自定义文件名优先级最高;如:api/file/down?fileName=身份证.jpg
813
- * @param params 请求参数
891
+ * 发起POST请求下载数据
892
+ *
893
+ * 本函数用于向指定URL发起POST请求,并期望返回二进制数据(如文件等)
894
+ * 使用场景包括但不限于文件下载等需要获取原始二进制数据的操作
895
+ *
896
+ * @param url 请求的URL,必须提供,url可以传递自定义文件名优先级最高;如:api/file/down?fileName=身份证.jpg
897
+ * @param params 请求的参数,可以是任意类型的数据,会作为请求体发送
898
+ * @returns 返回一个Observable,其类型参数为HttpResponse<Blob>,表示服务器的响应
814
899
  */
815
900
  RkDownFileService.prototype.post = function (url, params) {
816
901
  var _this = this;
@@ -875,9 +960,15 @@
875
960
  this.http = http;
876
961
  }
877
962
  /**
878
- * 获得人员照片静态路径
879
- * @param fileId 文件编码
880
- * @param fileName 文件名称
963
+ * 构建静态人员照片的URL
964
+ *
965
+ * 该方法用于根据文件ID构建访问静态图片的URL如果提供了文件名,
966
+ * 则将其作为查询参数附加到URL上这个函数主要用于前端展示静态图片,
967
+ * 通过传入文件的唯一标识符(fileId)和可选的文件名来确保图片的正确加载
968
+ *
969
+ * @param fileId 图片文件的唯一标识符,用于定位具体的图片资源
970
+ * @param fileName 可选参数,图片文件的名称如果提供,将作为查询参数附加到URL上
971
+ * @returns 返回构建的静态图片URL
881
972
  */
882
973
  RkFileService.prototype.staticPhotoUrl = function (fileId, fileName) {
883
974
  var url = "api/gl-file-service/static/photo/" + fileId;
@@ -887,31 +978,68 @@
887
978
  return url;
888
979
  };
889
980
  /**
890
- * 上传人员照片
891
- * @param data 文件
981
+ * 上传图片
982
+ *
983
+ * 该方法用于将图片文件上传到服务器它封装了HTTP POST请求,发送FormData对象到指定的API端点
984
+ * 主要用于用户头像的上传操作
985
+ *
986
+ * @param data FormData对象,包含了需要上传的文件以及其他可能的表单数据
987
+ * @returns 返回一个Observable对象,其类型参数为R<IUploadFileData>,表示上传操作的结果
892
988
  */
893
989
  RkFileService.prototype.photoUpload = function (data) {
894
990
  var url = 'api/gl-file-service/photo/upload';
895
991
  return this.http.post(url, data);
896
992
  };
897
993
  /**
898
- * 获得附件静态路径
899
- * @param fileId 文件编码
900
- * @param fileName 文件名称
994
+ * 构建静态文件的URL地址
995
+ *
996
+ * 本函数用于根据文件ID和可选的文件名构建访问静态文件的URL地址
997
+ * 如果提供了文件名,将会将其编码并附加到URL上,以便在访问时可以直接下载文件
998
+ *
999
+ * @param fileId 文件的唯一标识符,用于定位具体文件
1000
+ * @param fileName 可选参数,文件的名称如果提供此参数,将会在URL中进行编码后附加
1001
+ * @returns 返回构建好的静态文件URL地址
901
1002
  */
902
1003
  RkFileService.prototype.staticFileUrl = function (fileId, fileName) {
1004
+ // 初始化URL,指向文件服务的静态附件访问路径
903
1005
  var url = "api/gl-file-service/static/attachment/" + fileId;
1006
+ // 如果提供了文件名,则进行编码并追加到URL中
904
1007
  if (fileName) {
905
1008
  url += "?fileName=" + encodeURI(fileName);
906
1009
  }
1010
+ // 返回最终构建好的URL
907
1011
  return url;
908
1012
  };
909
1013
  /**
910
- * 上传附件
911
- * @param data 文件
1014
+ * 上传文件
1015
+ *
1016
+ * 此方法用于将文件数据上传到服务器它封装了HTTP POST请求,用于文件上传服务
1017
+ * 使用FormData对象来构建需要上传的文件数据
1018
+ *
1019
+ * @param data FormData对象,包含了需要上传的文件数据
1020
+ * @returns 返回一个Observable对象,它发出包含上传结果数据的动作
912
1021
  */
913
1022
  RkFileService.prototype.fileUpload = function (data) {
1023
+ // 定义上传文件的API URL
914
1024
  var url = 'api/gl-file-service/attachment/upload';
1025
+ // 调用HTTP POST方法进行文件上传
1026
+ return this.http.post(url, data);
1027
+ };
1028
+ /**
1029
+ * 批量上传文件
1030
+ *
1031
+ * 该方法负责将一组文件作为FormData发送到服务器进行批量上传
1032
+ * 主要用于处理大量文件上传的情况,提高效率和用户体验
1033
+ *
1034
+ * @param data FormData对象,包含了需要上传的文件数据
1035
+ * 这个对象通常由前端表单生成,包含了多个文件
1036
+ * @returns 返回一个Observable对象,它发出一个结果类型为R<IUploadFileData[]>的响应
1037
+ * 这个响应包含了上传结果的详细信息,包括成功与否,文件信息等
1038
+ *
1039
+ * 注意:该方法依赖于后端提供的文件上传服务,URL路径为'api/gl-file-service/attachment/batchUpload'
1040
+ */
1041
+ RkFileService.prototype.batchUpload = function (data) {
1042
+ var url = 'api/gl-file-service/attachment/batchUpload';
915
1043
  return this.http.post(url, data);
916
1044
  };
917
1045
  return RkFileService;
@@ -925,6 +1053,7 @@
925
1053
  }]
926
1054
  }], ctorParameters: function () { return [{ type: i1__namespace$1.HttpClient }]; } });
927
1055
 
1056
+ // 组织机构服务,提供获取单位列表、搜索机构和获取所有父节点的功能
928
1057
  var RkOrgService = /** @class */ (function () {
929
1058
  function RkOrgService(http) {
930
1059
  this.http = http;
@@ -954,7 +1083,8 @@
954
1083
  };
955
1084
  /**
956
1085
  * 通过单位编码获得所有父节点
957
- * @param id
1086
+ * @param id 单位编码
1087
+ * @returns 父节点列表
958
1088
  */
959
1089
  RkOrgService.prototype.requestParentList = function (id) {
960
1090
  var url = 'api/gl-service-data/v1/data/unit/org/selectListAllParentById';
@@ -971,15 +1101,17 @@
971
1101
  }]
972
1102
  }], ctorParameters: function () { return [{ type: i1__namespace$1.HttpClient }]; } });
973
1103
 
1104
+ // 提供字典服务,用于管理和查询字典数据
974
1105
  var RkDictionaryService = /** @class */ (function () {
975
1106
  function RkDictionaryService(http) {
976
1107
  this.http = http;
1108
+ // 存储字典常用项的缓存,有效期为一周
977
1109
  this.useItems = new utils.Store('dictionary_use_items', {}, { expires: 1000 * 60 * 60 * 24 * 7 });
978
1110
  }
979
1111
  /**
980
1112
  * 通过字典编码获得常用项
981
1113
  * @param code 字典编码
982
- * @returns 常用项
1114
+ * @returns 常用项数组
983
1115
  */
984
1116
  RkDictionaryService.prototype.getUseItems = function (code) {
985
1117
  return this.useItems.get()[code] || [];
@@ -987,20 +1119,24 @@
987
1119
  /**
988
1120
  * 通过字典编码设置常用项
989
1121
  * @param code 字典编码
990
- * @param item 常用项
1122
+ * @param item 常用项对象
991
1123
  */
992
1124
  RkDictionaryService.prototype.setUseItems = function (code, item) {
993
1125
  var data = this.useItems.get();
1126
+ // 如果字典编码不存在,则创建一个新数组
994
1127
  if (!data[code]) {
995
1128
  data[code] = [item];
996
1129
  }
997
1130
  else {
1131
+ // 如果常用项已存在,则不进行重复添加
998
1132
  if (data[code].find(function (v) { return v.DICTIONARY_ITEM_CODE === item.DICTIONARY_ITEM_CODE; })) {
999
1133
  return;
1000
1134
  }
1135
+ // 如果常用项数组已满(超过9个),则移除最后一个元素
1001
1136
  if (data[code].length > 9) {
1002
1137
  data[code].pop();
1003
1138
  }
1139
+ // 将新的常用项添加到数组开头
1004
1140
  data[code].unshift(item);
1005
1141
  }
1006
1142
  this.useItems.set(data);
@@ -1008,7 +1144,7 @@
1008
1144
  /**
1009
1145
  * 通过字典编码获得字典基本信息
1010
1146
  * @param code 字典编码
1011
- * @returns 字典基本信息
1147
+ * @returns 字典基本信息的Observable对象
1012
1148
  */
1013
1149
  RkDictionaryService.prototype.getBaseInfo = function (code) {
1014
1150
  var _a;
@@ -1016,9 +1152,9 @@
1016
1152
  return (_a = this.http).get.apply(_a, __spreadArray([], __read(CacheHttpTemplate(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["", "/", ""], ["", "/", ""])), url, this.codeReplace(code))))).pipe(operators.filter(function (json) { return json.code === 0; }), operators.map(function (json) { return json.data; }));
1017
1153
  };
1018
1154
  /**
1019
- * 通过字典编码获得获得字典项
1155
+ * 通过字典编码获得字典项列表
1020
1156
  * @param code 字典编码
1021
- * @returns 字典项列表
1157
+ * @returns 字典项列表的Observable对象
1022
1158
  */
1023
1159
  RkDictionaryService.prototype.getData = function (code) {
1024
1160
  var _a;
@@ -1026,24 +1162,25 @@
1026
1162
  return (_a = this.http).get.apply(_a, __spreadArray([], __read(CacheHttpTemplate(templateObject_2 || (templateObject_2 = __makeTemplateObject(["", "/", ""], ["", "/", ""])), url, this.codeReplace(code))))).pipe(operators.filter(function (json) { return json.code === 0; }), operators.map(function (json) { return json.data; }));
1027
1163
  };
1028
1164
  /**
1029
- * 通过父节点获得字典项编码
1165
+ * 通过父节点获得字典项列表
1030
1166
  * @param code 字典编码
1031
- * @param parentId 父节点编码
1032
- * @returns 字典项列表
1167
+ * @param parentId 父节点编码,默认为根节点
1168
+ * @returns 字典项列表的Observable对象
1033
1169
  */
1034
1170
  RkDictionaryService.prototype.getChildData = function (code, parentId) {
1035
1171
  if (parentId === void 0) { parentId = '-1'; }
1036
1172
  var url = "api/gl-service-sys-core/v1/core/system/dictionary/item/selectListByDictionaryCode";
1037
1173
  return this.http.post(url, { DICTIONARY_CODE: code, SYS_PARENT: parentId }).pipe(operators.filter(function (json) { return json.code === 0; }), operators.map(function (json) { return json.data; }));
1038
1174
  };
1175
+ // 私有方法,用于替换字典编码中的特殊字符
1039
1176
  RkDictionaryService.prototype.codeReplace = function (code) {
1040
1177
  return code.replace(/\//g, '_');
1041
1178
  };
1042
1179
  /**
1043
- * 通过字典编码获得获得字典项
1180
+ * 根据关键字搜索字典项
1044
1181
  * @param code 字典编码
1045
1182
  * @param keyword 关键字
1046
- * @returns 字典项列表
1183
+ * @returns 最多10个匹配的字典项列表的Observable对象
1047
1184
  */
1048
1185
  RkDictionaryService.prototype.requestSearchData = function (code, keyword) {
1049
1186
  var url = 'api/gl-service-sys-core/v1/core/system/dictionary/item/selectListByQuery';
@@ -1056,10 +1193,10 @@
1056
1193
  }); }); }));
1057
1194
  };
1058
1195
  /**
1059
- * 获得字典项的所有父节点
1196
+ * 获取字典项的所有父节点
1060
1197
  * @param code 字典编码
1061
1198
  * @param id 字典项编码
1062
- * @returns 字典项列表
1199
+ * @returns 父节点列表的Observable对象
1063
1200
  */
1064
1201
  RkDictionaryService.prototype.requestParentList = function (code, id) {
1065
1202
  var url = 'api/gl-service-sys-core/v1/core/system/dictionary/item/selectListInfoAllParentByCode';
@@ -1083,21 +1220,35 @@
1083
1220
  this.appSettings = AppConfig.settings;
1084
1221
  }
1085
1222
  /**
1086
- * 通过界面方案标识符获得界面方案内容
1087
- * @param permission 界面方案标识符
1088
- * @returns 界面方案
1223
+ * 根据权限标识符获取界面方案内容
1224
+ *
1225
+ * 此方法主要用于根据提供的权限标识符,从后端服务中获取相应的界面方案内容它首先检查是否设置了应用设置中的区域代码,
1226
+ * 如果设置了,则将其前缀到权限标识符上,然后构造请求的URL,并调用HTTP服务进行获取在处理HTTP响应时,
1227
+ * 它会检查返回的状态码,并在状态码不为0(成功)时抛出错误,否则返回界面方案数据
1228
+ *
1229
+ * @param permission 权限标识符,用于获取相应的界面方案
1230
+ * @returns 返回一个Observable,其中包含界面方案数据
1089
1231
  */
1090
1232
  RkSchemeService.prototype.getData = function (permission) {
1091
1233
  var _a;
1234
+ // 检查应用设置中是否设置了区域代码,如果设置了,则将其前缀到权限标识符上
1092
1235
  if (this.appSettings && this.appSettings.servers.AREA_CODE) {
1093
1236
  permission = this.appSettings.servers.AREA_CODE + "_" + permission;
1094
1237
  }
1238
+ // 构造请求的URL
1095
1239
  var url = "api/gl-service-sys-core/v1/core/system/scheme/selectSchemeByPermission";
1096
- return (_a = this.http).get.apply(_a, __spreadArray([], __read(CacheHttpTemplate(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["", "/", ""], ["", "/", ""])), url, permission)))).pipe(operators.tap(function (json) {
1240
+ // 调用HTTP服务进行GET请求,并对返回的Observable进行处理
1241
+ return (_a = this.http).get.apply(_a, __spreadArray([], __read(CacheHttpTemplate(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["", "/", ""], ["", "/", ""])), url, permission)))).pipe(
1242
+ // 检查返回的状态码,如果不为0,则抛出错误
1243
+ operators.tap(function (json) {
1097
1244
  if (json.code !== 0) {
1098
1245
  throw new Error("\u901A\u8FC7\u754C\u9762\u65B9\u6848\u6807\u8BC6\u7B26\u83B7\u5F97\u754C\u9762\u65B9\u6848\u5185\u5BB9 " + url + " \u51FA\u73B0\u9519\u8BEF: " + json.msg);
1099
1246
  }
1100
- }), operators.filter(function (json) { return json.code === 0; }), operators.map(function (json) { return json.data; }));
1247
+ }),
1248
+ // 过滤出状态码为0的响应
1249
+ operators.filter(function (json) { return json.code === 0; }),
1250
+ // 提取并返回响应中的数据部分
1251
+ operators.map(function (json) { return json.data; }));
1101
1252
  };
1102
1253
  return RkSchemeService;
1103
1254
  }());
@@ -1117,21 +1268,34 @@
1117
1268
  this.appSettings = AppConfig.settings;
1118
1269
  }
1119
1270
  /**
1120
- * 通过字段方案标识符获得字段方案内容
1121
- * @param permission 字段方案标识符
1122
- * @returns 字段方案
1271
+ * 根据权限标识符获取字段方案
1272
+ *
1273
+ * 此方法主要用于根据提供的权限标识符,从后端服务中获取相应的字段方案
1274
+ * 如果应用设置中包含了地区代码,则会将其前缀添加到权限标识符上
1275
+ *
1276
+ * @param permission 字段方案的权限标识符,用于定位特定的字段方案
1277
+ * @returns 返回一个Observable,其中包含字段方案的数据
1123
1278
  */
1124
1279
  RkFieldSchemeService.prototype.getData = function (permission) {
1125
1280
  var _a;
1281
+ // 检查应用设置中是否提供了地区代码,如果有,则将其添加到权限标识符的前面
1126
1282
  if (this.appSettings && this.appSettings.servers.AREA_CODE) {
1127
1283
  permission = this.appSettings.servers.AREA_CODE + "_" + permission;
1128
1284
  }
1285
+ // 定义请求的URL,用于从后端服务获取字段方案
1129
1286
  var url = "api/gl-service-sys-core/v1/core/system/field/scheme/selectSchemeByIdentifier";
1130
- return (_a = this.http).get.apply(_a, __spreadArray([], __read(CacheHttpTemplate(templateObject_1 || (templateObject_1 = __makeTemplateObject(["", "/", ""], ["", "/", ""])), url, permission)))).pipe(operators.tap(function (json) {
1287
+ // 发起HTTP GET请求,使用缓存HTTP模板,并对返回的结果进行处理
1288
+ return (_a = this.http).get.apply(_a, __spreadArray([], __read(CacheHttpTemplate(templateObject_1 || (templateObject_1 = __makeTemplateObject(["", "/", ""], ["", "/", ""])), url, permission)))).pipe(
1289
+ // 如果返回码不为0,则抛出错误,提示获取字段方案内容时出现错误
1290
+ operators.tap(function (json) {
1131
1291
  if (json.code !== 0) {
1132
1292
  throw new Error("\u901A\u8FC7\u5B57\u6BB5\u65B9\u6848\u6807\u8BC6\u7B26\u83B7\u5F97\u5B57\u6BB5\u65B9\u6848\u5185\u5BB9 " + url + " \u51FA\u73B0\u9519\u8BEF: " + json.msg);
1133
1293
  }
1134
- }), operators.filter(function (json) { return json.code === 0; }), operators.map(function (json) { return json.data; }));
1294
+ }),
1295
+ // 过滤出返回码为0的结果,即操作成功的数据
1296
+ operators.filter(function (json) { return json.code === 0; }),
1297
+ // 提取结果数据中的字段方案内容
1298
+ operators.map(function (json) { return json.data; }));
1135
1299
  };
1136
1300
  return RkFieldSchemeService;
1137
1301
  }());
@@ -1150,6 +1314,15 @@
1150
1314
  function RkDestroyService() {
1151
1315
  return _super !== null && _super.apply(this, arguments) || this;
1152
1316
  }
1317
+ /**
1318
+ * 在组件销毁时调用的方法
1319
+ *
1320
+ * 该方法主要用于清理操作,确保在组件被销毁前完成所有的清理工作
1321
+ * 首先,调用`this.next()`方法,用于发送一个通知或执行某些操作,以便在组件销毁前进行必要的处理
1322
+ * 然后,调用`this.complete()`方法,表示已完成所有必要的清理操作,确保资源被正确释放
1323
+ *
1324
+ * @returns void - 该方法没有返回值
1325
+ */
1153
1326
  RkDestroyService.prototype.ngOnDestroy = function () {
1154
1327
  this.next();
1155
1328
  this.complete();