@dhccmobile/vue3-lo-form 2.0.0 → 2.0.2

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 (166) hide show
  1. package/README.md +77 -70
  2. package/dist/demo.html +1 -10
  3. package/dist/vue3-lo-form.common.js +8704 -6939
  4. package/dist/vue3-lo-form.common.js.map +1 -1
  5. package/dist/vue3-lo-form.css +1 -1
  6. package/dist/vue3-lo-form.umd.js +8715 -6949
  7. package/dist/vue3-lo-form.umd.js.map +1 -1
  8. package/dist/vue3-lo-form.umd.min.js +1 -1
  9. package/dist/vue3-lo-form.umd.min.js.map +1 -1
  10. package/package.json +72 -65
  11. package/src/App.vue +741 -741
  12. package/src/components/form/DvForm.vue +642 -642
  13. package/src/components/form/DvFormLayout.vue +1592 -1569
  14. package/src/components/form/StretchText.vue +90 -90
  15. package/src/components/index.ts +3 -3
  16. package/src/constants/config/form-template.config.ts +32 -32
  17. package/src/constants/config/form.config.ts +4 -4
  18. package/src/constants/config/storage.config.ts +4 -4
  19. package/src/constants/encode-assets/svg.ts +11 -11
  20. package/src/constants/enum/builtIn-label.enum.ts +5 -5
  21. package/src/constants/enum/cache-type.enum.ts +7 -7
  22. package/src/constants/enum/control-format-type.enum.ts +9 -9
  23. package/src/constants/enum/dynamic-option-type.enum.ts +6 -6
  24. package/src/constants/enum/form-bus-attr.enum.ts +8 -8
  25. package/src/constants/enum/form-field-class.enum.ts +7 -7
  26. package/src/constants/enum/form-field-type.enum.ts +25 -25
  27. package/src/constants/enum/form-type.enum.ts +5 -5
  28. package/src/constants/enum/index.ts +19 -19
  29. package/src/constants/enum/lateral-arrangement.enum.ts +9 -9
  30. package/src/constants/enum/money-unit.enum.ts +6 -6
  31. package/src/constants/enum/option-type.enum.ts +5 -5
  32. package/src/constants/enum/submitted-type.enum.ts +32 -32
  33. package/src/constants/enum/support-upload-type.enum.ts +5 -5
  34. package/src/constants/enum/switch.enum.ts +5 -5
  35. package/src/constants/enum/upload-type.enum.ts +17 -17
  36. package/src/constants/enum/validate-rules.enum.ts +25 -25
  37. package/src/constants/enum/validate-status.enum.ts +8 -8
  38. package/src/constants/enum/vertical-arrangement.enum.ts +7 -7
  39. package/src/constants/enum/zoom-type.ts +6 -6
  40. package/src/constants/index.ts +3 -3
  41. package/src/core/FormApi.ts +1238 -1238
  42. package/src/core/index.ts +1 -1
  43. package/src/domain/AbstractControl.ts +6 -6
  44. package/src/domain/Control.ts +14 -14
  45. package/src/domain/CustomFormat.ts +6 -6
  46. package/src/domain/DesForm.ts +48 -48
  47. package/src/domain/DesFormControl.ts +241 -241
  48. package/src/domain/DesFormLayout.ts +51 -51
  49. package/src/domain/FieldChangeHistory.ts +9 -9
  50. package/src/domain/FormConfig.ts +16 -15
  51. package/src/domain/FormControl.ts +125 -125
  52. package/src/domain/FormEnum.ts +9 -9
  53. package/src/domain/FormGroup.ts +42 -42
  54. package/src/domain/FormRestfulResponse.ts +6 -6
  55. package/src/domain/ProvideInjectData.ts +10 -10
  56. package/src/domain/SysDictDetail.ts +38 -38
  57. package/src/domain/SysDictInfo.ts +40 -40
  58. package/src/domain/SysDictTreeDetail.ts +52 -52
  59. package/src/domain/index.ts +12 -12
  60. package/src/filtres/amount-capitalization.filter.ts +154 -154
  61. package/src/filtres/extract-options.filter.ts +53 -53
  62. package/src/filtres/generate-grid-column-end.filter.ts +22 -22
  63. package/src/filtres/generate-grid-template-columns.filter.ts +24 -24
  64. package/src/filtres/switch-enum-convert.filter.ts +18 -18
  65. package/src/filtres/zoom-multiple.filter.ts +32 -32
  66. package/src/index.ts +74 -73
  67. package/src/main.ts +17 -17
  68. package/src/services/api.service.ts +73 -73
  69. package/src/services/clean-local-forage.service.ts +58 -58
  70. package/src/services/date-format.service.ts +74 -74
  71. package/src/services/dict-local-forage.service.ts +58 -58
  72. package/src/services/form-bean-utils.service.ts +41 -41
  73. package/src/services/form-local-forage.service.ts +59 -59
  74. package/src/services/form-tools.service.ts +739 -739
  75. package/src/services/form-tree-node-convert.service.ts +240 -240
  76. package/src/services/form-validate.service.ts +103 -103
  77. package/src/services/index.ts +9 -9
  78. package/src/services/router.service.ts +96 -96
  79. package/src/services/validate-generator.service.ts +710 -710
  80. package/src/shims-vue.d.ts +6 -6
  81. package/src/store/dict.store.ts +63 -63
  82. package/src/store/form.store.ts +32 -32
  83. package/src/store/index.ts +2 -2
  84. package/src/styles/datePicker.scss +125 -125
  85. package/src/styles/index.scss +195 -195
  86. package/src/styles/theme1.scss +277 -277
  87. package/src/styles/theme2.scss +376 -376
  88. package/src/styles/themes.scss +9 -9
  89. package/src/types/vfForm.ts +11 -11
  90. package/types/components/index.d.ts +3 -3
  91. package/types/constants/config/form-template.config.d.ts +30 -30
  92. package/types/constants/config/form.config.d.ts +4 -4
  93. package/types/constants/config/storage.config.d.ts +4 -4
  94. package/types/constants/encode-assets/svg.d.ts +5 -5
  95. package/types/constants/enum/builtIn-label.enum.d.ts +7 -7
  96. package/types/constants/enum/cache-type.enum.d.ts +15 -15
  97. package/types/constants/enum/control-format-type.enum.d.ts +23 -23
  98. package/types/constants/enum/dynamic-option-type.enum.d.ts +11 -11
  99. package/types/constants/enum/form-bus-attr.enum.d.ts +19 -19
  100. package/types/constants/enum/form-field-class.enum.d.ts +18 -18
  101. package/types/constants/enum/form-field-type.enum.d.ts +111 -111
  102. package/types/constants/enum/form-type.enum.d.ts +11 -11
  103. package/types/constants/enum/index.d.ts +19 -19
  104. package/types/constants/enum/lateral-arrangement.enum.d.ts +23 -23
  105. package/types/constants/enum/money-unit.enum.d.ts +15 -15
  106. package/types/constants/enum/option-type.enum.d.ts +11 -11
  107. package/types/constants/enum/submitted-type.enum.d.ts +115 -115
  108. package/types/constants/enum/support-upload-type.enum.d.ts +11 -11
  109. package/types/constants/enum/switch.enum.d.ts +11 -11
  110. package/types/constants/enum/upload-type.enum.d.ts +59 -59
  111. package/types/constants/enum/validate-rules.enum.d.ts +2 -2
  112. package/types/constants/enum/validate-status.enum.d.ts +2 -2
  113. package/types/constants/enum/vertical-arrangement.enum.d.ts +21 -21
  114. package/types/constants/enum/zoom-type.d.ts +15 -15
  115. package/types/constants/index.d.ts +3 -3
  116. package/types/core/FormApi.d.ts +376 -376
  117. package/types/core/index.d.ts +1 -1
  118. package/types/domain/AbstractControl.d.ts +5 -5
  119. package/types/domain/Control.d.ts +13 -13
  120. package/types/domain/CustomFormat.d.ts +5 -5
  121. package/types/domain/DesForm.d.ts +32 -32
  122. package/types/domain/DesFormControl.d.ts +160 -160
  123. package/types/domain/DesFormLayout.d.ts +33 -33
  124. package/types/domain/FieldChangeHistory.d.ts +9 -9
  125. package/types/domain/FormConfig.d.ts +16 -15
  126. package/types/domain/FormControl.d.ts +60 -60
  127. package/types/domain/FormEnum.d.ts +10 -10
  128. package/types/domain/FormGroup.d.ts +27 -27
  129. package/types/domain/FormRestfulResponse.d.ts +6 -6
  130. package/types/domain/ProvideInjectData.d.ts +10 -10
  131. package/types/domain/SysDictDetail.d.ts +24 -24
  132. package/types/domain/SysDictInfo.d.ts +26 -26
  133. package/types/domain/SysDictTreeDetail.d.ts +34 -34
  134. package/types/domain/index.d.ts +12 -12
  135. package/types/filtres/amount-capitalization.filter.d.ts +7 -7
  136. package/types/filtres/extract-options.filter.d.ts +13 -13
  137. package/types/filtres/generate-grid-column-end.filter.d.ts +11 -11
  138. package/types/filtres/generate-grid-template-columns.filter.d.ts +11 -11
  139. package/types/filtres/switch-enum-convert.filter.d.ts +2 -2
  140. package/types/filtres/zoom-multiple.filter.d.ts +3 -3
  141. package/types/index.d.ts +13 -13
  142. package/types/main.d.ts +2 -2
  143. package/types/services/api.service.d.ts +25 -25
  144. package/types/services/clean-local-forage.service.d.ts +28 -28
  145. package/types/services/date-format.service.d.ts +21 -21
  146. package/types/services/dict-local-forage.service.d.ts +28 -28
  147. package/types/services/form-bean-utils.service.d.ts +23 -23
  148. package/types/services/form-local-forage.service.d.ts +28 -28
  149. package/types/services/form-tools.service.d.ts +153 -153
  150. package/types/services/form-tree-node-convert.service.d.ts +104 -104
  151. package/types/services/form-validate.service.d.ts +32 -32
  152. package/types/services/index.d.ts +9 -9
  153. package/types/services/router.service.d.ts +40 -40
  154. package/types/services/validate-generator.service.d.ts +154 -154
  155. package/types/store/dict.store.d.ts +29 -29
  156. package/types/store/form.store.d.ts +17 -17
  157. package/types/store/index.d.ts +2 -2
  158. package/types/types/vfForm.d.ts +10 -10
  159. package/.env.local.bak +0 -6
  160. package/.eslintrc.js +0 -28
  161. package/babel.config.js +0 -3
  162. package/public/favicon.ico +0 -0
  163. package/public/index.html +0 -17
  164. package/public/js/pinyin.ts +0 -101
  165. package/tsconfig.json +0 -40
  166. package/vue.config.js +0 -38
@@ -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 };