@dhccmobile/vue3-lo-form 1.1.41 → 2.0.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.
Files changed (165) hide show
  1. package/.env.local.bak +6 -6
  2. package/.eslintrc.js +28 -28
  3. package/README.md +70 -62
  4. package/babel.config.js +3 -3
  5. package/dist/vue3-lo-form.common.js +7700 -107778
  6. package/dist/vue3-lo-form.common.js.map +1 -1
  7. package/dist/vue3-lo-form.css +1 -1
  8. package/dist/vue3-lo-form.umd.js +7773 -107851
  9. package/dist/vue3-lo-form.umd.js.map +1 -1
  10. package/dist/vue3-lo-form.umd.min.js +1 -56
  11. package/dist/vue3-lo-form.umd.min.js.map +1 -1
  12. package/package.json +65 -61
  13. package/public/index.html +17 -17
  14. package/public/js/pinyin.ts +101 -101
  15. package/src/App.vue +741 -741
  16. package/src/components/form/DvForm.vue +642 -642
  17. package/src/components/form/DvFormLayout.vue +1569 -1569
  18. package/src/components/form/StretchText.vue +90 -90
  19. package/src/components/index.ts +3 -3
  20. package/src/constants/config/form-template.config.ts +32 -32
  21. package/src/constants/config/form.config.ts +4 -4
  22. package/src/constants/config/storage.config.ts +4 -4
  23. package/src/constants/encode-assets/svg.ts +11 -11
  24. package/src/constants/enum/builtIn-label.enum.ts +5 -5
  25. package/src/constants/enum/cache-type.enum.ts +7 -7
  26. package/src/constants/enum/control-format-type.enum.ts +9 -9
  27. package/src/constants/enum/dynamic-option-type.enum.ts +6 -6
  28. package/src/constants/enum/form-bus-attr.enum.ts +8 -8
  29. package/src/constants/enum/form-field-class.enum.ts +7 -7
  30. package/src/constants/enum/form-field-type.enum.ts +25 -25
  31. package/src/constants/enum/form-type.enum.ts +5 -5
  32. package/src/constants/enum/index.ts +19 -19
  33. package/src/constants/enum/lateral-arrangement.enum.ts +9 -9
  34. package/src/constants/enum/money-unit.enum.ts +6 -6
  35. package/src/constants/enum/option-type.enum.ts +5 -5
  36. package/src/constants/enum/submitted-type.enum.ts +32 -31
  37. package/src/constants/enum/support-upload-type.enum.ts +5 -5
  38. package/src/constants/enum/switch.enum.ts +5 -5
  39. package/src/constants/enum/upload-type.enum.ts +17 -17
  40. package/src/constants/enum/validate-rules.enum.ts +25 -25
  41. package/src/constants/enum/validate-status.enum.ts +8 -8
  42. package/src/constants/enum/vertical-arrangement.enum.ts +7 -7
  43. package/src/constants/enum/zoom-type.ts +6 -6
  44. package/src/constants/index.ts +3 -3
  45. package/src/core/FormApi.ts +1238 -1238
  46. package/src/core/index.ts +1 -1
  47. package/src/domain/AbstractControl.ts +6 -6
  48. package/src/domain/Control.ts +14 -14
  49. package/src/domain/CustomFormat.ts +6 -6
  50. package/src/domain/DesForm.ts +48 -48
  51. package/src/domain/DesFormControl.ts +241 -241
  52. package/src/domain/DesFormLayout.ts +51 -51
  53. package/src/domain/FieldChangeHistory.ts +9 -9
  54. package/src/domain/FormConfig.ts +15 -15
  55. package/src/domain/FormControl.ts +125 -125
  56. package/src/domain/FormEnum.ts +9 -9
  57. package/src/domain/FormGroup.ts +42 -42
  58. package/src/domain/FormRestfulResponse.ts +6 -6
  59. package/src/domain/ProvideInjectData.ts +10 -10
  60. package/src/domain/SysDictDetail.ts +38 -38
  61. package/src/domain/SysDictInfo.ts +40 -40
  62. package/src/domain/SysDictTreeDetail.ts +52 -52
  63. package/src/domain/index.ts +12 -12
  64. package/src/filtres/amount-capitalization.filter.ts +154 -147
  65. package/src/filtres/extract-options.filter.ts +53 -53
  66. package/src/filtres/generate-grid-column-end.filter.ts +22 -22
  67. package/src/filtres/generate-grid-template-columns.filter.ts +24 -24
  68. package/src/filtres/switch-enum-convert.filter.ts +18 -18
  69. package/src/filtres/zoom-multiple.filter.ts +32 -32
  70. package/src/index.ts +73 -73
  71. package/src/main.ts +17 -17
  72. package/src/services/api.service.ts +73 -73
  73. package/src/services/clean-local-forage.service.ts +58 -58
  74. package/src/services/date-format.service.ts +74 -74
  75. package/src/services/dict-local-forage.service.ts +58 -58
  76. package/src/services/form-bean-utils.service.ts +41 -41
  77. package/src/services/form-local-forage.service.ts +59 -59
  78. package/src/services/form-tools.service.ts +739 -659
  79. package/src/services/form-tree-node-convert.service.ts +240 -240
  80. package/src/services/form-validate.service.ts +103 -103
  81. package/src/services/index.ts +9 -9
  82. package/src/services/router.service.ts +96 -96
  83. package/src/services/validate-generator.service.ts +710 -710
  84. package/src/shims-vue.d.ts +6 -6
  85. package/src/store/dict.store.ts +63 -63
  86. package/src/store/form.store.ts +32 -32
  87. package/src/store/index.ts +2 -2
  88. package/src/styles/datePicker.scss +125 -125
  89. package/src/styles/index.scss +195 -195
  90. package/src/styles/theme1.scss +277 -277
  91. package/src/styles/theme2.scss +376 -376
  92. package/src/styles/themes.scss +9 -9
  93. package/src/types/vfForm.ts +11 -11
  94. package/tsconfig.json +40 -40
  95. package/types/components/index.d.ts +3 -3
  96. package/types/constants/config/form-template.config.d.ts +30 -30
  97. package/types/constants/config/form.config.d.ts +4 -4
  98. package/types/constants/config/storage.config.d.ts +4 -4
  99. package/types/constants/encode-assets/svg.d.ts +5 -5
  100. package/types/constants/enum/builtIn-label.enum.d.ts +7 -7
  101. package/types/constants/enum/cache-type.enum.d.ts +15 -15
  102. package/types/constants/enum/control-format-type.enum.d.ts +23 -23
  103. package/types/constants/enum/dynamic-option-type.enum.d.ts +11 -11
  104. package/types/constants/enum/form-bus-attr.enum.d.ts +19 -19
  105. package/types/constants/enum/form-field-class.enum.d.ts +18 -18
  106. package/types/constants/enum/form-field-type.enum.d.ts +111 -111
  107. package/types/constants/enum/form-type.enum.d.ts +11 -11
  108. package/types/constants/enum/index.d.ts +19 -19
  109. package/types/constants/enum/lateral-arrangement.enum.d.ts +23 -23
  110. package/types/constants/enum/money-unit.enum.d.ts +15 -15
  111. package/types/constants/enum/option-type.enum.d.ts +11 -11
  112. package/types/constants/enum/submitted-type.enum.d.ts +115 -111
  113. package/types/constants/enum/support-upload-type.enum.d.ts +11 -11
  114. package/types/constants/enum/switch.enum.d.ts +11 -11
  115. package/types/constants/enum/upload-type.enum.d.ts +59 -59
  116. package/types/constants/enum/validate-rules.enum.d.ts +2 -2
  117. package/types/constants/enum/validate-status.enum.d.ts +2 -2
  118. package/types/constants/enum/vertical-arrangement.enum.d.ts +21 -21
  119. package/types/constants/enum/zoom-type.d.ts +15 -15
  120. package/types/constants/index.d.ts +3 -3
  121. package/types/core/FormApi.d.ts +376 -376
  122. package/types/core/index.d.ts +1 -1
  123. package/types/domain/AbstractControl.d.ts +5 -5
  124. package/types/domain/Control.d.ts +13 -13
  125. package/types/domain/CustomFormat.d.ts +5 -5
  126. package/types/domain/DesForm.d.ts +32 -32
  127. package/types/domain/DesFormControl.d.ts +160 -160
  128. package/types/domain/DesFormLayout.d.ts +33 -33
  129. package/types/domain/FieldChangeHistory.d.ts +9 -9
  130. package/types/domain/FormConfig.d.ts +15 -15
  131. package/types/domain/FormControl.d.ts +60 -60
  132. package/types/domain/FormEnum.d.ts +10 -10
  133. package/types/domain/FormGroup.d.ts +27 -27
  134. package/types/domain/FormRestfulResponse.d.ts +6 -6
  135. package/types/domain/ProvideInjectData.d.ts +10 -10
  136. package/types/domain/SysDictDetail.d.ts +24 -24
  137. package/types/domain/SysDictInfo.d.ts +26 -26
  138. package/types/domain/SysDictTreeDetail.d.ts +34 -34
  139. package/types/domain/index.d.ts +12 -12
  140. package/types/filtres/amount-capitalization.filter.d.ts +7 -7
  141. package/types/filtres/extract-options.filter.d.ts +13 -13
  142. package/types/filtres/generate-grid-column-end.filter.d.ts +11 -11
  143. package/types/filtres/generate-grid-template-columns.filter.d.ts +11 -11
  144. package/types/filtres/switch-enum-convert.filter.d.ts +2 -2
  145. package/types/filtres/zoom-multiple.filter.d.ts +3 -3
  146. package/types/index.d.ts +13 -13
  147. package/types/main.d.ts +2 -2
  148. package/types/services/api.service.d.ts +25 -25
  149. package/types/services/clean-local-forage.service.d.ts +28 -28
  150. package/types/services/date-format.service.d.ts +21 -21
  151. package/types/services/dict-local-forage.service.d.ts +28 -28
  152. package/types/services/form-bean-utils.service.d.ts +23 -23
  153. package/types/services/form-local-forage.service.d.ts +28 -28
  154. package/types/services/form-tools.service.d.ts +153 -144
  155. package/types/services/form-tree-node-convert.service.d.ts +104 -104
  156. package/types/services/form-validate.service.d.ts +32 -32
  157. package/types/services/index.d.ts +9 -9
  158. package/types/services/router.service.d.ts +40 -40
  159. package/types/services/validate-generator.service.d.ts +154 -154
  160. package/types/store/dict.store.d.ts +29 -29
  161. package/types/store/form.store.d.ts +17 -17
  162. package/types/store/index.d.ts +2 -2
  163. package/types/types/vfForm.d.ts +10 -10
  164. package/vue.config.js +38 -29
  165. package/dhccmobile-vue3-lo-form-1.1.41.tgz +0 -0
