efront 3.21.0 → 3.21.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.
- package/apps/pivot/main.js +25 -2
- package/coms/basic/BigNumber.js +184 -0
- package/coms/basic/BigNumber_test.js +51 -0
- package/coms/basic/JSAM.js +2 -2
- package/coms/basic/cookie.js +22 -0
- package/coms/basic/cross_.js +31 -16
- package/coms/basic/submit_.js +19 -0
- package/coms/basic/valid.js +21 -0
- package/coms/frame/payment.html +34 -0
- package/coms/frame/payment.js +50 -0
- package/coms/frame/payment.less +35 -0
- package/coms/zimoli/chooseFile.js +16 -3
- package/coms/zimoli/cross.js +2 -2
- package/coms/zimoli/data.js +1 -1
- package/coms/zimoli/input.js +43 -5
- package/coms/zimoli/model.js +13 -4
- package/coms/zimoli/render.js +2 -2
- package/coms/zimoli/select.js +5 -0
- package/coms/zimoli/selectList.js +9 -11
- package/coms/zimoli/zimoli.js +1 -1
- package/docs/compare.md +85 -82
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/readme.md +1 -1
- package/coms/zimoli/BigNumber.js +0 -216
package/readme.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
# efront 思想
|
|
3
|
-
|
|
3
|
+
上次参加一个github的面试,一帮中国人组成的团队跟我说不能用中文。他妈的,老子就要用中文,你们狗逼管的着吗?
|
|
4
4
|
1. 每个文件只导出一份数据,这一份数据可以是 boolean,number,string,function,object,bigint,null,undefined 中的任意一种
|
|
5
5
|
2. 文件名即变量名,在其他文件中引用当前文件导出的变量,只要使用当前文件的文件名(不含后缀)即可
|
|
6
6
|
3. 无环形引用(相互调用:a引用b,b引用a;首尾引用:a引用b,b引用...c,c引用a)
|
package/coms/zimoli/BigNumber.js
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
var COMPUTE_WIDTH = 7;
|
|
2
|
-
var COMPUTE_UNIT = Math.pow(10, COMPUTE_WIDTH);
|
|
3
|
-
function getIntegerPartFromString(string, width) {
|
|
4
|
-
var result = [];
|
|
5
|
-
var split_point = string.length;
|
|
6
|
-
while (split_point >= width) {
|
|
7
|
-
result.unshift(string.slice(split_point - width, split_point));
|
|
8
|
-
split_point -= width;
|
|
9
|
-
};
|
|
10
|
-
if (split_point > 0) {
|
|
11
|
-
result.unshift(string.slice(0, split_point));
|
|
12
|
-
}
|
|
13
|
-
return result;
|
|
14
|
-
}
|
|
15
|
-
function getDecimalPartFromString(string, width) {
|
|
16
|
-
var result = [];
|
|
17
|
-
var split_point = 0, string_length = string.length;
|
|
18
|
-
string = string + repeat("0", string.length % width);
|
|
19
|
-
while (split_point < string_length) {
|
|
20
|
-
result.push(string.slice(split_point, split_point + width));
|
|
21
|
-
split_point += width;
|
|
22
|
-
};
|
|
23
|
-
return result;
|
|
24
|
-
}
|
|
25
|
-
function BigNumber(value) {
|
|
26
|
-
if (!isObject(this)) {
|
|
27
|
-
return new BigNumber(value);
|
|
28
|
-
}
|
|
29
|
-
this.signature = "";
|
|
30
|
-
switch (typeof value) {
|
|
31
|
-
case "number":
|
|
32
|
-
value = String(value);
|
|
33
|
-
case "string":
|
|
34
|
-
value = value.replace(/\s+/, "");
|
|
35
|
-
if (isNaN(value)) {
|
|
36
|
-
throw new Error("数字格式不正确!");
|
|
37
|
-
}
|
|
38
|
-
if (/^\-/.test(value)) {
|
|
39
|
-
this.signature = "-";
|
|
40
|
-
value = value.slice(1);
|
|
41
|
-
} else {
|
|
42
|
-
this.signature = "";
|
|
43
|
-
}
|
|
44
|
-
value = value.replace(/^0+/, "").replace(/\.(.*?)0+$/, ".$1");//删除多余的0
|
|
45
|
-
if (!isFinite(value)) {
|
|
46
|
-
this.integter_part = Infinity;
|
|
47
|
-
this.decimal_part = 0;
|
|
48
|
-
} else {
|
|
49
|
-
var dot_point = value.indexOf(/\./);
|
|
50
|
-
if (dot_point >= 0) {
|
|
51
|
-
this.integter_part = getIntegerPartFromString(value.slice(0, dot_point), COMPUTE_WIDTH).map(a => +a);
|
|
52
|
-
this.decimal_part = getDecimalPartFromString(value.slice(dot_point + 1), COMPUTE_WIDTH).map(a => +a);
|
|
53
|
-
} else {
|
|
54
|
-
this.integter_part = getIntegerPartFromString(value, COMPUTE_WIDTH).map(a => +a);
|
|
55
|
-
this.decimal_part = getDecimalPartFromString("", COMPUTE_WIDTH).map(a => +a);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
break;
|
|
59
|
-
default:
|
|
60
|
-
throw new Error("无效的初始值");
|
|
61
|
-
break;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
var prototype = BigNumber.prototype = [];
|
|
65
|
-
prototype.constructor = BigNumber;
|
|
66
|
-
|
|
67
|
-
extend(prototype, {
|
|
68
|
-
toString() {
|
|
69
|
-
var spliter = "", width = 4;
|
|
70
|
-
for (var cx = 0; cx < 2; cx++) {
|
|
71
|
-
var arg = arguments[cx];
|
|
72
|
-
if (+arg >= 1) {
|
|
73
|
-
width = +arg | 0;
|
|
74
|
-
} else if (!/^[\d\.]*|[\d\.]*$/.test(arg)) {
|
|
75
|
-
spliter = arg;
|
|
76
|
-
} else {
|
|
77
|
-
throw new Error("宽度只能是 1 和 2147483647 之间的整数!");
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if (Infinity === this.integter_part) {
|
|
81
|
-
return this.signature + "Infinity";
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
var result = getIntegerPartFromString(this.integter_part.map(a => getIntegerString(a)).join(""), width).join(spliter);
|
|
85
|
-
if (this.decimal_part && this.decimal_part.length) {
|
|
86
|
-
result += "." + getDecimalPartFromString(this.decimal_part.map(a => getIntegerString(a)).join(""), width).join(spliter);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return this.signature + result;
|
|
90
|
-
},
|
|
91
|
-
add(bignumber) {
|
|
92
|
-
if (!(bignumber instanceof BigNumber)) {
|
|
93
|
-
bignumber = new BigNumber(bignumber);
|
|
94
|
-
}
|
|
95
|
-
if (bignumber.signature === this.signature) {
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
var getIntegerString = function (a) {
|
|
104
|
-
a = String(a);
|
|
105
|
-
if (a.length < COMPUTE_WIDTH) {
|
|
106
|
-
a = repeat("0", COMPUTE_WIDTH - a.length) + a;
|
|
107
|
-
}
|
|
108
|
-
return a;
|
|
109
|
-
};
|
|
110
|
-
var addDecemalPart = function (arr1, arr2) {
|
|
111
|
-
var extra = 0, arr1_length = arr1.length, arr2_length = arr2.length, result, add_length;
|
|
112
|
-
if (arr1_length < arr2_length) {
|
|
113
|
-
add_length = arr1_length;
|
|
114
|
-
result = arr2.slice(arr1_length);
|
|
115
|
-
} else {
|
|
116
|
-
add_length = arr2_length;
|
|
117
|
-
result = arr1.slice(arr2_length);
|
|
118
|
-
}
|
|
119
|
-
for (var cx = add_length - 1; cx >= 0; cx++) {
|
|
120
|
-
var sum = arr1[cx] + arr2[cx] + extra;
|
|
121
|
-
result.unshift(sum % COMPUTE_UNIT)
|
|
122
|
-
extra = sum / COMPUTE_UNIT | 0;
|
|
123
|
-
}
|
|
124
|
-
return [extra, result];
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
var addIntegerPart = function (arr1, arr2, extra = 0) {
|
|
128
|
-
var extra = 0, arr1_length = arr1.length, arr2_length = arr2.length, result, add_length, avoid_arr;
|
|
129
|
-
if (arr1_length < arr2_length) {
|
|
130
|
-
add_length = arr1_length;
|
|
131
|
-
avoid_arr = arr2.slice(0, arr2_length - arr1_length);
|
|
132
|
-
result = arr2.slice(arr1_length);
|
|
133
|
-
} else {
|
|
134
|
-
add_length = arr2_length;
|
|
135
|
-
avoid_arr = arr1.slice(0, arr1_length - arr2_length);
|
|
136
|
-
result = arr1.slice(arr2_length);
|
|
137
|
-
}
|
|
138
|
-
for (var cx = 1; cx <= add_length; cx++) {
|
|
139
|
-
var sum = arr1[arr1_length - cx] + arr2[arr2_length - cx] + extra;
|
|
140
|
-
result.unshift(sum % COMPUTE_UNIT);
|
|
141
|
-
extra = sum / COMPUTE_UNIT | 0;
|
|
142
|
-
}
|
|
143
|
-
for (var cx = avoid_arr.length - 1; cx >= 0; cx++) {
|
|
144
|
-
var sum = avoid_arr[cx] + extra;
|
|
145
|
-
result.unshift(sum % COMPUTE_UNIT);
|
|
146
|
-
extra = sum / COMPUTE_UNIT | 0;
|
|
147
|
-
}
|
|
148
|
-
if (extra > 0) {
|
|
149
|
-
result.unshift(extra);
|
|
150
|
-
}
|
|
151
|
-
return result;
|
|
152
|
-
};
|
|
153
|
-
var minusIntegerPart = function () {
|
|
154
|
-
|
|
155
|
-
};
|
|
156
|
-
var minusDecemalPart = function () {
|
|
157
|
-
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* 比较两个整数部分的大小
|
|
161
|
-
* @param {array} arr1
|
|
162
|
-
* @param {array} arr2
|
|
163
|
-
*/
|
|
164
|
-
var compareIntegerPart = function (arr1, arr2) {
|
|
165
|
-
if (arr1.length < arr2.length) {
|
|
166
|
-
return -1;
|
|
167
|
-
}
|
|
168
|
-
if (arr2.length < arr1.length) {
|
|
169
|
-
return 1;
|
|
170
|
-
}
|
|
171
|
-
for (var cx = 0, dx = arr1.length; cx < dx; cx++) {
|
|
172
|
-
var num1 = arr1[cx];
|
|
173
|
-
var num2 = arr2[cx];
|
|
174
|
-
if (num1 < num2) {
|
|
175
|
-
return -1;
|
|
176
|
-
}
|
|
177
|
-
if (num1 > num2) {
|
|
178
|
-
return 1;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return 0;
|
|
182
|
-
};
|
|
183
|
-
/**
|
|
184
|
-
* 比较两个小数部分的大小
|
|
185
|
-
* @param {array} arr1
|
|
186
|
-
* @param {array} arr2
|
|
187
|
-
*/
|
|
188
|
-
var compareDecemalPart = function (arr1, arr2) {
|
|
189
|
-
for (var cx = 0, dx = Math.max(arr1.length, arr2.length); cx < dx; cx++) {
|
|
190
|
-
var num1 = arr1[cx] || 0;
|
|
191
|
-
var num2 = arr2[cx] || 0;
|
|
192
|
-
if (num1 < num2) {
|
|
193
|
-
return -1;
|
|
194
|
-
}
|
|
195
|
-
if (num1 > num2) {
|
|
196
|
-
return 1;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return 0;
|
|
200
|
-
};
|
|
201
|
-
/**
|
|
202
|
-
* 比较两个bigNumber的绝对值的大小
|
|
203
|
-
* @param {bignumber} big1
|
|
204
|
-
* @param {bignumber} big2
|
|
205
|
-
*/
|
|
206
|
-
var compare = function (big1, big2) {
|
|
207
|
-
var integer_result = compareIntegerPart(big1.integter_part, big2.integter_part);
|
|
208
|
-
if (integer_result) return integer_result;
|
|
209
|
-
return compareDecemalPart(big1.decimal_part, big2.decimal_part);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
var minusDecemalPart = function (arr1, arr2) {
|
|
213
|
-
|
|
214
|
-
};
|
|
215
|
-
var minusIntegerPart = function (arr1, arr2) {
|
|
216
|
-
};
|