@lambo-design/shared 1.0.0-beta.24 → 1.0.0-beta.240

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 (206) hide show
  1. package/config/config.js +51 -37
  2. package/config/env.js +4 -4
  3. package/config/index.js +7 -2
  4. package/config/themes/atrovirens/atrovirens.css +576 -0
  5. package/config/themes/atrovirens/atrovirens.css.map +1 -0
  6. package/config/themes/atrovirens/atrovirens.less +667 -0
  7. package/config/themes/atrovirens/var.less +674 -0
  8. package/config/themes/blue/blue.css +576 -0
  9. package/config/themes/blue/blue.css.map +1 -0
  10. package/config/themes/blue/blue.less +669 -0
  11. package/config/themes/blue/var.less +677 -0
  12. package/config/themes/blue-white/blue-white.css +576 -0
  13. package/config/themes/blue-white/blue-white.css.map +1 -0
  14. package/config/themes/blue-white/blue-white.less +669 -0
  15. package/config/themes/blue-white/var.less +676 -0
  16. package/config/themes/blue-white-tight/blue-white-tight.css +577 -0
  17. package/config/themes/blue-white-tight/blue-white-tight.css.map +1 -0
  18. package/config/themes/blue-white-tight/blue-white-tight.less +672 -0
  19. package/config/themes/blue-white-tight/var.less +677 -0
  20. package/config/themes/danqing/danqing.css +576 -0
  21. package/config/themes/danqing/danqing.css.map +1 -0
  22. package/config/themes/danqing/danqing.less +668 -0
  23. package/config/themes/danqing/danqing.wxss +572 -0
  24. package/config/themes/danqing/var.less +679 -0
  25. package/config/themes/deep/deep.css +576 -0
  26. package/config/themes/deep/deep.css.map +1 -0
  27. package/config/themes/deep/deep.less +669 -0
  28. package/config/themes/deep/var.less +677 -0
  29. package/config/themes/default/default.css +576 -241
  30. package/config/themes/default/default.css.map +1 -0
  31. package/config/themes/default/default.less +671 -319
  32. package/config/themes/default/var.less +677 -314
  33. package/config/themes/eap/eap.css +576 -0
  34. package/config/themes/eap/eap.css.map +1 -0
  35. package/config/themes/eap/eap.less +671 -0
  36. package/config/themes/eap/var.less +677 -0
  37. package/config/themes/gold/gold.css +576 -0
  38. package/config/themes/gold/gold.css.map +1 -0
  39. package/config/themes/gold/gold.less +671 -0
  40. package/config/themes/gold/var.less +677 -314
  41. package/config/themes/index.js +28 -14
  42. package/config/themes/lime/lime.css +576 -0
  43. package/config/themes/lime/lime.css.map +1 -0
  44. package/config/themes/lime/lime.less +671 -0
  45. package/config/themes/lime/var.less +678 -314
  46. package/config/themes/orange/orange.css +576 -0
  47. package/config/themes/orange/orange.css.map +1 -0
  48. package/config/themes/orange/orange.less +671 -0
  49. package/config/themes/orange/var.less +678 -0
  50. package/config/themes/red/red.css +576 -0
  51. package/config/themes/red/red.css.map +1 -0
  52. package/config/themes/red/red.less +671 -0
  53. package/config/themes/red/var.less +677 -0
  54. package/config/themes/theme-atrovirens.js +558 -0
  55. package/config/themes/theme-blue.js +558 -0
  56. package/config/themes/theme-bw.js +558 -0
  57. package/config/themes/theme-bwt.js +559 -0
  58. package/config/themes/theme-danqing.js +558 -0
  59. package/config/themes/theme-deep.js +558 -0
  60. package/config/themes/theme-default.js +558 -252
  61. package/config/themes/theme-eap.js +558 -0
  62. package/config/themes/theme-gold.js +558 -252
  63. package/config/themes/theme-lime.js +558 -252
  64. package/config/themes/theme-orange.js +559 -40
  65. package/config/themes/theme-red.js +558 -40
  66. package/config/themes/theme-white.js +558 -0
  67. package/config/themes/white/var.less +676 -0
  68. package/config/themes/white/white.css +576 -0
  69. package/config/themes/white/white.css.map +1 -0
  70. package/config/themes/white/white.less +669 -0
  71. package/directives/index.js +23 -23
  72. package/directives/module/draggable.js +56 -56
  73. package/directives/module/permission.js +49 -49
  74. package/directives/module/print.js +1 -0
  75. package/directives/module/vue-print-nb/README.md +63 -0
  76. package/directives/module/vue-print-nb/print.js +94 -0
  77. package/directives/module/vue-print-nb/printarea.js +532 -0
  78. package/index.js +10 -4
  79. package/nstyles/common.less +197 -0
  80. package/nstyles/components/404.less +46 -0
  81. package/nstyles/components/button.less +34 -0
  82. package/nstyles/components/date-picker.less +37 -0
  83. package/nstyles/components/drawer.less +20 -0
  84. package/nstyles/components/dropdown.less +18 -0
  85. package/nstyles/components/excel-flow.less +72 -0
  86. package/nstyles/components/form.less +313 -0
  87. package/nstyles/components/index.less +23 -0
  88. package/nstyles/components/layout/collect.less +10 -0
  89. package/nstyles/components/layout/detail-view.less +107 -0
  90. package/nstyles/components/layout/full-screen.less +7 -0
  91. package/nstyles/components/layout/index.less +7 -0
  92. package/nstyles/components/layout/other-menu.less +142 -0
  93. package/nstyles/components/layout/page-view.less +101 -0
  94. package/nstyles/components/layout/sider-trigger.less +41 -0
  95. package/nstyles/components/layout/tags-nav.less +113 -0
  96. package/nstyles/components/modal.less +85 -0
  97. package/nstyles/components/n-button.less +131 -0
  98. package/nstyles/components/n-image-preview.less +131 -0
  99. package/nstyles/components/n-model/index.less +19 -0
  100. package/nstyles/components/n-model/report-index.less +43 -0
  101. package/nstyles/components/n-panel.less +41 -0
  102. package/nstyles/components/n-picker.less +37 -0
  103. package/nstyles/components/n-sign.less +17 -0
  104. package/nstyles/components/n-tooltip.less +10 -0
  105. package/nstyles/components/panel.less +31 -0
  106. package/nstyles/components/select.less +3 -0
  107. package/nstyles/components/sign.less +27 -0
  108. package/nstyles/components/table.less +315 -0
  109. package/nstyles/components/tree.less +159 -0
  110. package/nstyles/components/upload.less +164 -0
  111. package/nstyles/index.less +5 -0
  112. package/nstyles/reset.less +65 -0
  113. package/nstyles/third/ag.less +174 -0
  114. package/nstyles/third/icons/sort-desc.svg +1 -0
  115. package/nstyles/third/icons/sort-up.svg +1 -0
  116. package/nstyles/third/icons/sorting.svg +1 -0
  117. package/nstyles/third/index.less +11 -0
  118. package/nstyles/third/view-design.less +367 -0
  119. package/nstyles/variables/base.less +143 -0
  120. package/nstyles/variables/index.less +4 -0
  121. package/nstyles/variables/theme/default/button.less +7 -0
  122. package/nstyles/variables/theme/default/common.less +57 -0
  123. package/nstyles/variables/theme/default/index.less +7 -0
  124. package/nstyles/variables/theme/default/layout.less +40 -0
  125. package/nstyles/variables/theme/default/table.less +37 -0
  126. package/nstyles/variables/theme/default/tag.less +3 -0
  127. package/nstyles/variables/theme/default/upload.less +3 -0
  128. package/nstyles/variables/theme/index.less +13 -0
  129. package/nstyles/variables/theme/small/button.less +7 -0
  130. package/nstyles/variables/theme/small/common.less +39 -0
  131. package/nstyles/variables/theme/small/index.less +5 -0
  132. package/nstyles/variables/theme/small/layout.less +21 -0
  133. package/nstyles/variables/theme/small/table.less +17 -0
  134. package/nstyles/variables/theme/small/tag.less +3 -0
  135. package/package.json +27 -7
  136. package/plugin/index.js +12 -0
  137. package/plugin/module/date-format.js +30 -0
  138. package/plugin/module/loading.js +26 -0
  139. package/plugin/module/warn-handler.js +11 -0
  140. package/styles/image/inspur.png +0 -0
  141. package/styles/image/lan_navigator.png +0 -0
  142. package/styles/image/lv_navigator.png +0 -0
  143. package/styles/variables.less +21 -21
  144. package/utils/ajax/cacheconf.js +19 -19
  145. package/utils/ajax/content-type.js +30 -0
  146. package/utils/ajax/index.js +12 -12
  147. package/utils/ajax/interceptors.js +97 -97
  148. package/utils/assist.js +147 -84
  149. package/utils/base64.js +126 -0
  150. package/utils/blob.js +47 -0
  151. package/utils/bus.js +3 -3
  152. package/utils/crypto/index.js +48 -38
  153. package/utils/crypto/md5.js +152 -152
  154. package/utils/crypto/sm3.js +235 -235
  155. package/utils/date.js +381 -352
  156. package/utils/dict/built-in-dict.js +20 -0
  157. package/utils/dict/index.js +168 -0
  158. package/utils/dom.js +38 -38
  159. package/utils/event.js +72 -0
  160. package/utils/excel.js +655 -523
  161. package/utils/file.js +19 -0
  162. package/utils/form/validate.js +29 -0
  163. package/utils/half-year.js +68 -0
  164. package/utils/index.js +42 -5
  165. package/utils/json.js +29 -0
  166. package/utils/lodop.js +165 -160
  167. package/utils/menu/before-close.js +17 -17
  168. package/utils/menu/index.js +395 -135
  169. package/utils/mime_type.js +67 -0
  170. package/utils/modelerUtil.js +227 -224
  171. package/utils/n/api.js +22 -0
  172. package/utils/n/date.js +57 -0
  173. package/utils/n/index.js +10 -0
  174. package/utils/n/is-type.js +176 -0
  175. package/utils/n/number.js +144 -0
  176. package/utils/n/permission-cache.js +11 -0
  177. package/utils/n/reuqest/axiosN.js +17 -0
  178. package/utils/n/reuqest/content-type.js +19 -0
  179. package/utils/n/reuqest/interceptors.js +95 -0
  180. package/utils/n/reuqest/url-params.js +12 -0
  181. package/utils/n/storage.js +51 -0
  182. package/utils/n/token.js +51 -0
  183. package/utils/n/user-cache.js +11 -0
  184. package/utils/n/user.js +34 -0
  185. package/utils/n/uuid.js +16 -0
  186. package/utils/n-generator-routers.js +208 -0
  187. package/utils/n-router.js +205 -0
  188. package/utils/n-theme.js +30 -0
  189. package/utils/number.js +180 -123
  190. package/utils/oss.js +57 -0
  191. package/utils/platform.js +1334 -583
  192. package/utils/quarter.js +58 -0
  193. package/utils/storage.js +198 -0
  194. package/utils/style.js +24 -0
  195. package/utils/theme.js +138 -43
  196. package/utils/transfer-queue.js +7 -0
  197. package/utils/transform.js +206 -0
  198. package/utils/type.js +102 -0
  199. package/utils/util.js +795 -0
  200. package/utils/validator.js +181 -0
  201. package/utils/vxetable/index.js +25 -25
  202. package/utils/zoomScroll.js +9 -9
  203. package/config/themes/gold/default.css +0 -241
  204. package/config/themes/gold/default.less +0 -319
  205. package/config/themes/lime/default.css +0 -241
  206. package/config/themes/lime/default.less +0 -319