@@ -1,103 +1,103 @@
1
- import { FormApi } from "../core/FormApi";
2
- import { ValidateReport } from "../domain/FormControl";
3
- import { Modal } from "ant-design-vue";
4
- import { FORM_ERROR_MODAL_SVG_XML } from "../constants/encode-assets/svg";
5
- import { h, createVNode } from "vue";
6
- /**
7
- * @description: 表单校验窗口提示
8
- * @author ChenRui
9
- * @date 2021/8/19 12:58
10
- */
11
- class FormValidateService {
12
- /**
13
- * @description: 校验并进行窗口提示
14
- * @author ChenRui
15
- * @date 2021/8/19 12:58
16
- */
17
- validateTips(formApis: FormApi | FormApi[], scrollView?: any): boolean {
18
- if (formApis != null) {
19
- if (!Array.isArray(formApis)) {
20
- formApis = [formApis];
21
- }
22
- const actualFormApis: FormApi[] = [];
23
- let allError: ValidateReport[] = [];
24
- let errMessage = "";
25
- formApis.forEach((formApi) => {
26
- const errors: ValidateReport[] = formApi.validateReport(); // 获取校验报告
27
- if (errors && errors.length > 0) {
28
- actualFormApis.push(formApi);
29
- allError = allError.concat(errors);
30
- }
31
- });
32
- if (allError && allError.length > 0) {
33
- // 显示错误的输入框
34
- allError.forEach((err) => {
35
- console.log(err);
36
- errMessage += `<div class="lo-error-item d-flex"><div class="lo-error-describe">${err.name}</div>&nbsp;${err.errorMsg};</div>`;
37
- });
38
-
39
- Modal.confirm({
40
- width: 380,
41
- title: h("div", { class: "d-flex", innerHTML: `<img src="${FORM_ERROR_MODAL_SVG_XML}" /><div style="font-size: 18px">校验提示</div>` }),
42
- content: h("div", { innerHTML: errMessage }),
43
- onOk: () => {
44
- this.showErrorModal(actualFormApis as any, allError, scrollView);
45
- },
46
- okText: "确认",
47
- cancelText: "取消",
48
- class: "lo-form-error-modal",
49
- });
50
- return false;
51
- }
52
- }
53
- return true;
54
- }
55
-
56
- /**
57
- * @Description: 滚动到错误位置-闪烁提示
58
- * @author LiuBo
59
- * @date 2021/2/25
60
- * @time 21:35
61
- */
62
- public showErrorModal(formApis: FormApi[], allError: ValidateReport[], scrollView?: any) {
63
- const errorEl: any = formApis[0]?.getControlEl(allError[0]?.key);
64
- if (errorEl != null) {
65
- if (scrollView && typeof scrollView === "string") {
66
- scrollView = document.getElementById(scrollView);
67
- }
68
- if (scrollView) {
69
- scrollView.scrollTo({ top: errorEl.offsetTop, behavior: "smooth" });
70
- const running = (event: any) => {
71
- const scrollTop = scrollView.window != null && scrollView.window === scrollView.window.window ? document.documentElement.scrollTop || document.body.scrollTop : scrollView.scrollTop;
72
- const calculationError = errorEl.offsetTop - scrollTop;
73
- if (calculationError > -20 && calculationError < 20) {
74
- scrollView.removeEventListener("scroll", running);
75
- this.showErrInput(errorEl);
76
- }
77
- };
78
- scrollView.addEventListener("scroll", running, false);
79
- } else {
80
- this.showErrInput(errorEl);
81
- }
82
- }
83
- }
84
-
85
- /**
86
- * @Description: 闪烁显示校验不通过的输入框
87
- * @author LiuBo
88
- * @date 2019/6/3
89
- * @time 22:01
90
- * @param el 出错的输入框html对象
91
- */
92
- private showErrInput(el: any) {
93
- let count = 0;
94
- const interval = setInterval(() => {
95
- el.style.opacity = count++ % 2 === 0 ? ".3" : "1";
96
- if (count > 5) {
97
- clearInterval(interval);
98
- }
99
- }, 400);
100
- }
101
- }
102
- const formValidateService = new FormValidateService();
103
- export { formValidateService };
1
+ import { FormApi } from "../core/FormApi";
2
+ import { ValidateReport } from "../domain/FormControl";
3
+ import { Modal } from "ant-design-vue";
4
+ import { FORM_ERROR_MODAL_SVG_XML } from "../constants/encode-assets/svg";
5
+ import { h, createVNode } from "vue";
6
+ /**
7
+ * @description: 表单校验窗口提示
8
+ * @author ChenRui
9
+ * @date 2021/8/19 12:58
10
+ */
11
+ class FormValidateService {
12
+ /**
13
+ * @description: 校验并进行窗口提示
14
+ * @author ChenRui
15
+ * @date 2021/8/19 12:58
16
+ */
17
+ validateTips(formApis: FormApi | FormApi[], scrollView?: any): boolean {
18
+ if (formApis != null) {
19
+ if (!Array.isArray(formApis)) {
20
+ formApis = [formApis];
21
+ }
22
+ const actualFormApis: FormApi[] = [];
23
+ let allError: ValidateReport[] = [];
24
+ let errMessage = "";
25
+ formApis.forEach((formApi) => {
26
+ const errors: ValidateReport[] = formApi.validateReport(); // 获取校验报告
27
+ if (errors && errors.length > 0) {
28
+ actualFormApis.push(formApi);
29
+ allError = allError.concat(errors);
30
+ }
31
+ });
32
+ if (allError && allError.length > 0) {
33
+ // 显示错误的输入框
34
+ allError.forEach((err) => {
35
+ console.log(err);
36
+ errMessage += `<div class="lo-error-item d-flex"><div class="lo-error-describe">${err.name}</div>&nbsp;${err.errorMsg};</div>`;
37
+ });
38
+
39
+ Modal.confirm({
40
+ width: 380,
41
+ title: h("div", { class: "d-flex", innerHTML: `<img src="${FORM_ERROR_MODAL_SVG_XML}" /><div style="font-size: 18px">校验提示</div>` }),
42
+ content: h("div", { innerHTML: errMessage }),
43
+ onOk: () => {
44
+ this.showErrorModal(actualFormApis as any, allError, scrollView);
45
+ },
46
+ okText: "确认",
47
+ cancelText: "取消",
48
+ class: "lo-form-error-modal",
49
+ });
50
+ return false;
51
+ }
52
+ }
53
+ return true;
54
+ }
55
+
56
+ /**
57
+ * @Description: 滚动到错误位置-闪烁提示
58
+ * @author LiuBo
59
+ * @date 2021/2/25
60
+ * @time 21:35
61
+ */
62
+ public showErrorModal(formApis: FormApi[], allError: ValidateReport[], scrollView?: any) {
63
+ const errorEl: any = formApis[0]?.getControlEl(allError[0]?.key);
64
+ if (errorEl != null) {
65
+ if (scrollView && typeof scrollView === "string") {
66
+ scrollView = document.getElementById(scrollView);
67
+ }
68
+ if (scrollView) {
69
+ scrollView.scrollTo({ top: errorEl.offsetTop, behavior: "smooth" });
70
+ const running = (event: any) => {
71
+ const scrollTop = scrollView.window != null && scrollView.window === scrollView.window.window ? document.documentElement.scrollTop || document.body.scrollTop : scrollView.scrollTop;
72
+ const calculationError = errorEl.offsetTop - scrollTop;
73
+ if (calculationError > -20 && calculationError < 20) {
74
+ scrollView.removeEventListener("scroll", running);
75
+ this.showErrInput(errorEl);
76
+ }
77
+ };
78
+ scrollView.addEventListener("scroll", running, false);
79
+ } else {
80
+ this.showErrInput(errorEl);
81
+ }
82
+ }
83
+ }
84
+
85
+ /**
86
+ * @Description: 闪烁显示校验不通过的输入框
87
+ * @author LiuBo
88
+ * @date 2019/6/3
89
+ * @time 22:01
90
+ * @param el 出错的输入框html对象
91
+ */
92
+ private showErrInput(el: any) {
93
+ let count = 0;
94
+ const interval = setInterval(() => {
95
+ el.style.opacity = count++ % 2 === 0 ? ".3" : "1";
96
+ if (count > 5) {
97
+ clearInterval(interval);
98
+ }
99
+ }, 400);
100
+ }
101
+ }
102
+ const formValidateService = new FormValidateService();
103
+ export { formValidateService };
@@ -1,9 +1,9 @@
1
- export * from "./api.service";
2
- export * from "./clean-local-forage.service";
3
- export * from "./dict-local-forage.service";
4
- export * from "./form-bean-utils.service";
5
- export * from "./form-local-forage.service";
6
- export * from "./form-tools.service";
7
- export * from "./form-tree-node-convert.service";
8
- export * from "./form-validate.service";
9
- export * from "./validate-generator.service";
1
+ export * from "./api.service";
2
+ export * from "./clean-local-forage.service";
3
+ export * from "./dict-local-forage.service";
4
+ export * from "./form-bean-utils.service";
5
+ export * from "./form-local-forage.service";
6
+ export * from "./form-tools.service";
7
+ export * from "./form-tree-node-convert.service";
8
+ export * from "./form-validate.service";
9
+ export * from "./validate-generator.service";
@@ -1,96 +1,96 @@
1
- interface Params {
2
- [key: string]: any;
3
- }
4
- export class RouterService {
5
- constructor() {}
6
-
7
- /**
8
- * @description: 跨应用跳转
9
- * @author ChenRui
10
- * @date 2020/9/28 14:23
11
- */
12
- push(subapp: string): void {
13
- history.pushState(null, subapp, subapp);
14
- }
15
-
16
- /**
17
- * @description: 获取纯路劲
18
- * @author ChenRui
19
- * @date 2020/10/12 21:06
20
- */
21
- getPathFromUrl(url: string): string {
22
- let path = url;
23
- if (url.indexOf("?") !== -1) {
24
- path = url.split("?")[0];
25
- }
26
- return path;
27
- }
28
-
29
- /**
30
- * @description: 获取请求参数
31
- * @author ChenRui
32
- * @date 2020/10/12 21:06
33
- */
34
- getParamsFromUrl(url: string): Params | undefined {
35
- let parameter: Params | undefined;
36
- if (url.indexOf("?") !== -1) {
37
- parameter = this.urlParameterToParams(url.split("?")[1]);
38
- }
39
- return parameter;
40
- }
41
-
42
- /**
43
- * @description: url地址参数转换成路由参数对象
44
- * @author ChenRui
45
- * @date 2020/10/12 21:07
46
- */
47
- urlParameterToParams(parameter: string): Params | undefined {
48
- const params: Params = {};
49
- const arr: string[] = parameter.split("&");
50
- arr.forEach((val, idx, array) => {
51
- const kv: string[] = val.split("=");
52
- if (kv.length > 1) {
53
- params[kv[0]] = decodeURIComponent(kv[1]);
54
- } else {
55
- params[kv[0]] = "";
56
- }
57
- });
58
- return params;
59
- }
60
-
61
- /**
62
- * @description: 地址参数拼接
63
- * @author ChenRui
64
- * @date 2021/2/19 11:40
65
- */
66
- getParameterOfUrl(url: string, parameter?: { [key: string]: any }): string {
67
- let connectiveSymbol = "";
68
- if (url.indexOf("?") !== -1) {
69
- connectiveSymbol = "&";
70
- } else {
71
- connectiveSymbol = "?";
72
- }
73
- if (parameter && Object.keys(parameter).length > 0) {
74
- let mark = 0;
75
- Object.keys(parameter).forEach((item) => {
76
- if (mark === 0) {
77
- if (parameter[item] != null && parameter[item] !== "null" && parameter[item] !== "undefined") {
78
- url += connectiveSymbol + item + "=" + parameter[item];
79
- } else {
80
- url += connectiveSymbol + item + "=";
81
- }
82
- } else {
83
- if (parameter[item] != null && parameter[item] !== "null" && parameter[item] !== "undefined") {
84
- url += "&" + item + "=" + parameter[item];
85
- } else {
86
- url += "&" + item + "=";
87
- }
88
- }
89
- mark++;
90
- });
91
- }
92
- return url;
93
- }
94
- }
95
- const routerService: RouterService = new RouterService();
96
- export { routerService, Params };
1
+ interface Params {
2
+ [key: string]: any;
3
+ }
4
+ export class RouterService {
5
+ constructor() {}
6
+
7
+ /**
8
+ * @description: 跨应用跳转
9
+ * @author ChenRui
10
+ * @date 2020/9/28 14:23
11
+ */
12
+ push(subapp: string): void {
13
+ history.pushState(null, subapp, subapp);
14
+ }
15
+
16
+ /**
17
+ * @description: 获取纯路劲
18
+ * @author ChenRui
19
+ * @date 2020/10/12 21:06
20
+ */
21
+ getPathFromUrl(url: string): string {
22
+ let path = url;
23
+ if (url.indexOf("?") !== -1) {
24
+ path = url.split("?")[0];
25
+ }
26
+ return path;
27
+ }
28
+
29
+ /**
30
+ * @description: 获取请求参数
31
+ * @author ChenRui
32
+ * @date 2020/10/12 21:06
33
+ */
34
+ getParamsFromUrl(url: string): Params | undefined {
35
+ let parameter: Params | undefined;
36
+ if (url.indexOf("?") !== -1) {
37
+ parameter = this.urlParameterToParams(url.split("?")[1]);
38
+ }
39
+ return parameter;
40
+ }
41
+
42
+ /**
43
+ * @description: url地址参数转换成路由参数对象
44
+ * @author ChenRui
45
+ * @date 2020/10/12 21:07
46
+ */
47
+ urlParameterToParams(parameter: string): Params | undefined {
48
+ const params: Params = {};
49
+ const arr: string[] = parameter.split("&");
50
+ arr.forEach((val, idx, array) => {
51
+ const kv: string[] = val.split("=");
52
+ if (kv.length > 1) {
53
+ params[kv[0]] = decodeURIComponent(kv[1]);
54
+ } else {
55
+ params[kv[0]] = "";
56
+ }
57
+ });
58
+ return params;
59
+ }
60
+
61
+ /**
62
+ * @description: 地址参数拼接
63
+ * @author ChenRui
64
+ * @date 2021/2/19 11:40
65
+ */
66
+ getParameterOfUrl(url: string, parameter?: { [key: string]: any }): string {
67
+ let connectiveSymbol = "";
68
+ if (url.indexOf("?") !== -1) {
69
+ connectiveSymbol = "&";
70
+ } else {
71
+ connectiveSymbol = "?";
72
+ }
73
+ if (parameter && Object.keys(parameter).length > 0) {
74
+ let mark = 0;
75
+ Object.keys(parameter).forEach((item) => {
76
+ if (mark === 0) {
77
+ if (parameter[item] != null && parameter[item] !== "null" && parameter[item] !== "undefined") {
78
+ url += connectiveSymbol + item + "=" + parameter[item];
79
+ } else {
80
+ url += connectiveSymbol + item + "=";
81
+ }
82
+ } else {
83
+ if (parameter[item] != null && parameter[item] !== "null" && parameter[item] !== "undefined") {
84
+ url += "&" + item + "=" + parameter[item];
85
+ } else {
86
+ url += "&" + item + "=";
87
+ }
88
+ }
89
+ mark++;
90
+ });
91
+ }
92
+ return url;
93
+ }
94
+ }
95
+ const routerService: RouterService = new RouterService();
96
+ export { routerService, Params };