efront 3.21.2 → 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/coms/basic/BigNumber.js +184 -0
- package/coms/basic/BigNumber_test.js +51 -0
- package/coms/basic/cross_.js +14 -7
- 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/data.js +1 -1
- package/coms/zimoli/zimoli.js +1 -1
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/coms/zimoli/BigNumber.js +0 -216
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
var trim = function (a) {
|
|
2
|
+
return String(a).replace(/[\s\,]/g, '').replace(/^\+/, '').replace(/[mni]$/i, '');
|
|
3
|
+
};
|
|
4
|
+
var prepare = function (a) {
|
|
5
|
+
a = trim(a);
|
|
6
|
+
var neg = /^\-/.test(a);
|
|
7
|
+
if (neg) a = a.slice(1);
|
|
8
|
+
var [s1, s2 = ''] = a.split('.');
|
|
9
|
+
s2 = s2.replace(/0+$/, '');
|
|
10
|
+
return [neg, s1, s2];
|
|
11
|
+
};
|
|
12
|
+
var repeat = String.prototype.repeat || function (n) {
|
|
13
|
+
return new Array(n + 1).join(this);
|
|
14
|
+
};
|
|
15
|
+
var repeat0 = function (n) {
|
|
16
|
+
return repeat.call('0', n);
|
|
17
|
+
};
|
|
18
|
+
var split = function (s, n) {
|
|
19
|
+
var r = [];
|
|
20
|
+
var end = s.length;
|
|
21
|
+
while (end > n) {
|
|
22
|
+
r.push(s.slice(end - n, end));
|
|
23
|
+
end -= n;
|
|
24
|
+
}
|
|
25
|
+
r.push(s.slice(0, end));
|
|
26
|
+
return r;
|
|
27
|
+
};
|
|
28
|
+
var fixme = function (neg, res, nl) {
|
|
29
|
+
if (nl > 0) res = res.slice(0, res.length - nl) + "." + res.slice(res.length - nl).replace(/0+$/, '');
|
|
30
|
+
res = res.replace(/^0+(?!\.)/, '');
|
|
31
|
+
if (/^\./.test(res)) res = '0' + res;
|
|
32
|
+
if (neg) res = '-' + res;
|
|
33
|
+
return res.replace(/\.$/, '');
|
|
34
|
+
};
|
|
35
|
+
var fixde = function (numstr, fractionDigits, compare) {
|
|
36
|
+
var [neg, s1, s2] = prepare(numstr);
|
|
37
|
+
var frag = +s2.charAt(fractionDigits) > compare;
|
|
38
|
+
if (!frag && compare === 0) {
|
|
39
|
+
frag = s2.length > fractionDigits;
|
|
40
|
+
}
|
|
41
|
+
if (s2.length < fractionDigits) {
|
|
42
|
+
s2 += repeat0(fractionDigits - s2.length);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
s2 = s2.slice(0, fractionDigits);
|
|
46
|
+
}
|
|
47
|
+
var res = s1 + s2;
|
|
48
|
+
if (frag) {
|
|
49
|
+
res = BigNumber.add(res, 1);
|
|
50
|
+
}
|
|
51
|
+
if (fractionDigits > 0) res = res.slice(0, res.length - fractionDigits) + '.' + res.slice(res.length - fractionDigits);
|
|
52
|
+
if (/^\./.test(res)) res = "0" + res;
|
|
53
|
+
if (neg) res = '-' + res;
|
|
54
|
+
return res;
|
|
55
|
+
};
|
|
56
|
+
class BigNumber {
|
|
57
|
+
constructor(value) {
|
|
58
|
+
if (!this || this.constructor !== BigNumber) {
|
|
59
|
+
return new BigNumber(value);
|
|
60
|
+
}
|
|
61
|
+
this.value = value;
|
|
62
|
+
}
|
|
63
|
+
toString() {
|
|
64
|
+
return this.value;
|
|
65
|
+
};
|
|
66
|
+
add(bignumber) {
|
|
67
|
+
return new BigNumber(BigNumber.add(this.value, bignumber));
|
|
68
|
+
};
|
|
69
|
+
static round(numstr) {
|
|
70
|
+
return fixde(numstr, 0, 4);
|
|
71
|
+
}
|
|
72
|
+
static ceil(numstr) {
|
|
73
|
+
return fixde(numstr, 0, 0);
|
|
74
|
+
}
|
|
75
|
+
static floor(numstr) {
|
|
76
|
+
return fixde(numstr, 0, 9);
|
|
77
|
+
}
|
|
78
|
+
static fix(numstr, fractionDigits) {
|
|
79
|
+
fractionDigits = +fractionDigits || 0;
|
|
80
|
+
if (fractionDigits < 0 || fractionDigits > 100) {
|
|
81
|
+
throw new Error("小数位数只能是0和100之间的数字");
|
|
82
|
+
}
|
|
83
|
+
return fixde(numstr, fractionDigits, 4);
|
|
84
|
+
}
|
|
85
|
+
static add(numstr1, numstr2) {
|
|
86
|
+
var [neg1, s11, s12] = prepare(numstr1)
|
|
87
|
+
var [neg2, s21, s22] = prepare(numstr2)
|
|
88
|
+
var nl = 0;
|
|
89
|
+
if (s12.length < s22.length) {
|
|
90
|
+
nl = s22.length;
|
|
91
|
+
s12 += repeat0(nl - s12.length);
|
|
92
|
+
}
|
|
93
|
+
else if (s22.length < s12.length) {
|
|
94
|
+
nl = s12.length;
|
|
95
|
+
s22 += repeat0(nl - s22.length);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
nl = s12.length;
|
|
99
|
+
}
|
|
100
|
+
if (s11.length < s21.length) {
|
|
101
|
+
s11 = repeat0(s21.length - s11.length) + s11;
|
|
102
|
+
}
|
|
103
|
+
else if (s11.length > s21.length) {
|
|
104
|
+
s21 = repeat0(s11.length - s21.length) + s21;
|
|
105
|
+
}
|
|
106
|
+
numstr1 = s11 + s12;
|
|
107
|
+
numstr2 = s21 + s22;
|
|
108
|
+
var flag = 1;
|
|
109
|
+
if (neg1 ^ neg2) {
|
|
110
|
+
if (numstr1 > numstr2) {
|
|
111
|
+
neg = neg1;
|
|
112
|
+
}
|
|
113
|
+
else if (numstr1 < numstr2) {
|
|
114
|
+
neg = neg2;
|
|
115
|
+
[numstr1, numstr2] = [numstr2, numstr1];
|
|
116
|
+
}
|
|
117
|
+
flag = 0;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
var neg = neg1 && neg2;
|
|
121
|
+
}
|
|
122
|
+
var res = [];
|
|
123
|
+
var end = (numstr1.length / 15 | 0) * 15;
|
|
124
|
+
var rest = 0;
|
|
125
|
+
while (end >= 0) {
|
|
126
|
+
var s1 = numstr1.slice(end, end + 15);
|
|
127
|
+
var s2 = numstr2.slice(end, end + 15);
|
|
128
|
+
var s = +s1 + (flag ? +s2 : -s2) + rest;
|
|
129
|
+
if (s < 0) {
|
|
130
|
+
s = +("1" + repeat0(s1.length)) + s;
|
|
131
|
+
rest = -1;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
rest = 0;
|
|
135
|
+
}
|
|
136
|
+
s = s.toFixed(0);
|
|
137
|
+
if (s.length > s1.length) {
|
|
138
|
+
rest = 1;
|
|
139
|
+
res.push(s.slice(1))
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
if (s.length < s1.length) s = repeat0(s1.length - s.length) + s;
|
|
143
|
+
res.push(s);
|
|
144
|
+
}
|
|
145
|
+
end -= 15;
|
|
146
|
+
}
|
|
147
|
+
if (rest) res.push(rest);
|
|
148
|
+
res = res.reverse().join('');
|
|
149
|
+
return fixme(neg, res, nl);
|
|
150
|
+
}
|
|
151
|
+
static prd(numstr1, numstr2) {
|
|
152
|
+
var [neg1, s11, s12] = prepare(numstr1);
|
|
153
|
+
var [neg2, s21, s22] = prepare(numstr2);
|
|
154
|
+
var d = s12.length + s22.length;
|
|
155
|
+
numstr1 = s11 + s12;
|
|
156
|
+
numstr2 = s21 + s22;
|
|
157
|
+
if (numstr1.length < numstr2.length) [numstr1, numstr2] = [numstr2, numstr1];
|
|
158
|
+
var ns1 = split(numstr1, 7);
|
|
159
|
+
var ns2 = split(numstr2, 7);
|
|
160
|
+
var res = [];
|
|
161
|
+
var i = 0;
|
|
162
|
+
for (var cx = 0, dx = ns1.length; cx < dx; cx++) {
|
|
163
|
+
var s1 = ns1[cx];
|
|
164
|
+
for (var cy = 0, dy = ns2.length; cy < dy; cy++) {
|
|
165
|
+
var s2 = ns2[cy];
|
|
166
|
+
var i = cx + cy;
|
|
167
|
+
var rest = +res[i] || 0;
|
|
168
|
+
var s = s1 * s2 + rest;
|
|
169
|
+
s = String(s);
|
|
170
|
+
if (s.length > 7) {
|
|
171
|
+
rest = +s.slice(0, s.length - 7);
|
|
172
|
+
res[i] = s.slice(s.length - 7);
|
|
173
|
+
res[i + 1] = (+res[i + 1] || 0) + rest;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
if (s.length < 7) s = repeat0(7 - s.length) + s;
|
|
177
|
+
res[i] = s;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
res = res.reverse().join('');
|
|
182
|
+
return fixme(neg1 ^ neg2, res, d);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var testAdd = function (a, b, s) {
|
|
2
|
+
assert(BigNumber.add(a, b), s, `${a} + ${b}`);
|
|
3
|
+
};
|
|
4
|
+
var testPrd = function (a, b, s) {
|
|
5
|
+
assert(BigNumber.prd(a, b), s, `${a} * ${b}`);
|
|
6
|
+
};
|
|
7
|
+
testAdd(0x1fffffffffffff, 1, '9007199254740992');
|
|
8
|
+
testAdd(0x1fffffffffffff, 2, '9007199254740993');
|
|
9
|
+
testAdd(0x1fffffffffffff, 3, '9007199254740994');
|
|
10
|
+
testAdd(0x1fffffffffffff, 3, '9007199254740994');
|
|
11
|
+
testAdd("900719925474099.2", 0.1, '900719925474099.3');
|
|
12
|
+
testAdd("900719925474099.2", 0.1, '900719925474099.3');
|
|
13
|
+
testAdd("900719925474099.3", -0.2, '900719925474099.1');
|
|
14
|
+
testAdd("900719925474099.39007199254740992", "-900719925474099.39007199254740992", '0');
|
|
15
|
+
testAdd("900719925474099.39007199254740992", 0.2, '900719925474099.59007199254740992');
|
|
16
|
+
testAdd("900719925474099.39007199254740992", "-900719925474099.39007", '0.00000199254740992');
|
|
17
|
+
testAdd("90071992547409939007.199254740992", 0.2, '90071992547409939007.399254740992');
|
|
18
|
+
testAdd("-90071992547409939007.199254740992", 0.2, '-90071992547409939006.999254740992');
|
|
19
|
+
var getrandomint = function () {
|
|
20
|
+
var n = BigInt(Math.random() * new Date | 0) * BigInt(Math.random() * new Date | 0) * BigInt(Math.random() * new Date | 0);
|
|
21
|
+
return n;
|
|
22
|
+
}
|
|
23
|
+
testPrd(1, 2, '2');
|
|
24
|
+
testPrd(1, 0.2, '0.2');
|
|
25
|
+
testPrd("9007199254740992.1", 0.1, '900719925474099.21');
|
|
26
|
+
testPrd("9007199254740992.1", 0.01, '90071992547409.921');
|
|
27
|
+
for (var cx = 0, dx = 1000; cx < dx; cx++) {
|
|
28
|
+
var n1 = getrandomint();
|
|
29
|
+
var n2 = getrandomint();
|
|
30
|
+
var s = String(n1 + n2);
|
|
31
|
+
testAdd(n1, n2, s);
|
|
32
|
+
testPrd(n1, n2, String(n1 * n2));
|
|
33
|
+
}
|
|
34
|
+
assert(BigNumber.fix(2, 2), '2.00');
|
|
35
|
+
assert(BigNumber.fix(2.234, 6), '2.234000');
|
|
36
|
+
assert(BigNumber.fix(2.235, 6), '2.235000');
|
|
37
|
+
assert(BigNumber.fix(2.235, 2), '2.24');
|
|
38
|
+
assert(BigNumber.fix(2.234, 2), '2.23');
|
|
39
|
+
assert(BigNumber.fix(2.2351, 2), '2.24');
|
|
40
|
+
assert(BigNumber.fix(2.2349, 2), '2.23');
|
|
41
|
+
assert(BigNumber.round(2.2349), '2');
|
|
42
|
+
assert(BigNumber.round(2.4999), '2');
|
|
43
|
+
assert(BigNumber.round(2.5000), '3');
|
|
44
|
+
assert(BigNumber.round(2.5100), '3');
|
|
45
|
+
assert(BigNumber.ceil(2.5100), '3');
|
|
46
|
+
assert(BigNumber.ceil(2.000), '2');
|
|
47
|
+
assert(BigNumber.floor(2.000), '2');
|
|
48
|
+
assert(BigNumber.floor(2.999), '2');
|
|
49
|
+
assert(BigNumber.ceil(2.001), '3');
|
|
50
|
+
assert(BigNumber.ceil(2.999), '3');
|
|
51
|
+
assert(BigNumber.fix("9007199254740992.234", 6), '9007199254740992.234000');
|
package/coms/basic/cross_.js
CHANGED
|
@@ -58,6 +58,18 @@ function toResponse() {
|
|
|
58
58
|
if (this.responseType === 'json') return JSON.stringify(this.response);
|
|
59
59
|
return this.response;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* @this {XMLHttpRequest}
|
|
63
|
+
*/
|
|
64
|
+
var XMLHttpRequest_abort = function () {
|
|
65
|
+
removeFromList(requests, this);
|
|
66
|
+
delete this.abort;
|
|
67
|
+
if (isFunction(this.abort)) this.abort(this);
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @param { () => XMLHttpRequest } jsonp
|
|
71
|
+
* @this { () => XMLHttpRequest }
|
|
72
|
+
*/
|
|
61
73
|
function cross_(jsonp, digest = noop, method, url, headers) {
|
|
62
74
|
var originDomain = getDomainPath(url);
|
|
63
75
|
if (!originDomain) throw new Error("路径格式错误!");
|
|
@@ -326,11 +338,7 @@ function cross_(jsonp, digest = noop, method, url, headers) {
|
|
|
326
338
|
onerrors.push(oh);
|
|
327
339
|
flush();
|
|
328
340
|
};
|
|
329
|
-
|
|
330
|
-
xhr.abort = function () {
|
|
331
|
-
removeFromList(requests, this);
|
|
332
|
-
if (isFunction(abort)) abort.call(this);
|
|
333
|
-
};
|
|
341
|
+
xhr.abort = XMLHttpRequest_abort;
|
|
334
342
|
xhr.delCookies = function () {
|
|
335
343
|
delCookies(originDomain);
|
|
336
344
|
xhr.nocookie = true;
|
|
@@ -394,8 +402,7 @@ cross_.bind = function () {
|
|
|
394
402
|
extend(cross_, {
|
|
395
403
|
requests,
|
|
396
404
|
abortAll() {
|
|
397
|
-
var
|
|
398
|
-
for (var r of rs) r.abort();
|
|
405
|
+
for (var r of requests) r.abort();
|
|
399
406
|
},
|
|
400
407
|
setHost,
|
|
401
408
|
addReform,
|
package/coms/basic/submit_.js
CHANGED
|
@@ -21,6 +21,25 @@ function submit(fields, data) {
|
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
23
|
params[f.key] = data[f.key];
|
|
24
|
+
var tmp = /\:(\d+)?(?:\.(\d+))?$/.exec(f.type);
|
|
25
|
+
if (tmp) var [, , fixed] = tmp;
|
|
26
|
+
else if (/^(money|price)$/i.test(f.type)) fixed = 2;
|
|
27
|
+
fixed = +fixed;
|
|
28
|
+
if (fixed) {
|
|
29
|
+
var v = params[f.key];
|
|
30
|
+
if (v) {
|
|
31
|
+
var d = v.replace(/^[^\.]*\.?/, '').length;
|
|
32
|
+
if (d === v.length - 1) v = "0" + v;
|
|
33
|
+
if (d > 0 && d < fixed) {
|
|
34
|
+
v = v + new Array(fixed + 1 - d).join("0");
|
|
35
|
+
}
|
|
36
|
+
else if (d === 0) {
|
|
37
|
+
v = v.replace(/\.$/, '') + '.' + new Array(fixed + 1).join("0");
|
|
38
|
+
}
|
|
39
|
+
params[f.key] = v;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
24
43
|
}
|
|
25
44
|
}
|
|
26
45
|
if (checks.length + select.length + inputs.length) {
|
package/coms/basic/valid.js
CHANGED
|
@@ -6,6 +6,27 @@ function valid(field, data) {
|
|
|
6
6
|
}
|
|
7
7
|
return;
|
|
8
8
|
}
|
|
9
|
+
var tmp;
|
|
10
|
+
if (tmp = /\:(\d+)(?:\.(\d+))?$/.exec(field.type)) {
|
|
11
|
+
var [, a, b] = tmp;
|
|
12
|
+
var value = data[field.key];
|
|
13
|
+
a = +a;
|
|
14
|
+
b = +b;
|
|
15
|
+
if (a) {
|
|
16
|
+
if (!b) {
|
|
17
|
+
if (value.length > a) return `不能超过${a}个字符`;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
if (value.replace(/\.[\s\S]*$/, '').length > a) return `整数部分不能超过${a}位`;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (b) {
|
|
24
|
+
var digits = value.replace(/^[^\.]+\./, '');
|
|
25
|
+
if (digits.length > b) {
|
|
26
|
+
return `小数部分不能超过${b}位`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
9
30
|
if (field.valid instanceof Function) {
|
|
10
31
|
var e = field.valid(data[field.key]);
|
|
11
32
|
if (e) return e;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<div class="head">
|
|
2
|
+
扫码支付
|
|
3
|
+
<close @click="closeView()"></close>
|
|
4
|
+
</div>
|
|
5
|
+
<div class="body">
|
|
6
|
+
<item>
|
|
7
|
+
<label>原始价格:</label>
|
|
8
|
+
<span v-model="(+price).toFixed(2)"></span>元
|
|
9
|
+
</item>
|
|
10
|
+
<item>
|
|
11
|
+
<label>支付渠道:</label>
|
|
12
|
+
<select ng-model="paytype">
|
|
13
|
+
<option disabled value="0">请选择</option>
|
|
14
|
+
<option v-repeat="(o,i) in paytypes" icon_=o.icon value_="i+1" -html="o.name"></option>
|
|
15
|
+
<!-- <option icon="/page/weixin.ico" value="2">微信</option> -->
|
|
16
|
+
</select>
|
|
17
|
+
</item>
|
|
18
|
+
<item>
|
|
19
|
+
<label>渠道费:</label>
|
|
20
|
+
<span b-bind="waycost"></span>元
|
|
21
|
+
</item>
|
|
22
|
+
<item ng-if="+paytype">
|
|
23
|
+
<label>应支付:</label>
|
|
24
|
+
<span style="color: red;">
|
|
25
|
+
<span v-model=finalpay></span>元
|
|
26
|
+
</span>
|
|
27
|
+
</item>
|
|
28
|
+
<item ng-if="+paytype">
|
|
29
|
+
<iframe _src="paysite" allowtransparency="true" scrolling="no">
|
|
30
|
+
</iframe>
|
|
31
|
+
</item>
|
|
32
|
+
<item>
|
|
33
|
+
</item>
|
|
34
|
+
</div>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
var paytype = data.getInstance("paytype");
|
|
2
|
+
function main(paytypes, price) {
|
|
3
|
+
var page = view();
|
|
4
|
+
page.innerHTML = payment;
|
|
5
|
+
renderWithDefaults(page, {
|
|
6
|
+
get paytype() {
|
|
7
|
+
return paytype.value;
|
|
8
|
+
},
|
|
9
|
+
set paytype(value) {
|
|
10
|
+
data.patchInstance("paytype", { value }, true);
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
get waycost() {
|
|
14
|
+
var pay = this.paytypes[this.paytype - 1];
|
|
15
|
+
if (!pay) return 0;
|
|
16
|
+
var cost = pay.cost;
|
|
17
|
+
if (isFunction(cost)) cost = cost.call(pay, price);
|
|
18
|
+
return BigNumber.fix(cost, 2);
|
|
19
|
+
},
|
|
20
|
+
get paysite() {
|
|
21
|
+
var pay = this.paytypes[this.paytype - 1];
|
|
22
|
+
if (!pay) return 'about:blank';
|
|
23
|
+
var url = pay.url;
|
|
24
|
+
if (isFunction(url)) url = url.call(pay, this.finalpay);
|
|
25
|
+
else if (url) url += this.finalpay;
|
|
26
|
+
return url;
|
|
27
|
+
},
|
|
28
|
+
get finalpay() {
|
|
29
|
+
return BigNumber.fix(BigNumber.add(this.price, this.waycost), 2);
|
|
30
|
+
},
|
|
31
|
+
paytypes,
|
|
32
|
+
price,
|
|
33
|
+
closeView() {
|
|
34
|
+
remove(page);
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
drag.on(page.firstChild, page);
|
|
38
|
+
resize.on(page);
|
|
39
|
+
data.bindInstance("paytype", function (type) {
|
|
40
|
+
console.log(type)
|
|
41
|
+
});
|
|
42
|
+
var frame = page.querySelector("iframe");
|
|
43
|
+
on("mounted")(frame, function () {
|
|
44
|
+
frame.contentWindow.onmessage = function (e) {
|
|
45
|
+
var id = e.data;
|
|
46
|
+
cast(page, 'payment', id);
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
return page;
|
|
50
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
& {
|
|
2
|
+
border: 1px solid #000;
|
|
3
|
+
position: absolute;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
label {
|
|
7
|
+
display: inline-block;
|
|
8
|
+
padding: 0 16px 0 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
>.head {
|
|
12
|
+
-webkit-app-region: no-drag;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.body {
|
|
16
|
+
item {
|
|
17
|
+
display: block;
|
|
18
|
+
padding: 0 16px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
iframe {
|
|
22
|
+
width: 256px;
|
|
23
|
+
height: 256px;
|
|
24
|
+
overflow: hidden;
|
|
25
|
+
border: none;
|
|
26
|
+
display: block;
|
|
27
|
+
margin: 20px auto;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
money {
|
|
31
|
+
display: block;
|
|
32
|
+
text-align: center;
|
|
33
|
+
color: red;
|
|
34
|
+
}
|
|
35
|
+
}
|
package/coms/zimoli/data.js
CHANGED
package/coms/zimoli/zimoli.js
CHANGED
|
@@ -168,7 +168,7 @@ function go(pagepath, args, history_name, oldpagepath) {
|
|
|
168
168
|
fullfill_is_dispatched = 0;
|
|
169
169
|
}
|
|
170
170
|
addGlobal(_page, history_name, isDestroy);
|
|
171
|
-
page_object.prepares.forEach(function (url) {
|
|
171
|
+
page_object.prepares.splice(0, page_object.prepares.length).forEach(function (url) {
|
|
172
172
|
if (isNumber(url)) {
|
|
173
173
|
url = _history[url < 1 ? _history.length + url - 1 : url];
|
|
174
174
|
}
|