package/utils/number.js CHANGED
@@ -1,123 +1,180 @@
1
- /**
2
- * 生成uid
3
- */
4
- export function guid() {
5
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
6
- var r = Math.random() * 16 | 0,
7
- v = c === 'x' ? r : (r & 0x3 | 0x8);
8
- return v.toString(16);
9
- });
10
- }
11
-
12
- // 数字每三位加逗号
13
- export function toThousands(num) {
14
- let result = '';
15
- num = (num || 0).toString();
16
- while (num.length > 3) {
17
- result = ',' + num.slice(-3) + result;
18
- num = num.slice(0, num.length - 3);
19
- }
20
- if (num) {
21
- result = num + result;
22
- }
23
- return result;
24
- }
25
-
26
- /**
27
- * 数字金额转为汉字
28
- * @param values
29
- * @returns {string}
30
- */
31
- export function toChies(values) {
32
- //形参
33
- let len = values.length //统计出长度
34
- let arr = []
35
-
36
- let chin_list = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'] //所有的数值对应的汉字
37
-
38
- let chin_lisp = [
39
- '仟',
40
- '佰',
41
- '拾',
42
- '亿',
43
- '仟',
44
- '佰',
45
- '拾',
46
- '万',
47
- '仟',
48
- '佰',
49
- '拾'
50
- ] //进制
51
-
52
- for (let i = 0; i < len; i++) {
53
- arr.push(parseInt(values[i])) //输入的数据按下标存进去 存进去的只是数字
54
- arr[i] = chin_list[arr[i]] //是根据我们输入的输入的数字,对应着我们的chin_list这个数组
55
- } //123['壹','佰','贰','拾','叁']
56
-
57
- for (let i = len - 1, j = 1; i > 0; i--) {
58
- //i =2 1 //倒序 为了添加进制,方便我们去观看
59
- arr.splice(i, 0, chin_lisp[chin_lisp.length - j++]) //j=2
60
- }
61
- arr = arr.join('')
62
- if (len >= 1) {
63
- arr += '元整'
64
- }
65
- return arr
66
- }
67
-
68
- export function numToDX(num) {
69
- if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(num))
70
- return "数据非法";
71
- let unit = "千百拾亿千百拾万千百拾元角分", str = "";
72
- num += "00";
73
- let p = num.indexOf('.');
74
- if (p >= 0)
75
- num = num.substring(0, p) + num.substr(p + 1, 2);
76
- unit = unit.substr(unit.length - num.length);
77
- for (let i = 0; i < num.length; i++)
78
- str += '零壹贰叁肆伍陆柒捌玖'.charAt(num.charAt(i)) + unit.charAt(i);
79
- return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");
80
- }
81
-
82
- /**
83
- * 校验电话号码是否正确
84
- *
85
- */
86
-
87
- export function checkTel(val) {
88
- var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
89
- var isMob = /^((\+?86)|(\(\+86\)))?(13[0123456789][0-9]{8}|15[012356789][0-9]{8}|18[0123456789][0-9]{8}|14[57][0-9]{8}|17[678][0-9]{8})$/;
90
- if (isMob.test(val) || isPhone.test(val)) {
91
- return true;
92
- } else {
93
- return false;
94
- }
95
- }
96
-
97
- /**
98
- * 保留小数位数
99
- */
100
- export function toFixed(num, digit) {
101
- if (digit > 6) {
102
- digit = 6;
103
- }
104
- var changenum;
105
- if (num > 0) {
106
- changenum = (parseInt(num * Math.pow(10, digit) + 0.5) / Math.pow(10, digit)).toString();
107
- } else {
108
- changenum = (parseInt(num * Math.pow(10, digit) - 0.5) / Math.pow(10, digit)).toString();
109
- }
110
- var index = changenum.indexOf(".");
111
- if (index < 0 && digit > 0) {
112
- changenum = changenum + ".";
113
- for (var i = 0; i < digit; i++) {
114
- changenum = changenum + "0";
115
- }
116
- } else {
117
- index = changenum.length - index;
118
- for (var i = 0; i < (digit - index) + 1; i++) {
119
- changenum = changenum + "0";
120
- }
121
- }
122
- return changenum;
123
- }
1
+ /**
2
+ * 生成uid
3
+ */
4
+ export function guid() {
5
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
6
+ var r = Math.random() * 16 | 0,
7
+ v = c === 'x' ? r : (r & 0x3 | 0x8);
8
+ return v.toString(16);
9
+ });
10
+ }
11
+
12
+ // 数字每三位加逗号
13
+ export function toThousands(num) {
14
+ let result = '';
15
+ num = (num || 0).toString();
16
+ while (num.length > 3) {
17
+ result = ',' + num.slice(-3) + result;
18
+ num = num.slice(0, num.length - 3);
19
+ }
20
+ if (num) {
21
+ result = num + result;
22
+ }
23
+ return result;
24
+ }
25
+
26
+ /**
27
+ * 数字金额转为汉字
28
+ * @param values
29
+ * @returns {string}
30
+ */
31
+ export function toChies(values) {
32
+ //形参
33
+ let len = values.length //统计出长度
34
+ let arr = []
35
+
36
+ let chin_list = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'] //所有的数值对应的汉字
37
+
38
+ let chin_lisp = [
39
+ '仟',
40
+ '佰',
41
+ '拾',
42
+ '亿',
43
+ '仟',
44
+ '佰',
45
+ '拾',
46
+ '万',
47
+ '仟',
48
+ '佰',
49
+ '拾'
50
+ ] //进制
51
+
52
+ for (let i = 0; i < len; i++) {
53
+ arr.push(parseInt(values[i])) //输入的数据按下标存进去 存进去的只是数字
54
+ arr[i] = chin_list[arr[i]] //是根据我们输入的输入的数字,对应着我们的chin_list这个数组
55
+ } //123['壹','佰','贰','拾','叁']
56
+
57
+ for (let i = len - 1, j = 1; i > 0; i--) {
58
+ //i =2 1 //倒序 为了添加进制,方便我们去观看
59
+ arr.splice(i, 0, chin_lisp[chin_lisp.length - j++]) //j=2
60
+ }
61
+ arr = arr.join('')
62
+ if (len >= 1) {
63
+ arr += '元整'
64
+ }
65
+ return arr
66
+ }
67
+
68
+ export function numToDX(num) {
69
+ if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(num))
70
+ return "数据非法";
71
+ let unit = "千百拾亿千百拾万千百拾元角分", str = "";
72
+ num += "00";
73
+ let p = num.indexOf('.');
74
+ if (p >= 0)
75
+ num = num.substring(0, p) + num.substr(p + 1, 2);
76
+ unit = unit.substr(unit.length - num.length);
77
+ for (let i = 0; i < num.length; i++)
78
+ str += '零壹贰叁肆伍陆柒捌玖'.charAt(num.charAt(i)) + unit.charAt(i);
79
+ return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");
80
+ }
81
+
82
+ /**
83
+ * 保留小数位数
84
+ */
85
+ export function toFixed(num, digit) {
86
+ if (digit > 6) {
87
+ digit = 6;
88
+ }
89
+ var changenum;
90
+ if (num > 0) {
91
+ changenum = (parseInt(num * Math.pow(10, digit) + 0.5) / Math.pow(10, digit)).toString();
92
+ } else {
93
+ changenum = (parseInt(num * Math.pow(10, digit) - 0.5) / Math.pow(10, digit)).toString();
94
+ }
95
+ var index = changenum.indexOf(".");
96
+ if (index < 0 && digit > 0) {
97
+ changenum = changenum + ".";
98
+ for (var i = 0; i < digit; i++) {
99
+ changenum = changenum + "0";
100
+ }
101
+ } else {
102
+ index = changenum.length - index;
103
+ for (var i = 0; i < (digit - index) + 1; i++) {
104
+ changenum = changenum + "0";
105
+ }
106
+ }
107
+ return changenum;
108
+ }
109
+ /**
110
+ * js除法计算
111
+ */
112
+ export const accDiv = function (arg1, arg2) {
113
+ let t1 = 0, t2 = 0, r1, r2;
114
+ try {
115
+ t1 = arg1.toString().split(".")[1].length
116
+ } catch (e) {
117
+ }
118
+ try {
119
+ t2 = arg2.toString().split(".")[1].length
120
+ } catch (e) {
121
+ }
122
+ r1 = Number(arg1.toString().replace(".", ""))
123
+ r2 = Number(arg2.toString().replace(".", ""))
124
+ return (r1 / r2) * Math.pow(10, t2 - t1);
125
+ }
126
+
127
+ /**
128
+ * js乘法计算
129
+ */
130
+ export const accMul = function (arg1, arg2) {
131
+ let m = 0, s1 = arg1.toString(), s2 = arg2.toString();
132
+ try {
133
+ m += s1.split(".")[1].length
134
+ } catch (e) {
135
+ }
136
+ try {
137
+ m += s2.split(".")[1].length
138
+ } catch (e) {
139
+ }
140
+ return accDiv(Number(s1.replace(".", "")) * Number(s2.replace(".", "")), Math.pow(10, m));
141
+ }
142
+
143
+ /**
144
+ * js加法计算
145
+ */
146
+ export const accAdd = function (arg1, arg2) {
147
+ let r1, r2, m;
148
+ try {
149
+ r1 = arg1.toString().split(".")[1].length
150
+ } catch (e) {
151
+ r1 = 0
152
+ }
153
+ try {
154
+ r2 = arg2.toString().split(".")[1].length
155
+ } catch (e) {
156
+ r2 = 0
157
+ }
158
+ m = Math.pow(10, Math.max(r1, r2));
159
+ return accDiv((accMul(arg1, m) + accMul(arg2, m)), m);
160
+ }
161
+
162
+ /**
163
+ * js减法计算
164
+ */
165
+
166
+ export const accSub = function (arg1, arg2) {
167
+ let r1, r2, m;
168
+ try {
169
+ r1 = arg1.toString().split(".")[1].length
170
+ } catch (e) {
171
+ r1 = 0
172
+ }
173
+ try {
174
+ r2 = arg2.toString().split(".")[1].length
175
+ } catch (e) {
176
+ r2 = 0
177
+ }
178
+ m = Math.pow(10, Math.max(r1, r2));
179
+ return accDiv((accMul(arg1, m) - accMul(arg2, m)), m);
180
+ };
package/utils/oss.js ADDED
@@ -0,0 +1,57 @@
1
+ import { CONTENT_TYPE } from './ajax/content-type.js';
2
+ import { config } from '../config/config.js';
3
+ import ajax from "./ajax";
4
+ import axiosN from "./n/reuqest/axiosN.js";
5
+
6
+ /**
7
+ * 文档中心下载文件的url,主要用于图片等直接写在 href 里
8
+ *
9
+ * @param fileId 文件Id
10
+ * @returns url
11
+ */
12
+ export function getOssFileUrl(fileId = '') {
13
+ return `${config.ossServerContext}/oss/file/get/${fileId}`
14
+ }
15
+
16
+ /**
17
+ * 文档中心上传文件的url
18
+ *
19
+ * @returns url
20
+ */
21
+ export function putOssFileUrl() {
22
+ return `${config.ossServerContext}/oss/file/put`
23
+ }
24
+
25
+ /**
26
+ * 获取文档中心文件
27
+ *
28
+ * @param fileId 文件Id
29
+ * @param responseType 数据类型,支持 arraybuffer | blob | document | json | text | stream
30
+ * @returns 文件内容
31
+ */
32
+ export function getOssFileApi(fileId, responseType) {
33
+ const config = {}
34
+ if (responseType) {
35
+ config.responseType = responseType
36
+ }
37
+ return ajax.get(getOssFileUrl(fileId), config)
38
+ }
39
+
40
+ /**
41
+ * 将文件上传到文档中心
42
+ *
43
+ * @param filename 文件名
44
+ * @param blob 文件的Blob数据
45
+ * @returns 文件Id
46
+ */
47
+ export function putOssFileApi(filename, blob) {
48
+ let formData = new FormData()
49
+ formData.append('file', blob, filename)
50
+
51
+ return axiosN({
52
+ method: 'post',
53
+ url: putOssFileUrl(),
54
+ headers: { 'Content-Type': CONTENT_TYPE.multiForm },
55
+ data: formData,
56
+ })
57
+ }