the text\t\nfont\t \n>",
+ "expected": [
+ {
+ "type": "tag",
+ "name": "font",
+ "attribs": {
+ "size": "14"
+ },
+ "children": [
+ {
+ "data": "the text",
+ "type": "text"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/node_modules/domhandler/test/cases/16-normalize_whitespace.json b/node_modules/domhandler/test/cases/16-normalize_whitespace.json
new file mode 100755
index 0000000..d4490af
--- /dev/null
+++ b/node_modules/domhandler/test/cases/16-normalize_whitespace.json
@@ -0,0 +1,47 @@
+{
+ "name": "Normalize whitespace",
+ "options": {
+ "normalizeWhitespace": true
+ },
+ "html": "Line one\n
\t \r\n\f
\nline two
x ",
+ "expected": [
+ {
+ "data": "Line one ",
+ "type": "text"
+ },
+ {
+ "type": "tag",
+ "name": "br",
+ "attribs": {}
+ },
+ {
+ "data": " ",
+ "type": "text"
+ },
+ {
+ "type": "tag",
+ "name": "br",
+ "attribs": {}
+ },
+ {
+ "data": " line two",
+ "type": "text"
+ },
+ {
+ "type": "tag",
+ "name": "font",
+ "attribs": {},
+ "children": [
+ {
+ "type": "tag",
+ "name": "br",
+ "attribs": {}
+ },
+ {
+ "data": " x ",
+ "type": "text"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/node_modules/domhandler/test/cases/17-xml_namespace.json b/node_modules/domhandler/test/cases/17-xml_namespace.json
new file mode 100755
index 0000000..2171c49
--- /dev/null
+++ b/node_modules/domhandler/test/cases/17-xml_namespace.json
@@ -0,0 +1,18 @@
+{
+ "name": "XML Namespace",
+ "options": {},
+ "html": "text",
+ "expected": [
+ {
+ "type": "tag",
+ "name": "ns:tag",
+ "attribs": {},
+ "children": [
+ {
+ "data": "text",
+ "type": "text"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/node_modules/domhandler/test/cases/18-enforce_empty_tags.json b/node_modules/domhandler/test/cases/18-enforce_empty_tags.json
new file mode 100755
index 0000000..ce6c455
--- /dev/null
+++ b/node_modules/domhandler/test/cases/18-enforce_empty_tags.json
@@ -0,0 +1,16 @@
+{
+ "name": "Enforce empty tags",
+ "options": {},
+ "html": "text",
+ "expected": [
+ {
+ "type": "tag",
+ "name": "link",
+ "attribs": {}
+ },
+ {
+ "data": "text",
+ "type": "text"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/node_modules/domhandler/test/cases/19-ignore_empty_tags.json b/node_modules/domhandler/test/cases/19-ignore_empty_tags.json
new file mode 100755
index 0000000..fe59cf9
--- /dev/null
+++ b/node_modules/domhandler/test/cases/19-ignore_empty_tags.json
@@ -0,0 +1,20 @@
+{
+ "name": "Ignore empty tags (xml mode)",
+ "options": {
+ "xmlMode": true
+ },
+ "html": "text",
+ "expected": [
+ {
+ "type": "tag",
+ "name": "link",
+ "attribs": {},
+ "children": [
+ {
+ "data": "text",
+ "type": "text"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/node_modules/domhandler/test/cases/20-template_script_tags.json b/node_modules/domhandler/test/cases/20-template_script_tags.json
new file mode 100755
index 0000000..dae5f1f
--- /dev/null
+++ b/node_modules/domhandler/test/cases/20-template_script_tags.json
@@ -0,0 +1,20 @@
+{
+ "name": "Template script tags",
+ "options": {},
+ "html": "",
+ "expected": [
+ {
+ "type": "script",
+ "name": "script",
+ "attribs": {
+ "type": "text/template"
+ },
+ "children": [
+ {
+ "data": "Heading1
",
+ "type": "text"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/node_modules/domhandler/test/cases/21-conditional_comments.json b/node_modules/domhandler/test/cases/21-conditional_comments.json
new file mode 100755
index 0000000..c034acd
--- /dev/null
+++ b/node_modules/domhandler/test/cases/21-conditional_comments.json
@@ -0,0 +1,15 @@
+{
+ "name": "Conditional comments",
+ "options": {},
+ "html": "",
+ "expected": [
+ {
+ "data": "[if lt IE 7]> The TitleHello world",
+ "expected": [
+ {
+ "name": "!doctype",
+ "data": "!DOCTYPE html",
+ "type": "directive"
+ },
+ {
+ "type": "tag",
+ "name": "html",
+ "attribs": {},
+ "children": [
+ {
+ "type": "tag",
+ "name": "title",
+ "attribs": {},
+ "children": [
+ {
+ "data": "The Title",
+ "type": "text"
+ }
+ ]
+ },
+ {
+ "type": "tag",
+ "name": "body",
+ "attribs": {},
+ "children": [
+ {
+ "data": "Hello world",
+ "type": "text"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/node_modules/domhandler/test/cases/23-dom-lvl1.json b/node_modules/domhandler/test/cases/23-dom-lvl1.json
new file mode 100755
index 0000000..ab25d88
--- /dev/null
+++ b/node_modules/domhandler/test/cases/23-dom-lvl1.json
@@ -0,0 +1,131 @@
+{
+ "name": "DOM level 1",
+ "options": { "withDomLvl1": true },
+ "html": "some stray text
Hello, world.
more stray text",
+ "expected": [
+ {
+ "type": "tag",
+ "nodeType": 1,
+ "name": "div",
+ "tagName": "div",
+ "attribs": {},
+ "nodeValue": null,
+ "children": [
+ {
+ "type": "text",
+ "nodeType": 3,
+ "tagName": null,
+ "data": "some stray text",
+ "nodeValue": "some stray text",
+ "childNodes": null,
+ "firstChild": null,
+ "lastChild": null
+ },
+ {
+ "type": "tag",
+ "nodeType": 1,
+ "name": "h1",
+ "tagName": "h1",
+ "nodeValue": null,
+ "attribs": {},
+ "children": [
+ {
+ "type": "text",
+ "nodeType": 3,
+ "tagName": null,
+ "data": "Hello, world.",
+ "nodeValue": "Hello, world.",
+ "childNodes": null,
+ "firstChild": null,
+ "lastChild": null
+ }
+ ],
+ "firstChild": {
+ "type": "text",
+ "nodeType": 3,
+ "tagName": null,
+ "data": "Hello, world.",
+ "nodeValue": "Hello, world.",
+ "childNodes": null,
+ "firstChild": null,
+ "lastChild": null
+ },
+ "lastChild": {
+ "type": "text",
+ "nodeType": 3,
+ "tagName": null,
+ "data": "Hello, world.",
+ "nodeValue": "Hello, world.",
+ "childNodes": null,
+ "firstChild": null,
+ "lastChild": null
+ }
+ },
+ {
+ "type": "comment",
+ "nodeType": 8,
+ "tagName": null,
+ "data": " comment node ",
+ "nodeValue": " comment node ",
+ "childNodes": null,
+ "firstChild": null,
+ "lastChild": null,
+ "prev": {
+ "type": "tag",
+ "name": "h1",
+ "nodeValue": null,
+ "attribs": {}
+ },
+ "previousSibling": {
+ "type": "tag",
+ "name": "h1",
+ "nodeValue": null,
+ "attribs": {}
+ },
+ "next": {
+ "type": "text",
+ "tagName": null,
+ "data": "more stray text"
+ },
+ "nextSibling": {
+ "type": "text",
+ "tagName": null,
+ "data": "more stray text"
+ }
+ },
+ {
+ "type": "text",
+ "nodeType": 3,
+ "tagName": null,
+ "data": "more stray text",
+ "nodeValue": "more stray text",
+ "childNodes": null,
+ "firstChild": null,
+ "lastChild": null,
+ "next": null,
+ "nextSibling": null
+ }
+ ],
+ "firstChild": {
+ "type": "text",
+ "nodeType": 3,
+ "tagName": null,
+ "data": "some stray text",
+ "nodeValue": "some stray text",
+ "childNodes": null,
+ "firstChild": null,
+ "lastChild": null
+ },
+ "lastChild": {
+ "type": "text",
+ "nodeType": 3,
+ "tagName": null,
+ "data": "more stray text",
+ "nodeValue": "more stray text",
+ "childNodes": null,
+ "firstChild": null,
+ "lastChild": null
+ }
+ }
+ ]
+}
diff --git a/node_modules/domhandler/test/cases/24-with-start-indices.json b/node_modules/domhandler/test/cases/24-with-start-indices.json
new file mode 100755
index 0000000..02228f1
--- /dev/null
+++ b/node_modules/domhandler/test/cases/24-with-start-indices.json
@@ -0,0 +1,85 @@
+{
+ "name": "withStartIndices adds correct startIndex properties",
+ "options": {"withStartIndices": true},
+ "streaming": false,
+ "html": " The Title Hello world ",
+ "expected": [
+ {
+ "startIndex": 0,
+ "name": "!doctype",
+ "data": "!DOCTYPE html",
+ "type": "directive"
+ },
+ {
+ "type": "text",
+ "data": " "
+ },
+ {
+ "startIndex": 16,
+ "type": "tag",
+ "name": "html",
+ "attribs": {},
+ "parent": null,
+ "children": [
+ {
+ "startIndex": 22,
+ "type": "text",
+ "data": " "
+ },
+ {
+ "startIndex": 23,
+ "type": "tag",
+ "name": "title",
+ "attribs": {},
+ "children": [
+ {
+ "startIndex": 30,
+ "data": "The Title",
+ "type": "text"
+ }
+ ]
+ },
+ {
+ "startIndex": 47,
+ "type": "text",
+ "data": " "
+ },
+ {
+ "startIndex": 48,
+ "type": "tag",
+ "name": "body",
+ "attribs": {"class": "foo"},
+ "children": [
+ {
+ "startIndex": 66,
+ "data": "Hello world ",
+ "type": "text"
+ },
+ {
+ "startIndex": 78,
+ "type": "tag",
+ "name": "p",
+ "attribs": {},
+ "children": []
+ }
+ ]
+ },
+ {
+ "startIndex": 92,
+ "type": "text",
+ "data": " "
+ },
+ {
+ "startIndex": 93,
+ "type": "comment",
+ "data": " the comment "
+ },
+ {
+ "startIndex": 113,
+ "type": "text",
+ "data": " "
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/node_modules/domhandler/test/cases/25-with-end-indices.json b/node_modules/domhandler/test/cases/25-with-end-indices.json
new file mode 100755
index 0000000..efd62f4
--- /dev/null
+++ b/node_modules/domhandler/test/cases/25-with-end-indices.json
@@ -0,0 +1,86 @@
+{
+ "name": "withEndIndices adds correct endIndex properties",
+ "options": {"withStartIndices": true,"withEndIndices": true},
+ "streaming": false,
+ "html": " The Title Hello world ",
+ "expected": [
+ {
+ "endIndex": null,
+ "name": "!doctype",
+ "data": "!DOCTYPE html",
+ "type": "directive"
+ },
+ {
+ "type": "text",
+ "data": " ",
+ "endIndex": 15
+ },
+ {
+ "endIndex": 120,
+ "type": "tag",
+ "name": "html",
+ "attribs": {},
+ "parent": null,
+ "children": [
+ {
+ "endIndex": 22,
+ "type": "text",
+ "data": " "
+ },
+ {
+ "endIndex": 46,
+ "type": "tag",
+ "name": "title",
+ "attribs": {},
+ "children": [
+ {
+ "endIndex": 38,
+ "data": "The Title",
+ "type": "text"
+ }
+ ]
+ },
+ {
+ "endIndex": 47,
+ "type": "text",
+ "data": " "
+ },
+ {
+ "endIndex": 91,
+ "type": "tag",
+ "name": "body",
+ "attribs": {"class": "foo"},
+ "children": [
+ {
+ "endIndex": 77,
+ "data": "Hello world ",
+ "type": "text"
+ },
+ {
+ "endIndex": 84,
+ "type": "tag",
+ "name": "p",
+ "attribs": {},
+ "children": []
+ }
+ ]
+ },
+ {
+ "endIndex": 92,
+ "type": "text",
+ "data": " "
+ },
+ {
+ "endIndex": 112,
+ "type": "comment",
+ "data": " the comment "
+ },
+ {
+ "endIndex": 113,
+ "type": "text",
+ "data": " "
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/node_modules/domhandler/test/tests.js b/node_modules/domhandler/test/tests.js
new file mode 100755
index 0000000..6dc96a2
--- /dev/null
+++ b/node_modules/domhandler/test/tests.js
@@ -0,0 +1,60 @@
+var fs = require("fs"),
+ path = require("path"),
+ assert = require("assert"),
+ util = require("util"),
+ Parser = require("htmlparser2").Parser,
+ Handler = require("../");
+
+var basePath = path.resolve(__dirname, "cases"),
+ inspectOpts = { showHidden: true, depth: null };
+
+fs
+.readdirSync(basePath)
+.filter(RegExp.prototype.test, /\.json$/) //only allow .json files
+.map(function(name){
+ return path.resolve(basePath, name);
+})
+.map(require)
+.forEach(function(test){
+ it(test.name, function(){
+ var expected = test.expected;
+
+ var handler = new Handler(function(err, actual){
+ assert.ifError(err);
+ try {
+ compare(expected, actual);
+ } catch(e){
+ e.expected = util.inspect(expected, inspectOpts);
+ e.actual = util.inspect(actual, inspectOpts);
+ throw e;
+ }
+ }, test.options);
+
+ var data = test.html;
+
+ var parser = new Parser(handler, test.options);
+
+ //first, try to run the test via chunks
+ if (test.streaming || test.streaming === undefined){
+ for(var i = 0; i < data.length; i++){
+ parser.write(data.charAt(i));
+ }
+ parser.done();
+ }
+
+ //then parse everything
+ parser.parseComplete(data);
+ });
+});
+
+function compare(expected, result){
+ assert.equal(typeof expected, typeof result, "types didn't match");
+ if(typeof expected !== "object" || expected === null){
+ assert.strictEqual(expected, result, "result doesn't equal expected");
+ } else {
+ for(var prop in expected){
+ assert.ok(prop in result, "result didn't contain property " + prop);
+ compare(expected[prop], result[prop]);
+ }
+ }
+}
\ No newline at end of file
diff --git a/node_modules/entities/.travis.yml b/node_modules/entities/.travis.yml
new file mode 100755
index 0000000..0ce2af6
--- /dev/null
+++ b/node_modules/entities/.travis.yml
@@ -0,0 +1,5 @@
+sudo: true
+language: node_js
+node_js:
+ - 8
+script: npm run coveralls
diff --git a/node_modules/entities/LICENSE b/node_modules/entities/LICENSE
new file mode 100755
index 0000000..c464f86
--- /dev/null
+++ b/node_modules/entities/LICENSE
@@ -0,0 +1,11 @@
+Copyright (c) Felix Böhm
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/entities/index.js b/node_modules/entities/index.js
new file mode 100755
index 0000000..91bf845
--- /dev/null
+++ b/node_modules/entities/index.js
@@ -0,0 +1,26 @@
+var encode = require("./lib/encode.js"),
+ decode = require("./lib/decode.js");
+
+exports.decode = function(data, level) {
+ return (!level || level <= 0 ? decode.XML : decode.HTML)(data);
+};
+
+exports.decodeStrict = function(data, level) {
+ return (!level || level <= 0 ? decode.XML : decode.HTMLStrict)(data);
+};
+
+exports.encode = function(data, level) {
+ return (!level || level <= 0 ? encode.XML : encode.HTML)(data);
+};
+
+exports.encodeXML = encode.XML;
+
+exports.encodeHTML4 = exports.encodeHTML5 = exports.encodeHTML = encode.HTML;
+
+exports.decodeXML = exports.decodeXMLStrict = decode.XML;
+
+exports.decodeHTML4 = exports.decodeHTML5 = exports.decodeHTML = decode.HTML;
+
+exports.decodeHTML4Strict = exports.decodeHTML5Strict = exports.decodeHTMLStrict = decode.HTMLStrict;
+
+exports.escape = encode.escape;
diff --git a/node_modules/entities/lib/decode.js b/node_modules/entities/lib/decode.js
new file mode 100755
index 0000000..1ca99ad
--- /dev/null
+++ b/node_modules/entities/lib/decode.js
@@ -0,0 +1,70 @@
+var entityMap = require("../maps/entities.json"),
+ legacyMap = require("../maps/legacy.json"),
+ xmlMap = require("../maps/xml.json"),
+ decodeCodePoint = require("./decode_codepoint.js");
+
+var decodeXMLStrict = getStrictDecoder(xmlMap),
+ decodeHTMLStrict = getStrictDecoder(entityMap);
+
+function getStrictDecoder(map) {
+ var keys = Object.keys(map).join("|"),
+ replace = getReplacer(map);
+
+ keys += "|#[xX][\\da-fA-F]+|#\\d+";
+
+ var re = new RegExp("&(?:" + keys + ");", "g");
+
+ return function(str) {
+ return String(str).replace(re, replace);
+ };
+}
+
+var decodeHTML = (function() {
+ var legacy = Object.keys(legacyMap).sort(sorter);
+
+ var keys = Object.keys(entityMap).sort(sorter);
+
+ for (var i = 0, j = 0; i < keys.length; i++) {
+ if (legacy[j] === keys[i]) {
+ keys[i] += ";?";
+ j++;
+ } else {
+ keys[i] += ";";
+ }
+ }
+
+ var re = new RegExp("&(?:" + keys.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g"),
+ replace = getReplacer(entityMap);
+
+ function replacer(str) {
+ if (str.substr(-1) !== ";") str += ";";
+ return replace(str);
+ }
+
+ //TODO consider creating a merged map
+ return function(str) {
+ return String(str).replace(re, replacer);
+ };
+})();
+
+function sorter(a, b) {
+ return a < b ? 1 : -1;
+}
+
+function getReplacer(map) {
+ return function replace(str) {
+ if (str.charAt(1) === "#") {
+ if (str.charAt(2) === "X" || str.charAt(2) === "x") {
+ return decodeCodePoint(parseInt(str.substr(3), 16));
+ }
+ return decodeCodePoint(parseInt(str.substr(2), 10));
+ }
+ return map[str.slice(1, -1)];
+ };
+}
+
+module.exports = {
+ XML: decodeXMLStrict,
+ HTML: decodeHTML,
+ HTMLStrict: decodeHTMLStrict
+};
diff --git a/node_modules/entities/lib/decode_codepoint.js b/node_modules/entities/lib/decode_codepoint.js
new file mode 100755
index 0000000..2eadbe4
--- /dev/null
+++ b/node_modules/entities/lib/decode_codepoint.js
@@ -0,0 +1,25 @@
+var decodeMap = require("../maps/decode.json");
+
+module.exports = decodeCodePoint;
+
+// modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119
+function decodeCodePoint(codePoint) {
+ if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {
+ return "\uFFFD";
+ }
+
+ if (codePoint in decodeMap) {
+ codePoint = decodeMap[codePoint];
+ }
+
+ var output = "";
+
+ if (codePoint > 0xffff) {
+ codePoint -= 0x10000;
+ output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);
+ codePoint = 0xdc00 | (codePoint & 0x3ff);
+ }
+
+ output += String.fromCharCode(codePoint);
+ return output;
+}
diff --git a/node_modules/entities/lib/encode.js b/node_modules/entities/lib/encode.js
new file mode 100755
index 0000000..791c405
--- /dev/null
+++ b/node_modules/entities/lib/encode.js
@@ -0,0 +1,82 @@
+var inverseXML = getInverseObj(require("../maps/xml.json")),
+ xmlReplacer = getInverseReplacer(inverseXML);
+
+exports.XML = getInverse(inverseXML, xmlReplacer);
+
+var inverseHTML = getInverseObj(require("../maps/entities.json")),
+ htmlReplacer = getInverseReplacer(inverseHTML);
+
+exports.HTML = getInverse(inverseHTML, htmlReplacer);
+
+function getInverseObj(obj) {
+ return Object.keys(obj)
+ .sort()
+ .reduce(function(inverse, name) {
+ inverse[obj[name]] = "&" + name + ";";
+ return inverse;
+ }, {});
+}
+
+function getInverseReplacer(inverse) {
+ var single = [],
+ multiple = [];
+
+ Object.keys(inverse).forEach(function(k) {
+ if (k.length === 1) {
+ single.push("\\" + k);
+ } else {
+ multiple.push(k);
+ }
+ });
+
+ //TODO add ranges
+ multiple.unshift("[" + single.join("") + "]");
+
+ return new RegExp(multiple.join("|"), "g");
+}
+
+var re_nonASCII = /[^\0-\x7F]/g,
+ re_astralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+
+function singleCharReplacer(c) {
+ return (
+ "" +
+ c
+ .charCodeAt(0)
+ .toString(16)
+ .toUpperCase() +
+ ";"
+ );
+}
+
+function astralReplacer(c) {
+ // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
+ var high = c.charCodeAt(0);
+ var low = c.charCodeAt(1);
+ var codePoint = (high - 0xd800) * 0x400 + low - 0xdc00 + 0x10000;
+ return "" + codePoint.toString(16).toUpperCase() + ";";
+}
+
+function getInverse(inverse, re) {
+ function func(name) {
+ return inverse[name];
+ }
+
+ return function(data) {
+ return data
+ .replace(re, func)
+ .replace(re_astralSymbols, astralReplacer)
+ .replace(re_nonASCII, singleCharReplacer);
+ };
+}
+
+var re_xmlChars = getInverseReplacer(inverseXML);
+
+function escapeXML(data) {
+ return data
+ .replace(re_xmlChars, singleCharReplacer)
+ .replace(re_astralSymbols, astralReplacer)
+ .replace(re_nonASCII, singleCharReplacer);
+}
+
+exports.escape = escapeXML;
diff --git a/node_modules/entities/maps/decode.json b/node_modules/entities/maps/decode.json
new file mode 100755
index 0000000..44e5d0b
--- /dev/null
+++ b/node_modules/entities/maps/decode.json
@@ -0,0 +1 @@
+{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}
\ No newline at end of file
diff --git a/node_modules/entities/maps/entities.json b/node_modules/entities/maps/entities.json
new file mode 100755
index 0000000..7ccfcd8
--- /dev/null
+++ b/node_modules/entities/maps/entities.json
@@ -0,0 +1 @@
+{"Aacute":"\u00C1","aacute":"\u00E1","Abreve":"\u0102","abreve":"\u0103","ac":"\u223E","acd":"\u223F","acE":"\u223E\u0333","Acirc":"\u00C2","acirc":"\u00E2","acute":"\u00B4","Acy":"\u0410","acy":"\u0430","AElig":"\u00C6","aelig":"\u00E6","af":"\u2061","Afr":"\uD835\uDD04","afr":"\uD835\uDD1E","Agrave":"\u00C0","agrave":"\u00E0","alefsym":"\u2135","aleph":"\u2135","Alpha":"\u0391","alpha":"\u03B1","Amacr":"\u0100","amacr":"\u0101","amalg":"\u2A3F","amp":"&","AMP":"&","andand":"\u2A55","And":"\u2A53","and":"\u2227","andd":"\u2A5C","andslope":"\u2A58","andv":"\u2A5A","ang":"\u2220","ange":"\u29A4","angle":"\u2220","angmsdaa":"\u29A8","angmsdab":"\u29A9","angmsdac":"\u29AA","angmsdad":"\u29AB","angmsdae":"\u29AC","angmsdaf":"\u29AD","angmsdag":"\u29AE","angmsdah":"\u29AF","angmsd":"\u2221","angrt":"\u221F","angrtvb":"\u22BE","angrtvbd":"\u299D","angsph":"\u2222","angst":"\u00C5","angzarr":"\u237C","Aogon":"\u0104","aogon":"\u0105","Aopf":"\uD835\uDD38","aopf":"\uD835\uDD52","apacir":"\u2A6F","ap":"\u2248","apE":"\u2A70","ape":"\u224A","apid":"\u224B","apos":"'","ApplyFunction":"\u2061","approx":"\u2248","approxeq":"\u224A","Aring":"\u00C5","aring":"\u00E5","Ascr":"\uD835\uDC9C","ascr":"\uD835\uDCB6","Assign":"\u2254","ast":"*","asymp":"\u2248","asympeq":"\u224D","Atilde":"\u00C3","atilde":"\u00E3","Auml":"\u00C4","auml":"\u00E4","awconint":"\u2233","awint":"\u2A11","backcong":"\u224C","backepsilon":"\u03F6","backprime":"\u2035","backsim":"\u223D","backsimeq":"\u22CD","Backslash":"\u2216","Barv":"\u2AE7","barvee":"\u22BD","barwed":"\u2305","Barwed":"\u2306","barwedge":"\u2305","bbrk":"\u23B5","bbrktbrk":"\u23B6","bcong":"\u224C","Bcy":"\u0411","bcy":"\u0431","bdquo":"\u201E","becaus":"\u2235","because":"\u2235","Because":"\u2235","bemptyv":"\u29B0","bepsi":"\u03F6","bernou":"\u212C","Bernoullis":"\u212C","Beta":"\u0392","beta":"\u03B2","beth":"\u2136","between":"\u226C","Bfr":"\uD835\uDD05","bfr":"\uD835\uDD1F","bigcap":"\u22C2","bigcirc":"\u25EF","bigcup":"\u22C3","bigodot":"\u2A00","bigoplus":"\u2A01","bigotimes":"\u2A02","bigsqcup":"\u2A06","bigstar":"\u2605","bigtriangledown":"\u25BD","bigtriangleup":"\u25B3","biguplus":"\u2A04","bigvee":"\u22C1","bigwedge":"\u22C0","bkarow":"\u290D","blacklozenge":"\u29EB","blacksquare":"\u25AA","blacktriangle":"\u25B4","blacktriangledown":"\u25BE","blacktriangleleft":"\u25C2","blacktriangleright":"\u25B8","blank":"\u2423","blk12":"\u2592","blk14":"\u2591","blk34":"\u2593","block":"\u2588","bne":"=\u20E5","bnequiv":"\u2261\u20E5","bNot":"\u2AED","bnot":"\u2310","Bopf":"\uD835\uDD39","bopf":"\uD835\uDD53","bot":"\u22A5","bottom":"\u22A5","bowtie":"\u22C8","boxbox":"\u29C9","boxdl":"\u2510","boxdL":"\u2555","boxDl":"\u2556","boxDL":"\u2557","boxdr":"\u250C","boxdR":"\u2552","boxDr":"\u2553","boxDR":"\u2554","boxh":"\u2500","boxH":"\u2550","boxhd":"\u252C","boxHd":"\u2564","boxhD":"\u2565","boxHD":"\u2566","boxhu":"\u2534","boxHu":"\u2567","boxhU":"\u2568","boxHU":"\u2569","boxminus":"\u229F","boxplus":"\u229E","boxtimes":"\u22A0","boxul":"\u2518","boxuL":"\u255B","boxUl":"\u255C","boxUL":"\u255D","boxur":"\u2514","boxuR":"\u2558","boxUr":"\u2559","boxUR":"\u255A","boxv":"\u2502","boxV":"\u2551","boxvh":"\u253C","boxvH":"\u256A","boxVh":"\u256B","boxVH":"\u256C","boxvl":"\u2524","boxvL":"\u2561","boxVl":"\u2562","boxVL":"\u2563","boxvr":"\u251C","boxvR":"\u255E","boxVr":"\u255F","boxVR":"\u2560","bprime":"\u2035","breve":"\u02D8","Breve":"\u02D8","brvbar":"\u00A6","bscr":"\uD835\uDCB7","Bscr":"\u212C","bsemi":"\u204F","bsim":"\u223D","bsime":"\u22CD","bsolb":"\u29C5","bsol":"\\","bsolhsub":"\u27C8","bull":"\u2022","bullet":"\u2022","bump":"\u224E","bumpE":"\u2AAE","bumpe":"\u224F","Bumpeq":"\u224E","bumpeq":"\u224F","Cacute":"\u0106","cacute":"\u0107","capand":"\u2A44","capbrcup":"\u2A49","capcap":"\u2A4B","cap":"\u2229","Cap":"\u22D2","capcup":"\u2A47","capdot":"\u2A40","CapitalDifferentialD":"\u2145","caps":"\u2229\uFE00","caret":"\u2041","caron":"\u02C7","Cayleys":"\u212D","ccaps":"\u2A4D","Ccaron":"\u010C","ccaron":"\u010D","Ccedil":"\u00C7","ccedil":"\u00E7","Ccirc":"\u0108","ccirc":"\u0109","Cconint":"\u2230","ccups":"\u2A4C","ccupssm":"\u2A50","Cdot":"\u010A","cdot":"\u010B","cedil":"\u00B8","Cedilla":"\u00B8","cemptyv":"\u29B2","cent":"\u00A2","centerdot":"\u00B7","CenterDot":"\u00B7","cfr":"\uD835\uDD20","Cfr":"\u212D","CHcy":"\u0427","chcy":"\u0447","check":"\u2713","checkmark":"\u2713","Chi":"\u03A7","chi":"\u03C7","circ":"\u02C6","circeq":"\u2257","circlearrowleft":"\u21BA","circlearrowright":"\u21BB","circledast":"\u229B","circledcirc":"\u229A","circleddash":"\u229D","CircleDot":"\u2299","circledR":"\u00AE","circledS":"\u24C8","CircleMinus":"\u2296","CirclePlus":"\u2295","CircleTimes":"\u2297","cir":"\u25CB","cirE":"\u29C3","cire":"\u2257","cirfnint":"\u2A10","cirmid":"\u2AEF","cirscir":"\u29C2","ClockwiseContourIntegral":"\u2232","CloseCurlyDoubleQuote":"\u201D","CloseCurlyQuote":"\u2019","clubs":"\u2663","clubsuit":"\u2663","colon":":","Colon":"\u2237","Colone":"\u2A74","colone":"\u2254","coloneq":"\u2254","comma":",","commat":"@","comp":"\u2201","compfn":"\u2218","complement":"\u2201","complexes":"\u2102","cong":"\u2245","congdot":"\u2A6D","Congruent":"\u2261","conint":"\u222E","Conint":"\u222F","ContourIntegral":"\u222E","copf":"\uD835\uDD54","Copf":"\u2102","coprod":"\u2210","Coproduct":"\u2210","copy":"\u00A9","COPY":"\u00A9","copysr":"\u2117","CounterClockwiseContourIntegral":"\u2233","crarr":"\u21B5","cross":"\u2717","Cross":"\u2A2F","Cscr":"\uD835\uDC9E","cscr":"\uD835\uDCB8","csub":"\u2ACF","csube":"\u2AD1","csup":"\u2AD0","csupe":"\u2AD2","ctdot":"\u22EF","cudarrl":"\u2938","cudarrr":"\u2935","cuepr":"\u22DE","cuesc":"\u22DF","cularr":"\u21B6","cularrp":"\u293D","cupbrcap":"\u2A48","cupcap":"\u2A46","CupCap":"\u224D","cup":"\u222A","Cup":"\u22D3","cupcup":"\u2A4A","cupdot":"\u228D","cupor":"\u2A45","cups":"\u222A\uFE00","curarr":"\u21B7","curarrm":"\u293C","curlyeqprec":"\u22DE","curlyeqsucc":"\u22DF","curlyvee":"\u22CE","curlywedge":"\u22CF","curren":"\u00A4","curvearrowleft":"\u21B6","curvearrowright":"\u21B7","cuvee":"\u22CE","cuwed":"\u22CF","cwconint":"\u2232","cwint":"\u2231","cylcty":"\u232D","dagger":"\u2020","Dagger":"\u2021","daleth":"\u2138","darr":"\u2193","Darr":"\u21A1","dArr":"\u21D3","dash":"\u2010","Dashv":"\u2AE4","dashv":"\u22A3","dbkarow":"\u290F","dblac":"\u02DD","Dcaron":"\u010E","dcaron":"\u010F","Dcy":"\u0414","dcy":"\u0434","ddagger":"\u2021","ddarr":"\u21CA","DD":"\u2145","dd":"\u2146","DDotrahd":"\u2911","ddotseq":"\u2A77","deg":"\u00B0","Del":"\u2207","Delta":"\u0394","delta":"\u03B4","demptyv":"\u29B1","dfisht":"\u297F","Dfr":"\uD835\uDD07","dfr":"\uD835\uDD21","dHar":"\u2965","dharl":"\u21C3","dharr":"\u21C2","DiacriticalAcute":"\u00B4","DiacriticalDot":"\u02D9","DiacriticalDoubleAcute":"\u02DD","DiacriticalGrave":"`","DiacriticalTilde":"\u02DC","diam":"\u22C4","diamond":"\u22C4","Diamond":"\u22C4","diamondsuit":"\u2666","diams":"\u2666","die":"\u00A8","DifferentialD":"\u2146","digamma":"\u03DD","disin":"\u22F2","div":"\u00F7","divide":"\u00F7","divideontimes":"\u22C7","divonx":"\u22C7","DJcy":"\u0402","djcy":"\u0452","dlcorn":"\u231E","dlcrop":"\u230D","dollar":"$","Dopf":"\uD835\uDD3B","dopf":"\uD835\uDD55","Dot":"\u00A8","dot":"\u02D9","DotDot":"\u20DC","doteq":"\u2250","doteqdot":"\u2251","DotEqual":"\u2250","dotminus":"\u2238","dotplus":"\u2214","dotsquare":"\u22A1","doublebarwedge":"\u2306","DoubleContourIntegral":"\u222F","DoubleDot":"\u00A8","DoubleDownArrow":"\u21D3","DoubleLeftArrow":"\u21D0","DoubleLeftRightArrow":"\u21D4","DoubleLeftTee":"\u2AE4","DoubleLongLeftArrow":"\u27F8","DoubleLongLeftRightArrow":"\u27FA","DoubleLongRightArrow":"\u27F9","DoubleRightArrow":"\u21D2","DoubleRightTee":"\u22A8","DoubleUpArrow":"\u21D1","DoubleUpDownArrow":"\u21D5","DoubleVerticalBar":"\u2225","DownArrowBar":"\u2913","downarrow":"\u2193","DownArrow":"\u2193","Downarrow":"\u21D3","DownArrowUpArrow":"\u21F5","DownBreve":"\u0311","downdownarrows":"\u21CA","downharpoonleft":"\u21C3","downharpoonright":"\u21C2","DownLeftRightVector":"\u2950","DownLeftTeeVector":"\u295E","DownLeftVectorBar":"\u2956","DownLeftVector":"\u21BD","DownRightTeeVector":"\u295F","DownRightVectorBar":"\u2957","DownRightVector":"\u21C1","DownTeeArrow":"\u21A7","DownTee":"\u22A4","drbkarow":"\u2910","drcorn":"\u231F","drcrop":"\u230C","Dscr":"\uD835\uDC9F","dscr":"\uD835\uDCB9","DScy":"\u0405","dscy":"\u0455","dsol":"\u29F6","Dstrok":"\u0110","dstrok":"\u0111","dtdot":"\u22F1","dtri":"\u25BF","dtrif":"\u25BE","duarr":"\u21F5","duhar":"\u296F","dwangle":"\u29A6","DZcy":"\u040F","dzcy":"\u045F","dzigrarr":"\u27FF","Eacute":"\u00C9","eacute":"\u00E9","easter":"\u2A6E","Ecaron":"\u011A","ecaron":"\u011B","Ecirc":"\u00CA","ecirc":"\u00EA","ecir":"\u2256","ecolon":"\u2255","Ecy":"\u042D","ecy":"\u044D","eDDot":"\u2A77","Edot":"\u0116","edot":"\u0117","eDot":"\u2251","ee":"\u2147","efDot":"\u2252","Efr":"\uD835\uDD08","efr":"\uD835\uDD22","eg":"\u2A9A","Egrave":"\u00C8","egrave":"\u00E8","egs":"\u2A96","egsdot":"\u2A98","el":"\u2A99","Element":"\u2208","elinters":"\u23E7","ell":"\u2113","els":"\u2A95","elsdot":"\u2A97","Emacr":"\u0112","emacr":"\u0113","empty":"\u2205","emptyset":"\u2205","EmptySmallSquare":"\u25FB","emptyv":"\u2205","EmptyVerySmallSquare":"\u25AB","emsp13":"\u2004","emsp14":"\u2005","emsp":"\u2003","ENG":"\u014A","eng":"\u014B","ensp":"\u2002","Eogon":"\u0118","eogon":"\u0119","Eopf":"\uD835\uDD3C","eopf":"\uD835\uDD56","epar":"\u22D5","eparsl":"\u29E3","eplus":"\u2A71","epsi":"\u03B5","Epsilon":"\u0395","epsilon":"\u03B5","epsiv":"\u03F5","eqcirc":"\u2256","eqcolon":"\u2255","eqsim":"\u2242","eqslantgtr":"\u2A96","eqslantless":"\u2A95","Equal":"\u2A75","equals":"=","EqualTilde":"\u2242","equest":"\u225F","Equilibrium":"\u21CC","equiv":"\u2261","equivDD":"\u2A78","eqvparsl":"\u29E5","erarr":"\u2971","erDot":"\u2253","escr":"\u212F","Escr":"\u2130","esdot":"\u2250","Esim":"\u2A73","esim":"\u2242","Eta":"\u0397","eta":"\u03B7","ETH":"\u00D0","eth":"\u00F0","Euml":"\u00CB","euml":"\u00EB","euro":"\u20AC","excl":"!","exist":"\u2203","Exists":"\u2203","expectation":"\u2130","exponentiale":"\u2147","ExponentialE":"\u2147","fallingdotseq":"\u2252","Fcy":"\u0424","fcy":"\u0444","female":"\u2640","ffilig":"\uFB03","fflig":"\uFB00","ffllig":"\uFB04","Ffr":"\uD835\uDD09","ffr":"\uD835\uDD23","filig":"\uFB01","FilledSmallSquare":"\u25FC","FilledVerySmallSquare":"\u25AA","fjlig":"fj","flat":"\u266D","fllig":"\uFB02","fltns":"\u25B1","fnof":"\u0192","Fopf":"\uD835\uDD3D","fopf":"\uD835\uDD57","forall":"\u2200","ForAll":"\u2200","fork":"\u22D4","forkv":"\u2AD9","Fouriertrf":"\u2131","fpartint":"\u2A0D","frac12":"\u00BD","frac13":"\u2153","frac14":"\u00BC","frac15":"\u2155","frac16":"\u2159","frac18":"\u215B","frac23":"\u2154","frac25":"\u2156","frac34":"\u00BE","frac35":"\u2157","frac38":"\u215C","frac45":"\u2158","frac56":"\u215A","frac58":"\u215D","frac78":"\u215E","frasl":"\u2044","frown":"\u2322","fscr":"\uD835\uDCBB","Fscr":"\u2131","gacute":"\u01F5","Gamma":"\u0393","gamma":"\u03B3","Gammad":"\u03DC","gammad":"\u03DD","gap":"\u2A86","Gbreve":"\u011E","gbreve":"\u011F","Gcedil":"\u0122","Gcirc":"\u011C","gcirc":"\u011D","Gcy":"\u0413","gcy":"\u0433","Gdot":"\u0120","gdot":"\u0121","ge":"\u2265","gE":"\u2267","gEl":"\u2A8C","gel":"\u22DB","geq":"\u2265","geqq":"\u2267","geqslant":"\u2A7E","gescc":"\u2AA9","ges":"\u2A7E","gesdot":"\u2A80","gesdoto":"\u2A82","gesdotol":"\u2A84","gesl":"\u22DB\uFE00","gesles":"\u2A94","Gfr":"\uD835\uDD0A","gfr":"\uD835\uDD24","gg":"\u226B","Gg":"\u22D9","ggg":"\u22D9","gimel":"\u2137","GJcy":"\u0403","gjcy":"\u0453","gla":"\u2AA5","gl":"\u2277","glE":"\u2A92","glj":"\u2AA4","gnap":"\u2A8A","gnapprox":"\u2A8A","gne":"\u2A88","gnE":"\u2269","gneq":"\u2A88","gneqq":"\u2269","gnsim":"\u22E7","Gopf":"\uD835\uDD3E","gopf":"\uD835\uDD58","grave":"`","GreaterEqual":"\u2265","GreaterEqualLess":"\u22DB","GreaterFullEqual":"\u2267","GreaterGreater":"\u2AA2","GreaterLess":"\u2277","GreaterSlantEqual":"\u2A7E","GreaterTilde":"\u2273","Gscr":"\uD835\uDCA2","gscr":"\u210A","gsim":"\u2273","gsime":"\u2A8E","gsiml":"\u2A90","gtcc":"\u2AA7","gtcir":"\u2A7A","gt":">","GT":">","Gt":"\u226B","gtdot":"\u22D7","gtlPar":"\u2995","gtquest":"\u2A7C","gtrapprox":"\u2A86","gtrarr":"\u2978","gtrdot":"\u22D7","gtreqless":"\u22DB","gtreqqless":"\u2A8C","gtrless":"\u2277","gtrsim":"\u2273","gvertneqq":"\u2269\uFE00","gvnE":"\u2269\uFE00","Hacek":"\u02C7","hairsp":"\u200A","half":"\u00BD","hamilt":"\u210B","HARDcy":"\u042A","hardcy":"\u044A","harrcir":"\u2948","harr":"\u2194","hArr":"\u21D4","harrw":"\u21AD","Hat":"^","hbar":"\u210F","Hcirc":"\u0124","hcirc":"\u0125","hearts":"\u2665","heartsuit":"\u2665","hellip":"\u2026","hercon":"\u22B9","hfr":"\uD835\uDD25","Hfr":"\u210C","HilbertSpace":"\u210B","hksearow":"\u2925","hkswarow":"\u2926","hoarr":"\u21FF","homtht":"\u223B","hookleftarrow":"\u21A9","hookrightarrow":"\u21AA","hopf":"\uD835\uDD59","Hopf":"\u210D","horbar":"\u2015","HorizontalLine":"\u2500","hscr":"\uD835\uDCBD","Hscr":"\u210B","hslash":"\u210F","Hstrok":"\u0126","hstrok":"\u0127","HumpDownHump":"\u224E","HumpEqual":"\u224F","hybull":"\u2043","hyphen":"\u2010","Iacute":"\u00CD","iacute":"\u00ED","ic":"\u2063","Icirc":"\u00CE","icirc":"\u00EE","Icy":"\u0418","icy":"\u0438","Idot":"\u0130","IEcy":"\u0415","iecy":"\u0435","iexcl":"\u00A1","iff":"\u21D4","ifr":"\uD835\uDD26","Ifr":"\u2111","Igrave":"\u00CC","igrave":"\u00EC","ii":"\u2148","iiiint":"\u2A0C","iiint":"\u222D","iinfin":"\u29DC","iiota":"\u2129","IJlig":"\u0132","ijlig":"\u0133","Imacr":"\u012A","imacr":"\u012B","image":"\u2111","ImaginaryI":"\u2148","imagline":"\u2110","imagpart":"\u2111","imath":"\u0131","Im":"\u2111","imof":"\u22B7","imped":"\u01B5","Implies":"\u21D2","incare":"\u2105","in":"\u2208","infin":"\u221E","infintie":"\u29DD","inodot":"\u0131","intcal":"\u22BA","int":"\u222B","Int":"\u222C","integers":"\u2124","Integral":"\u222B","intercal":"\u22BA","Intersection":"\u22C2","intlarhk":"\u2A17","intprod":"\u2A3C","InvisibleComma":"\u2063","InvisibleTimes":"\u2062","IOcy":"\u0401","iocy":"\u0451","Iogon":"\u012E","iogon":"\u012F","Iopf":"\uD835\uDD40","iopf":"\uD835\uDD5A","Iota":"\u0399","iota":"\u03B9","iprod":"\u2A3C","iquest":"\u00BF","iscr":"\uD835\uDCBE","Iscr":"\u2110","isin":"\u2208","isindot":"\u22F5","isinE":"\u22F9","isins":"\u22F4","isinsv":"\u22F3","isinv":"\u2208","it":"\u2062","Itilde":"\u0128","itilde":"\u0129","Iukcy":"\u0406","iukcy":"\u0456","Iuml":"\u00CF","iuml":"\u00EF","Jcirc":"\u0134","jcirc":"\u0135","Jcy":"\u0419","jcy":"\u0439","Jfr":"\uD835\uDD0D","jfr":"\uD835\uDD27","jmath":"\u0237","Jopf":"\uD835\uDD41","jopf":"\uD835\uDD5B","Jscr":"\uD835\uDCA5","jscr":"\uD835\uDCBF","Jsercy":"\u0408","jsercy":"\u0458","Jukcy":"\u0404","jukcy":"\u0454","Kappa":"\u039A","kappa":"\u03BA","kappav":"\u03F0","Kcedil":"\u0136","kcedil":"\u0137","Kcy":"\u041A","kcy":"\u043A","Kfr":"\uD835\uDD0E","kfr":"\uD835\uDD28","kgreen":"\u0138","KHcy":"\u0425","khcy":"\u0445","KJcy":"\u040C","kjcy":"\u045C","Kopf":"\uD835\uDD42","kopf":"\uD835\uDD5C","Kscr":"\uD835\uDCA6","kscr":"\uD835\uDCC0","lAarr":"\u21DA","Lacute":"\u0139","lacute":"\u013A","laemptyv":"\u29B4","lagran":"\u2112","Lambda":"\u039B","lambda":"\u03BB","lang":"\u27E8","Lang":"\u27EA","langd":"\u2991","langle":"\u27E8","lap":"\u2A85","Laplacetrf":"\u2112","laquo":"\u00AB","larrb":"\u21E4","larrbfs":"\u291F","larr":"\u2190","Larr":"\u219E","lArr":"\u21D0","larrfs":"\u291D","larrhk":"\u21A9","larrlp":"\u21AB","larrpl":"\u2939","larrsim":"\u2973","larrtl":"\u21A2","latail":"\u2919","lAtail":"\u291B","lat":"\u2AAB","late":"\u2AAD","lates":"\u2AAD\uFE00","lbarr":"\u290C","lBarr":"\u290E","lbbrk":"\u2772","lbrace":"{","lbrack":"[","lbrke":"\u298B","lbrksld":"\u298F","lbrkslu":"\u298D","Lcaron":"\u013D","lcaron":"\u013E","Lcedil":"\u013B","lcedil":"\u013C","lceil":"\u2308","lcub":"{","Lcy":"\u041B","lcy":"\u043B","ldca":"\u2936","ldquo":"\u201C","ldquor":"\u201E","ldrdhar":"\u2967","ldrushar":"\u294B","ldsh":"\u21B2","le":"\u2264","lE":"\u2266","LeftAngleBracket":"\u27E8","LeftArrowBar":"\u21E4","leftarrow":"\u2190","LeftArrow":"\u2190","Leftarrow":"\u21D0","LeftArrowRightArrow":"\u21C6","leftarrowtail":"\u21A2","LeftCeiling":"\u2308","LeftDoubleBracket":"\u27E6","LeftDownTeeVector":"\u2961","LeftDownVectorBar":"\u2959","LeftDownVector":"\u21C3","LeftFloor":"\u230A","leftharpoondown":"\u21BD","leftharpoonup":"\u21BC","leftleftarrows":"\u21C7","leftrightarrow":"\u2194","LeftRightArrow":"\u2194","Leftrightarrow":"\u21D4","leftrightarrows":"\u21C6","leftrightharpoons":"\u21CB","leftrightsquigarrow":"\u21AD","LeftRightVector":"\u294E","LeftTeeArrow":"\u21A4","LeftTee":"\u22A3","LeftTeeVector":"\u295A","leftthreetimes":"\u22CB","LeftTriangleBar":"\u29CF","LeftTriangle":"\u22B2","LeftTriangleEqual":"\u22B4","LeftUpDownVector":"\u2951","LeftUpTeeVector":"\u2960","LeftUpVectorBar":"\u2958","LeftUpVector":"\u21BF","LeftVectorBar":"\u2952","LeftVector":"\u21BC","lEg":"\u2A8B","leg":"\u22DA","leq":"\u2264","leqq":"\u2266","leqslant":"\u2A7D","lescc":"\u2AA8","les":"\u2A7D","lesdot":"\u2A7F","lesdoto":"\u2A81","lesdotor":"\u2A83","lesg":"\u22DA\uFE00","lesges":"\u2A93","lessapprox":"\u2A85","lessdot":"\u22D6","lesseqgtr":"\u22DA","lesseqqgtr":"\u2A8B","LessEqualGreater":"\u22DA","LessFullEqual":"\u2266","LessGreater":"\u2276","lessgtr":"\u2276","LessLess":"\u2AA1","lesssim":"\u2272","LessSlantEqual":"\u2A7D","LessTilde":"\u2272","lfisht":"\u297C","lfloor":"\u230A","Lfr":"\uD835\uDD0F","lfr":"\uD835\uDD29","lg":"\u2276","lgE":"\u2A91","lHar":"\u2962","lhard":"\u21BD","lharu":"\u21BC","lharul":"\u296A","lhblk":"\u2584","LJcy":"\u0409","ljcy":"\u0459","llarr":"\u21C7","ll":"\u226A","Ll":"\u22D8","llcorner":"\u231E","Lleftarrow":"\u21DA","llhard":"\u296B","lltri":"\u25FA","Lmidot":"\u013F","lmidot":"\u0140","lmoustache":"\u23B0","lmoust":"\u23B0","lnap":"\u2A89","lnapprox":"\u2A89","lne":"\u2A87","lnE":"\u2268","lneq":"\u2A87","lneqq":"\u2268","lnsim":"\u22E6","loang":"\u27EC","loarr":"\u21FD","lobrk":"\u27E6","longleftarrow":"\u27F5","LongLeftArrow":"\u27F5","Longleftarrow":"\u27F8","longleftrightarrow":"\u27F7","LongLeftRightArrow":"\u27F7","Longleftrightarrow":"\u27FA","longmapsto":"\u27FC","longrightarrow":"\u27F6","LongRightArrow":"\u27F6","Longrightarrow":"\u27F9","looparrowleft":"\u21AB","looparrowright":"\u21AC","lopar":"\u2985","Lopf":"\uD835\uDD43","lopf":"\uD835\uDD5D","loplus":"\u2A2D","lotimes":"\u2A34","lowast":"\u2217","lowbar":"_","LowerLeftArrow":"\u2199","LowerRightArrow":"\u2198","loz":"\u25CA","lozenge":"\u25CA","lozf":"\u29EB","lpar":"(","lparlt":"\u2993","lrarr":"\u21C6","lrcorner":"\u231F","lrhar":"\u21CB","lrhard":"\u296D","lrm":"\u200E","lrtri":"\u22BF","lsaquo":"\u2039","lscr":"\uD835\uDCC1","Lscr":"\u2112","lsh":"\u21B0","Lsh":"\u21B0","lsim":"\u2272","lsime":"\u2A8D","lsimg":"\u2A8F","lsqb":"[","lsquo":"\u2018","lsquor":"\u201A","Lstrok":"\u0141","lstrok":"\u0142","ltcc":"\u2AA6","ltcir":"\u2A79","lt":"<","LT":"<","Lt":"\u226A","ltdot":"\u22D6","lthree":"\u22CB","ltimes":"\u22C9","ltlarr":"\u2976","ltquest":"\u2A7B","ltri":"\u25C3","ltrie":"\u22B4","ltrif":"\u25C2","ltrPar":"\u2996","lurdshar":"\u294A","luruhar":"\u2966","lvertneqq":"\u2268\uFE00","lvnE":"\u2268\uFE00","macr":"\u00AF","male":"\u2642","malt":"\u2720","maltese":"\u2720","Map":"\u2905","map":"\u21A6","mapsto":"\u21A6","mapstodown":"\u21A7","mapstoleft":"\u21A4","mapstoup":"\u21A5","marker":"\u25AE","mcomma":"\u2A29","Mcy":"\u041C","mcy":"\u043C","mdash":"\u2014","mDDot":"\u223A","measuredangle":"\u2221","MediumSpace":"\u205F","Mellintrf":"\u2133","Mfr":"\uD835\uDD10","mfr":"\uD835\uDD2A","mho":"\u2127","micro":"\u00B5","midast":"*","midcir":"\u2AF0","mid":"\u2223","middot":"\u00B7","minusb":"\u229F","minus":"\u2212","minusd":"\u2238","minusdu":"\u2A2A","MinusPlus":"\u2213","mlcp":"\u2ADB","mldr":"\u2026","mnplus":"\u2213","models":"\u22A7","Mopf":"\uD835\uDD44","mopf":"\uD835\uDD5E","mp":"\u2213","mscr":"\uD835\uDCC2","Mscr":"\u2133","mstpos":"\u223E","Mu":"\u039C","mu":"\u03BC","multimap":"\u22B8","mumap":"\u22B8","nabla":"\u2207","Nacute":"\u0143","nacute":"\u0144","nang":"\u2220\u20D2","nap":"\u2249","napE":"\u2A70\u0338","napid":"\u224B\u0338","napos":"\u0149","napprox":"\u2249","natural":"\u266E","naturals":"\u2115","natur":"\u266E","nbsp":"\u00A0","nbump":"\u224E\u0338","nbumpe":"\u224F\u0338","ncap":"\u2A43","Ncaron":"\u0147","ncaron":"\u0148","Ncedil":"\u0145","ncedil":"\u0146","ncong":"\u2247","ncongdot":"\u2A6D\u0338","ncup":"\u2A42","Ncy":"\u041D","ncy":"\u043D","ndash":"\u2013","nearhk":"\u2924","nearr":"\u2197","neArr":"\u21D7","nearrow":"\u2197","ne":"\u2260","nedot":"\u2250\u0338","NegativeMediumSpace":"\u200B","NegativeThickSpace":"\u200B","NegativeThinSpace":"\u200B","NegativeVeryThinSpace":"\u200B","nequiv":"\u2262","nesear":"\u2928","nesim":"\u2242\u0338","NestedGreaterGreater":"\u226B","NestedLessLess":"\u226A","NewLine":"\n","nexist":"\u2204","nexists":"\u2204","Nfr":"\uD835\uDD11","nfr":"\uD835\uDD2B","ngE":"\u2267\u0338","nge":"\u2271","ngeq":"\u2271","ngeqq":"\u2267\u0338","ngeqslant":"\u2A7E\u0338","nges":"\u2A7E\u0338","nGg":"\u22D9\u0338","ngsim":"\u2275","nGt":"\u226B\u20D2","ngt":"\u226F","ngtr":"\u226F","nGtv":"\u226B\u0338","nharr":"\u21AE","nhArr":"\u21CE","nhpar":"\u2AF2","ni":"\u220B","nis":"\u22FC","nisd":"\u22FA","niv":"\u220B","NJcy":"\u040A","njcy":"\u045A","nlarr":"\u219A","nlArr":"\u21CD","nldr":"\u2025","nlE":"\u2266\u0338","nle":"\u2270","nleftarrow":"\u219A","nLeftarrow":"\u21CD","nleftrightarrow":"\u21AE","nLeftrightarrow":"\u21CE","nleq":"\u2270","nleqq":"\u2266\u0338","nleqslant":"\u2A7D\u0338","nles":"\u2A7D\u0338","nless":"\u226E","nLl":"\u22D8\u0338","nlsim":"\u2274","nLt":"\u226A\u20D2","nlt":"\u226E","nltri":"\u22EA","nltrie":"\u22EC","nLtv":"\u226A\u0338","nmid":"\u2224","NoBreak":"\u2060","NonBreakingSpace":"\u00A0","nopf":"\uD835\uDD5F","Nopf":"\u2115","Not":"\u2AEC","not":"\u00AC","NotCongruent":"\u2262","NotCupCap":"\u226D","NotDoubleVerticalBar":"\u2226","NotElement":"\u2209","NotEqual":"\u2260","NotEqualTilde":"\u2242\u0338","NotExists":"\u2204","NotGreater":"\u226F","NotGreaterEqual":"\u2271","NotGreaterFullEqual":"\u2267\u0338","NotGreaterGreater":"\u226B\u0338","NotGreaterLess":"\u2279","NotGreaterSlantEqual":"\u2A7E\u0338","NotGreaterTilde":"\u2275","NotHumpDownHump":"\u224E\u0338","NotHumpEqual":"\u224F\u0338","notin":"\u2209","notindot":"\u22F5\u0338","notinE":"\u22F9\u0338","notinva":"\u2209","notinvb":"\u22F7","notinvc":"\u22F6","NotLeftTriangleBar":"\u29CF\u0338","NotLeftTriangle":"\u22EA","NotLeftTriangleEqual":"\u22EC","NotLess":"\u226E","NotLessEqual":"\u2270","NotLessGreater":"\u2278","NotLessLess":"\u226A\u0338","NotLessSlantEqual":"\u2A7D\u0338","NotLessTilde":"\u2274","NotNestedGreaterGreater":"\u2AA2\u0338","NotNestedLessLess":"\u2AA1\u0338","notni":"\u220C","notniva":"\u220C","notnivb":"\u22FE","notnivc":"\u22FD","NotPrecedes":"\u2280","NotPrecedesEqual":"\u2AAF\u0338","NotPrecedesSlantEqual":"\u22E0","NotReverseElement":"\u220C","NotRightTriangleBar":"\u29D0\u0338","NotRightTriangle":"\u22EB","NotRightTriangleEqual":"\u22ED","NotSquareSubset":"\u228F\u0338","NotSquareSubsetEqual":"\u22E2","NotSquareSuperset":"\u2290\u0338","NotSquareSupersetEqual":"\u22E3","NotSubset":"\u2282\u20D2","NotSubsetEqual":"\u2288","NotSucceeds":"\u2281","NotSucceedsEqual":"\u2AB0\u0338","NotSucceedsSlantEqual":"\u22E1","NotSucceedsTilde":"\u227F\u0338","NotSuperset":"\u2283\u20D2","NotSupersetEqual":"\u2289","NotTilde":"\u2241","NotTildeEqual":"\u2244","NotTildeFullEqual":"\u2247","NotTildeTilde":"\u2249","NotVerticalBar":"\u2224","nparallel":"\u2226","npar":"\u2226","nparsl":"\u2AFD\u20E5","npart":"\u2202\u0338","npolint":"\u2A14","npr":"\u2280","nprcue":"\u22E0","nprec":"\u2280","npreceq":"\u2AAF\u0338","npre":"\u2AAF\u0338","nrarrc":"\u2933\u0338","nrarr":"\u219B","nrArr":"\u21CF","nrarrw":"\u219D\u0338","nrightarrow":"\u219B","nRightarrow":"\u21CF","nrtri":"\u22EB","nrtrie":"\u22ED","nsc":"\u2281","nsccue":"\u22E1","nsce":"\u2AB0\u0338","Nscr":"\uD835\uDCA9","nscr":"\uD835\uDCC3","nshortmid":"\u2224","nshortparallel":"\u2226","nsim":"\u2241","nsime":"\u2244","nsimeq":"\u2244","nsmid":"\u2224","nspar":"\u2226","nsqsube":"\u22E2","nsqsupe":"\u22E3","nsub":"\u2284","nsubE":"\u2AC5\u0338","nsube":"\u2288","nsubset":"\u2282\u20D2","nsubseteq":"\u2288","nsubseteqq":"\u2AC5\u0338","nsucc":"\u2281","nsucceq":"\u2AB0\u0338","nsup":"\u2285","nsupE":"\u2AC6\u0338","nsupe":"\u2289","nsupset":"\u2283\u20D2","nsupseteq":"\u2289","nsupseteqq":"\u2AC6\u0338","ntgl":"\u2279","Ntilde":"\u00D1","ntilde":"\u00F1","ntlg":"\u2278","ntriangleleft":"\u22EA","ntrianglelefteq":"\u22EC","ntriangleright":"\u22EB","ntrianglerighteq":"\u22ED","Nu":"\u039D","nu":"\u03BD","num":"#","numero":"\u2116","numsp":"\u2007","nvap":"\u224D\u20D2","nvdash":"\u22AC","nvDash":"\u22AD","nVdash":"\u22AE","nVDash":"\u22AF","nvge":"\u2265\u20D2","nvgt":">\u20D2","nvHarr":"\u2904","nvinfin":"\u29DE","nvlArr":"\u2902","nvle":"\u2264\u20D2","nvlt":"<\u20D2","nvltrie":"\u22B4\u20D2","nvrArr":"\u2903","nvrtrie":"\u22B5\u20D2","nvsim":"\u223C\u20D2","nwarhk":"\u2923","nwarr":"\u2196","nwArr":"\u21D6","nwarrow":"\u2196","nwnear":"\u2927","Oacute":"\u00D3","oacute":"\u00F3","oast":"\u229B","Ocirc":"\u00D4","ocirc":"\u00F4","ocir":"\u229A","Ocy":"\u041E","ocy":"\u043E","odash":"\u229D","Odblac":"\u0150","odblac":"\u0151","odiv":"\u2A38","odot":"\u2299","odsold":"\u29BC","OElig":"\u0152","oelig":"\u0153","ofcir":"\u29BF","Ofr":"\uD835\uDD12","ofr":"\uD835\uDD2C","ogon":"\u02DB","Ograve":"\u00D2","ograve":"\u00F2","ogt":"\u29C1","ohbar":"\u29B5","ohm":"\u03A9","oint":"\u222E","olarr":"\u21BA","olcir":"\u29BE","olcross":"\u29BB","oline":"\u203E","olt":"\u29C0","Omacr":"\u014C","omacr":"\u014D","Omega":"\u03A9","omega":"\u03C9","Omicron":"\u039F","omicron":"\u03BF","omid":"\u29B6","ominus":"\u2296","Oopf":"\uD835\uDD46","oopf":"\uD835\uDD60","opar":"\u29B7","OpenCurlyDoubleQuote":"\u201C","OpenCurlyQuote":"\u2018","operp":"\u29B9","oplus":"\u2295","orarr":"\u21BB","Or":"\u2A54","or":"\u2228","ord":"\u2A5D","order":"\u2134","orderof":"\u2134","ordf":"\u00AA","ordm":"\u00BA","origof":"\u22B6","oror":"\u2A56","orslope":"\u2A57","orv":"\u2A5B","oS":"\u24C8","Oscr":"\uD835\uDCAA","oscr":"\u2134","Oslash":"\u00D8","oslash":"\u00F8","osol":"\u2298","Otilde":"\u00D5","otilde":"\u00F5","otimesas":"\u2A36","Otimes":"\u2A37","otimes":"\u2297","Ouml":"\u00D6","ouml":"\u00F6","ovbar":"\u233D","OverBar":"\u203E","OverBrace":"\u23DE","OverBracket":"\u23B4","OverParenthesis":"\u23DC","para":"\u00B6","parallel":"\u2225","par":"\u2225","parsim":"\u2AF3","parsl":"\u2AFD","part":"\u2202","PartialD":"\u2202","Pcy":"\u041F","pcy":"\u043F","percnt":"%","period":".","permil":"\u2030","perp":"\u22A5","pertenk":"\u2031","Pfr":"\uD835\uDD13","pfr":"\uD835\uDD2D","Phi":"\u03A6","phi":"\u03C6","phiv":"\u03D5","phmmat":"\u2133","phone":"\u260E","Pi":"\u03A0","pi":"\u03C0","pitchfork":"\u22D4","piv":"\u03D6","planck":"\u210F","planckh":"\u210E","plankv":"\u210F","plusacir":"\u2A23","plusb":"\u229E","pluscir":"\u2A22","plus":"+","plusdo":"\u2214","plusdu":"\u2A25","pluse":"\u2A72","PlusMinus":"\u00B1","plusmn":"\u00B1","plussim":"\u2A26","plustwo":"\u2A27","pm":"\u00B1","Poincareplane":"\u210C","pointint":"\u2A15","popf":"\uD835\uDD61","Popf":"\u2119","pound":"\u00A3","prap":"\u2AB7","Pr":"\u2ABB","pr":"\u227A","prcue":"\u227C","precapprox":"\u2AB7","prec":"\u227A","preccurlyeq":"\u227C","Precedes":"\u227A","PrecedesEqual":"\u2AAF","PrecedesSlantEqual":"\u227C","PrecedesTilde":"\u227E","preceq":"\u2AAF","precnapprox":"\u2AB9","precneqq":"\u2AB5","precnsim":"\u22E8","pre":"\u2AAF","prE":"\u2AB3","precsim":"\u227E","prime":"\u2032","Prime":"\u2033","primes":"\u2119","prnap":"\u2AB9","prnE":"\u2AB5","prnsim":"\u22E8","prod":"\u220F","Product":"\u220F","profalar":"\u232E","profline":"\u2312","profsurf":"\u2313","prop":"\u221D","Proportional":"\u221D","Proportion":"\u2237","propto":"\u221D","prsim":"\u227E","prurel":"\u22B0","Pscr":"\uD835\uDCAB","pscr":"\uD835\uDCC5","Psi":"\u03A8","psi":"\u03C8","puncsp":"\u2008","Qfr":"\uD835\uDD14","qfr":"\uD835\uDD2E","qint":"\u2A0C","qopf":"\uD835\uDD62","Qopf":"\u211A","qprime":"\u2057","Qscr":"\uD835\uDCAC","qscr":"\uD835\uDCC6","quaternions":"\u210D","quatint":"\u2A16","quest":"?","questeq":"\u225F","quot":"\"","QUOT":"\"","rAarr":"\u21DB","race":"\u223D\u0331","Racute":"\u0154","racute":"\u0155","radic":"\u221A","raemptyv":"\u29B3","rang":"\u27E9","Rang":"\u27EB","rangd":"\u2992","range":"\u29A5","rangle":"\u27E9","raquo":"\u00BB","rarrap":"\u2975","rarrb":"\u21E5","rarrbfs":"\u2920","rarrc":"\u2933","rarr":"\u2192","Rarr":"\u21A0","rArr":"\u21D2","rarrfs":"\u291E","rarrhk":"\u21AA","rarrlp":"\u21AC","rarrpl":"\u2945","rarrsim":"\u2974","Rarrtl":"\u2916","rarrtl":"\u21A3","rarrw":"\u219D","ratail":"\u291A","rAtail":"\u291C","ratio":"\u2236","rationals":"\u211A","rbarr":"\u290D","rBarr":"\u290F","RBarr":"\u2910","rbbrk":"\u2773","rbrace":"}","rbrack":"]","rbrke":"\u298C","rbrksld":"\u298E","rbrkslu":"\u2990","Rcaron":"\u0158","rcaron":"\u0159","Rcedil":"\u0156","rcedil":"\u0157","rceil":"\u2309","rcub":"}","Rcy":"\u0420","rcy":"\u0440","rdca":"\u2937","rdldhar":"\u2969","rdquo":"\u201D","rdquor":"\u201D","rdsh":"\u21B3","real":"\u211C","realine":"\u211B","realpart":"\u211C","reals":"\u211D","Re":"\u211C","rect":"\u25AD","reg":"\u00AE","REG":"\u00AE","ReverseElement":"\u220B","ReverseEquilibrium":"\u21CB","ReverseUpEquilibrium":"\u296F","rfisht":"\u297D","rfloor":"\u230B","rfr":"\uD835\uDD2F","Rfr":"\u211C","rHar":"\u2964","rhard":"\u21C1","rharu":"\u21C0","rharul":"\u296C","Rho":"\u03A1","rho":"\u03C1","rhov":"\u03F1","RightAngleBracket":"\u27E9","RightArrowBar":"\u21E5","rightarrow":"\u2192","RightArrow":"\u2192","Rightarrow":"\u21D2","RightArrowLeftArrow":"\u21C4","rightarrowtail":"\u21A3","RightCeiling":"\u2309","RightDoubleBracket":"\u27E7","RightDownTeeVector":"\u295D","RightDownVectorBar":"\u2955","RightDownVector":"\u21C2","RightFloor":"\u230B","rightharpoondown":"\u21C1","rightharpoonup":"\u21C0","rightleftarrows":"\u21C4","rightleftharpoons":"\u21CC","rightrightarrows":"\u21C9","rightsquigarrow":"\u219D","RightTeeArrow":"\u21A6","RightTee":"\u22A2","RightTeeVector":"\u295B","rightthreetimes":"\u22CC","RightTriangleBar":"\u29D0","RightTriangle":"\u22B3","RightTriangleEqual":"\u22B5","RightUpDownVector":"\u294F","RightUpTeeVector":"\u295C","RightUpVectorBar":"\u2954","RightUpVector":"\u21BE","RightVectorBar":"\u2953","RightVector":"\u21C0","ring":"\u02DA","risingdotseq":"\u2253","rlarr":"\u21C4","rlhar":"\u21CC","rlm":"\u200F","rmoustache":"\u23B1","rmoust":"\u23B1","rnmid":"\u2AEE","roang":"\u27ED","roarr":"\u21FE","robrk":"\u27E7","ropar":"\u2986","ropf":"\uD835\uDD63","Ropf":"\u211D","roplus":"\u2A2E","rotimes":"\u2A35","RoundImplies":"\u2970","rpar":")","rpargt":"\u2994","rppolint":"\u2A12","rrarr":"\u21C9","Rrightarrow":"\u21DB","rsaquo":"\u203A","rscr":"\uD835\uDCC7","Rscr":"\u211B","rsh":"\u21B1","Rsh":"\u21B1","rsqb":"]","rsquo":"\u2019","rsquor":"\u2019","rthree":"\u22CC","rtimes":"\u22CA","rtri":"\u25B9","rtrie":"\u22B5","rtrif":"\u25B8","rtriltri":"\u29CE","RuleDelayed":"\u29F4","ruluhar":"\u2968","rx":"\u211E","Sacute":"\u015A","sacute":"\u015B","sbquo":"\u201A","scap":"\u2AB8","Scaron":"\u0160","scaron":"\u0161","Sc":"\u2ABC","sc":"\u227B","sccue":"\u227D","sce":"\u2AB0","scE":"\u2AB4","Scedil":"\u015E","scedil":"\u015F","Scirc":"\u015C","scirc":"\u015D","scnap":"\u2ABA","scnE":"\u2AB6","scnsim":"\u22E9","scpolint":"\u2A13","scsim":"\u227F","Scy":"\u0421","scy":"\u0441","sdotb":"\u22A1","sdot":"\u22C5","sdote":"\u2A66","searhk":"\u2925","searr":"\u2198","seArr":"\u21D8","searrow":"\u2198","sect":"\u00A7","semi":";","seswar":"\u2929","setminus":"\u2216","setmn":"\u2216","sext":"\u2736","Sfr":"\uD835\uDD16","sfr":"\uD835\uDD30","sfrown":"\u2322","sharp":"\u266F","SHCHcy":"\u0429","shchcy":"\u0449","SHcy":"\u0428","shcy":"\u0448","ShortDownArrow":"\u2193","ShortLeftArrow":"\u2190","shortmid":"\u2223","shortparallel":"\u2225","ShortRightArrow":"\u2192","ShortUpArrow":"\u2191","shy":"\u00AD","Sigma":"\u03A3","sigma":"\u03C3","sigmaf":"\u03C2","sigmav":"\u03C2","sim":"\u223C","simdot":"\u2A6A","sime":"\u2243","simeq":"\u2243","simg":"\u2A9E","simgE":"\u2AA0","siml":"\u2A9D","simlE":"\u2A9F","simne":"\u2246","simplus":"\u2A24","simrarr":"\u2972","slarr":"\u2190","SmallCircle":"\u2218","smallsetminus":"\u2216","smashp":"\u2A33","smeparsl":"\u29E4","smid":"\u2223","smile":"\u2323","smt":"\u2AAA","smte":"\u2AAC","smtes":"\u2AAC\uFE00","SOFTcy":"\u042C","softcy":"\u044C","solbar":"\u233F","solb":"\u29C4","sol":"/","Sopf":"\uD835\uDD4A","sopf":"\uD835\uDD64","spades":"\u2660","spadesuit":"\u2660","spar":"\u2225","sqcap":"\u2293","sqcaps":"\u2293\uFE00","sqcup":"\u2294","sqcups":"\u2294\uFE00","Sqrt":"\u221A","sqsub":"\u228F","sqsube":"\u2291","sqsubset":"\u228F","sqsubseteq":"\u2291","sqsup":"\u2290","sqsupe":"\u2292","sqsupset":"\u2290","sqsupseteq":"\u2292","square":"\u25A1","Square":"\u25A1","SquareIntersection":"\u2293","SquareSubset":"\u228F","SquareSubsetEqual":"\u2291","SquareSuperset":"\u2290","SquareSupersetEqual":"\u2292","SquareUnion":"\u2294","squarf":"\u25AA","squ":"\u25A1","squf":"\u25AA","srarr":"\u2192","Sscr":"\uD835\uDCAE","sscr":"\uD835\uDCC8","ssetmn":"\u2216","ssmile":"\u2323","sstarf":"\u22C6","Star":"\u22C6","star":"\u2606","starf":"\u2605","straightepsilon":"\u03F5","straightphi":"\u03D5","strns":"\u00AF","sub":"\u2282","Sub":"\u22D0","subdot":"\u2ABD","subE":"\u2AC5","sube":"\u2286","subedot":"\u2AC3","submult":"\u2AC1","subnE":"\u2ACB","subne":"\u228A","subplus":"\u2ABF","subrarr":"\u2979","subset":"\u2282","Subset":"\u22D0","subseteq":"\u2286","subseteqq":"\u2AC5","SubsetEqual":"\u2286","subsetneq":"\u228A","subsetneqq":"\u2ACB","subsim":"\u2AC7","subsub":"\u2AD5","subsup":"\u2AD3","succapprox":"\u2AB8","succ":"\u227B","succcurlyeq":"\u227D","Succeeds":"\u227B","SucceedsEqual":"\u2AB0","SucceedsSlantEqual":"\u227D","SucceedsTilde":"\u227F","succeq":"\u2AB0","succnapprox":"\u2ABA","succneqq":"\u2AB6","succnsim":"\u22E9","succsim":"\u227F","SuchThat":"\u220B","sum":"\u2211","Sum":"\u2211","sung":"\u266A","sup1":"\u00B9","sup2":"\u00B2","sup3":"\u00B3","sup":"\u2283","Sup":"\u22D1","supdot":"\u2ABE","supdsub":"\u2AD8","supE":"\u2AC6","supe":"\u2287","supedot":"\u2AC4","Superset":"\u2283","SupersetEqual":"\u2287","suphsol":"\u27C9","suphsub":"\u2AD7","suplarr":"\u297B","supmult":"\u2AC2","supnE":"\u2ACC","supne":"\u228B","supplus":"\u2AC0","supset":"\u2283","Supset":"\u22D1","supseteq":"\u2287","supseteqq":"\u2AC6","supsetneq":"\u228B","supsetneqq":"\u2ACC","supsim":"\u2AC8","supsub":"\u2AD4","supsup":"\u2AD6","swarhk":"\u2926","swarr":"\u2199","swArr":"\u21D9","swarrow":"\u2199","swnwar":"\u292A","szlig":"\u00DF","Tab":"\t","target":"\u2316","Tau":"\u03A4","tau":"\u03C4","tbrk":"\u23B4","Tcaron":"\u0164","tcaron":"\u0165","Tcedil":"\u0162","tcedil":"\u0163","Tcy":"\u0422","tcy":"\u0442","tdot":"\u20DB","telrec":"\u2315","Tfr":"\uD835\uDD17","tfr":"\uD835\uDD31","there4":"\u2234","therefore":"\u2234","Therefore":"\u2234","Theta":"\u0398","theta":"\u03B8","thetasym":"\u03D1","thetav":"\u03D1","thickapprox":"\u2248","thicksim":"\u223C","ThickSpace":"\u205F\u200A","ThinSpace":"\u2009","thinsp":"\u2009","thkap":"\u2248","thksim":"\u223C","THORN":"\u00DE","thorn":"\u00FE","tilde":"\u02DC","Tilde":"\u223C","TildeEqual":"\u2243","TildeFullEqual":"\u2245","TildeTilde":"\u2248","timesbar":"\u2A31","timesb":"\u22A0","times":"\u00D7","timesd":"\u2A30","tint":"\u222D","toea":"\u2928","topbot":"\u2336","topcir":"\u2AF1","top":"\u22A4","Topf":"\uD835\uDD4B","topf":"\uD835\uDD65","topfork":"\u2ADA","tosa":"\u2929","tprime":"\u2034","trade":"\u2122","TRADE":"\u2122","triangle":"\u25B5","triangledown":"\u25BF","triangleleft":"\u25C3","trianglelefteq":"\u22B4","triangleq":"\u225C","triangleright":"\u25B9","trianglerighteq":"\u22B5","tridot":"\u25EC","trie":"\u225C","triminus":"\u2A3A","TripleDot":"\u20DB","triplus":"\u2A39","trisb":"\u29CD","tritime":"\u2A3B","trpezium":"\u23E2","Tscr":"\uD835\uDCAF","tscr":"\uD835\uDCC9","TScy":"\u0426","tscy":"\u0446","TSHcy":"\u040B","tshcy":"\u045B","Tstrok":"\u0166","tstrok":"\u0167","twixt":"\u226C","twoheadleftarrow":"\u219E","twoheadrightarrow":"\u21A0","Uacute":"\u00DA","uacute":"\u00FA","uarr":"\u2191","Uarr":"\u219F","uArr":"\u21D1","Uarrocir":"\u2949","Ubrcy":"\u040E","ubrcy":"\u045E","Ubreve":"\u016C","ubreve":"\u016D","Ucirc":"\u00DB","ucirc":"\u00FB","Ucy":"\u0423","ucy":"\u0443","udarr":"\u21C5","Udblac":"\u0170","udblac":"\u0171","udhar":"\u296E","ufisht":"\u297E","Ufr":"\uD835\uDD18","ufr":"\uD835\uDD32","Ugrave":"\u00D9","ugrave":"\u00F9","uHar":"\u2963","uharl":"\u21BF","uharr":"\u21BE","uhblk":"\u2580","ulcorn":"\u231C","ulcorner":"\u231C","ulcrop":"\u230F","ultri":"\u25F8","Umacr":"\u016A","umacr":"\u016B","uml":"\u00A8","UnderBar":"_","UnderBrace":"\u23DF","UnderBracket":"\u23B5","UnderParenthesis":"\u23DD","Union":"\u22C3","UnionPlus":"\u228E","Uogon":"\u0172","uogon":"\u0173","Uopf":"\uD835\uDD4C","uopf":"\uD835\uDD66","UpArrowBar":"\u2912","uparrow":"\u2191","UpArrow":"\u2191","Uparrow":"\u21D1","UpArrowDownArrow":"\u21C5","updownarrow":"\u2195","UpDownArrow":"\u2195","Updownarrow":"\u21D5","UpEquilibrium":"\u296E","upharpoonleft":"\u21BF","upharpoonright":"\u21BE","uplus":"\u228E","UpperLeftArrow":"\u2196","UpperRightArrow":"\u2197","upsi":"\u03C5","Upsi":"\u03D2","upsih":"\u03D2","Upsilon":"\u03A5","upsilon":"\u03C5","UpTeeArrow":"\u21A5","UpTee":"\u22A5","upuparrows":"\u21C8","urcorn":"\u231D","urcorner":"\u231D","urcrop":"\u230E","Uring":"\u016E","uring":"\u016F","urtri":"\u25F9","Uscr":"\uD835\uDCB0","uscr":"\uD835\uDCCA","utdot":"\u22F0","Utilde":"\u0168","utilde":"\u0169","utri":"\u25B5","utrif":"\u25B4","uuarr":"\u21C8","Uuml":"\u00DC","uuml":"\u00FC","uwangle":"\u29A7","vangrt":"\u299C","varepsilon":"\u03F5","varkappa":"\u03F0","varnothing":"\u2205","varphi":"\u03D5","varpi":"\u03D6","varpropto":"\u221D","varr":"\u2195","vArr":"\u21D5","varrho":"\u03F1","varsigma":"\u03C2","varsubsetneq":"\u228A\uFE00","varsubsetneqq":"\u2ACB\uFE00","varsupsetneq":"\u228B\uFE00","varsupsetneqq":"\u2ACC\uFE00","vartheta":"\u03D1","vartriangleleft":"\u22B2","vartriangleright":"\u22B3","vBar":"\u2AE8","Vbar":"\u2AEB","vBarv":"\u2AE9","Vcy":"\u0412","vcy":"\u0432","vdash":"\u22A2","vDash":"\u22A8","Vdash":"\u22A9","VDash":"\u22AB","Vdashl":"\u2AE6","veebar":"\u22BB","vee":"\u2228","Vee":"\u22C1","veeeq":"\u225A","vellip":"\u22EE","verbar":"|","Verbar":"\u2016","vert":"|","Vert":"\u2016","VerticalBar":"\u2223","VerticalLine":"|","VerticalSeparator":"\u2758","VerticalTilde":"\u2240","VeryThinSpace":"\u200A","Vfr":"\uD835\uDD19","vfr":"\uD835\uDD33","vltri":"\u22B2","vnsub":"\u2282\u20D2","vnsup":"\u2283\u20D2","Vopf":"\uD835\uDD4D","vopf":"\uD835\uDD67","vprop":"\u221D","vrtri":"\u22B3","Vscr":"\uD835\uDCB1","vscr":"\uD835\uDCCB","vsubnE":"\u2ACB\uFE00","vsubne":"\u228A\uFE00","vsupnE":"\u2ACC\uFE00","vsupne":"\u228B\uFE00","Vvdash":"\u22AA","vzigzag":"\u299A","Wcirc":"\u0174","wcirc":"\u0175","wedbar":"\u2A5F","wedge":"\u2227","Wedge":"\u22C0","wedgeq":"\u2259","weierp":"\u2118","Wfr":"\uD835\uDD1A","wfr":"\uD835\uDD34","Wopf":"\uD835\uDD4E","wopf":"\uD835\uDD68","wp":"\u2118","wr":"\u2240","wreath":"\u2240","Wscr":"\uD835\uDCB2","wscr":"\uD835\uDCCC","xcap":"\u22C2","xcirc":"\u25EF","xcup":"\u22C3","xdtri":"\u25BD","Xfr":"\uD835\uDD1B","xfr":"\uD835\uDD35","xharr":"\u27F7","xhArr":"\u27FA","Xi":"\u039E","xi":"\u03BE","xlarr":"\u27F5","xlArr":"\u27F8","xmap":"\u27FC","xnis":"\u22FB","xodot":"\u2A00","Xopf":"\uD835\uDD4F","xopf":"\uD835\uDD69","xoplus":"\u2A01","xotime":"\u2A02","xrarr":"\u27F6","xrArr":"\u27F9","Xscr":"\uD835\uDCB3","xscr":"\uD835\uDCCD","xsqcup":"\u2A06","xuplus":"\u2A04","xutri":"\u25B3","xvee":"\u22C1","xwedge":"\u22C0","Yacute":"\u00DD","yacute":"\u00FD","YAcy":"\u042F","yacy":"\u044F","Ycirc":"\u0176","ycirc":"\u0177","Ycy":"\u042B","ycy":"\u044B","yen":"\u00A5","Yfr":"\uD835\uDD1C","yfr":"\uD835\uDD36","YIcy":"\u0407","yicy":"\u0457","Yopf":"\uD835\uDD50","yopf":"\uD835\uDD6A","Yscr":"\uD835\uDCB4","yscr":"\uD835\uDCCE","YUcy":"\u042E","yucy":"\u044E","yuml":"\u00FF","Yuml":"\u0178","Zacute":"\u0179","zacute":"\u017A","Zcaron":"\u017D","zcaron":"\u017E","Zcy":"\u0417","zcy":"\u0437","Zdot":"\u017B","zdot":"\u017C","zeetrf":"\u2128","ZeroWidthSpace":"\u200B","Zeta":"\u0396","zeta":"\u03B6","zfr":"\uD835\uDD37","Zfr":"\u2128","ZHcy":"\u0416","zhcy":"\u0436","zigrarr":"\u21DD","zopf":"\uD835\uDD6B","Zopf":"\u2124","Zscr":"\uD835\uDCB5","zscr":"\uD835\uDCCF","zwj":"\u200D","zwnj":"\u200C"}
\ No newline at end of file
diff --git a/node_modules/entities/maps/legacy.json b/node_modules/entities/maps/legacy.json
new file mode 100755
index 0000000..f0e82a4
--- /dev/null
+++ b/node_modules/entities/maps/legacy.json
@@ -0,0 +1 @@
+{"Aacute":"\u00C1","aacute":"\u00E1","Acirc":"\u00C2","acirc":"\u00E2","acute":"\u00B4","AElig":"\u00C6","aelig":"\u00E6","Agrave":"\u00C0","agrave":"\u00E0","amp":"&","AMP":"&","Aring":"\u00C5","aring":"\u00E5","Atilde":"\u00C3","atilde":"\u00E3","Auml":"\u00C4","auml":"\u00E4","brvbar":"\u00A6","Ccedil":"\u00C7","ccedil":"\u00E7","cedil":"\u00B8","cent":"\u00A2","copy":"\u00A9","COPY":"\u00A9","curren":"\u00A4","deg":"\u00B0","divide":"\u00F7","Eacute":"\u00C9","eacute":"\u00E9","Ecirc":"\u00CA","ecirc":"\u00EA","Egrave":"\u00C8","egrave":"\u00E8","ETH":"\u00D0","eth":"\u00F0","Euml":"\u00CB","euml":"\u00EB","frac12":"\u00BD","frac14":"\u00BC","frac34":"\u00BE","gt":">","GT":">","Iacute":"\u00CD","iacute":"\u00ED","Icirc":"\u00CE","icirc":"\u00EE","iexcl":"\u00A1","Igrave":"\u00CC","igrave":"\u00EC","iquest":"\u00BF","Iuml":"\u00CF","iuml":"\u00EF","laquo":"\u00AB","lt":"<","LT":"<","macr":"\u00AF","micro":"\u00B5","middot":"\u00B7","nbsp":"\u00A0","not":"\u00AC","Ntilde":"\u00D1","ntilde":"\u00F1","Oacute":"\u00D3","oacute":"\u00F3","Ocirc":"\u00D4","ocirc":"\u00F4","Ograve":"\u00D2","ograve":"\u00F2","ordf":"\u00AA","ordm":"\u00BA","Oslash":"\u00D8","oslash":"\u00F8","Otilde":"\u00D5","otilde":"\u00F5","Ouml":"\u00D6","ouml":"\u00F6","para":"\u00B6","plusmn":"\u00B1","pound":"\u00A3","quot":"\"","QUOT":"\"","raquo":"\u00BB","reg":"\u00AE","REG":"\u00AE","sect":"\u00A7","shy":"\u00AD","sup1":"\u00B9","sup2":"\u00B2","sup3":"\u00B3","szlig":"\u00DF","THORN":"\u00DE","thorn":"\u00FE","times":"\u00D7","Uacute":"\u00DA","uacute":"\u00FA","Ucirc":"\u00DB","ucirc":"\u00FB","Ugrave":"\u00D9","ugrave":"\u00F9","uml":"\u00A8","Uuml":"\u00DC","uuml":"\u00FC","Yacute":"\u00DD","yacute":"\u00FD","yen":"\u00A5","yuml":"\u00FF"}
\ No newline at end of file
diff --git a/node_modules/entities/maps/xml.json b/node_modules/entities/maps/xml.json
new file mode 100755
index 0000000..de8db10
--- /dev/null
+++ b/node_modules/entities/maps/xml.json
@@ -0,0 +1 @@
+{"amp":"&","apos":"'","gt":">","lt":"<","quot":"\""}
diff --git a/node_modules/entities/package.json b/node_modules/entities/package.json
new file mode 100755
index 0000000..f685e78
--- /dev/null
+++ b/node_modules/entities/package.json
@@ -0,0 +1,89 @@
+{
+ "_from": "entities@^1.1.1",
+ "_id": "entities@1.1.2",
+ "_inBundle": false,
+ "_integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "_location": "/entities",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "entities@^1.1.1",
+ "name": "entities",
+ "escapedName": "entities",
+ "rawSpec": "^1.1.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.1"
+ },
+ "_requiredBy": [
+ "/mini-html-parser2"
+ ],
+ "_resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "_shasum": "bdfa735299664dfafd34529ed4f8522a275fea56",
+ "_spec": "entities@^1.1.1",
+ "_where": "/Users/WebTmm/Documents/支付宝小程序/亿分期/node_modules/mini-html-parser2",
+ "author": {
+ "name": "Felix Boehm",
+ "email": "me@feedic.com"
+ },
+ "bugs": {
+ "url": "https://github.com/fb55/entities/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Encode & decode XML/HTML entities with ease",
+ "devDependencies": {
+ "coveralls": "*",
+ "istanbul": "*",
+ "jshint": "2",
+ "mocha": "^5.0.1",
+ "mocha-lcov-reporter": "*"
+ },
+ "directories": {
+ "test": "test"
+ },
+ "homepage": "https://github.com/fb55/entities#readme",
+ "jshintConfig": {
+ "eqeqeq": true,
+ "freeze": true,
+ "latedef": "nofunc",
+ "noarg": true,
+ "nonbsp": true,
+ "quotmark": "double",
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "eqnull": true,
+ "proto": true,
+ "smarttabs": true,
+ "node": true,
+ "globals": {
+ "describe": true,
+ "it": true
+ }
+ },
+ "keywords": [
+ "html",
+ "xml",
+ "entity",
+ "decoding",
+ "encoding"
+ ],
+ "license": "BSD-2-Clause",
+ "main": "./index.js",
+ "name": "entities",
+ "prettier": {
+ "tabWidth": 4
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/fb55/entities.git"
+ },
+ "scripts": {
+ "coveralls": "npm run lint && npm run lcov && (cat coverage/lcov.info | coveralls || exit 0)",
+ "lcov": "istanbul cover _mocha --report lcovonly -- -R spec",
+ "lint": "jshint index.js lib/*.js test/*.js",
+ "test": "mocha && npm run lint"
+ },
+ "version": "1.1.2"
+}
diff --git a/node_modules/entities/readme.md b/node_modules/entities/readme.md
new file mode 100755
index 0000000..d1d9eec
--- /dev/null
+++ b/node_modules/entities/readme.md
@@ -0,0 +1,27 @@
+# entities [](https://npmjs.org/package/entities) [](https://npmjs.org/package/entities) [](http://travis-ci.org/fb55/entities) [](https://coveralls.io/r/fb55/entities)
+
+En- & decoder for XML/HTML entities.
+
+## How to…
+
+### …install `entities`
+
+ npm i entities
+
+### …use `entities`
+
+```javascript
+var entities = require("entities");
+//encoding
+entities.encodeXML("&"); // "&"
+entities.encodeHTML("&"); // "&#38;"
+//decoding
+entities.decodeXML("asdf & ÿ ü '"); // "asdf & ÿ ü '"
+entities.decodeHTML("asdf & ÿ ü '"); // "asdf & ÿ ü '"
+```
+
+
+
+---
+
+License: BSD-2-Clause
diff --git a/node_modules/entities/test/mocha.opts b/node_modules/entities/test/mocha.opts
new file mode 100755
index 0000000..af53e24
--- /dev/null
+++ b/node_modules/entities/test/mocha.opts
@@ -0,0 +1,2 @@
+--check-leaks
+--reporter spec
diff --git a/node_modules/entities/test/test.js b/node_modules/entities/test/test.js
new file mode 100755
index 0000000..cb309f3
--- /dev/null
+++ b/node_modules/entities/test/test.js
@@ -0,0 +1,170 @@
+var assert = require("assert"),
+ path = require("path"),
+ entities = require("../");
+
+describe("Encode->decode test", function() {
+ var testcases = [
+ {
+ input: "asdf & ÿ ü '",
+ xml: "asdf & ÿ ü '",
+ html: "asdf & ÿ ü '"
+ },
+ {
+ input: "&",
+ xml: "&",
+ html: "&#38;"
+ }
+ ];
+ testcases.forEach(function(tc) {
+ var encodedXML = entities.encodeXML(tc.input);
+ it("should XML encode " + tc.input, function() {
+ assert.equal(encodedXML, tc.xml);
+ });
+ it("should default to XML encode " + tc.input, function() {
+ assert.equal(entities.encode(tc.input), tc.xml);
+ });
+ it("should XML decode " + encodedXML, function() {
+ assert.equal(entities.decodeXML(encodedXML), tc.input);
+ });
+ it("should default to XML encode " + encodedXML, function() {
+ assert.equal(entities.decode(encodedXML), tc.input);
+ });
+ it("should default strict to XML encode " + encodedXML, function() {
+ assert.equal(entities.decodeStrict(encodedXML), tc.input);
+ });
+
+ var encodedHTML5 = entities.encodeHTML5(tc.input);
+ it("should HTML5 encode " + tc.input, function() {
+ assert.equal(encodedHTML5, tc.html);
+ });
+ it("should HTML5 decode " + encodedHTML5, function() {
+ assert.equal(entities.decodeHTML(encodedHTML5), tc.input);
+ });
+ });
+
+ it("should encode data URIs (issue 16)", function() {
+ var data = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAALAAABAAEAAAIBRAA7";
+ assert.equal(entities.decode(entities.encode(data)), data);
+ });
+});
+
+describe("Decode test", function() {
+ var testcases = [
+ { input: "&", output: "&" },
+ { input: "&", output: "&" },
+ { input: "&", output: "&" },
+ { input: "&", output: "&" },
+ { input: "&", output: "&" },
+ { input: "&", output: "&" },
+ { input: "&", output: "&" },
+ { input: ":", output: ":" },
+ { input: ":", output: ":" },
+ { input: ":", output: ":" },
+ { input: ":", output: ":" }
+ ];
+ testcases.forEach(function(tc) {
+ it("should XML decode " + tc.input, function() {
+ assert.equal(entities.decodeXML(tc.input), tc.output);
+ });
+ it("should HTML4 decode " + tc.input, function() {
+ assert.equal(entities.decodeHTML(tc.input), tc.output);
+ });
+ it("should HTML5 decode " + tc.input, function() {
+ assert.equal(entities.decodeHTML(tc.input), tc.output);
+ });
+ });
+});
+
+var levels = ["xml", "entities"];
+
+describe("Documents", function() {
+ levels
+ .map(function(n) {
+ return path.join("..", "maps", n);
+ })
+ .map(require)
+ .forEach(function(doc, i) {
+ describe("Decode", function() {
+ it(levels[i], function() {
+ Object.keys(doc).forEach(function(e) {
+ for (var l = i; l < levels.length; l++) {
+ assert.equal(entities.decode("&" + e + ";", l), doc[e]);
+ }
+ });
+ });
+ });
+
+ describe("Decode strict", function() {
+ it(levels[i], function() {
+ Object.keys(doc).forEach(function(e) {
+ for (var l = i; l < levels.length; l++) {
+ assert.equal(entities.decodeStrict("&" + e + ";", l), doc[e]);
+ }
+ });
+ });
+ });
+
+ describe("Encode", function() {
+ it(levels[i], function() {
+ Object.keys(doc).forEach(function(e) {
+ for (var l = i; l < levels.length; l++) {
+ assert.equal(entities.decode(entities.encode(doc[e], l), l), doc[e]);
+ }
+ });
+ });
+ });
+ });
+
+ var legacy = require("../maps/legacy.json");
+
+ describe("Legacy", function() {
+ it("should decode", runLegacy);
+ });
+
+ function runLegacy() {
+ Object.keys(legacy).forEach(function(e) {
+ assert.equal(entities.decodeHTML("&" + e), legacy[e]);
+ });
+ }
+});
+
+var astral = {
+ "1D306": "\uD834\uDF06",
+ "1D11E": "\uD834\uDD1E"
+};
+
+var astralSpecial = {
+ "80": "\u20AC",
+ "110000": "\uFFFD"
+};
+
+describe("Astral entities", function() {
+ Object.keys(astral).forEach(function(c) {
+ it("should decode " + astral[c], function() {
+ assert.equal(entities.decode("" + c + ";"), astral[c]);
+ });
+
+ it("should encode " + astral[c], function() {
+ assert.equal(entities.encode(astral[c]), "" + c + ";");
+ });
+
+ it("should escape " + astral[c], function() {
+ assert.equal(entities.escape(astral[c]), "" + c + ";");
+ });
+ });
+
+ Object.keys(astralSpecial).forEach(function(c) {
+ it("special should decode \\u" + c, function() {
+ assert.equal(entities.decode("" + c + ";"), astralSpecial[c]);
+ });
+ });
+});
+
+describe("Escape", function() {
+ it("should always decode ASCII chars", function() {
+ for (var i = 0; i < 0x7f; i++) {
+ var c = String.fromCharCode(i);
+ assert.equal(entities.decodeXML(entities.escape(c)), c);
+ }
+ });
+});
diff --git a/node_modules/events/.airtap.yml b/node_modules/events/.airtap.yml
new file mode 100644
index 0000000..c7a8a87
--- /dev/null
+++ b/node_modules/events/.airtap.yml
@@ -0,0 +1,15 @@
+sauce_connect: true
+loopback: airtap.local
+browsers:
+ - name: chrome
+ version: latest
+ - name: firefox
+ version: latest
+ - name: safari
+ version: 9..latest
+ - name: iphone
+ version: latest
+ - name: ie
+ version: 9..latest
+ - name: microsoftedge
+ version: 13..latest
diff --git a/node_modules/events/.github/FUNDING.yml b/node_modules/events/.github/FUNDING.yml
new file mode 100644
index 0000000..8b8cb78
--- /dev/null
+++ b/node_modules/events/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/events
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/events/.travis.yml b/node_modules/events/.travis.yml
new file mode 100644
index 0000000..486dc3c
--- /dev/null
+++ b/node_modules/events/.travis.yml
@@ -0,0 +1,18 @@
+dist: xenial
+os: linux
+language: node_js
+node_js:
+ - 'stable'
+ - 'lts/*'
+ - '0.12'
+script:
+ - npm test
+ - if [ "${TRAVIS_PULL_REQUEST}" = "false" ] && [ "${TRAVIS_NODE_VERSION}" = "stable" ]; then npm run test:browsers; fi
+addons:
+ sauce_connect: true
+ hosts:
+ - airtap.local
+env:
+ global:
+ - secure: XcBiD8yReflut9q7leKsigDZ0mI3qTKH+QrNVY8DaqlomJOZw8aOrVuX9Jz12l86ZJ41nbxmKnRNkFzcVr9mbP9YaeTb3DpeOBWmvaoSfud9Wnc16VfXtc1FCcwDhSVcSiM3UtnrmFU5cH+Dw1LPh5PbfylYOS/nJxUvG0FFLqI=
+ - secure: jNWtEbqhUdQ0xXDHvCYfUbKYeJCi6a7B4LsrcxYCyWWn4NIgncE5x2YbB+FSUUFVYfz0dsn5RKP1oHB99f0laUEo18HBNkrAS/rtyOdVzcpJjbQ6kgSILGjnJD/Ty1B57Rcz3iyev5Y7bLZ6Y1FbDnk/i9/l0faOGz8vTC3Vdkc=
diff --git a/node_modules/events/History.md b/node_modules/events/History.md
new file mode 100644
index 0000000..029b904
--- /dev/null
+++ b/node_modules/events/History.md
@@ -0,0 +1,95 @@
+# 3.2.0
+
+ - Add `events.once` from Node.js 11.13.0.
+
+ To use this function, Promises must be supported in the environment. Use a polyfill like `es6-promise` if you support older browsers.
+
+# 3.1.0 (2020-01-08)
+
+`events` now matches the Node.js 11.12.0 API.
+
+ - pass through return value in wrapped `emitter.once()` listeners
+
+ Now, this works:
+ ```js
+ emitter.once('myevent', function () { return 1; });
+ var listener = emitter.rawListeners('myevent')[0]
+ assert(listener() === 1);
+ ```
+ Previously, `listener()` would return undefined regardless of the implementation.
+
+ Ported from https://github.com/nodejs/node/commit/acc506c2d2771dab8d7bba6d3452bc5180dff7cf
+
+ - Reduce code duplication in listener type check ([#67](https://github.com/Gozala/events/pull/67) by [@friederbluemle](https://github.com/friederbluemle)).
+ - Improve `emitter.once()` performance in some engines
+
+# 3.0.0 (2018-05-25)
+
+**This version drops support for IE8.** `events` no longer includes polyfills
+for ES5 features. If you need to support older environments, use an ES5 shim
+like [es5-shim](https://npmjs.com/package/es5-shim). Both the shim and sham
+versions of es5-shim are necessary.
+
+ - Update to events code from Node.js 10.x
+ - (semver major) Adds `off()` method
+ - Port more tests from Node.js
+ - Switch browser tests to airtap, making things more reliable
+
+# 2.1.0 (2018-05-25)
+
+ - add Emitter#rawListeners from Node.js v9.4
+
+# 2.0.0 (2018-02-02)
+
+ - Update to events code from node.js 8.x
+ - Adds `prependListener()` and `prependOnceListener()`
+ - Adds `eventNames()` method
+ - (semver major) Unwrap `once()` listeners in `listeners()`
+ - copy tests from node.js
+
+Note that this version doubles the gzipped size, jumping from 1.1KB to 2.1KB,
+due to new methods and runtime performance improvements. Be aware of that when
+upgrading.
+
+# 1.1.1 (2016-06-22)
+
+ - add more context to errors if they are not instanceof Error
+
+# 1.1.0 (2015-09-29)
+
+ - add Emitter#listerCount (to match node v4 api)
+
+# 1.0.2 (2014-08-28)
+
+ - remove un-reachable code
+ - update devDeps
+
+## 1.0.1 / 2014-05-11
+
+ - check for console.trace before using it
+
+## 1.0.0 / 2013-12-10
+
+ - Update to latest events code from node.js 0.10
+ - copy tests from node.js
+
+## 0.4.0 / 2011-07-03 ##
+
+ - Switching to graphquire@0.8.0
+
+## 0.3.0 / 2011-07-03 ##
+
+ - Switching to URL based module require.
+
+## 0.2.0 / 2011-06-10 ##
+
+ - Simplified package structure.
+ - Graphquire for dependency management.
+
+## 0.1.1 / 2011-05-16 ##
+
+ - Unhandled errors are logged via console.error
+
+## 0.1.0 / 2011-04-22 ##
+
+ - Initial release
diff --git a/node_modules/events/LICENSE b/node_modules/events/LICENSE
new file mode 100644
index 0000000..52ed3b0
--- /dev/null
+++ b/node_modules/events/LICENSE
@@ -0,0 +1,22 @@
+MIT
+
+Copyright Joyent, Inc. and other Node contributors.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to permit
+persons to whom the Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/events/Readme.md b/node_modules/events/Readme.md
new file mode 100644
index 0000000..d5dfd24
--- /dev/null
+++ b/node_modules/events/Readme.md
@@ -0,0 +1,49 @@
+# events [](https://travis-ci.org/Gozala/events)
+
+> Node's event emitter for all engines.
+
+This implements the Node.js [`events`][node.js docs] module for environments that do not have it, like browsers.
+
+> `events` currently matches the **Node.js 11.13.0** API.
+
+Note that the `events` module uses ES5 features. If you need to support very old browsers like IE8, use a shim like [`es5-shim`](https://www.npmjs.com/package/es5-shim). You need both the shim and the sham versions of `es5-shim`.
+
+This module is maintained, but only by very few people. If you'd like to help, let us know in the [Maintainer Needed](https://github.com/Gozala/events/issues/43) issue!
+
+## Install
+
+You usually do not have to install `events` yourself! If your code runs in Node.js, `events` is built in. If your code runs in the browser, bundlers like [browserify](https://github.com/browserify/browserify) or [webpack](https://github.com/webpack/webpack) also include the `events` module.
+
+But if none of those apply, with npm do:
+
+```
+npm install events
+```
+
+## Usage
+
+```javascript
+var EventEmitter = require('events')
+
+var ee = new EventEmitter()
+ee.on('message', function (text) {
+ console.log(text)
+})
+ee.emit('message', 'hello world')
+```
+
+## API
+
+See the [Node.js EventEmitter docs][node.js docs]. `events` currently matches the Node.js 11.13.0 API.
+
+## Contributing
+
+PRs are very welcome! The main way to contribute to `events` is by porting features, bugfixes and tests from Node.js. Ideally, code contributions to this module are copy-pasted from Node.js and transpiled to ES5, rather than reimplemented from scratch. Matching the Node.js code as closely as possible makes maintenance simpler when new changes land in Node.js.
+This module intends to provide exactly the same API as Node.js, so features that are not available in the core `events` module will not be accepted. Feature requests should instead be directed at [nodejs/node](https://github.com/nodejs/node) and will be added to this module once they are implemented in Node.js.
+
+If there is a difference in behaviour between Node.js's `events` module and this module, please open an issue!
+
+## License
+
+[MIT](./LICENSE)
+[node.js docs]: https://nodejs.org/dist/v11.13.0/docs/api/events.html
diff --git a/node_modules/events/events.js b/node_modules/events/events.js
new file mode 100644
index 0000000..edd45ce
--- /dev/null
+++ b/node_modules/events/events.js
@@ -0,0 +1,476 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+'use strict';
+
+var R = typeof Reflect === 'object' ? Reflect : null
+var ReflectApply = R && typeof R.apply === 'function'
+ ? R.apply
+ : function ReflectApply(target, receiver, args) {
+ return Function.prototype.apply.call(target, receiver, args);
+ }
+
+var ReflectOwnKeys
+if (R && typeof R.ownKeys === 'function') {
+ ReflectOwnKeys = R.ownKeys
+} else if (Object.getOwnPropertySymbols) {
+ ReflectOwnKeys = function ReflectOwnKeys(target) {
+ return Object.getOwnPropertyNames(target)
+ .concat(Object.getOwnPropertySymbols(target));
+ };
+} else {
+ ReflectOwnKeys = function ReflectOwnKeys(target) {
+ return Object.getOwnPropertyNames(target);
+ };
+}
+
+function ProcessEmitWarning(warning) {
+ if (console && console.warn) console.warn(warning);
+}
+
+var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
+ return value !== value;
+}
+
+function EventEmitter() {
+ EventEmitter.init.call(this);
+}
+module.exports = EventEmitter;
+module.exports.once = once;
+
+// Backwards-compat with node 0.10.x
+EventEmitter.EventEmitter = EventEmitter;
+
+EventEmitter.prototype._events = undefined;
+EventEmitter.prototype._eventsCount = 0;
+EventEmitter.prototype._maxListeners = undefined;
+
+// By default EventEmitters will print a warning if more than 10 listeners are
+// added to it. This is a useful default which helps finding memory leaks.
+var defaultMaxListeners = 10;
+
+function checkListener(listener) {
+ if (typeof listener !== 'function') {
+ throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
+ }
+}
+
+Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
+ enumerable: true,
+ get: function() {
+ return defaultMaxListeners;
+ },
+ set: function(arg) {
+ if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
+ throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
+ }
+ defaultMaxListeners = arg;
+ }
+});
+
+EventEmitter.init = function() {
+
+ if (this._events === undefined ||
+ this._events === Object.getPrototypeOf(this)._events) {
+ this._events = Object.create(null);
+ this._eventsCount = 0;
+ }
+
+ this._maxListeners = this._maxListeners || undefined;
+};
+
+// Obviously not all Emitters should be limited to 10. This function allows
+// that to be increased. Set to zero for unlimited.
+EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
+ if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
+ throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
+ }
+ this._maxListeners = n;
+ return this;
+};
+
+function _getMaxListeners(that) {
+ if (that._maxListeners === undefined)
+ return EventEmitter.defaultMaxListeners;
+ return that._maxListeners;
+}
+
+EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
+ return _getMaxListeners(this);
+};
+
+EventEmitter.prototype.emit = function emit(type) {
+ var args = [];
+ for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);
+ var doError = (type === 'error');
+
+ var events = this._events;
+ if (events !== undefined)
+ doError = (doError && events.error === undefined);
+ else if (!doError)
+ return false;
+
+ // If there is no 'error' event listener then throw.
+ if (doError) {
+ var er;
+ if (args.length > 0)
+ er = args[0];
+ if (er instanceof Error) {
+ // Note: The comments on the `throw` lines are intentional, they show
+ // up in Node's output if this results in an unhandled exception.
+ throw er; // Unhandled 'error' event
+ }
+ // At least give some kind of context to the user
+ var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
+ err.context = er;
+ throw err; // Unhandled 'error' event
+ }
+
+ var handler = events[type];
+
+ if (handler === undefined)
+ return false;
+
+ if (typeof handler === 'function') {
+ ReflectApply(handler, this, args);
+ } else {
+ var len = handler.length;
+ var listeners = arrayClone(handler, len);
+ for (var i = 0; i < len; ++i)
+ ReflectApply(listeners[i], this, args);
+ }
+
+ return true;
+};
+
+function _addListener(target, type, listener, prepend) {
+ var m;
+ var events;
+ var existing;
+
+ checkListener(listener);
+
+ events = target._events;
+ if (events === undefined) {
+ events = target._events = Object.create(null);
+ target._eventsCount = 0;
+ } else {
+ // To avoid recursion in the case that type === "newListener"! Before
+ // adding it to the listeners, first emit "newListener".
+ if (events.newListener !== undefined) {
+ target.emit('newListener', type,
+ listener.listener ? listener.listener : listener);
+
+ // Re-assign `events` because a newListener handler could have caused the
+ // this._events to be assigned to a new object
+ events = target._events;
+ }
+ existing = events[type];
+ }
+
+ if (existing === undefined) {
+ // Optimize the case of one listener. Don't need the extra array object.
+ existing = events[type] = listener;
+ ++target._eventsCount;
+ } else {
+ if (typeof existing === 'function') {
+ // Adding the second element, need to change to array.
+ existing = events[type] =
+ prepend ? [listener, existing] : [existing, listener];
+ // If we've already got an array, just append.
+ } else if (prepend) {
+ existing.unshift(listener);
+ } else {
+ existing.push(listener);
+ }
+
+ // Check for listener leak
+ m = _getMaxListeners(target);
+ if (m > 0 && existing.length > m && !existing.warned) {
+ existing.warned = true;
+ // No error code for this since it is a Warning
+ // eslint-disable-next-line no-restricted-syntax
+ var w = new Error('Possible EventEmitter memory leak detected. ' +
+ existing.length + ' ' + String(type) + ' listeners ' +
+ 'added. Use emitter.setMaxListeners() to ' +
+ 'increase limit');
+ w.name = 'MaxListenersExceededWarning';
+ w.emitter = target;
+ w.type = type;
+ w.count = existing.length;
+ ProcessEmitWarning(w);
+ }
+ }
+
+ return target;
+}
+
+EventEmitter.prototype.addListener = function addListener(type, listener) {
+ return _addListener(this, type, listener, false);
+};
+
+EventEmitter.prototype.on = EventEmitter.prototype.addListener;
+
+EventEmitter.prototype.prependListener =
+ function prependListener(type, listener) {
+ return _addListener(this, type, listener, true);
+ };
+
+function onceWrapper() {
+ if (!this.fired) {
+ this.target.removeListener(this.type, this.wrapFn);
+ this.fired = true;
+ if (arguments.length === 0)
+ return this.listener.call(this.target);
+ return this.listener.apply(this.target, arguments);
+ }
+}
+
+function _onceWrap(target, type, listener) {
+ var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };
+ var wrapped = onceWrapper.bind(state);
+ wrapped.listener = listener;
+ state.wrapFn = wrapped;
+ return wrapped;
+}
+
+EventEmitter.prototype.once = function once(type, listener) {
+ checkListener(listener);
+ this.on(type, _onceWrap(this, type, listener));
+ return this;
+};
+
+EventEmitter.prototype.prependOnceListener =
+ function prependOnceListener(type, listener) {
+ checkListener(listener);
+ this.prependListener(type, _onceWrap(this, type, listener));
+ return this;
+ };
+
+// Emits a 'removeListener' event if and only if the listener was removed.
+EventEmitter.prototype.removeListener =
+ function removeListener(type, listener) {
+ var list, events, position, i, originalListener;
+
+ checkListener(listener);
+
+ events = this._events;
+ if (events === undefined)
+ return this;
+
+ list = events[type];
+ if (list === undefined)
+ return this;
+
+ if (list === listener || list.listener === listener) {
+ if (--this._eventsCount === 0)
+ this._events = Object.create(null);
+ else {
+ delete events[type];
+ if (events.removeListener)
+ this.emit('removeListener', type, list.listener || listener);
+ }
+ } else if (typeof list !== 'function') {
+ position = -1;
+
+ for (i = list.length - 1; i >= 0; i--) {
+ if (list[i] === listener || list[i].listener === listener) {
+ originalListener = list[i].listener;
+ position = i;
+ break;
+ }
+ }
+
+ if (position < 0)
+ return this;
+
+ if (position === 0)
+ list.shift();
+ else {
+ spliceOne(list, position);
+ }
+
+ if (list.length === 1)
+ events[type] = list[0];
+
+ if (events.removeListener !== undefined)
+ this.emit('removeListener', type, originalListener || listener);
+ }
+
+ return this;
+ };
+
+EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
+
+EventEmitter.prototype.removeAllListeners =
+ function removeAllListeners(type) {
+ var listeners, events, i;
+
+ events = this._events;
+ if (events === undefined)
+ return this;
+
+ // not listening for removeListener, no need to emit
+ if (events.removeListener === undefined) {
+ if (arguments.length === 0) {
+ this._events = Object.create(null);
+ this._eventsCount = 0;
+ } else if (events[type] !== undefined) {
+ if (--this._eventsCount === 0)
+ this._events = Object.create(null);
+ else
+ delete events[type];
+ }
+ return this;
+ }
+
+ // emit removeListener for all listeners on all events
+ if (arguments.length === 0) {
+ var keys = Object.keys(events);
+ var key;
+ for (i = 0; i < keys.length; ++i) {
+ key = keys[i];
+ if (key === 'removeListener') continue;
+ this.removeAllListeners(key);
+ }
+ this.removeAllListeners('removeListener');
+ this._events = Object.create(null);
+ this._eventsCount = 0;
+ return this;
+ }
+
+ listeners = events[type];
+
+ if (typeof listeners === 'function') {
+ this.removeListener(type, listeners);
+ } else if (listeners !== undefined) {
+ // LIFO order
+ for (i = listeners.length - 1; i >= 0; i--) {
+ this.removeListener(type, listeners[i]);
+ }
+ }
+
+ return this;
+ };
+
+function _listeners(target, type, unwrap) {
+ var events = target._events;
+
+ if (events === undefined)
+ return [];
+
+ var evlistener = events[type];
+ if (evlistener === undefined)
+ return [];
+
+ if (typeof evlistener === 'function')
+ return unwrap ? [evlistener.listener || evlistener] : [evlistener];
+
+ return unwrap ?
+ unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
+}
+
+EventEmitter.prototype.listeners = function listeners(type) {
+ return _listeners(this, type, true);
+};
+
+EventEmitter.prototype.rawListeners = function rawListeners(type) {
+ return _listeners(this, type, false);
+};
+
+EventEmitter.listenerCount = function(emitter, type) {
+ if (typeof emitter.listenerCount === 'function') {
+ return emitter.listenerCount(type);
+ } else {
+ return listenerCount.call(emitter, type);
+ }
+};
+
+EventEmitter.prototype.listenerCount = listenerCount;
+function listenerCount(type) {
+ var events = this._events;
+
+ if (events !== undefined) {
+ var evlistener = events[type];
+
+ if (typeof evlistener === 'function') {
+ return 1;
+ } else if (evlistener !== undefined) {
+ return evlistener.length;
+ }
+ }
+
+ return 0;
+}
+
+EventEmitter.prototype.eventNames = function eventNames() {
+ return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
+};
+
+function arrayClone(arr, n) {
+ var copy = new Array(n);
+ for (var i = 0; i < n; ++i)
+ copy[i] = arr[i];
+ return copy;
+}
+
+function spliceOne(list, index) {
+ for (; index + 1 < list.length; index++)
+ list[index] = list[index + 1];
+ list.pop();
+}
+
+function unwrapListeners(arr) {
+ var ret = new Array(arr.length);
+ for (var i = 0; i < ret.length; ++i) {
+ ret[i] = arr[i].listener || arr[i];
+ }
+ return ret;
+}
+
+function once(emitter, name) {
+ return new Promise(function (resolve, reject) {
+ function eventListener() {
+ if (errorListener !== undefined) {
+ emitter.removeListener('error', errorListener);
+ }
+ resolve([].slice.call(arguments));
+ };
+ var errorListener;
+
+ // Adding an error listener is not optional because
+ // if an error is thrown on an event emitter we cannot
+ // guarantee that the actual event we are waiting will
+ // be fired. The result could be a silent way to create
+ // memory or file descriptor leaks, which is something
+ // we should avoid.
+ if (name !== 'error') {
+ errorListener = function errorListener(err) {
+ emitter.removeListener(name, eventListener);
+ reject(err);
+ };
+
+ emitter.once('error', errorListener);
+ }
+
+ emitter.once(name, eventListener);
+ });
+}
diff --git a/node_modules/events/package.json b/node_modules/events/package.json
new file mode 100644
index 0000000..d461114
--- /dev/null
+++ b/node_modules/events/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "events@^3.0.0",
+ "_id": "events@3.2.0",
+ "_inBundle": false,
+ "_integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==",
+ "_location": "/events",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "events@^3.0.0",
+ "name": "events",
+ "escapedName": "events",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/mini-html-parser2"
+ ],
+ "_resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
+ "_shasum": "93b87c18f8efcd4202a461aec4dfc0556b639379",
+ "_spec": "events@^3.0.0",
+ "_where": "/Users/WebTmm/Documents/支付宝小程序/亿分期(工作台)/node_modules/mini-html-parser2",
+ "author": {
+ "name": "Irakli Gozalishvili",
+ "email": "rfobic@gmail.com",
+ "url": "http://jeditoolkit.com"
+ },
+ "bugs": {
+ "url": "http://github.com/Gozala/events/issues/"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Node's event emitter for all engines.",
+ "devDependencies": {
+ "airtap": "^1.0.0",
+ "functions-have-names": "^1.2.1",
+ "has-symbols": "^1.0.1",
+ "isarray": "^2.0.5",
+ "tape": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.8.x"
+ },
+ "homepage": "https://github.com/Gozala/events#readme",
+ "keywords": [
+ "events",
+ "eventEmitter",
+ "eventDispatcher",
+ "listeners"
+ ],
+ "license": "MIT",
+ "main": "./events.js",
+ "name": "events",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/Gozala/events.git",
+ "web": "https://github.com/Gozala/events"
+ },
+ "scripts": {
+ "test": "node tests/index.js",
+ "test:browsers": "airtap -- tests/index.js"
+ },
+ "version": "3.2.0"
+}
diff --git a/node_modules/events/security.md b/node_modules/events/security.md
new file mode 100644
index 0000000..a14ace6
--- /dev/null
+++ b/node_modules/events/security.md
@@ -0,0 +1,10 @@
+# Security Policy
+
+## Supported Versions
+Only the latest major version is supported at any given time.
+
+## Reporting a Vulnerability
+
+To report a security vulnerability, please use the
+[Tidelift security contact](https://tidelift.com/security).
+Tidelift will coordinate the fix and disclosure.
diff --git a/node_modules/events/tests/add-listeners.js b/node_modules/events/tests/add-listeners.js
new file mode 100644
index 0000000..9b57827
--- /dev/null
+++ b/node_modules/events/tests/add-listeners.js
@@ -0,0 +1,111 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var common = require('./common');
+var assert = require('assert');
+var EventEmitter = require('../');
+
+{
+ var ee = new EventEmitter();
+ var events_new_listener_emitted = [];
+ var listeners_new_listener_emitted = [];
+
+ // Sanity check
+ assert.strictEqual(ee.addListener, ee.on);
+
+ ee.on('newListener', function(event, listener) {
+ // Don't track newListener listeners.
+ if (event === 'newListener')
+ return;
+
+ events_new_listener_emitted.push(event);
+ listeners_new_listener_emitted.push(listener);
+ });
+
+ var hello = common.mustCall(function(a, b) {
+ assert.strictEqual('a', a);
+ assert.strictEqual('b', b);
+ });
+
+ ee.once('newListener', function(name, listener) {
+ assert.strictEqual(name, 'hello');
+ assert.strictEqual(listener, hello);
+
+ var listeners = this.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+ });
+
+ ee.on('hello', hello);
+ ee.once('foo', assert.fail);
+
+ assert.ok(Array.isArray(events_new_listener_emitted));
+ assert.strictEqual(events_new_listener_emitted.length, 2);
+ assert.strictEqual(events_new_listener_emitted[0], 'hello');
+ assert.strictEqual(events_new_listener_emitted[1], 'foo');
+
+ assert.ok(Array.isArray(listeners_new_listener_emitted));
+ assert.strictEqual(listeners_new_listener_emitted.length, 2);
+ assert.strictEqual(listeners_new_listener_emitted[0], hello);
+ assert.strictEqual(listeners_new_listener_emitted[1], assert.fail);
+
+ ee.emit('hello', 'a', 'b');
+}
+
+// just make sure that this doesn't throw:
+{
+ var f = new EventEmitter();
+
+ f.setMaxListeners(0);
+}
+
+{
+ var listen1 = function() {};
+ var listen2 = function() {};
+ var ee = new EventEmitter();
+
+ ee.once('newListener', function() {
+ var listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+ ee.once('newListener', function() {
+ var listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+ });
+ ee.on('hello', listen2);
+ });
+ ee.on('hello', listen1);
+ // The order of listeners on an event is not always the order in which the
+ // listeners were added.
+ var listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 2);
+ assert.strictEqual(listeners[0], listen2);
+ assert.strictEqual(listeners[1], listen1);
+}
+
+// Verify that the listener must be a function
+assert.throws(function() {
+ var ee = new EventEmitter();
+
+ ee.on('foo', null);
+}, /^TypeError: The "listener" argument must be of type Function. Received type object$/);
diff --git a/node_modules/events/tests/check-listener-leaks.js b/node_modules/events/tests/check-listener-leaks.js
new file mode 100644
index 0000000..7fce48f
--- /dev/null
+++ b/node_modules/events/tests/check-listener-leaks.js
@@ -0,0 +1,101 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var common = require('./common');
+var assert = require('assert');
+var events = require('../');
+
+// Redirect warning output to tape.
+var consoleWarn = console.warn;
+console.warn = common.test.comment;
+
+common.test.on('end', function () {
+ console.warn = consoleWarn;
+});
+
+// default
+{
+ var e = new events.EventEmitter();
+
+ for (var i = 0; i < 10; i++) {
+ e.on('default', common.mustNotCall());
+ }
+ assert.ok(!e._events['default'].hasOwnProperty('warned'));
+ e.on('default', common.mustNotCall());
+ assert.ok(e._events['default'].warned);
+
+ // specific
+ e.setMaxListeners(5);
+ for (var i = 0; i < 5; i++) {
+ e.on('specific', common.mustNotCall());
+ }
+ assert.ok(!e._events['specific'].hasOwnProperty('warned'));
+ e.on('specific', common.mustNotCall());
+ assert.ok(e._events['specific'].warned);
+
+ // only one
+ e.setMaxListeners(1);
+ e.on('only one', common.mustNotCall());
+ assert.ok(!e._events['only one'].hasOwnProperty('warned'));
+ e.on('only one', common.mustNotCall());
+ assert.ok(e._events['only one'].hasOwnProperty('warned'));
+
+ // unlimited
+ e.setMaxListeners(0);
+ for (var i = 0; i < 1000; i++) {
+ e.on('unlimited', common.mustNotCall());
+ }
+ assert.ok(!e._events['unlimited'].hasOwnProperty('warned'));
+}
+
+// process-wide
+{
+ events.EventEmitter.defaultMaxListeners = 42;
+ var e = new events.EventEmitter();
+
+ for (var i = 0; i < 42; ++i) {
+ e.on('fortytwo', common.mustNotCall());
+ }
+ assert.ok(!e._events['fortytwo'].hasOwnProperty('warned'));
+ e.on('fortytwo', common.mustNotCall());
+ assert.ok(e._events['fortytwo'].hasOwnProperty('warned'));
+ delete e._events['fortytwo'].warned;
+
+ events.EventEmitter.defaultMaxListeners = 44;
+ e.on('fortytwo', common.mustNotCall());
+ assert.ok(!e._events['fortytwo'].hasOwnProperty('warned'));
+ e.on('fortytwo', common.mustNotCall());
+ assert.ok(e._events['fortytwo'].hasOwnProperty('warned'));
+}
+
+// but _maxListeners still has precedence over defaultMaxListeners
+{
+ events.EventEmitter.defaultMaxListeners = 42;
+ var e = new events.EventEmitter();
+ e.setMaxListeners(1);
+ e.on('uno', common.mustNotCall());
+ assert.ok(!e._events['uno'].hasOwnProperty('warned'));
+ e.on('uno', common.mustNotCall());
+ assert.ok(e._events['uno'].hasOwnProperty('warned'));
+
+ // chainable
+ assert.strictEqual(e, e.setMaxListeners(1));
+}
diff --git a/node_modules/events/tests/common.js b/node_modules/events/tests/common.js
new file mode 100644
index 0000000..49569b0
--- /dev/null
+++ b/node_modules/events/tests/common.js
@@ -0,0 +1,104 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var test = require('tape');
+var assert = require('assert');
+
+var noop = function() {};
+
+var mustCallChecks = [];
+
+function runCallChecks(exitCode) {
+ if (exitCode !== 0) return;
+
+ var failed = filter(mustCallChecks, function(context) {
+ if ('minimum' in context) {
+ context.messageSegment = 'at least ' + context.minimum;
+ return context.actual < context.minimum;
+ } else {
+ context.messageSegment = 'exactly ' + context.exact;
+ return context.actual !== context.exact;
+ }
+ });
+
+ for (var i = 0; i < failed.length; i++) {
+ var context = failed[i];
+ console.log('Mismatched %s function calls. Expected %s, actual %d.',
+ context.name,
+ context.messageSegment,
+ context.actual);
+ // IE8 has no .stack
+ if (context.stack) console.log(context.stack.split('\n').slice(2).join('\n'));
+ }
+
+ assert.strictEqual(failed.length, 0);
+}
+
+exports.mustCall = function(fn, exact) {
+ return _mustCallInner(fn, exact, 'exact');
+};
+
+function _mustCallInner(fn, criteria, field) {
+ if (typeof criteria == 'undefined') criteria = 1;
+
+ if (typeof fn === 'number') {
+ criteria = fn;
+ fn = noop;
+ } else if (fn === undefined) {
+ fn = noop;
+ }
+
+ if (typeof criteria !== 'number')
+ throw new TypeError('Invalid ' + field + ' value: ' + criteria);
+
+ var context = {
+ actual: 0,
+ stack: (new Error()).stack,
+ name: fn.name || ''
+ };
+
+ context[field] = criteria;
+
+ // add the exit listener only once to avoid listener leak warnings
+ if (mustCallChecks.length === 0) test.onFinish(function() { runCallChecks(0); });
+
+ mustCallChecks.push(context);
+
+ return function() {
+ context.actual++;
+ return fn.apply(this, arguments);
+ };
+}
+
+exports.mustNotCall = function(msg) {
+ return function mustNotCall() {
+ assert.fail(msg || 'function should not have been called');
+ };
+};
+
+function filter(arr, fn) {
+ if (arr.filter) return arr.filter(fn);
+ var filtered = [];
+ for (var i = 0; i < arr.length; i++) {
+ if (fn(arr[i], i, arr)) filtered.push(arr[i]);
+ }
+ return filtered
+}
diff --git a/node_modules/events/tests/errors.js b/node_modules/events/tests/errors.js
new file mode 100644
index 0000000..a23df43
--- /dev/null
+++ b/node_modules/events/tests/errors.js
@@ -0,0 +1,13 @@
+'use strict';
+var assert = require('assert');
+var EventEmitter = require('../');
+
+var EE = new EventEmitter();
+
+assert.throws(function () {
+ EE.emit('error', 'Accepts a string');
+}, 'Error: Unhandled error. (Accepts a string)');
+
+assert.throws(function () {
+ EE.emit('error', { message: 'Error!' });
+}, 'Unhandled error. ([object Object])');
diff --git a/node_modules/events/tests/events-list.js b/node_modules/events/tests/events-list.js
new file mode 100644
index 0000000..08aa621
--- /dev/null
+++ b/node_modules/events/tests/events-list.js
@@ -0,0 +1,28 @@
+'use strict';
+
+var EventEmitter = require('../');
+var assert = require('assert');
+
+var EE = new EventEmitter();
+var m = function() {};
+EE.on('foo', function() {});
+assert.equal(1, EE.eventNames().length);
+assert.equal('foo', EE.eventNames()[0]);
+EE.on('bar', m);
+assert.equal(2, EE.eventNames().length);
+assert.equal('foo', EE.eventNames()[0]);
+assert.equal('bar', EE.eventNames()[1]);
+EE.removeListener('bar', m);
+assert.equal(1, EE.eventNames().length);
+assert.equal('foo', EE.eventNames()[0]);
+
+if (typeof Symbol !== 'undefined') {
+ var s = Symbol('s');
+ EE.on(s, m);
+ assert.equal(2, EE.eventNames().length);
+ assert.equal('foo', EE.eventNames()[0]);
+ assert.equal(s, EE.eventNames()[1]);
+ EE.removeListener(s, m);
+ assert.equal(1, EE.eventNames().length);
+ assert.equal('foo', EE.eventNames()[0]);
+}
diff --git a/node_modules/events/tests/events-once.js b/node_modules/events/tests/events-once.js
new file mode 100644
index 0000000..309bf45
--- /dev/null
+++ b/node_modules/events/tests/events-once.js
@@ -0,0 +1,100 @@
+'use strict';
+
+var common = require('./common');
+var EventEmitter = require('../').EventEmitter;
+var once = require('../').once;
+var assert = require('assert');
+
+function onceAnEvent() {
+ var ee = new EventEmitter();
+
+ process.nextTick(function () {
+ ee.emit('myevent', 42);
+ });
+
+ return once(ee, 'myevent').then(function (args) {
+ var value = args[0]
+ assert.strictEqual(value, 42);
+ assert.strictEqual(ee.listenerCount('error'), 0);
+ assert.strictEqual(ee.listenerCount('myevent'), 0);
+ });
+}
+
+function onceAnEventWithTwoArgs() {
+ var ee = new EventEmitter();
+
+ process.nextTick(function () {
+ ee.emit('myevent', 42, 24);
+ });
+
+ return once(ee, 'myevent').then(function (value) {
+ assert.strictEqual(value.length, 2);
+ assert.strictEqual(value[0], 42);
+ assert.strictEqual(value[1], 24);
+ });
+}
+
+function catchesErrors() {
+ var ee = new EventEmitter();
+
+ var expected = new Error('kaboom');
+ var err;
+ process.nextTick(function () {
+ ee.emit('error', expected);
+ });
+
+ return once(ee, 'myevent').then(function () {
+ throw new Error('should reject')
+ }, function (err) {
+ assert.strictEqual(err, expected);
+ assert.strictEqual(ee.listenerCount('error'), 0);
+ assert.strictEqual(ee.listenerCount('myevent'), 0);
+ });
+}
+
+function stopListeningAfterCatchingError() {
+ var ee = new EventEmitter();
+
+ var expected = new Error('kaboom');
+ var err;
+ process.nextTick(function () {
+ ee.emit('error', expected);
+ ee.emit('myevent', 42, 24);
+ });
+
+ // process.on('multipleResolves', common.mustNotCall());
+
+ return once(ee, 'myevent').then(common.mustNotCall, function (err) {
+ // process.removeAllListeners('multipleResolves');
+ assert.strictEqual(err, expected);
+ assert.strictEqual(ee.listenerCount('error'), 0);
+ assert.strictEqual(ee.listenerCount('myevent'), 0);
+ });
+}
+
+function onceError() {
+ var ee = new EventEmitter();
+
+ var expected = new Error('kaboom');
+ process.nextTick(function () {
+ ee.emit('error', expected);
+ });
+
+ return once(ee, 'error').then(function (args) {
+ var err = args[0]
+ assert.strictEqual(err, expected);
+ assert.strictEqual(ee.listenerCount('error'), 0);
+ assert.strictEqual(ee.listenerCount('myevent'), 0);
+ });
+}
+
+Promise.all([
+ onceAnEvent(),
+ onceAnEventWithTwoArgs(),
+ catchesErrors(),
+ stopListeningAfterCatchingError(),
+ onceError()
+]).catch(function (err) {
+ console.error(err.stack)
+ process.exit(1)
+});
diff --git a/node_modules/events/tests/index.js b/node_modules/events/tests/index.js
new file mode 100644
index 0000000..491d0b8
--- /dev/null
+++ b/node_modules/events/tests/index.js
@@ -0,0 +1,56 @@
+var test = require('tape');
+var functionsHaveNames = require('functions-have-names');
+var hasSymbols = require('has-symbols');
+
+require('./legacy-compat');
+var common = require('./common');
+
+// we do this to easily wrap each file in a mocha test
+// and also have browserify be able to statically analyze this file
+var orig_require = require;
+var require = function(file) {
+ test(file, function(t) {
+ // Store the tape object so tests can access it.
+ t.on('end', function () { delete common.test; });
+ common.test = t;
+
+ try { orig_require(file); } catch (err) { t.fail(err); }
+ t.end();
+ });
+};
+
+require('./add-listeners.js');
+require('./check-listener-leaks.js');
+require('./errors.js');
+require('./events-list.js');
+if (typeof Promise === 'function') {
+ require('./events-once.js');
+} else {
+ // Promise support is not available.
+ test('./events-once.js', { skip: true }, function () {});
+}
+require('./listener-count.js');
+require('./listeners-side-effects.js');
+require('./listeners.js');
+require('./max-listeners.js');
+if (functionsHaveNames()) {
+ require('./method-names.js');
+} else {
+ // Function.name is not supported in IE
+ test('./method-names.js', { skip: true }, function () {});
+}
+require('./modify-in-emit.js');
+require('./num-args.js');
+require('./once.js');
+require('./prepend.js');
+require('./set-max-listeners-side-effects.js');
+require('./special-event-names.js');
+require('./subclass.js');
+if (hasSymbols()) {
+ require('./symbols.js');
+} else {
+ // Symbol is not available.
+ test('./symbols.js', { skip: true }, function () {});
+}
+require('./remove-all-listeners.js');
+require('./remove-listeners.js');
diff --git a/node_modules/events/tests/legacy-compat.js b/node_modules/events/tests/legacy-compat.js
new file mode 100644
index 0000000..a402be6
--- /dev/null
+++ b/node_modules/events/tests/legacy-compat.js
@@ -0,0 +1,16 @@
+// sigh... life is hard
+if (!global.console) {
+ console = {}
+}
+
+var fns = ['log', 'error', 'trace'];
+for (var i=0 ; ifoo should not be emitted');
+}
+
+e.once('foo', remove);
+e.removeListener('foo', remove);
+e.emit('foo');
+
+e.once('e', common.mustCall(function() {
+ e.emit('e');
+}));
+
+e.once('e', common.mustCall());
+
+e.emit('e');
+
+// Verify that the listener must be a function
+assert.throws(function() {
+ var ee = new EventEmitter();
+
+ ee.once('foo', null);
+}, /^TypeError: The "listener" argument must be of type Function. Received type object$/);
+
+{
+ // once() has different code paths based on the number of arguments being
+ // emitted. Verify that all of the cases are covered.
+ var maxArgs = 4;
+
+ for (var i = 0; i <= maxArgs; ++i) {
+ var ee = new EventEmitter();
+ var args = ['foo'];
+
+ for (var j = 0; j < i; ++j)
+ args.push(j);
+
+ ee.once('foo', common.mustCall(function() {
+ var params = Array.prototype.slice.call(arguments);
+ var restArgs = args.slice(1);
+ assert.ok(Array.isArray(params));
+ assert.strictEqual(params.length, restArgs.length);
+ for (var index = 0; index < params.length; index++) {
+ var param = params[index];
+ assert.strictEqual(param, restArgs[index]);
+ }
+ }));
+
+ EventEmitter.prototype.emit.apply(ee, args);
+ }
+}
diff --git a/node_modules/events/tests/prepend.js b/node_modules/events/tests/prepend.js
new file mode 100644
index 0000000..79afde0
--- /dev/null
+++ b/node_modules/events/tests/prepend.js
@@ -0,0 +1,31 @@
+'use strict';
+
+var common = require('./common');
+var EventEmitter = require('../');
+var assert = require('assert');
+
+var myEE = new EventEmitter();
+var m = 0;
+// This one comes last.
+myEE.on('foo', common.mustCall(function () {
+ assert.strictEqual(m, 2);
+}));
+
+// This one comes second.
+myEE.prependListener('foo', common.mustCall(function () {
+ assert.strictEqual(m++, 1);
+}));
+
+// This one comes first.
+myEE.prependOnceListener('foo',
+ common.mustCall(function () {
+ assert.strictEqual(m++, 0);
+ }));
+
+myEE.emit('foo');
+
+// Verify that the listener must be a function
+assert.throws(function () {
+ var ee = new EventEmitter();
+ ee.prependOnceListener('foo', null);
+}, 'TypeError: The "listener" argument must be of type Function. Received type object');
diff --git a/node_modules/events/tests/remove-all-listeners.js b/node_modules/events/tests/remove-all-listeners.js
new file mode 100644
index 0000000..622941c
--- /dev/null
+++ b/node_modules/events/tests/remove-all-listeners.js
@@ -0,0 +1,133 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var common = require('./common');
+var assert = require('assert');
+var events = require('../');
+var test = require('tape');
+
+function expect(expected) {
+ var actual = [];
+ test.onFinish(function() {
+ var sortedActual = actual.sort();
+ var sortedExpected = expected.sort();
+ assert.strictEqual(sortedActual.length, sortedExpected.length);
+ for (var index = 0; index < sortedActual.length; index++) {
+ var value = sortedActual[index];
+ assert.strictEqual(value, sortedExpected[index]);
+ }
+ });
+ function listener(name) {
+ actual.push(name);
+ }
+ return common.mustCall(listener, expected.length);
+}
+
+{
+ var ee = new events.EventEmitter();
+ var noop = common.mustNotCall();
+ ee.on('foo', noop);
+ ee.on('bar', noop);
+ ee.on('baz', noop);
+ ee.on('baz', noop);
+ var fooListeners = ee.listeners('foo');
+ var barListeners = ee.listeners('bar');
+ var bazListeners = ee.listeners('baz');
+ ee.on('removeListener', expect(['bar', 'baz', 'baz']));
+ ee.removeAllListeners('bar');
+ ee.removeAllListeners('baz');
+
+ var listeners = ee.listeners('foo');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 1);
+ assert.strictEqual(listeners[0], noop);
+
+ listeners = ee.listeners('bar');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+ listeners = ee.listeners('baz');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+ // After calling removeAllListeners(),
+ // the old listeners array should stay unchanged.
+ assert.strictEqual(fooListeners.length, 1);
+ assert.strictEqual(fooListeners[0], noop);
+ assert.strictEqual(barListeners.length, 1);
+ assert.strictEqual(barListeners[0], noop);
+ assert.strictEqual(bazListeners.length, 2);
+ assert.strictEqual(bazListeners[0], noop);
+ assert.strictEqual(bazListeners[1], noop);
+ // After calling removeAllListeners(),
+ // new listeners arrays is different from the old.
+ assert.notStrictEqual(ee.listeners('bar'), barListeners);
+ assert.notStrictEqual(ee.listeners('baz'), bazListeners);
+}
+
+{
+ var ee = new events.EventEmitter();
+ ee.on('foo', common.mustNotCall());
+ ee.on('bar', common.mustNotCall());
+ // Expect LIFO order
+ ee.on('removeListener', expect(['foo', 'bar', 'removeListener']));
+ ee.on('removeListener', expect(['foo', 'bar']));
+ ee.removeAllListeners();
+
+ var listeners = ee.listeners('foo');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+ listeners = ee.listeners('bar');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+}
+
+{
+ var ee = new events.EventEmitter();
+ ee.on('removeListener', common.mustNotCall());
+ // Check for regression where removeAllListeners() throws when
+ // there exists a 'removeListener' listener, but there exists
+ // no listeners for the provided event type.
+ assert.doesNotThrow(function () { ee.removeAllListeners(ee, 'foo') });
+}
+
+{
+ var ee = new events.EventEmitter();
+ var expectLength = 2;
+ ee.on('removeListener', function() {
+ assert.strictEqual(expectLength--, this.listeners('baz').length);
+ });
+ ee.on('baz', common.mustNotCall());
+ ee.on('baz', common.mustNotCall());
+ ee.on('baz', common.mustNotCall());
+ assert.strictEqual(ee.listeners('baz').length, expectLength + 1);
+ ee.removeAllListeners('baz');
+ assert.strictEqual(ee.listeners('baz').length, 0);
+}
+
+{
+ var ee = new events.EventEmitter();
+ assert.strictEqual(ee, ee.removeAllListeners());
+}
+
+{
+ var ee = new events.EventEmitter();
+ ee._events = undefined;
+ assert.strictEqual(ee, ee.removeAllListeners());
+}
diff --git a/node_modules/events/tests/remove-listeners.js b/node_modules/events/tests/remove-listeners.js
new file mode 100644
index 0000000..18e4d16
--- /dev/null
+++ b/node_modules/events/tests/remove-listeners.js
@@ -0,0 +1,212 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var common = require('./common');
+var assert = require('assert');
+var EventEmitter = require('../');
+
+var listener1 = function listener1() {};
+var listener2 = function listener2() {};
+
+{
+ var ee = new EventEmitter();
+ ee.on('hello', listener1);
+ ee.on('removeListener', common.mustCall(function(name, cb) {
+ assert.strictEqual(name, 'hello');
+ assert.strictEqual(cb, listener1);
+ }));
+ ee.removeListener('hello', listener1);
+ var listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+}
+
+{
+ var ee = new EventEmitter();
+ ee.on('hello', listener1);
+ ee.on('removeListener', common.mustNotCall());
+ ee.removeListener('hello', listener2);
+
+ var listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 1);
+ assert.strictEqual(listeners[0], listener1);
+}
+
+{
+ var ee = new EventEmitter();
+ ee.on('hello', listener1);
+ ee.on('hello', listener2);
+
+ var listeners;
+ ee.once('removeListener', common.mustCall(function(name, cb) {
+ assert.strictEqual(name, 'hello');
+ assert.strictEqual(cb, listener1);
+ listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 1);
+ assert.strictEqual(listeners[0], listener2);
+ }));
+ ee.removeListener('hello', listener1);
+ listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 1);
+ assert.strictEqual(listeners[0], listener2);
+ ee.once('removeListener', common.mustCall(function(name, cb) {
+ assert.strictEqual(name, 'hello');
+ assert.strictEqual(cb, listener2);
+ listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+ }));
+ ee.removeListener('hello', listener2);
+ listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+}
+
+{
+ var ee = new EventEmitter();
+
+ function remove1() {
+ assert.fail('remove1 should not have been called');
+ }
+
+ function remove2() {
+ assert.fail('remove2 should not have been called');
+ }
+
+ ee.on('removeListener', common.mustCall(function(name, cb) {
+ if (cb !== remove1) return;
+ this.removeListener('quux', remove2);
+ this.emit('quux');
+ }, 2));
+ ee.on('quux', remove1);
+ ee.on('quux', remove2);
+ ee.removeListener('quux', remove1);
+}
+
+{
+ var ee = new EventEmitter();
+ ee.on('hello', listener1);
+ ee.on('hello', listener2);
+
+ var listeners;
+ ee.once('removeListener', common.mustCall(function(name, cb) {
+ assert.strictEqual(name, 'hello');
+ assert.strictEqual(cb, listener1);
+ listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 1);
+ assert.strictEqual(listeners[0], listener2);
+ ee.once('removeListener', common.mustCall(function(name, cb) {
+ assert.strictEqual(name, 'hello');
+ assert.strictEqual(cb, listener2);
+ listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+ }));
+ ee.removeListener('hello', listener2);
+ listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+ }));
+ ee.removeListener('hello', listener1);
+ listeners = ee.listeners('hello');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 0);
+}
+
+{
+ var ee = new EventEmitter();
+ var listener3 = common.mustCall(function() {
+ ee.removeListener('hello', listener4);
+ }, 2);
+ var listener4 = common.mustCall();
+
+ ee.on('hello', listener3);
+ ee.on('hello', listener4);
+
+ // listener4 will still be called although it is removed by listener 3.
+ ee.emit('hello');
+ // This is so because the interal listener array at time of emit
+ // was [listener3,listener4]
+
+ // Interal listener array [listener3]
+ ee.emit('hello');
+}
+
+{
+ var ee = new EventEmitter();
+
+ ee.once('hello', listener1);
+ ee.on('removeListener', common.mustCall(function(eventName, listener) {
+ assert.strictEqual(eventName, 'hello');
+ assert.strictEqual(listener, listener1);
+ }));
+ ee.emit('hello');
+}
+
+{
+ var ee = new EventEmitter();
+
+ assert.strictEqual(ee, ee.removeListener('foo', function() {}));
+}
+
+// Verify that the removed listener must be a function
+assert.throws(function() {
+ var ee = new EventEmitter();
+
+ ee.removeListener('foo', null);
+}, /^TypeError: The "listener" argument must be of type Function\. Received type object$/);
+
+{
+ var ee = new EventEmitter();
+ var listener = function() {};
+ ee._events = undefined;
+ var e = ee.removeListener('foo', listener);
+ assert.strictEqual(e, ee);
+}
+
+{
+ var ee = new EventEmitter();
+
+ ee.on('foo', listener1);
+ ee.on('foo', listener2);
+ var listeners = ee.listeners('foo');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 2);
+ assert.strictEqual(listeners[0], listener1);
+ assert.strictEqual(listeners[1], listener2);
+
+ ee.removeListener('foo', listener1);
+ assert.strictEqual(ee._events.foo, listener2);
+
+ ee.on('foo', listener1);
+ listeners = ee.listeners('foo');
+ assert.ok(Array.isArray(listeners));
+ assert.strictEqual(listeners.length, 2);
+ assert.strictEqual(listeners[0], listener2);
+ assert.strictEqual(listeners[1], listener1);
+
+ ee.removeListener('foo', listener1);
+ assert.strictEqual(ee._events.foo, listener2);
+}
diff --git a/node_modules/events/tests/set-max-listeners-side-effects.js b/node_modules/events/tests/set-max-listeners-side-effects.js
new file mode 100644
index 0000000..13dbb67
--- /dev/null
+++ b/node_modules/events/tests/set-max-listeners-side-effects.js
@@ -0,0 +1,31 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+require('./common');
+var assert = require('assert');
+var events = require('../');
+
+var e = new events.EventEmitter();
+
+if (Object.create) assert.ok(!(e._events instanceof Object));
+assert.strictEqual(Object.keys(e._events).length, 0);
+e.setMaxListeners(5);
+assert.strictEqual(Object.keys(e._events).length, 0);
diff --git a/node_modules/events/tests/special-event-names.js b/node_modules/events/tests/special-event-names.js
new file mode 100644
index 0000000..a2f0b74
--- /dev/null
+++ b/node_modules/events/tests/special-event-names.js
@@ -0,0 +1,45 @@
+'use strict';
+
+var common = require('./common');
+var EventEmitter = require('../');
+var assert = require('assert');
+
+var ee = new EventEmitter();
+var handler = function() {};
+
+assert.strictEqual(ee.eventNames().length, 0);
+
+assert.strictEqual(ee._events.hasOwnProperty, undefined);
+assert.strictEqual(ee._events.toString, undefined);
+
+ee.on('__defineGetter__', handler);
+ee.on('toString', handler);
+ee.on('__proto__', handler);
+
+assert.strictEqual(ee.eventNames()[0], '__defineGetter__');
+assert.strictEqual(ee.eventNames()[1], 'toString');
+
+assert.strictEqual(ee.listeners('__defineGetter__').length, 1);
+assert.strictEqual(ee.listeners('__defineGetter__')[0], handler);
+assert.strictEqual(ee.listeners('toString').length, 1);
+assert.strictEqual(ee.listeners('toString')[0], handler);
+
+// Only run __proto__ tests if that property can actually be set
+if ({ __proto__: 'ok' }.__proto__ === 'ok') {
+ assert.strictEqual(ee.eventNames().length, 3);
+ assert.strictEqual(ee.eventNames()[2], '__proto__');
+ assert.strictEqual(ee.listeners('__proto__').length, 1);
+ assert.strictEqual(ee.listeners('__proto__')[0], handler);
+
+ ee.on('__proto__', common.mustCall(function(val) {
+ assert.strictEqual(val, 1);
+ }));
+ ee.emit('__proto__', 1);
+
+ process.on('__proto__', common.mustCall(function(val) {
+ assert.strictEqual(val, 1);
+ }));
+ process.emit('__proto__', 1);
+} else {
+ console.log('# skipped __proto__')
+}
diff --git a/node_modules/events/tests/subclass.js b/node_modules/events/tests/subclass.js
new file mode 100644
index 0000000..bd033ff
--- /dev/null
+++ b/node_modules/events/tests/subclass.js
@@ -0,0 +1,66 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var common = require('./common');
+var test = require('tape');
+var assert = require('assert');
+var EventEmitter = require('../').EventEmitter;
+var util = require('util');
+
+util.inherits(MyEE, EventEmitter);
+
+function MyEE(cb) {
+ this.once(1, cb);
+ this.emit(1);
+ this.removeAllListeners();
+ EventEmitter.call(this);
+}
+
+var myee = new MyEE(common.mustCall());
+
+
+util.inherits(ErrorEE, EventEmitter);
+function ErrorEE() {
+ this.emit('error', new Error('blerg'));
+}
+
+assert.throws(function() {
+ new ErrorEE();
+}, /blerg/);
+
+test.onFinish(function() {
+ assert.ok(!(myee._events instanceof Object));
+ assert.strictEqual(Object.keys(myee._events).length, 0);
+});
+
+
+function MyEE2() {
+ EventEmitter.call(this);
+}
+
+MyEE2.prototype = new EventEmitter();
+
+var ee1 = new MyEE2();
+var ee2 = new MyEE2();
+
+ee1.on('x', function() {});
+
+assert.strictEqual(ee2.listenerCount('x'), 0);
diff --git a/node_modules/events/tests/symbols.js b/node_modules/events/tests/symbols.js
new file mode 100644
index 0000000..0721f0e
--- /dev/null
+++ b/node_modules/events/tests/symbols.js
@@ -0,0 +1,25 @@
+'use strict';
+
+var common = require('./common');
+var EventEmitter = require('../');
+var assert = require('assert');
+
+var ee = new EventEmitter();
+var foo = Symbol('foo');
+var listener = common.mustCall();
+
+ee.on(foo, listener);
+assert.strictEqual(ee.listeners(foo).length, 1);
+assert.strictEqual(ee.listeners(foo)[0], listener);
+
+ee.emit(foo);
+
+ee.removeAllListeners();
+assert.strictEqual(ee.listeners(foo).length, 0);
+
+ee.on(foo, listener);
+assert.strictEqual(ee.listeners(foo).length, 1);
+assert.strictEqual(ee.listeners(foo)[0], listener);
+
+ee.removeListener(foo, listener);
+assert.strictEqual(ee.listeners(foo).length, 0);
diff --git a/node_modules/mini-ali-ui/CHANGELOG.md b/node_modules/mini-ali-ui/CHANGELOG.md
new file mode 100755
index 0000000..e2e316b
--- /dev/null
+++ b/node_modules/mini-ali-ui/CHANGELOG.md
@@ -0,0 +1,122 @@
+## 1.0.11
+`2020-06-04`
+* **Enhance**
+ * **search-bar** 组件新增 `borderColor`;
+ * tips 组件中的 tips-plain 新增倒计时后的回调 `onTimeout()`;
+ * 部分组件新增对 `data-xxx` 的传值;
+ * **guide** 组件可通过点击遮罩来实现引导跳转;
+ * **stepper** 组件新增 `onchange` 事件触发类型返回值;
+* **Fixed**
+ * **popover** 组件中遮罩由于 `transform` 导致覆盖不全 [#20](https://github.com/Alibaba-mp/mini-ali-ui/issues/20);
+
+## 1.0.10
+`2020-05-21`
+* **Add**
+ * swipe-action 组件新增宽度设置;
+ * tabs 选项卡新增选中态下滑线可配置;
+* **Enhance**
+ * tabs 电梯组件 tab-content 距离顶部的位置;
+* **Fixed**
+ * list-item 中 arrow 对齐像素偏差;
+ * input-item/picker-item 在主题配置方面的 token 处理;
+ * am-switch 在 rpx 模式中的兼容问题 [#23](https://github.com/Alibaba-mp/mini-ali-ui/issues/23);
+ * button 组件获取 data-xxx 的值 [#13](https://github.com/Alibaba-mp/mini-ali-ui/issues/13);
+ * swipe-action 组件加载时闪动;
+ * tab 电梯组件点击高亮不准;
+ * search-bar 组件中 clear icon 可能无法点击问题;
+
+## 1.0.9
+`2020-05-07`
+* **Add**
+ * message 组件增加 slot 插槽;
+ * tabs 组件新增 badge 展示;
+* **Update**
+ * page-result 插画风格统一;
+* **Fixed**
+ * input-item 组件 clear 不展示时不占位处理;
+ * input-item 组件透传 controlled 参数 [#15](https://github.com/Alibaba-mp/mini-ali-ui/issues/15);
+ * CheckBox 可控处理 [#18](https://github.com/Alibaba-mp/mini-ali-ui/pull/18);
+ * list-item 的 hover 状态修正;
+ * popover 组件 item 传值 [#11](https://github.com/Alibaba-mp/mini-ali-ui/issues/11);
+
+## 1.0.8
+`2020-04-10`
+* **Fixed** 在 IDE 中无法正常显示 `-webkit-` 前缀的问题;
+
+## 1.0.7
+`2020-04-10`
+* **Add**
+ * tabs 电梯组件新增 `elevatorTop` 属性,可控 tab 位置;
+* **Update**
+ * collapse 增加自适应 demo 效果;
+* **Fixed**
+ * 标签闭合;
+ * am-checkbox 在插件中的样式问题 [#16](https://github.com/Alibaba-mp/mini-ali-ui/pull/16);
+ * rpx 版本中 modal 组件的样式问题;
+ * tabs 电梯组件中 `sticky` 属性问题;
+
+## 1.0.6
+`2020-03-26`
+* **Add**
+ * vtabs 组件新增选中态的样式;
+ * badge 组件新增描边
+* **Update**
+ * badge 组件左右箭头样式调整;
+ * demo 以及 readme 文档更新;
+* **Fixed**
+ * notice 组件对齐问题;
+ * swipe-action 组件在钉钉小程序中报错处理;
+ * swipe-action 组件高度计算错误处理;
+
+## 1.0.5
+`2020-03-11`
+* **Fixed** 修复 coupon 组件中已使用票券类型的样式问题;
+
+## 1.0.4
+`2020-03-11`
+* **Add**
+ * footer 组件新增 `end` 类型 [#8](https://github.com/Alibaba-mp/mini-ali-ui/issues/8);
+ * coupon 组件新增票券权益、使用规则等说明;
+ * input-item、picker-item 新增垂直类型;
+* **Update**
+ * notice 组件类型更新;
+ * search-bar 组件键盘显示“搜索”;
+ * 微调 avatar 头像尺寸和 modal 组件中图片尺寸;
+ * 相关 demo 文件以及 readme.md 文档调整;
+* **Fixed**
+ * 组件标签闭合
+
+## 1.0.3
+`2020-03-03`
+* **Update** Calendar component demo;
+* **Fixed** List component bug;
+
+## 1.0.2
+`2020-02-28`
+* **fixed** tabs component bug;
+* **modify** demo and readme content;
+* **add** the components qr code to the readme document;
+
+## 1.0.1
+`2020-02-24`
+* **fixed** verify-code component bug;
+* **modify** demo and readme content;
+
+## 1.0.0
+`2020-02-19`
+* 新增 **mini-ali-ui** 的 logo,以及钉钉交流群;
+* 调整部分组件的 readme 文档内容;
+* 优化组件交互体验,处理几个小 bug;
+* **mini-ali-ui** 开启了为广大阿里小程序开发者服务的旅程;
+
+## 0.1.0
+`2020-02-04`
+* 将 **mini-antui** 改名 **mini-ali-ui**,同时进行组件升级优化;
+* **优化:**
+ * 可支持 `rpx`,需通过 `npm install mini-ali-ui-rpx --save` 得到;
+ * 结合 CSS 自定义属性,实现更快捷的换肤模式;
+ * 针对 **mini-antui** 中已有的组件进行功能升级优化,共 26 个;
+* **增加:**
+ * 新增 16 个组件;
+ * 增加与小程序基础组件同名的扩展组件,如 `button` 等;
+
diff --git a/node_modules/mini-ali-ui/LICENSE b/node_modules/mini-ali-ui/LICENSE
new file mode 100755
index 0000000..55687a9
--- /dev/null
+++ b/node_modules/mini-ali-ui/LICENSE
@@ -0,0 +1,22 @@
+MIT LICENSE
+
+Copyright (c) 2018-present Alipay.com, https://www.alipay.com/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/mini-ali-ui/README.md b/node_modules/mini-ali-ui/README.md
new file mode 100755
index 0000000..148969e
--- /dev/null
+++ b/node_modules/mini-ali-ui/README.md
@@ -0,0 +1,86 @@
+
+
+
+
+
+# Mini Ali UI
+
+[](https://www.npmjs.com/package/mini-ali-ui)
+[](https://github.com/Alibaba-mp/mini-ali-ui/stargazers)
+[](https://github.com/Alibaba-mp/mini-ali-ui/network/members)
+[](https://www.npmjs.com/package/mini-ali-ui)
+[](https://github.com/Alibaba-mp/mini-ali-ui/issues)
+[](https://github.com/Alibaba-mp/mini-ali-ui/blob/master/LICENSE)
+
+## 示例
+
+
+
+
+
+## 特性
+
+- 基于 **Alipay Design** 设计规范;
+- 支持多端小程序(支付宝,淘宝,钉钉等);
+- 支持主题配置切换;
+- 支持 `px` 与 `rpx`;
+
+## 安装
+
+```bash
+$ npm install mini-ali-ui --save
+```
+
+同时,我们提供了 **rpx** 版本的 mini-ali-ui,如需要使用 **rpx** 作为单位的组件,可以通过下述方式进行安装:
+
+```bash
+$ npm install mini-ali-ui-rpx --save
+```
+
+## 使用
+
+在页面 json 中文件中进行注册,如 title 组件的注册如下所示:
+
+```json
+{
+ "usingComponents": {
+ "title": "mini-ali-ui/es/title/index"
+ }
+}
+```
+
+如安装的是 **rpx** 版本的 mini-ali-ui,那么在进行组件注册时,修改一下名称即可,方式如下:
+
+```json
+{
+ "usingComponents": {
+ "title": "mini-ali-ui-rpx/es/title/index"
+ }
+}
+```
+
+组件注册成功之后,具体的使用方式无差别。
+
+在 axml 文件中进行调用:
+```xml
+内部标题可关闭
+```
+
+详细使用说明请参照官方文档[使用自定义组件](https://docs.alipay.com/mini/framework/use-custom-component)
+
+## 贡献
+
+如果你有好的意见或建议,欢迎给我们提 [issue](https://github.com/Alibaba-mp/mini-ali-ui/issues)。
+
+## 钉钉群
+
+ 群号:**30147295**
+
+## 链接
+- [支付宝小程序](https://mini.open.alipay.com/channel/miniIndex.htm)
+- [开发工具](https://docs.alipay.com/mini/ide/overview)
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/_util/fmtClass.js b/node_modules/mini-ali-ui/es/_util/fmtClass.js
new file mode 100755
index 0000000..c51a35d
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/_util/fmtClass.js
@@ -0,0 +1,30 @@
+var hasOwn = {}.hasOwnProperty;
+/* eslint-disable no-continue, prefer-spread */
+
+export default function fmtClass() {
+ var classes = [];
+
+ for (var i = 0; i < arguments.length; i++) {
+ var arg = i < 0 || arguments.length <= i ? undefined : arguments[i];
+ if (!arg) continue;
+ var argType = typeof arg;
+
+ if (argType === 'string' || argType === 'number') {
+ classes.push(arg);
+ } else if (Array.isArray(arg) && arg.length) {
+ var inner = fmtClass.apply(null, arg);
+
+ if (inner) {
+ classes.push(inner);
+ }
+ } else if (argType === 'object') {
+ for (var key in arg) {
+ if (hasOwn.call(arg, key) && arg[key]) {
+ classes.push(key);
+ }
+ }
+ }
+ }
+
+ return classes.join(' ');
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/_util/fmtEvent.js b/node_modules/mini-ali-ui/es/_util/fmtEvent.js
new file mode 100755
index 0000000..b74b56a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/_util/fmtEvent.js
@@ -0,0 +1,19 @@
+export default function fmtEvent(props, e) {
+ var dataset = {};
+
+ for (var key in props) {
+ if (/data-/gi.test(key)) {
+ dataset[key.replace(/data-/gi, '')] = props[key];
+ }
+ }
+
+ return Object.assign({}, e, {
+ currentTarget: {
+ dataset: dataset
+ },
+ target: {
+ dataset: dataset,
+ targetDataset: dataset
+ }
+ });
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/_util/fmtUnit.js b/node_modules/mini-ali-ui/es/_util/fmtUnit.js
new file mode 100755
index 0000000..b23d73b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/_util/fmtUnit.js
@@ -0,0 +1,18 @@
+var jsUnitRpx = 'false';
+/* eslint-disable no-continue, prefer-spread */
+
+export default function fmtUnit(oldUnit) {
+ var getUnit = oldUnit;
+
+ if (jsUnitRpx === 'true') {
+ if (typeof getUnit === 'string' && getUnit === 'px') {
+ getUnit = 'rpx';
+ } else if (typeof getUnit === 'number') {
+ getUnit *= 2;
+ } else if (typeof getUnit === 'string') {
+ getUnit = oldUnit.match(/(\d+|\d+\.\d+)(px)/)[1] * 2 + 'rpx';
+ }
+ }
+
+ return getUnit;
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-checkbox/index.acss b/node_modules/mini-ali-ui/es/am-checkbox/index.acss
new file mode 100755
index 0000000..0867cec
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-checkbox/index.acss
@@ -0,0 +1 @@
+.am-checkbox{position:relative;height:22px;height:var(--am-checkbox-size,22px);width:22px;width:var(--am-checkbox-size,22px);display:inline-block}.am-checkbox-value{position:absolute;z-index:1;border-radius:50vh;border-radius:var(--am-checkbox-corner-radius,50vh);opacity:0}.am-checkbox-synthetic{position:absolute;z-index:2;pointer-events:none;top:0;left:0;border-radius:50vh;border-radius:var(--am-checkbox-corner-radius,50vh);height:100%;width:100%;text-align:center}.am-checkbox-synthetic::before{position:absolute;left:0;top:0;height:200%;width:200%;display:block;box-sizing:border-box;border-radius:50vh;border-radius:var(--am-checkbox-corner-radius,50vh);content:'';transform-origin:0 0;transform:scale(.5);border:1px solid #ccc;border:var(--am-checkbox-border-width,1px) solid var(--am-checkbox-border-color,#ccc)}.am-checkbox-synthetic.am-checkbox-checked::before{background-color:#1677ff;background-color:var(--am-checkbox-background,#1677ff);border-color:#1677ff;border-color:var(--am-checkbox-background,#1677ff);border-width:0}.am-checkbox-synthetic.am-checkbox-checked::after{position:absolute;display:block;z-index:2;content:'';top:50%;left:50%;transform:translate(-50%,-50%);height:8px;width:11px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAQCAYAAAFl6r+wAAAAAXNSR0IArs4c6QAAASJJREFUOBGdk00OwVAUhTUibMAKjKzKyMzEXkwY2YERexFGJAaWIJLnO9X7erVPtU5yc//OPff1te31PEIIU+X4YayT3FRZYEHVLLaKoGiM8pTkogIoNRITg48a7IFGtChfgnsXjKaGYHntFNYwD1c7HpYnvUhSLVCemMK1KOrB06SqJMTGZ/95ZgkissKdquK1HOIOEza1pi9AMOLe12txkih9wbNJ04o0JiILGsAZ8eAFYgwhDmgIpIk2AcEGmok28K9nkd66HZ8w3P/VyucSghLdY+V312VDa0GIa+yIzZoWtBaUCOQ+dsY8Fn4BjeoditvukSHqTV814bAk9i9FrQPW/Q4Z0gL7ZQkjOgl+/a2RG3Mdc0yfzjbLsqe/nl/xC+6YynvEuhO+AAAAAElFTkSuQmCC);background-size:contain;background-repeat:no-repeat}.am-checkbox-synthetic.am-checkbox-disabled::before{border:1px solid #ccc;border:var(--am-checkbox-border-width,1px) solid var(--am-checkbox-border-color,#ccc);background-color:#e5e5e5;background-color:var(--am-checkbox-disabled-background,#e5e5e5)}.am-checkbox-synthetic.am-checkbox-checked.am-checkbox-disabled::after{position:absolute;display:block;z-index:2;content:'';top:50%;left:50%;transform:translate(-50%,-50%);height:8px;width:11px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAARCAYAAAGutmwVAAAAAXNSR0IArs4c6QAAAZdJREFUOBGlVDFLw0AUzoUWBEGs7m5mdHByccggOAkOCnZySOhvSjMEQiponZykCB07iYtTf4S6iKEtid87845Lmou1Pjje3fe+9713ubtYlm6DwaBD6yAILiQeRdG2TrDCMDy2xuNxC5S3UoQWoooUrF6LAljkcO8YPdgOYauZzCzSZQbPBRrcmM1mX4RCc6kBpW+OKIrskDbVaSSjtiSBeImSQ0nmhhzHabuuu6iSuIhS1htnJSb9ycdxvJnnua2UTdlo6RCxZ4yXRrJGXGCDbSO5SqTKNsCPfr9/Qwu2OiLFbIwJmr8C4Y4AE5Fisg0oj5BwgvUjximG7BG+ZKpnLaGWWMqiBQ5mfwnUAKWsYWtNi72OkLwrhIj/LVwIPkFQvmL4BYTP1xauE4Rol249/M+JJEmylabpnud5rwQ22W+CnCvwmznKsmzCAPwQT6tLT0vD+L6Utoy46lDn0lx+Cnp68/n8obhHzJEFptPpAYCVBTm59I0NBZhLOzB2yCT2JWEGiwK32MEZTvgT49r3/XuOr+K/AZoUzLVkroRcAAAAAElFTkSuQmCC);background-size:contain;background-repeat:no-repeat}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-checkbox/index.axml b/node_modules/mini-ali-ui/es/am-checkbox/index.axml
new file mode 100755
index 0000000..0630a9a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-checkbox/index.axml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-checkbox/index.js b/node_modules/mini-ali-ui/es/am-checkbox/index.js
new file mode 100755
index 0000000..0aa8e2d
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-checkbox/index.js
@@ -0,0 +1,52 @@
+import fmtEvent from '../_util/fmtEvent';
+/**
+ * 对齐 ant design checkbox 的设计,增加 ctrlChecked 属性
+ * 当 props 中有 checked 传入时,am-checkbox 是非受控组件
+ * 当 props 中不传入 checked 而使用 ctrlChecked 时,am-checkbox 是受控组件
+ */
+
+Component({
+ props: {
+ value: '',
+ checked: false,
+ ctrlChecked: undefined,
+ disabled: false,
+ onChange: function onChange() {},
+ id: ''
+ },
+ data: {
+ // 组件内维护的 chackbox 勾选状态
+ _checked: false
+ },
+ onInit: function onInit() {
+ var checked = this.props.checked;
+ this.setData({
+ _checked: checked
+ });
+ },
+ // props 改变时
+ deriveDataFromProps: function deriveDataFromProps(nextProps) {
+ var _checked = this.data._checked;
+ var oldChecked = this.props.ctrlChecked;
+ var ctrlChecked = nextProps.ctrlChecked; // oldChecked===undefined 说明未传入 checked 属性,am-checkbox 将成为不受控组件
+ // oldChecked 有传入值 _checked 受外部 checked 属性控制
+
+ if (_checked !== ctrlChecked && oldChecked !== undefined) {
+ this.setData({
+ _checked: ctrlChecked
+ });
+ }
+ },
+ methods: {
+ onChange: function onChange(e) {
+ var _e$detail = e.detail,
+ detail = _e$detail === void 0 ? {} : _e$detail;
+ var value = detail.value;
+ this.setData({
+ _checked: value
+ });
+ var event = fmtEvent(this.props, e);
+ this.props.onChange(event);
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-checkbox/index.json b/node_modules/mini-ali-ui/es/am-checkbox/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-checkbox/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-icon/index.acss b/node_modules/mini-ali-ui/es/am-icon/index.acss
new file mode 100755
index 0000000..a663408
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-icon/index.acss
@@ -0,0 +1 @@
+@font-face{font-family:antui-icon;src:url(https://gw.alipayobjects.com/os/basement_prod/0496620c-35f3-4a7e-b606-7c38c202321e.ttf?v=20200115) format('truetype')}.am-icon{font-family:antui-icon!important;font-size:17px;font-size:var(--am-icon-size,17px);font-style:normal;-webkit-font-smoothing:antialiased;color:inherit;color:var(--am-icon-color,inherit)}.am-icon-qr:before{content:"\e602"}.am-icon-share:before{content:"\e604"}.am-icon-picture:before{content:"\e605"}.am-icon-add-square:before{content:"\e606"}.am-icon-file:before{content:"\e607"}.am-icon-text:before{content:"\e608"}.am-icon-minus-square:before{content:"\e609"}.am-icon-barcode:before{content:"\e60a"}.am-icon-wallet:before{content:"\e60b"}.am-icon-scan-code:before{content:"\e60c"}.am-icon-receipt:before{content:"\e60d"}.am-icon-down-circle:before{content:"\e60e"}.am-icon-bill-note:before{content:"\e60f"}.am-icon-trash:before{content:"\e610"}.am-icon-bill:before{content:"\e611"}.am-icon-scan:before{content:"\e614"}.am-icon-content:before{content:"\e615"}.am-icon-circle:before{content:"\e617"}.am-icon-play:before{content:"\e618"}.am-icon-limit:before{content:"\e619"}.am-icon-money:before{content:"\e61a"}.am-icon-link:before{content:"\e61b"}.am-icon-zoom-in:before{content:"\e61c"}.am-icon-koubei:before{content:"\e61d"}.am-icon-location:before{content:"\e61e"}.am-icon-capslock:before{content:"\e61f"}.am-icon-time-5:before{content:"\e620"}.am-icon-warn:before{content:"\e622"}.am-icon-help:before{content:"\e624"}.am-icon-close-circle:before{content:"\e625"}.am-icon-selected:before{content:"\e626"}.am-icon-search:before{content:"\e627"}.am-icon-net:before{content:"\e628"}.am-icon-chat:before{content:"\e629"}.am-icon-contacts:before{content:"\e62a"}.am-icon-appx:before{content:"\e62b"}.am-icon-question:before{content:"\e62d"}.am-icon-person-setting:before{content:"\e62f"}.am-icon-setting:before{content:"\e630"}.am-icon-like:before{content:"\e631"}.am-icon-ant:before{content:"\e632"}.am-icon-add:before{content:"\e634"}.am-icon-more:before{content:"\e636"}.am-icon-zoom-out:before{content:"\e637"}.am-icon-money-circle:before{content:"\e638"}.am-icon-collect:before{content:"\e639"}.am-icon-voice:before{content:"\e63a"}.am-icon-good:before{content:"\e63b"}.am-icon-voice-limit:before{content:"\e63c"}.am-icon-people:before{content:"\e63d"}.am-icon-person-add:before{content:"\e63e"}.am-icon-download:before{content:"\e63f"}.am-icon-sad:before{content:"\e640"}.am-icon-left:before{content:"\e642"}.am-icon-right:before{content:"\e643"}.am-icon-eye-close:before{content:"\e645"}.am-icon-eye:before{content:"\e644"}.am-icon-koubei_:before{content:"\e646"}.am-icon-star_:before{content:"\e647"}.am-icon-check:before{content:"\e648"}.am-icon-chat_:before{content:"\e649"}.am-icon-help_:before{content:"\e64a"}.am-icon-key_:before{content:"\e64b"}.am-icon-lock_:before{content:"\e64e"}.am-icon-people_:before{content:"\e64f"}.am-icon-voice-limit_:before{content:"\e651"}.am-icon-location_:before{content:"\e652"}.am-icon-phone_:before{content:"\e654"}.am-icon-logo-alipay_:before{content:"\e655"}.am-icon-person-delete_:before{content:"\e656"}.am-icon-wait_:before{content:"\e657"}.am-icon-apps_:before{content:"\e65a"}.am-icon-microphone_:before{content:"\e65b"}.am-icon-pen_:before{content:"\e65d"}.am-icon-close_:before{content:"\e65e"}.am-icon-question_:before{content:"\e65f"}.am-icon-down_:before{content:"\e661"}.am-icon-certified-check_:before{content:"\e662"}.am-icon-certified-warn_:before{content:"\e663"}.am-icon-sad_:before{content:"\e664"}.am-icon-ant_:before{content:"\e665"}.am-icon-time-5_:before{content:"\e666"}.am-icon-warn_:before{content:"\e667"}.am-icon-person-circle_:before{content:"\e669"}.am-icon-time-3_:before{content:"\e66b"}.am-icon-check_:before{content:"\e66c"}.am-icon-logo-alipays:before{content:"\e668"}.am-icon-like_:before{content:"\e66d"}.am-icon-home:before{content:"\e66e"}.am-icon-eye_:before{content:"\e66f"}.am-icon-edit_:before{content:"\e670"}.am-icon-mail_:before{content:"\e671"}.am-icon-forbid_:before{content:"\e672"}.am-icon-eye-limit_:before{content:"\e673"}.am-icon-delete-person_:before{content:"\e674"}.am-icon-close:before{content:"\e675"}.am-icon-address-book_:before{content:"\e676"}.am-icon-person:before{content:"\e677"}.am-icon-gift:before{content:"\e678"}.am-icon-add-message:before{content:"\e679"}.am-icon-alipay:before{content:"\e67a"}.am-icon-phone-book_:before{content:"\e67b"}.am-icon-more-1:before{content:"\e650"}.am-icon-delete_:before{content:"\e653"}.am-icon-down:before{content:"\e658"}.am-icon-up:before{content:"\e659"}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-icon/index.axml b/node_modules/mini-ali-ui/es/am-icon/index.axml
new file mode 100755
index 0000000..97965fb
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-icon/index.axml
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-icon/index.js b/node_modules/mini-ali-ui/es/am-icon/index.js
new file mode 100755
index 0000000..d4dc607
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-icon/index.js
@@ -0,0 +1,12 @@
+import fmtUnit from '../_util/fmtUnit';
+Component({
+ props: {
+ type: '',
+ size: fmtUnit(17),
+ color: '',
+ className: ''
+ },
+ data: {
+ valueUnit: fmtUnit('px')
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-icon/index.json b/node_modules/mini-ali-ui/es/am-icon/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-icon/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-radio/index.acss b/node_modules/mini-ali-ui/es/am-radio/index.acss
new file mode 100755
index 0000000..ef952ad
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-radio/index.acss
@@ -0,0 +1 @@
+.am-radio{position:relative;height:18px;height:var(--am-radio-size,18px);width:18px;width:var(--am-radio-size,18px);display:inline-block;line-height:1}.am-radio-value{position:absolute;z-index:1;opacity:0}.am-radio .am-radio-synthetic{position:absolute;opacity:0;z-index:2;line-height:1;pointer-events:none;top:0;left:0;height:100%;width:100%;font-size:18px;font-size:var(--am-radio-size,18px);text-align:center;color:#1677ff;color:var(--am-radio-color,#1677ff)}.am-radio-value.a-radio-checked+.am-radio-synthetic{opacity:1}.am-radio-value.a-radio-checked.a-radio-disabled+.am-radio-synthetic{opacity:.4}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-radio/index.axml b/node_modules/mini-ali-ui/es/am-radio/index.axml
new file mode 100755
index 0000000..4ea5701
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-radio/index.axml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-radio/index.js b/node_modules/mini-ali-ui/es/am-radio/index.js
new file mode 100755
index 0000000..8be1974
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-radio/index.js
@@ -0,0 +1,16 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ value: '',
+ checked: false,
+ disabled: false,
+ onChange: function onChange() {},
+ id: ''
+ },
+ methods: {
+ onChange: function onChange(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onChange(event);
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-radio/index.json b/node_modules/mini-ali-ui/es/am-radio/index.json
new file mode 100755
index 0000000..717cce8
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-radio/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-switch/index.acss b/node_modules/mini-ali-ui/es/am-switch/index.acss
new file mode 100755
index 0000000..b49cbd2
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-switch/index.acss
@@ -0,0 +1 @@
+.am-switch .checkbox{width:51px;height:31px;border-radius:50vh;border-radius:var(--am-switch-corner-radius,50vh)}.am-switch .checkbox:after{left:2px;top:2px;width:27px;height:27px;border-radius:50vh;border-radius:var(--am-switch-float-corner-radius,50vh)}.am-switch .checkbox:before{left:2px;top:2px;width:47px;height:27px;border-radius:50vh;border-radius:var(--am-switch-corner-radius,50vh)}.am-switch.a-switch-android .checkbox{width:72px;height:23px;border-radius:3px}.am-switch.a-switch-android .checkbox:after{width:35px;height:21px;border-radius:2px;left:1px;top:1px}.am-switch .a-switch-checkbox.a-switch-checkbox:checked~.checkbox{background:#1677ff;background:var(--am-switch-background,#1677ff)}.am-switch .a-switch-checkbox.a-switch-checkbox:checked~.checkbox::after{transform:translateX(20px)}.am-switch.a-switch-android .a-switch-checkbox.a-switch-checkbox:checked~.checkbox::after{transform:translateX(35px)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-switch/index.axml b/node_modules/mini-ali-ui/es/am-switch/index.axml
new file mode 100755
index 0000000..6bf1c36
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-switch/index.axml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-switch/index.js b/node_modules/mini-ali-ui/es/am-switch/index.js
new file mode 100755
index 0000000..8828d6e
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-switch/index.js
@@ -0,0 +1,20 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ checked: false,
+ disabled: false,
+ onChange: function onChange() {},
+ id: '',
+ name: '',
+ controlled: false
+ },
+ data: {
+ checkedCls: ''
+ },
+ methods: {
+ onChange: function onChange(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onChange(event);
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/am-switch/index.json b/node_modules/mini-ali-ui/es/am-switch/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/am-switch/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/amount-input/index.acss b/node_modules/mini-ali-ui/es/amount-input/index.acss
new file mode 100755
index 0000000..58d95b9
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/amount-input/index.acss
@@ -0,0 +1 @@
+.am-amount{box-sizing:border-box;width:100%;padding:12px 12px;padding:var(--am-amount-padding-vertical,12px) var(--am-amount-padding-horizontal,12px);background:#fff;background:var(--am-amount-background,#fff)}.am-amount .a-input-content{font-family:DIN PRO,DIN Alternate;font-size:45px;font-size:var(--am-amount-content-font-size,45px);line-height:1;line-height:var(--am-amount-content-line-height,1);font-weight:500}.am-amount .a-input{padding:0 8px;padding:0 var(--am-amount-a-input-padding,8px)}.am-amount-title{line-height:1;line-height:var(--am-amount-title-line-height,1);color:#333;color:var(--am-amount-title-color,#333);font-size:17px;font-size:var(--am-amount-title-font-size,17px)}.am-amount-synthetic{display:flex;align-items:baseline}.am-amount-input{box-sizing:content-box;margin-top:24px;margin-top:var(--am-amount-value-margin-top,24px);padding-bottom:8px;padding-bottom:var(--am-amount-input-padding-bottom,8px);display:flex;align-items:baseline;width:100%;height:50px;position:relative;font-size:55px;line-height:1;line-height:var(--am-amount-input-line-height,1.5)}.am-amount-input::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-amount-symbol{width:18px;font-family:PingFang SC;font-size:30px;font-size:var(--am-amount-symbol-font-size,30px);line-height:1;color:#333;color:var(--am-amount-symbol-color,#333);align-self:flex-start;margin-top:17px}.am-amount-placeholder{color:#ccc;color:var(--am-amount-placeholder-color,#ccc);font-size:30px;font-size:var(--am-amount-placeholder-font-size,30px);line-height:1;line-height:var(--am-amount-symbol-line-height,1);font-family:PingFang;position:absolute;top:15px;left:0;height:30px;height:var(--am-amount-placeholder-font-size,30px);display:flex;z-index:0;align-items:flex-end}.am-amount-value{box-sizing:border-box;z-index:2;height:100%;vertical-align:middle;background-color:transparent;font-weight:250}.am-amount-clear{visibility:hidden;width:28px;height:28px;align-self:center;margin-top:8px}.am-amount-clear-icon{display:flex;height:100%;justify-content:center;align-items:center}.am-amount-clear-show{visibility:visible}.am-amount-footer{padding-top:12px;padding-top:var(--am-amount-footer-padding-top,12px);display:flex;align-items:center;justify-content:space-between;line-height:1;line-height:var(--am-amount-footer-line-height,1)}.am-amount-extra{flex:1;line-height:1;line-height:var(--am-amount-extra-line-height,1);color:#999;color:var(--am-amount-extra-color,#999);font-size:15px;font-size:var(--am-amount-extra-font-size,15px)}.am-amount-btn{color:#1677ff;color:var(--am-amount-btn-font-color,#1677ff);line-height:1;line-height:var(--am-amount-btn-line-height,1);font-size:15px;font-size:var(--am-amount-btn-font-size,15px)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/amount-input/index.axml b/node_modules/mini-ali-ui/es/amount-input/index.axml
new file mode 100755
index 0000000..d65ea95
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/amount-input/index.axml
@@ -0,0 +1,30 @@
+
+ {{title}}
+
+ ¥
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/amount-input/index.js b/node_modules/mini-ali-ui/es/amount-input/index.js
new file mode 100755
index 0000000..603c76a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/amount-input/index.js
@@ -0,0 +1,81 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ type: 'number',
+ className: '',
+ focus: false,
+ placeholder: '',
+ value: '',
+ controlled: false
+ },
+ data: {
+ _focus: false
+ },
+ didMount: function didMount() {
+ this.setData({
+ _focus: this.props.focus
+ });
+ },
+ didUpdate: function didUpdate(prevProps) {
+ var prevFocus = prevProps.focus;
+ var nowFocus = this.props.focus;
+
+ if (prevFocus !== nowFocus) {
+ this.setData({
+ _focus: nowFocus
+ });
+ }
+ },
+ methods: {
+ onInput: function onInput(e) {
+ var event = fmtEvent(this.props, e);
+
+ if (this.props.onInput) {
+ this.props.onInput(event);
+ }
+ },
+ onConfirm: function onConfirm(e) {
+ var event = fmtEvent(this.props, e);
+
+ if (this.props.onConfirm) {
+ this.props.onConfirm(event);
+ }
+ },
+ onButtonClick: function onButtonClick() {
+ if (this.onButtonClick) {
+ this.props.onButtonClick();
+ }
+ },
+ onFocus: function onFocus(e) {
+ this.setData({
+ _focus: true
+ });
+ var event = fmtEvent(this.props, e);
+
+ if (this.props.onFocus) {
+ this.props.onFocus(event);
+ }
+ },
+ onBlur: function onBlur(e) {
+ this.setData({
+ _focus: false
+ }); // my.alert({ content: '_focus: ' + this.data._focus });
+
+ var event = fmtEvent(this.props, e);
+
+ if (this.props.onBlur) {
+ this.props.onBlur(event);
+ }
+ },
+ onClearTap: function onClearTap() {
+ // my.alert({ content: 'manually focus' });
+ this.setData({
+ _focus: true
+ });
+
+ if (this.props.onClear) {
+ this.props.onClear();
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/amount-input/index.json b/node_modules/mini-ali-ui/es/amount-input/index.json
new file mode 100755
index 0000000..3e0784c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/amount-input/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/avatar/index.acss b/node_modules/mini-ali-ui/es/avatar/index.acss
new file mode 100755
index 0000000..cdb437a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/avatar/index.acss
@@ -0,0 +1 @@
+.am-avatar{display:flex;align-items:center}.am-avatar-img{width:52px;height:52px;border-radius:50vh}.am-avatar-img-sm{width:36px;height:36px}.am-avatar-img-md{width:52px;height:52px}.am-avatar-img-lg{width:60px;height:60px}.am-avatar-img-square{border-radius:0}.am-avatar-content{margin-left:12px}.am-avatar-name{font-size:17px;color:#333}.am-avatar-name-lg{font-size:18px}.am-avatar-desc{margin-top:4px;font-size:15px;color:#999}.am-avatar-desc-sm{display:none}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/avatar/index.axml b/node_modules/mini-ali-ui/es/avatar/index.axml
new file mode 100755
index 0000000..4da1139
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/avatar/index.axml
@@ -0,0 +1,11 @@
+
+
+
+
+ {{name}}
+
+
+ {{desc}}
+
+
+
diff --git a/node_modules/mini-ali-ui/es/avatar/index.js b/node_modules/mini-ali-ui/es/avatar/index.js
new file mode 100755
index 0000000..e0b92ba
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/avatar/index.js
@@ -0,0 +1,29 @@
+Component({
+ props: {
+ className: '',
+ shape: 'circle',
+ size: 'md',
+ src: 'https://gw.alipayobjects.com/mdn/rms_349abe/afts/img/A*5VvARpvk39QAAAAAAAAAAABkARQnAQ',
+ name: '',
+ desc: ''
+ },
+ didMount: function didMount() {
+ var _this$props = this.props,
+ name = _this$props.name,
+ desc = _this$props.desc;
+
+ if (!name && desc) {
+ console.error('Avatar: 不允许设置 desc 但不定义 name');
+ }
+ },
+ methods: {
+ // 图片加载失败
+ _onError: function _onError(e) {
+ var onError = this.props.onError;
+
+ if (onError) {
+ onError(e);
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/avatar/index.json b/node_modules/mini-ali-ui/es/avatar/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/avatar/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/badge/index.acss b/node_modules/mini-ali-ui/es/badge/index.acss
new file mode 100755
index 0000000..a41144f
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/badge/index.acss
@@ -0,0 +1 @@
+.am-badge{display:inline-block;position:relative;vertical-align:middle;line-height:1.5;line-height:var(--am-badge-line-height,1.5)}.am-badge-text{display:flex;position:absolute;align-items:center;justify-content:center;right:0;transform:translate(50%,-50%);top:0;min-width:16px;padding:0;min-height:16px;text-align:center;background-color:#ff3b30;background-color:var(--am-badge-bg-color,#ff3b30);border-radius:50vh;border-radius:var(--am-badge-border-radius,50vh);color:#fff;color:var(--am-badge-font-color,#fff);z-index:1}.am-badge-text-padding{font-size:10px;opacity:0}.am-badge-text-inner{position:relative;z-index:2;font-size:11px;white-space:nowrap}.am-badge-text.am-badge-double{padding:0 4px}.am-badge-not-a-wrapper .am-badge-text{position:relative;top:auto;right:auto;transform:translateX(0)}.am-badge-text.is-dot{padding:0;width:10px;min-width:10px;height:10px;min-height:10px;border-radius:50vh;border-radius:var(--am-badge-border-radius,50vh)}.am-badge-arrow{position:absolute;height:8px;width:8px;bottom:-2px;left:50%;margin-left:-4px;transform:rotate(45deg);z-index:1;border-radius:50vh 0 0;background:#ff3b30;background-color:var(--am-badge-bg-color,#ff3b30)}.am-badge-arrow.am-badge-stroke{border:0 none;filter:drop-shadow(1px 1px 0 #fff)}.am-badge-text-arrow-right{border-radius:8px 8px 0 8px}.am-badge-text-arrow-left{border-radius:8px 8px 8px 0}.am-badge-stroke{border:1px solid #fff}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/badge/index.axml b/node_modules/mini-ali-ui/es/badge/index.axml
new file mode 100755
index 0000000..7f7788e
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/badge/index.axml
@@ -0,0 +1,14 @@
+
+
+ {{typeof text === 'number' && text > overflowCount ? overflowCount + '+' : text }}
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/badge/index.js b/node_modules/mini-ali-ui/es/badge/index.js
new file mode 100755
index 0000000..f799302
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/badge/index.js
@@ -0,0 +1,11 @@
+Component({
+ props: {
+ className: '',
+ overflowCount: 99,
+ text: '',
+ dot: false,
+ withArrow: false,
+ direction: 'middle',
+ stroke: false
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/badge/index.json b/node_modules/mini-ali-ui/es/badge/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/badge/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/button/index.acss b/node_modules/mini-ali-ui/es/button/index.acss
new file mode 100755
index 0000000..b28946b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/button/index.acss
@@ -0,0 +1 @@
+.am-button{position:relative;box-sizing:border-box;height:auto;line-height:normal;padding:12px;padding:var(--am-button-padding,12px);border-radius:4px;border-radius:var(--am-button-corner-radius,4px);color:#333;color:var(--am-button-color,#333);border:0 none;box-shadow:inset 0 0 0 1px #e5e5e5;box-shadow:inset 0 0 0 var(--am-button-border-size,1px) var(--am-button-border-color,#e5e5e5);background-color:#fff;background-color:var(--am-button-background,#fff);font-size:18px;font-size:var(--am-button-title-size,18px)}.am-button-content{display:flex;flex-direction:row;justify-content:center;align-items:center}.am-button-loading{margin-right:12px}.am-button.am-button-disabled{opacity:.4;opacity:var(--am-button-disabled-opacity,.4);color:#333;color:var(--am-button-color,#333);background-color:#fff;background-color:var(--am-button-background,#fff)}.am-button-active{filter:brightness(.9)}.am-button-active>:nth-child(1n+1){opacity:.7}.am-button-text.am-button-active>:nth-child(1n+1){opacity:.6}.am-button-subtitle{font-size:17px;font-size:var(--am-button-doubleline-title-size,17px)}.am-button-subtitle-subfont{font-size:12px;font-size:var(--am-button-subtitle-size,12px);opacity:.6}.am-button-primary,.am-button-primary.am-button-disabled{background-color:#1677ff;background-color:var(--am-button-primary-background,#1677ff);color:#fff;color:var(--am-button-primary-color,#fff);box-shadow:0 0}.am-button-ghost,.am-button-ghost.am-button-disabled{background-color:transparent;color:#1677ff;color:var(--am-button-ghost-color,#1677ff);box-shadow:inset 0 0 0 1px #1677ff;box-shadow:inset 0 0 0 var(--am-button-border-size,1px) var(--am-button-ghost-border-color,#1677ff)}.am-button-warn,.am-button-warn.am-button-disabled{background-color:#ff3b30;background-color:var(--am-button-warn-background,#ff3b30);color:#fff;color:var(--am-button-warn-color,#fff);box-shadow:0 0}.am-button-warn-ghost,.am-button-warn-ghost.am-button-disabled{background-color:transparent;color:#ff3b30;color:var(--am-button-warn-ghost-color,#ff3b30);box-shadow:inset 0 0 0 1px #ff3b30;box-shadow:inset 0 0 0 var(--am-button-border-size,1px) var(--am-button-ghost-border-color,#ff3b30)}.am-button-light,.am-button-light.am-button-disabled{background-color:#e7f1ff;background-color:var(--am-button-light-background,#e7f1ff);color:#1677ff;color:var(--am-button-light-color,#1677ff);box-shadow:0 0}.am-button-text,.am-button-text.am-button-disabled{display:inline-block;background-color:transparent;color:#1677ff;color:var(--am-button-text-color,#1677ff);border:0;padding:0;box-shadow:0 0}.am-button-capsule{display:inline-block;border-radius:50vh;border-radius:var(--am-button-capsule-corner,50vh);padding:4px 12px;padding:var(--am-button-capsule-padding-v,4px) var(--am-button-capsule-padding-h,12px)}.am-button-capsule-large{font-size:15px;font-size:var(--am-button-capsule-size-l,15px)}.am-button-capsule-large-minwidth{min-width:84px}.am-button-capsule-medium{font-size:13px;font-size:var(--am-button-capsule-size-m,13px)}.am-button-capsule-medium-minwidth{min-width:76px}.am-button-capsule-small{font-size:12px;font-size:var(--am-button-capsule-size-s,12px)}.am-button-capsule-small-minwidth{min-width:72px}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/button/index.axml b/node_modules/mini-ali-ui/es/button/index.axml
new file mode 100755
index 0000000..fcf2978
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/button/index.axml
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/button/index.js b/node_modules/mini-ali-ui/es/button/index.js
new file mode 100755
index 0000000..33bee76
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/button/index.js
@@ -0,0 +1,111 @@
+import fmtClass from '../_util/fmtClass';
+import fmtEvent from '../_util/fmtEvent';
+var SUPPORT_COMPONENT2 = my.canIUse('component2');
+var prefixCls = 'am-button';
+
+var noop = function noop() {};
+
+Component({
+ mixins: [],
+ data: {
+ baseClass: prefixCls
+ },
+ props: {
+ className: '',
+ type: '',
+ dataName: '',
+ disabled: false,
+ subtitle: '',
+ onTap: noop,
+ capsuleMinWidth: false,
+ showLoading: false
+ },
+ onInit: function onInit() {
+ if (!this.props.hoverClass) {
+ this.props.hoverClass = 'am-button-active';
+
+ if (this.props.type === 'text') {
+ this.props.hoverClass = 'am-button-active-text';
+ }
+ }
+
+ this.setData({
+ baseClass: this.wrapBaseCls(this.props),
+ hoverClass: this.props.hoverClass
+ });
+ },
+ deriveDataFromProps: function deriveDataFromProps(nextProps) {
+ if (this.propsChange(this.props, nextProps)) {
+ this.setData({
+ baseClass: this.wrapBaseCls(nextProps)
+ });
+ }
+ },
+ didMount: function didMount() {
+ if (!SUPPORT_COMPONENT2) {
+ if (!this.props.hoverClass) {
+ this.props.hoverClass = 'am-button-active';
+
+ if (this.props.type === 'text') {
+ this.props.hoverClass = 'am-button-active-text';
+ }
+ }
+
+ this.setData({
+ baseClass: this.wrapBaseCls(this.props),
+ hoverClass: this.props.hoverClass
+ });
+ }
+ },
+ didUpdate: function didUpdate(prevProps) {
+ if (!SUPPORT_COMPONENT2 && this.propsChange(prevProps, this.props)) {
+ this.setData({
+ baseClass: this.wrapBaseCls(this.props)
+ });
+ }
+ },
+ didUnmount: function didUnmount() {},
+ methods: {
+ wrapBaseCls: function wrapBaseCls(props) {
+ var _fmtClass;
+
+ var type = props.type,
+ disabled = props.disabled,
+ subtitle = props.subtitle,
+ shape = props.shape,
+ _props$capsuleSize = props.capsuleSize,
+ capsuleSize = _props$capsuleSize === void 0 ? 'medium' : _props$capsuleSize,
+ capsuleMinWidth = props.capsuleMinWidth;
+ var capsuleMinWidthCls = '';
+
+ if (capsuleMinWidth) {
+ capsuleMinWidthCls = prefixCls + "-capsule-" + capsuleSize + "-minwidth";
+ }
+
+ var ret = fmtClass((_fmtClass = {}, _fmtClass["" + prefixCls] = true, _fmtClass[prefixCls + "-primary"] = type === 'primary', _fmtClass[prefixCls + "-ghost"] = type === 'ghost', _fmtClass[prefixCls + "-warn"] = type === 'warn', _fmtClass[prefixCls + "-warn-ghost"] = type === 'warn-ghost', _fmtClass[prefixCls + "-text"] = type === 'text', _fmtClass[prefixCls + "-light"] = type === 'light', _fmtClass[prefixCls + "-capsule " + prefixCls + "-capsule-" + capsuleSize + " " + capsuleMinWidthCls] = shape === 'capsule', _fmtClass[prefixCls + "-disabled"] = disabled, _fmtClass[prefixCls + "-subtitle"] = subtitle, _fmtClass));
+ return ret;
+ },
+ onButtonTap: function onButtonTap(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onTap(event);
+ },
+ propsChange: function propsChange(prevProps, nextProps) {
+ var pProps = Object.getOwnPropertyNames(prevProps);
+ var nProps = Object.getOwnPropertyNames(nextProps);
+
+ if (pProps.length !== nProps.length) {
+ return true;
+ }
+
+ for (var i = 0; i < pProps.length; i++) {
+ var propName = pProps[i];
+
+ if (prevProps[propName] !== nextProps[propName]) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/button/index.json b/node_modules/mini-ali-ui/es/button/index.json
new file mode 100755
index 0000000..034f5a5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/button/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "loading": "../loading/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/calendar/index.acss b/node_modules/mini-ali-ui/es/calendar/index.acss
new file mode 100755
index 0000000..189fd79
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/calendar/index.acss
@@ -0,0 +1 @@
+.am-calendar{background-color:#fff;background-color:var(--am-calendar-bgc,#fff);padding-top:12px;padding-top:var(--am-calendar-paddingT,12px);line-height:normal}.am-calendar-months{display:flex;box-sizing:border-box;padding:0 24px;padding:0 var(--am-calendar-month-paddingLR,24px);align-items:center}.am-calendar-next-month,.am-calendar-prev-month{display:flex;width:40px;width:var(--am-calendar-btn-size,40px)}.am-calendar-prev-month{justify-content:flex-start}.am-calendar-next-month{justify-content:flex-end}.am-calendar-arrow{font-size:22px;font-size:var(--am-calendar-arrow-size,22px);color:#1677ff}.am-calendar-arrow_year{width:22px;width:var(--am-calendar-arrow-size,22px);height:22px;height:var(--am-calendar-arrow-size,22px);overflow:hidden;background:url('https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*ePblSrxUeT4AAAAAAAAAAABkARQnAQ') no-repeat center;background-size:68% 82%;transform:rotate(-180deg)}.am-calendar-next-month_disable .am-calendar-arrow,.am-calendar-prev-month_disable .am-calendar-arrow{color:#ccc}.am-calendar-next-year_disable .am-calendar-arrow_year,.am-calendar-prev-year_disable .am-calendar-arrow_year{background-image:url('https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*UDjqR635HO0AAAAAAAAAAABkARQnAQ')}.am-calendar-arrow.next{transform:rotate(0)}.am-calendar-selected-month{flex:1;text-align:center;font-size:18px;font-size:var(--am-calendar-month-fontSize,18px);font-weight:700;color:#333;color:var(--am-calendar-month-color,#333)}.am-calendar-days{position:relative;display:flex;padding:12px;box-sizing:border-box}.am-calendar-days::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-calendar-day{flex:1;text-align:center;font-size:15px;font-size:var(--am-calendar-day-fontSize,15px);color:#333;color:var(--am-calendar-day-color,#333);font-weight:700}.am-calendar-dates{display:flex;flex-direction:column}.am-calendar-week{margin-bottom:12px;margin-bottom:var(--am-calendar-week-marginTB,12px);display:flex;flex-direction:row;padding:0 12px;padding:0 var(--am-calendar-week-paddingLR,12px)}.am-calendar-week:first-child{margin-top:12px;margin-top:var(--am-calendar-week-marginTB,12px)}.am-calendar-date-wrap{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;height:44px;height:var(--am-calendar-date-height,44px);flex:1}.am-calendar-date{text-align:center;line-height:1;font-size:18px;font-size:var(--am-calendar-date-fontSize,18px);color:#333;color:var(--am-calendar-date-color,#333)}.am-calendar-tag{position:absolute;bottom:2px;width:100%;overflow:hidden;text-overflow:hidden;line-height:1;white-space:nowrap;font-size:11px;font-size:var(--am-calendar-tag-fontSize,11px);font-weight:700;color:#ff6010;color:var(--am-calendar-tag-color,#ff6010)}.am-calendar-today{font-weight:700;color:#1677ff;color:var(--am-calendar-today-color,#1677ff)}.am-calendar-block{position:absolute;top:0;right:0;bottom:0;left:0}.am-calendar-selected .am-calendar-block{background:#1677ff;background:var(--am-calendar-selected-bgc,#1677ff);border-radius:4px;border-radius:var(--am-calendar-selected-corner,4px)}.am-calendar-middle.is-range .am-calendar-block{background:#1677ff;background:var(--am-calendar-selected-bgc,#1677ff);border-radius:0}.am-calendar-start.is-range .am-calendar-block{background:#1677ff;background:var(--am-calendar-selected-bgc,#1677ff);border-radius:4px 0 0 4px;border-radius:var(--am-calendar-selected-corner,4px) 0 0 var(--am-calendar-selected-corner,4px)}.am-calendar-end.is-range .am-calendar-block{background:#1677ff;background:var(--am-calendar-selected-bgc,#1677ff);border-radius:0 4px 4px 0;border-radius:0 var(--am-calendar-selected-corner,4px) var(--am-calendar-selected-corner,4px) 0}.am-calendar-end .am-calendar-date,.am-calendar-middle .am-calendar-date,.am-calendar-selected .am-calendar-date,.am-calendar-start .am-calendar-date{position:relative;font-weight:700;color:#fff;color:var(--am-calendar-selected-color,#fff)}.am-calendar-end .am-calendar-tag,.am-calendar-middle .am-calendar-tag,.am-calendar-selected .am-calendar-tag,.am-calendar-start .am-calendar-tag{font-weight:700;color:#fff;color:var(--am-calendar-selected-color,#fff)}.am-calendar-disable .am-calendar-date,.am-calendar-gray{color:#ccc;color:var(--am-calendar-outer-color,#ccc)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/calendar/index.axml b/node_modules/mini-ali-ui/es/calendar/index.axml
new file mode 100755
index 0000000..674c6be
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/calendar/index.axml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+ {{selectedYear}}年{{selectedMonth + 1}}月
+
+
+
+
+
+
+
+
+
+ {{item}}
+
+
+
+
+
+
+
+
+ {{item.date}}
+ {{item.disable ? '' : item.tag}}
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/calendar/index.js b/node_modules/mini-ali-ui/es/calendar/index.js
new file mode 100755
index 0000000..7ee1664
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/calendar/index.js
@@ -0,0 +1,501 @@
+/* eslint-disable complexity, no-param-reassign */
+
+/* eslint max-depth: [2, 7] */
+var leapYear = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+var commonYear = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+var FIRST_MONTH = 0;
+var LAST_MONTH = 11;
+var DAYS_PER_ROW = 7;
+var COLOR_MAP = {
+ 1: '#ff6010',
+ 2: '#00b578',
+ 3: '#ff8f1f',
+ 4: '#1677ff',
+ 5: '#999'
+}; // 获取某月第某天是星期几
+
+function getDay(month, year, index) {
+ return new Date(year, month, index).getDay();
+} // 获取某月有几天
+
+
+function getMonthLength(month, year) {
+ if (year % 400 === 0 || year % 100 !== 0 && year % 4 === 0) {
+ return leapYear[month];
+ } else {
+ return commonYear[month];
+ }
+} // 数字补位 1 -> 01
+
+
+function prefixNum(num) {
+ if (num < 10) {
+ return "0" + num;
+ } else {
+ return "" + num;
+ }
+}
+
+Component({
+ data: {
+ selectedYear: 0,
+ selectedMonth: 0,
+ currentDate: null,
+ dates: [],
+ blockType: 1 // 1.没有待办纯数字 2.有待办 用于区分不同类型日期块的样式。
+
+ },
+ props: {
+ className: '',
+ tagData: [],
+ type: 'single',
+ haveYear: false,
+ prevMonthDisable: false,
+ prevYearDisable: false,
+ nextvMonthDisable: false,
+ nextYearDisable: false
+ },
+ didMount: function didMount() {
+ this.tapTimes = 1;
+ var date = new Date();
+ date.setHours(0);
+ date.setMinutes(0);
+ date.setSeconds(0);
+ date.setMilliseconds(0);
+ var year = date.getFullYear();
+ var month = date.getMonth();
+ this.setData({
+ selectedYear: year,
+ selectedMonth: month,
+ currentDate: date
+ });
+ this.refreshdates(month, year);
+ },
+ didUpdate: function didUpdate() {
+ var dates = this.data.dates;
+ var blockType = 1;
+
+ for (var i = 0; i < dates.length; i++) {
+ for (var j = 0; j < dates[i].length; j++) {
+ if (this.hasTag(dates[i][j])) {
+ blockType = 2;
+ }
+ }
+ }
+
+ this.setData({
+ dates: dates,
+ blockType: blockType
+ });
+ },
+ methods: {
+ onPrevYearTap: function onPrevYearTap() {
+ var _this$data = this.data,
+ selectedMonth = _this$data.selectedMonth,
+ selectedYear = _this$data.selectedYear;
+ var prevYearDisable = this.props.prevYearDisable;
+
+ if (!prevYearDisable) {
+ var year = selectedYear;
+ var month = selectedMonth;
+ year = selectedYear - 1;
+
+ if (this.props.onYearChange) {
+ this.props.onYearChange(year, selectedYear);
+ }
+
+ this.setData({
+ selectedYear: year
+ });
+ this.refreshdates(month, year);
+ }
+ },
+ onNextYearTap: function onNextYearTap() {
+ var _this$data2 = this.data,
+ selectedMonth = _this$data2.selectedMonth,
+ selectedYear = _this$data2.selectedYear;
+ var nextYearDisable = this.props.nextYearDisable;
+
+ if (!nextYearDisable) {
+ var year = selectedYear;
+ var month = selectedMonth;
+ year = selectedYear + 1;
+
+ if (this.props.onYearChange) {
+ this.props.onYearChange(year, selectedYear);
+ }
+
+ this.setData({
+ selectedYear: year
+ });
+ this.refreshdates(month, year);
+ }
+ },
+ onPrevMonthTap: function onPrevMonthTap() {
+ var _this$data3 = this.data,
+ selectedMonth = _this$data3.selectedMonth,
+ selectedYear = _this$data3.selectedYear;
+ var prevMonthDisable = this.props.prevMonthDisable;
+
+ if (!prevMonthDisable) {
+ var year = selectedYear;
+ var month = selectedMonth; // 如果当前选中是一月份,前一月是去年的12月
+
+ if (selectedMonth === FIRST_MONTH) {
+ year = selectedYear - 1;
+ month = LAST_MONTH;
+ } else {
+ month = selectedMonth - 1;
+ }
+
+ if (this.props.onMonthChange) {
+ this.props.onMonthChange(month, selectedMonth);
+ }
+
+ this.setData({
+ selectedYear: year,
+ selectedMonth: month
+ });
+ this.refreshdates(month, year);
+ }
+ },
+ onNextMonthTap: function onNextMonthTap() {
+ var _this$data4 = this.data,
+ selectedMonth = _this$data4.selectedMonth,
+ selectedYear = _this$data4.selectedYear;
+ var nextvMonthDisable = this.props.nextvMonthDisable;
+
+ if (!nextvMonthDisable) {
+ var year = selectedYear;
+ var month = selectedMonth; // 如果当前选中是十二月份,下一月是去年的12月
+
+ if (selectedMonth === LAST_MONTH) {
+ year = selectedYear + 1;
+ month = FIRST_MONTH;
+ } else {
+ month = selectedMonth + 1;
+ }
+
+ if (this.props.onMonthChange) {
+ this.props.onMonthChange(month, selectedMonth);
+ }
+
+ this.setData({
+ selectedYear: year,
+ selectedMonth: month
+ });
+ this.refreshdates(month, year);
+ }
+ },
+ refreshdates: function refreshdates(month, year) {
+ this.tapTimes = 1;
+ var _this$data5 = this.data,
+ selectedYear = _this$data5.selectedYear,
+ selectedMonth = _this$data5.selectedMonth,
+ currentDate = _this$data5.currentDate;
+ var firstDay = getDay(month, year, 1);
+ var days = getMonthLength(month, year);
+ var datesArray = [];
+ var currentDateTimeStamp = +currentDate;
+ var num = 0;
+
+ for (var i = 0; i < firstDay; i++) {
+ num += 1; // 如果当前选中的是一月份,前一个月是去年的12月
+
+ var _year = selectedYear;
+ var _month = selectedMonth;
+
+ if (selectedMonth === 0) {
+ _year = selectedYear - 1;
+ _month = LAST_MONTH;
+ } else {
+ _year = selectedYear;
+ _month = selectedMonth - 1;
+ }
+
+ var date = getMonthLength(_month, _year) - i;
+ datesArray.unshift({
+ year: _year,
+ month: _month,
+ date: date,
+ isToday: false,
+ isGray: true,
+ isSelected: false,
+ tag: ''
+ });
+ }
+
+ for (var _i = 0; _i < days; _i++) {
+ num += 1;
+
+ var _date = _i + 1;
+
+ var dateTimeStamp = +new Date(selectedYear, selectedMonth, _date);
+ datesArray.push({
+ year: selectedYear,
+ month: selectedMonth,
+ date: _date,
+ isToday: dateTimeStamp === currentDateTimeStamp,
+ isGray: false,
+ isSelected: dateTimeStamp === currentDateTimeStamp,
+ tag: ''
+ });
+ }
+
+ var nextDate = 0;
+ var daysPerPage = 35;
+
+ if (num > 35) {
+ daysPerPage = 42;
+ }
+
+ for (var _i2 = 0; _i2 < daysPerPage - days - firstDay; _i2++) {
+ // 如果是12月,下月是第二年的1月份
+ nextDate += 1;
+ var _year2 = selectedYear;
+ var _month2 = selectedMonth;
+
+ if (selectedMonth === LAST_MONTH) {
+ _year2 = selectedYear + 1;
+ _month2 = FIRST_MONTH;
+ } else {
+ _year2 = selectedYear;
+ _month2 = selectedMonth + 1;
+ }
+
+ datesArray.push({
+ year: _year2,
+ month: _month2,
+ date: nextDate,
+ isToday: false,
+ isGray: true,
+ isSelected: false,
+ tag: ''
+ });
+ }
+
+ var blockType = 1;
+
+ for (var _i3 = 0; _i3 < datesArray.length; _i3++) {
+ if (this.hasTag(datesArray[_i3])) {
+ blockType = 2;
+ }
+ }
+
+ var dates = [];
+ var weekDates = [];
+
+ for (var _i4 = 0; _i4 < datesArray.length; _i4++) {
+ weekDates.push(datesArray[_i4]);
+
+ if ((_i4 + 1) % DAYS_PER_ROW === 0) {
+ dates.push([].concat(weekDates));
+ weekDates = [];
+ }
+ }
+
+ this.setData({
+ dates: dates,
+ blockType: blockType
+ });
+ },
+ hasTag: function hasTag(dateObj) {
+ var tagData = this.props.tagData; // 去重由调用者处理
+
+ if (tagData.length === 0) {
+ dateObj.tag = '';
+ return false;
+ }
+
+ return tagData.some(function (item) {
+ var dateArr = item.date.split('-');
+ var dateStr = []; // 兼容ios下new Date('2018-1-1')格式返回invalid Date的问题
+
+ for (var i = 0; i < dateArr.length; i++) {
+ dateStr.push(dateArr[i].length > 1 ? dateArr[i] : "0" + dateArr[i]);
+ }
+
+ var date = new Date(dateStr.join('-'));
+
+ if (dateObj.year === date.getFullYear() && dateObj.month === date.getMonth() && dateObj.date === date.getDate()) {
+ dateObj.tag = item.tag;
+ dateObj.color = COLOR_MAP[item.tagColor];
+ dateObj.disable = item.disable;
+ return true;
+ } else {
+ dateObj.tag = '';
+ return false;
+ }
+ });
+ },
+ getDateGap: function getDateGap(day1, day2) {
+ var date1 = +new Date(day1.year, prefixNum(day1.month), prefixNum(day1.date));
+ var date2 = +new Date(day2.year, prefixNum(day2.month), prefixNum(day2.date));
+ return (date1 - date2) / (24 * 3600 * 1000);
+ },
+ makeDate: function makeDate(dateObj) {
+ return new Date(dateObj.year + "-" + prefixNum(dateObj.month + 1) + "-" + prefixNum(dateObj.date));
+ },
+ onDateTap: function onDateTap(event) {
+ var dates = this.data.dates;
+ var _event$currentTarget$ = event.currentTarget.dataset,
+ year = _event$currentTarget$.year,
+ month = _event$currentTarget$.month,
+ date = _event$currentTarget$.date;
+ var type = this.props.type;
+
+ if (type === 'range') {
+ if (this.tapTimes % 2 === 0) {
+ this.tapTimes += 1;
+ this.endDate = {
+ year: year,
+ month: month,
+ date: date
+ };
+ var dateGap = this.getDateGap(this.startDate, this.endDate);
+
+ if (dateGap > 0) {
+ var _ref = [this.endDate, this.startDate];
+ this.startDate = _ref[0];
+ this.endDate = _ref[1];
+ }
+
+ var hasDisable = false;
+
+ for (var i = 0; i < dates.length; i++) {
+ for (var j = 0; j < dates[i].length; j++) {
+ var dateObj = dates[i][j];
+ dateObj.isStart = false;
+ dateObj.isMiddle = false;
+ dateObj.isEnd = false;
+ var startDateGap = this.getDateGap(dateObj, this.startDate);
+ var endDateGap = this.getDateGap(dateObj, this.endDate);
+
+ if (dateObj.year === year && dateObj.month === month && dateObj.date === date && dateObj.disable) {
+ hasDisable = true;
+ }
+
+ if (startDateGap > 0 && endDateGap < 0) {
+ if (dateObj.disable) {
+ hasDisable = true;
+ }
+
+ if (dateGap !== 0) {
+ if (j === 0) {
+ dateObj.isStart = true;
+ } else if (j === 6) {
+ dateObj.isEnd = true;
+ } else {
+ dateObj.isMiddle = true;
+ }
+ } else {
+ dateObj.isSelected = true;
+ }
+ }
+
+ if (this.startDate.year === dateObj.year && this.startDate.month === dateObj.month && this.startDate.date === dateObj.date && dateGap !== 0) {
+ if (j === 6) {
+ dateObj.isSelected = true;
+ } else {
+ dateObj.isStart = true;
+ }
+ }
+
+ if (this.endDate.year === dateObj.year && this.endDate.month === dateObj.month && this.endDate.date === dateObj.date && dateGap !== 0) {
+ if (j === 0) {
+ dateObj.isSelected = true;
+ } else {
+ dateObj.isEnd = true;
+ }
+ }
+ }
+ }
+
+ if (hasDisable) {
+ this.props.onSelectHasDisableDate([this.makeDate(this.startDate), this.makeDate(this.endDate)]);
+ return;
+ }
+
+ if (this.props.onSelect) {
+ this.props.onSelect([this.makeDate(this.startDate), this.makeDate(this.endDate)]);
+ }
+ } else {
+ var isDisable = false;
+
+ for (var _i5 = 0; _i5 < dates.length; _i5++) {
+ for (var _j = 0; _j < dates[_i5].length; _j++) {
+ var _dateObj = dates[_i5][_j];
+
+ if (_dateObj.year === year && _dateObj.month === month && _dateObj.date === date) {
+ if (_dateObj.disable) {
+ // console.log(1111);
+ isDisable = true;
+ _dateObj.isSelected = false;
+ } else {
+ _dateObj.isSelected = true;
+ }
+
+ _dateObj.isStart = false;
+ _dateObj.isMiddle = false;
+ _dateObj.isEnd = false;
+ } else {
+ _dateObj.isSelected = false;
+ _dateObj.isStart = false;
+ _dateObj.isMiddle = false;
+ _dateObj.isEnd = false;
+ }
+ }
+ }
+
+ if (!isDisable) {
+ this.tapTimes += 1;
+ }
+
+ this.startDate = {
+ year: year,
+ month: month,
+ date: date
+ };
+ }
+
+ this.setData({
+ dates: dates
+ });
+ } else {
+ var _isDisable = false;
+
+ for (var _i6 = 0; _i6 < dates.length; _i6++) {
+ for (var _j2 = 0; _j2 < dates[_i6].length; _j2++) {
+ var _dateObj2 = dates[_i6][_j2];
+
+ if (_dateObj2.year === year && _dateObj2.month === month && _dateObj2.date === date) {
+ _dateObj2.isSelected = true;
+
+ if (_dateObj2.disable) {
+ _isDisable = true;
+ }
+ } else {
+ _dateObj2.isSelected = false;
+ }
+ }
+ }
+
+ if (_isDisable) {
+ return;
+ }
+
+ this.setData({
+ dates: dates
+ });
+
+ if (this.props.onSelect) {
+ this.props.onSelect([this.makeDate({
+ year: year,
+ month: month,
+ date: date
+ }), undefined]);
+ }
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/calendar/index.json b/node_modules/mini-ali-ui/es/calendar/index.json
new file mode 100755
index 0000000..c923371
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/calendar/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/card/index.acss b/node_modules/mini-ali-ui/es/card/index.acss
new file mode 100755
index 0000000..246ebd7
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/card/index.acss
@@ -0,0 +1 @@
+.am-card{position:relative;display:flex;border-radius:8px;border-radius:var(--am-card-border-radius,8px);margin:6px 10px;align-items:center;flex-direction:column;background-color:transparent;background-size:100%;min-height:85px}.am-card-container{width:100%;display:flex;flex-direction:column;position:relative}.am-card-container-expanded{position:absolute;top:0;left:0;height:100%}.am-card-outter-container{padding-top:0}.am-card-outter-container-expanded{position:relative;width:100%;z-index:0;height:0;padding-top:60%}.am-card-body{display:flex;align-items:center;width:100%;padding:19px 12px;padding:19px var(--am-card-padding,12px);border-radius:8px;border-radius:var(--am-card-border-radius,8px);min-height:85px;box-sizing:border-box;background-color:#929292;background-repeat:no-repeat;z-index:2;position:relative;background-size:100%}.am-card-bg-mask{position:absolute;top:0;left:0;border-radius:8px;border-radius:var(--am-card-border-radius,8px);width:100%;height:100%;background:#656464;background:linear-gradient(to bottom,rgba(0,0,0,.4) 0,rgba(252,252,252,0) 60px,rgba(244,244,244,0) 100%)}.am-card-body-expand{align-items:flex-start;background-color:transparent;height:100%}.am-card-content-wrapper{display:flex;width:100%;align-items:center}.am-card-content{flex:1;min-width:100px;z-index:1}.am-card-title{font-size:18px;font-size:var(--am-card-title-size,18px);line-height:25px;color:#fff;color:var(--am-card-title-color,#fff)}.am-card-subtitle{margin-top:2px}.am-card-subtitle-text{font-size:13px;line-height:1.5;color:#fff;color:var(--am-card-subtitle-colo,#fff);background:#0003;border-radius:3px;padding:1px 6px}.am-card-thumb{margin-right:12px;margin-right:var(--am-card-padding,12px);width:48px;height:48px;border-radius:50vh;border-radius:var(--am-card-thumb-border-radius,50vh);border-width:2px;border-width:var(--am-card-thumb-border-width,2px);border-color:#fff;border-color:var(--am-card-thumb-border-color,#fff);border-style:solid}.am-card-arrow{width:13px;height:13px}.am-card-footer{display:flex;width:100%;align-items:center;justify-content:space-around;font-size:14px;line-height:20px;color:#333;color:var(--am-card-action-color,#333);background:#fff;background:var(--am-card-footer-color,#fff);box-sizing:border-box;padding:12px;padding:var(--am-card-padding,12px);border-radius:0 0 8px 8px;border-radius:0 0 var(--am-card-border-radius,8px) var(--am-card-border-radius,8px);border-top:8px solid #fff;border-top:var(--am-card-border-radius,8px) solid var(--am-card-footer-color,#fff);margin-top:-8px;margin-top:calc(var(--am-card-border-radius,8px) * -1);z-index:1}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/card/index.axml b/node_modules/mini-ali-ui/es/card/index.axml
new file mode 100755
index 0000000..e69481c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/card/index.axml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+ {{title}}
+
+ {{subTitle}}
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/card/index.js b/node_modules/mini-ali-ui/es/card/index.js
new file mode 100755
index 0000000..4b387df
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/card/index.js
@@ -0,0 +1,39 @@
+Component({
+ props: {
+ title: '',
+ onCardClick: function onCardClick() {},
+ info: ''
+ },
+ methods: {
+ onCardClick: function onCardClick() {
+ var _this$props = this.props,
+ info = _this$props.info,
+ onCardClick = _this$props.onCardClick;
+ onCardClick({
+ info: info
+ });
+ },
+ onActionClick: function onActionClick() {
+ var _this$props2 = this.props,
+ info = _this$props2.info,
+ onActionClick = _this$props2.onActionClick;
+
+ if (onActionClick) {
+ onActionClick({
+ info: info
+ });
+ }
+ },
+ onExtraActionClick: function onExtraActionClick() {
+ var _this$props3 = this.props,
+ info = _this$props3.info,
+ onExtraActionClick = _this$props3.onExtraActionClick;
+
+ if (onExtraActionClick) {
+ onExtraActionClick({
+ info: info
+ });
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/card/index.json b/node_modules/mini-ali-ui/es/card/index.json
new file mode 100755
index 0000000..42b6471
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/card/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/collapse/collapse-item/index.acss b/node_modules/mini-ali-ui/es/collapse/collapse-item/index.acss
new file mode 100755
index 0000000..35d5874
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/collapse/collapse-item/index.acss
@@ -0,0 +1 @@
+.am-collapse-item{background-color:#fff;background-color:var(--am-collapse-bgc,#fff)}.am-collapse-item-title-container{position:relative;display:flex;text-align:justify;align-items:center;justify-content:space-between;width:100%;color:#333;color:var(--am-collapse-title-fontSize,#333);font-size:17px;font-size:var(--am-collapse-title-fontSize,17px);transition:all .3s ease-in-out}.am-collapse-item-title{position:relative;padding:12px 0;padding:var(--am-collapse-title-paddingTB,12px) 0;margin:0 12px;margin:0 var(--am-collapse-title-marginLR,12px)}.am-collapse-item-title::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-collapse-item-title-arrow{font-size:18px;font-size:var(--am-collapse-arrow-size,18px);color:#ccc;color:var(--am-collapse-arrow-color,#ccc)}.am-collapse-item--disabled .am-collapse-item-title{opacity:.4;opacity:var(--am-collapse-disabled,.4)}.am-collapse-item-title-text-wrapper{padding-right:12px;padding-right:var(--am-collapse-title-arrow-spacing,12px)}.am-collapse-item-content-wrapper{overflow-y:hidden;box-sizing:border-box;will-change:max-height;transition:max-height .3s ease-in-out}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/collapse/collapse-item/index.axml b/node_modules/mini-ali-ui/es/collapse/collapse-item/index.axml
new file mode 100755
index 0000000..6f7388a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/collapse/collapse-item/index.axml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ {{header}}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/collapse/collapse-item/index.js b/node_modules/mini-ali-ui/es/collapse/collapse-item/index.js
new file mode 100755
index 0000000..21a4ab1
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/collapse/collapse-item/index.js
@@ -0,0 +1,130 @@
+function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
+
+var noop = function noop() {};
+
+function collectArr(arr, ele) {
+ var resArr = arr;
+
+ if (arr instanceof Array) {
+ resArr.push(ele);
+ } else {
+ resArr = [ele];
+ }
+
+ return resArr;
+}
+
+var prefixKey = function prefixKey(prefix) {
+ return function (key) {
+ return prefix + "-" + key;
+ };
+};
+
+var collapsePrefix = prefixKey('am-collapse');
+Component({
+ data: {
+ isActive: false,
+ contentHeight: 0,
+ contentId: '',
+ id: '',
+ activeKey: []
+ },
+ props: {
+ itemKey: '',
+ // 默认随机数
+ header: '',
+ isOpen: false,
+ showArrow: true,
+ activeClass: '',
+ className: '',
+ titleClass: '',
+ contentClass: '',
+ defaultContentHeight: 0,
+ disabled: false,
+ collapseKey: ''
+ },
+ didMount: function didMount() {
+ this.initItems();
+ },
+ methods: {
+ initItems: function initItems() {
+ var _this$props = this.props,
+ itemKey = _this$props.itemKey,
+ isOpen = _this$props.isOpen,
+ defaultContentHeight = _this$props.defaultContentHeight,
+ collapseKey = _this$props.collapseKey;
+ this.setData({
+ isActive: isOpen,
+ contentHeight: defaultContentHeight,
+ contentId: this.$id,
+ id: itemKey || this.$id
+ });
+ this.updateStyle({
+ isActive: isOpen
+ });
+ var bindedMethod = this.handleItemDataUpdate.bind(this);
+ this.$page[collapsePrefix("updates-" + collapseKey)] = collectArr(this.$page[collapsePrefix("updates-" + collapseKey)], bindedMethod);
+ this.$page[collapsePrefix("ids-" + collapseKey)] = collectArr(this.$page[collapsePrefix("ids-" + collapseKey)], this.data.id);
+ },
+ handleItemDataUpdate: function handleItemDataUpdate(data) {
+ this.setData(_extends({}, data));
+ var _this$data = this.data,
+ activeKey = _this$data.activeKey,
+ id = _this$data.id;
+ var isActive = activeKey.indexOf(id) !== -1;
+ this.setData({
+ isActive: isActive
+ });
+ this.updateStyle({
+ isActive: isActive
+ });
+ },
+ onCollapseTap: function onCollapseTap(evt) {
+ var collapseKey = this.props.collapseKey;
+
+ if (!this.props.disabled) {
+ var dataset = evt.currentTarget.dataset;
+ this.$page[collapsePrefix("handleItemTap-" + collapseKey)](dataset.key);
+ }
+ },
+ updateStyle: function updateStyle(_ref) {
+ var _this = this;
+
+ var isActive = _ref.isActive,
+ _ref$callback = _ref.callback,
+ callback = _ref$callback === void 0 ? noop : _ref$callback;
+
+ if (!isActive) {
+ this.setData({
+ isActive: isActive,
+ contentHeight: 0
+ });
+ callback();
+ } else {
+ this.calcContentHeight(".am-collapse-item-content." + ("am-collapse-item-content-" + this.$id)).then(function (height) {
+ _this.setData({
+ isActive: isActive,
+ contentHeight: height
+ });
+
+ callback();
+ });
+ }
+ },
+ calcContentHeight: function calcContentHeight(selector) {
+ if (selector === void 0) {
+ selector = '';
+ }
+
+ return new Promise(function (resolve, reject) {
+ my.createSelectorQuery().select(selector).boundingClientRect().exec(function (res) {
+ if (res && res[0]) {
+ resolve(res[0].height);
+ } else {
+ reject(res);
+ }
+ });
+ });
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/collapse/collapse-item/index.json b/node_modules/mini-ali-ui/es/collapse/collapse-item/index.json
new file mode 100755
index 0000000..fe1780c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/collapse/collapse-item/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/collapse/index.axml b/node_modules/mini-ali-ui/es/collapse/index.axml
new file mode 100755
index 0000000..2ace855
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/collapse/index.axml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/collapse/index.js b/node_modules/mini-ali-ui/es/collapse/index.js
new file mode 100755
index 0000000..27aa9df
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/collapse/index.js
@@ -0,0 +1,92 @@
+var noop = function noop() {};
+
+var prefixKey = function prefixKey(prefix) {
+ return function (key) {
+ return prefix + "-" + key;
+ };
+};
+
+var collapsePrefix = prefixKey('am-collapse');
+Component({
+ data: {
+ id: '',
+ activeArr: []
+ },
+ props: {
+ activeKey: [],
+ accordion: false,
+ onChange: noop,
+ openAnimation: {},
+ collapseKey: '',
+ className: ''
+ },
+ didMount: function didMount() {
+ this.initData();
+ },
+ didUnmount: function didUnmount() {
+ // clear cache in page when didUnmount
+ delete this.$page[collapsePrefix("ids-" + this.props.collapseKey)];
+ delete this.$page[collapsePrefix("updates-" + this.props.collapseKey)];
+ },
+ methods: {
+ initData: function initData() {
+ var _this$props = this.props,
+ accordion = _this$props.accordion,
+ activeKey = _this$props.activeKey,
+ collapseKey = _this$props.collapseKey;
+ var activeArr = [];
+ this.$page[collapsePrefix("handleItemTap-" + collapseKey)] = this.handleItemTap.bind(this);
+
+ if (accordion) {
+ if (typeof activeKey === 'string') {
+ activeArr = [activeKey];
+ } else {
+ activeArr = [this.$page[collapsePrefix("ids-" + collapseKey)] && this.$page[collapsePrefix("ids-" + collapseKey)][0]];
+ }
+ } else if (typeof activeKey === 'string') {
+ activeArr = [activeKey];
+ } else if (activeKey instanceof Array) {
+ activeArr = activeKey;
+ }
+
+ this.updateItems(activeArr);
+ },
+ handleItemTap: function handleItemTap(key) {
+ var activeArr = this.data.activeArr;
+
+ if (this.props.accordion) {
+ if (activeArr.indexOf(key) === -1) {
+ this.updateItems([key]);
+ } else {
+ this.updateItems([]);
+ }
+ } else {
+ var index = activeArr.indexOf(key);
+
+ if (index !== -1) {
+ activeArr.splice(index, 1);
+ } else {
+ activeArr.push(key);
+ }
+
+ this.updateItems(activeArr);
+ }
+ },
+ updateItems: function updateItems(activeArr) {
+ var _this = this;
+
+ var collapseKey = this.props.collapseKey;
+ this.setData({
+ activeArr: activeArr
+ });
+ this.props.onChange(activeArr);
+ this.$page[collapsePrefix("updates-" + collapseKey)].forEach(function (update) {
+ if (typeof update === 'function') {
+ update({
+ activeKey: _this.data.activeArr
+ });
+ }
+ });
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/collapse/index.json b/node_modules/mini-ali-ui/es/collapse/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/collapse/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/container/index.acss b/node_modules/mini-ali-ui/es/container/index.acss
new file mode 100755
index 0000000..349cd82
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/container/index.acss
@@ -0,0 +1 @@
+.am-container{box-sizing:border-box;width:100%;border-radius:8px;border-radius:var(--am-container-corner-radius,8px);padding:12px 0;padding:var(--am-container-padding-v,12px) 0;background:#fff;background:var(--am-container-background,#fff)}.am-container-content-box{padding:0 12px;padding:0 var(--am-container-padding-h,12px)}.am-container-content{display:flex;flex-wrap:wrap}.am-container-content>:nth-child(1n+1){flex-grow:1;width:0;margin-left:8px;margin-left:var(--am-container-padding-item,8px);border-radius:4px;border-radius:var(--am-container-item-corner-radius,4px)}.am-container-content>:nth-child(1){margin-left:0}.am-container .am-container-content .am-container{flex:0 0 100%;margin-top:12px;margin-top:var(--am-container-padding-h,12px);margin-left:0;padding:0}.am-container-content-grid{display:flex}.am-container-content-grid>:nth-child(1){width:216px;border-radius:4px;border-radius:var(--am-container-item-corner-radius,4px)}.am-container-content-grid-sub{display:flex;box-sizing:border-box;flex-direction:column;padding-left:8px;padding-left:var(--am-container-padding-item,8px);flex-grow:1}.am-container-content-grid-sub>:nth-child(1n+1){flex-grow:1;margin-top:8px;margin-top:var(--am-container-padding-item,8px);border-radius:4px;border-radius:var(--am-container-item-corner-radius,4px)}.am-container-content-grid-sub>:nth-child(1){margin-top:0}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/container/index.axml b/node_modules/mini-ali-ui/es/container/index.axml
new file mode 100755
index 0000000..e52bbf5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/container/index.axml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/container/index.js b/node_modules/mini-ali-ui/es/container/index.js
new file mode 100755
index 0000000..224e1a3
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/container/index.js
@@ -0,0 +1,12 @@
+Component({
+ mixins: [],
+ data: {},
+ props: {
+ className: '',
+ type: 'line'
+ },
+ didMount: function didMount() {},
+ didUpdate: function didUpdate() {},
+ didUnmount: function didUnmount() {},
+ methods: {}
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/container/index.json b/node_modules/mini-ali-ui/es/container/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/container/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/coupon/index.acss b/node_modules/mini-ali-ui/es/coupon/index.acss
new file mode 100755
index 0000000..5366c92
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/coupon/index.acss
@@ -0,0 +1 @@
+.am-coupon{position:relative;margin:8px 12px;background:0 0}.am-coupon-container{width:100%;height:100%;display:flex;align-items:stretch;border-radius:8px;border-radius:var(--am-coupon-border-radius,8px)}.am-coupon-thumb{position:relative;z-index:2;display:flex;justify-content:space-around;width:80px;padding:20px 0 20px 20px;background:#fff;background:var(--am-coupon-background-color,#fff);border-top-left-radius:8px;border-top-left-radius:var(--am-coupon-border-radius,8px);border-bottom-left-radius:8px;border-bottom-left-radius:var(--am-coupon-border-radius,8px);box-sizing:border-box}.am-coupon-thumb-image{width:36px;height:36px;border-radius:50vh;border-radius:var(--am-coupon-thumb-border-radius,50vh)}.am-coupon-divider{width:12.5px;background:0 0;display:flex;flex-direction:column}.am-coupon-divider-upper-hole{height:12.5px;margin-top:-8px;background:0 0;border-radius:50vh;box-shadow:0 17px 0 10px #fff;box-shadow:0 17px 0 10px var(--am-coupon-background-color,#fff)}.am-coupon-divider-middle-blank{flex-grow:1;display:flex;justify-content:space-around;z-index:1;background:#fff;background:var(--am-coupon-background-color,#fff)}.am-coupon-divider-dashed-line{width:0}.am-coupon-divider-lower-hole{background:0 0;height:12.5px;margin-bottom:-8px;border-radius:50vh;box-shadow:0 -17px 0 10px #fff;box-shadow:0 -17px 0 10px var(--am-coupon-background-color,#fff)}.am-coupon-content{flex:1;display:flex;flex-wrap:wrap;padding:20px 12px;padding:var(--am-coupon-content-spacingTB,20px) var(--am-coupon-content-spacingLR,12px);background:#fff;border-top-right-radius:8px;border-bottom-right-radius:8px}.am-coupon-content-text{position:relative;z-index:2;flex-grow:1;justify-content:space-around;align-self:center}.am-coupon-content-text-title{font-weight:700;font-size:18px;font-size:var(--am-coupon-title-size,18px);color:#333;color:var(--am-coupon-title-color,#333)}.am-coupon-content-text-subtitle{margin-top:8px;margin-top:var(--am-coupon-subTitle-marginTop,8px);font-size:13px;font-size:var(--am-coupon-subtitle-size,13px);color:#999;color:var(--am-coupon-subtitle-color,#999)}.am-coupon-content-action{position:relative;z-index:2;display:flex;align-items:center}.am-coupon-content-action .am-checkbox{margin-right:8px}.am-coupon-content-action-slot{display:flex}.am-coupon-content-detail{display:flex;flex:1 1 100%;flex-wrap:wrap;justify-content:space-around;padding-top:20px;padding-top:var(--am-coupon-content-spacingTB,20px);margin-bottom:-12px;font-size:11px;font-size:var(--am-coupon-detail-size,11px);color:#999;color:var(--am-coupon-detail-color,#999)}.am-coupon-content-detail-date{flex:1;white-space:nowrap;align-self:center;margin-top:-2px}.am-coupon-content-detail-option{flex:1;text-align:right;align-self:center}.am-coupon-content-detail-option__arrow{margin-left:2px;margin-top:4px;vertical-align:-2px;font-size:15px;font-size:var(--am-coupon-detail-arrow-size,15px);color:#ccc;color:var(--am-coupon-detail-arrow-color,#ccc)}.am-coupon-content-detail-more{width:100%;padding:4px 0}.am-coupon-content-no-extra{padding-left:20px;padding-left:var(--am-coupon-no-extra-spacingL,20px);border-radius:8px}.am-coupon-content-no-extra-text{margin-left:0}.am-coupon-content-no-extra .am-coupon-content-detail-more{padding-right:80px;padding-right:var(--am-coupon-no-extra-detail-padding,80px)}.am-coupon-used-tag{position:absolute;top:0;right:0;width:68px;height:68px;background:url('https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*y-ZxR79ovioAAAAAAAAAAABkARQnAQ') no-repeat 0 0;background-size:cover;z-index:1}.am-coupon-used .am-coupon-thumb-image{opacity:.4}.am-coupon-used .am-coupon-content-text-title{color:#999}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/coupon/index.axml b/node_modules/mini-ali-ui/es/coupon/index.axml
new file mode 100755
index 0000000..25e1801
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/coupon/index.axml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/coupon/index.js b/node_modules/mini-ali-ui/es/coupon/index.js
new file mode 100755
index 0000000..565ac16
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/coupon/index.js
@@ -0,0 +1,25 @@
+Component({
+ props: {
+ title: '',
+ used: false,
+ onCouponClick: function onCouponClick() {},
+ // 票券的扩展类型
+ extra: true,
+ moreBtn: '规则详情',
+ moreHide: true
+ },
+ methods: {
+ onCouponClick: function onCouponClick(e) {
+ var onCouponClick = this.props.onCouponClick;
+ onCouponClick(e);
+ },
+ catchActionTap: function catchActionTap() {},
+ changeMoreState: function changeMoreState() {
+ var moreHide = this.props.moreHide;
+ this.props.moreHide = !moreHide;
+ this.setData({
+ moreHide: !moreHide
+ });
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/coupon/index.json b/node_modules/mini-ali-ui/es/coupon/index.json
new file mode 100755
index 0000000..42b6471
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/coupon/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/filter/filter-item/index.acss b/node_modules/mini-ali-ui/es/filter/filter-item/index.acss
new file mode 100755
index 0000000..4d28d7e
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/filter/filter-item/index.acss
@@ -0,0 +1 @@
+.am-filter-item-wrap{padding-right:12px;padding-right:var(--am-filter-padding,12px);padding-top:12px;padding-top:var(--am-filter-padding,12px);min-width:33.3%;max-width:50%;overflow:hidden;float:left;display:list-item;box-sizing:border-box}.am-filter-item{padding:8px;padding:var(--am-filter-internal-padding,8px);background:#f5f5f5;background:var(--am-filter-background,#f5f5f5);border-radius:4px;border-radius:var(--am-filter-corner-radius,4px);text-align:center;box-sizing:border-box}.am-filter-item-title{font-size:15px;font-size:var(--am-filter-title-size,15px);color:#333;color:var(--am-filter-title-color,#333)}.am-filter-item-subtitle{font-size:13px;font-size:var(--am-filter-subtitle-size,13px);color:#999;color:var(--am-filter-subtitle-color,#999)}.am-filter-click{color:#1677ff;color:var(--am-filter-title-pick-color,#1677ff);background:#e7f1ff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAfCAYAAAH8T49dAAAAAXNSR0IArs4c6QAAA7JJREFUWAnNV1tIlEEU/lYrzRClaHdd14jMlEwKBEGolwKhnqIICiKE6ikKhMRdk1ikwCx86KECoYKgsIuVUBT4FBQEUm9dpB4iKrSLouWau+7pnP2d/S/+e/fSPOxczne++ebM+WdngFSKs4XIhJMBKdFBl4/61MAspHJzqIbUjBrlqig2aHTLmUHQUIe0tBJDqgFr7fZRY4RwLS7QOIU4m4BrA+SeCOKbYpWpXT6tFwVavRVw7muZyaTNOoWSYgtyn6K6SBgvlVM0mKojNW/WWwWoLdMsJpDQ88ZWiUkA1w9poNh0av4aD3DnCBCaBmrOzoCqA7TsexB/ta79b4zJ3pzaaGmAvKEgPmdF5vTRUxAa1JRpk3He5HPeBBWBsU6ZjFV0sopmo7O1nZSMdyXMTrlWR9nCx8eA4XF9l5ZYQdLnxDjA+35T2eQTGJkAqtq1PFAk6rNQOJMyVwv95ENhpTIaa8mX/hNmJUa7tB2lrbSFE+q11bCofQ6N37TMTNUw0QDHuDZrMo7zJMc5T4RkTMbJW8zJO2JcjekoMBoStd1+2mUlEnzaZByfG5EIHtlNltYy+Wv4wiSccfYlJbJAgHIuBcHHW+KSdJneNqqIR/QhAPQe1SdISMbxaZoKYVCH6y0hKswHfA/1sbjLZKIXnIj1OlRvKaJtXcDgsD5uq4wTcUIRbS4F5NSoLtGc4hGJ1aSs8hwVjvzCmD6X1np/GiguAMYntaVZFSl8TJmrlXbYEQmwsh0Y5fNMYhSPSHBRZRyfbl4W/7tlVxwcn0/8oa7JjkbzNsVsLgiz4fB20fLQEK7y4vb/F8KcfqpHBL28KLda2KIJ23ebcp+9wnnOoSYlxlgvuDCPn6rCEfSxiAqjEGt7wYTxfb05AnTwxSf2+VrFGPvzKqwsQJ6pIO5zMtcZJ02lPS/C+P/roMMBOYP4uMqszJmwdS1U9Bu4xTJ2pirFUwRs3wA8eQP8+GP2ylqYx0cNYUIP0xabqeP35B7cc1g7/gX1/COwp9uMz0jY+ouUN/YVVziRG810iXtWQXJB38uCjH+5iiEtYSU+qp0mPGBnryJQtZ+fOuWrgQv9wLshNarV6QhSnkmFyR3q8iTOcCL7lZO1LlgKDPiAVSs0i7w6JBL5/E4xblmiCFk54wora6PyqTD6WNBGq1O8vrxc7vJdQO4ixpKOIOU3SxjfEI7zg7+L88f2XaYcE9WbWGDnboBPeJzkf0C7HErkL7aoMFeAnBTEPe5vTeawUPZ/WGpTpu45f4MAAAAASUVORK5CYII=) right bottom no-repeat;background:var(--am-filter-pick-background,#e7f1ff) url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAfCAYAAAH8T49dAAAAAXNSR0IArs4c6QAAA7JJREFUWAnNV1tIlEEU/lYrzRClaHdd14jMlEwKBEGolwKhnqIICiKE6ikKhMRdk1ikwCx86KECoYKgsIuVUBT4FBQEUm9dpB4iKrSLouWau+7pnP2d/S/+e/fSPOxczne++ebM+WdngFSKs4XIhJMBKdFBl4/61MAspHJzqIbUjBrlqig2aHTLmUHQUIe0tBJDqgFr7fZRY4RwLS7QOIU4m4BrA+SeCOKbYpWpXT6tFwVavRVw7muZyaTNOoWSYgtyn6K6SBgvlVM0mKojNW/WWwWoLdMsJpDQ88ZWiUkA1w9poNh0av4aD3DnCBCaBmrOzoCqA7TsexB/ta79b4zJ3pzaaGmAvKEgPmdF5vTRUxAa1JRpk3He5HPeBBWBsU6ZjFV0sopmo7O1nZSMdyXMTrlWR9nCx8eA4XF9l5ZYQdLnxDjA+35T2eQTGJkAqtq1PFAk6rNQOJMyVwv95ENhpTIaa8mX/hNmJUa7tB2lrbSFE+q11bCofQ6N37TMTNUw0QDHuDZrMo7zJMc5T4RkTMbJW8zJO2JcjekoMBoStd1+2mUlEnzaZByfG5EIHtlNltYy+Wv4wiSccfYlJbJAgHIuBcHHW+KSdJneNqqIR/QhAPQe1SdISMbxaZoKYVCH6y0hKswHfA/1sbjLZKIXnIj1OlRvKaJtXcDgsD5uq4wTcUIRbS4F5NSoLtGc4hGJ1aSs8hwVjvzCmD6X1np/GiguAMYntaVZFSl8TJmrlXbYEQmwsh0Y5fNMYhSPSHBRZRyfbl4W/7tlVxwcn0/8oa7JjkbzNsVsLgiz4fB20fLQEK7y4vb/F8KcfqpHBL28KLda2KIJ23ebcp+9wnnOoSYlxlgvuDCPn6rCEfSxiAqjEGt7wYTxfb05AnTwxSf2+VrFGPvzKqwsQJ6pIO5zMtcZJ02lPS/C+P/roMMBOYP4uMqszJmwdS1U9Bu4xTJ2pirFUwRs3wA8eQP8+GP2ylqYx0cNYUIP0xabqeP35B7cc1g7/gX1/COwp9uMz0jY+ouUN/YVVziRG810iXtWQXJB38uCjH+5iiEtYSU+qp0mPGBnryJQtZ+fOuWrgQv9wLshNarV6QhSnkmFyR3q8iTOcCL7lZO1LlgKDPiAVSs0i7w6JBL5/E4xblmiCFk54wora6PyqTD6WNBGq1O8vrxc7vJdQO4ixpKOIOU3SxjfEI7zg7+L88f2XaYcE9WbWGDnboBPeJzkf0C7HErkL7aoMFeAnBTEPe5vTeawUPZ/WGpTpu45f4MAAAAASUVORK5CYII=) right bottom no-repeat;background-size:19px 15px}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/filter/filter-item/index.axml b/node_modules/mini-ali-ui/es/filter/filter-item/index.axml
new file mode 100755
index 0000000..6082223
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/filter/filter-item/index.axml
@@ -0,0 +1,6 @@
+
+
+ {{value}}
+ {{subtitle}}
+
+
diff --git a/node_modules/mini-ali-ui/es/filter/filter-item/index.js b/node_modules/mini-ali-ui/es/filter/filter-item/index.js
new file mode 100755
index 0000000..6bbacbe
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/filter/filter-item/index.js
@@ -0,0 +1,110 @@
+import lifecycle from '../mixins/lifecycle';
+Component({
+ mixins: [lifecycle],
+ data: {
+ confirmStyle: ''
+ },
+ props: {
+ className: '',
+ item: '',
+ id: '',
+ value: '',
+ selected: false,
+ subtitle: '',
+ onChange: function onChange() {}
+ },
+ didMount: function didMount() {
+ var _this$data = this.data,
+ results = _this$data.results,
+ items = _this$data.items;
+ var _this$props = this.props,
+ selected = _this$props.selected,
+ id = _this$props.id,
+ value = _this$props.value;
+
+ if (selected) {
+ results.push({
+ id: id,
+ value: value
+ });
+ items.push({
+ id: id,
+ value: value,
+ setData: this.setData
+ });
+ this.setData({
+ confirmStyle: true
+ });
+ }
+ },
+ methods: {
+ handleClick: function handleClick() {
+ var _this$props2 = this.props,
+ id = _this$props2.id,
+ value = _this$props2.value,
+ onChange = _this$props2.onChange;
+ var confirmStyle = this.data.confirmStyle;
+ var _this$data2 = this.data,
+ results = _this$data2.results,
+ items = _this$data2.items,
+ commonProps = _this$data2.commonProps;
+
+ if (commonProps.max === 1) {
+ if (confirmStyle === '') {
+ items.forEach(function (element) {
+ element.setData({
+ confirmStyle: ''
+ });
+ });
+ results.splice(0, results.length);
+ confirmStyle = true;
+ results.push({
+ id: id,
+ value: value
+ });
+ items.push({
+ id: id,
+ value: value,
+ setData: this.setData
+ });
+ onChange(results);
+ }
+
+ this.setData({
+ confirmStyle: confirmStyle
+ });
+ return;
+ }
+
+ if (confirmStyle === '' && results.length < commonProps.max) {
+ confirmStyle = true;
+ results.push({
+ id: id,
+ value: value
+ });
+ items.push({
+ id: id,
+ value: value,
+ setData: this.setData
+ });
+ } else {
+ confirmStyle = '';
+ results.some(function (key, index) {
+ if (JSON.stringify(key) === JSON.stringify({
+ id: id,
+ value: value
+ })) {
+ results.splice(index, 1);
+ return true;
+ } else {
+ return false;
+ }
+ });
+ }
+
+ this.setData({
+ confirmStyle: confirmStyle
+ });
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/filter/filter-item/index.json b/node_modules/mini-ali-ui/es/filter/filter-item/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/filter/filter-item/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/filter/index.acss b/node_modules/mini-ali-ui/es/filter/index.acss
new file mode 100755
index 0000000..59b5d7b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/filter/index.acss
@@ -0,0 +1 @@
+.am-filter-show{height:100vh;display:block;position:relative}.am-filter-hide{display:none}.am-filter-document,.am-filter-mask{position:absolute;top:0;left:0;right:0}.am-filter-mask{bottom:0;background:rgba(0,0,0,.65)}.am-filter-content{background:#fff;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:scroll}.am-filter-list{flex:1;padding-left:12px;padding-left:var(--am-filter-padding,12px);padding-bottom:12px;padding-bottom:var(--am-filter-padding,12px);overflow-x:hidden;overflow-y:scroll;max-height:415px;box-sizing:border-box}.am-filter-btn{width:100%;display:flex}.am-filter-default,.am-filter-primary{flex:1;height:48px;font-size:18px;box-sizing:border-box;width:50%;border:0;border-radius:0}.am-filter-default{border-top:1px solid #eee;border-right:none}.am-filter-child-2>.am-filter-item-wrap{width:50%}.am-filter-child-3>.am-filter-item-wrap{width:33.3%}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/filter/index.axml b/node_modules/mini-ali-ui/es/filter/index.axml
new file mode 100755
index 0000000..69f34b6
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/filter/index.axml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/filter/index.js b/node_modules/mini-ali-ui/es/filter/index.js
new file mode 100755
index 0000000..fb31f92
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/filter/index.js
@@ -0,0 +1,41 @@
+import lifecycle from './mixins/lifecycle';
+Component({
+ mixins: [lifecycle],
+ data: {
+ maxHeight: 0
+ },
+ props: {
+ className: '',
+ onChange: function onChange() {},
+ max: 10000,
+ equalRows: 0
+ },
+ didMount: function didMount() {
+ var commonProps = this.data.commonProps;
+ var max = this.props.max;
+ commonProps.max = max;
+ },
+ methods: {
+ resetFn: function resetFn() {
+ var _this$data = this.data,
+ items = _this$data.items,
+ results = _this$data.results;
+ items.forEach(function (element) {
+ element.setData({
+ confirmStyle: ''
+ });
+ });
+ results.splice(0, results.length);
+ },
+ confirmFn: function confirmFn() {
+ var onChange = this.props.onChange;
+ var results = this.data.results;
+ onChange(results);
+ },
+ maskTap: function maskTap() {
+ if (this.props.onMaskTap) {
+ this.props.onMaskTap();
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/filter/index.json b/node_modules/mini-ali-ui/es/filter/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/filter/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/filter/mixins/lifecycle.js b/node_modules/mini-ali-ui/es/filter/mixins/lifecycle.js
new file mode 100755
index 0000000..cc8f5ac
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/filter/mixins/lifecycle.js
@@ -0,0 +1,16 @@
+export default {
+ data: {
+ results: [],
+ items: [],
+ commonProps: {
+ max: 10000
+ }
+ },
+ didUnmount: function didUnmount() {
+ var _this$data = this.data,
+ items = _this$data.items,
+ results = _this$data.results;
+ results.splice(0, results.length);
+ items.splice(0, items.length);
+ }
+};
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/flex/flex-item/index.acss b/node_modules/mini-ali-ui/es/flex/flex-item/index.acss
new file mode 100755
index 0000000..86b6578
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/flex/flex-item/index.acss
@@ -0,0 +1 @@
+.am-flexbox-item{box-sizing:border-box;flex:1;min-width:10px;margin-left:8px}.am-flexbox-item:first-child{margin-left:0}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/flex/flex-item/index.axml b/node_modules/mini-ali-ui/es/flex/flex-item/index.axml
new file mode 100755
index 0000000..d294fb5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/flex/flex-item/index.axml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/flex/flex-item/index.js b/node_modules/mini-ali-ui/es/flex/flex-item/index.js
new file mode 100755
index 0000000..df2bc90
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/flex/flex-item/index.js
@@ -0,0 +1 @@
+Component({});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/flex/flex-item/index.json b/node_modules/mini-ali-ui/es/flex/flex-item/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/flex/flex-item/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/flex/index.acss b/node_modules/mini-ali-ui/es/flex/index.acss
new file mode 100755
index 0000000..b23de5a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/flex/index.acss
@@ -0,0 +1 @@
+.am-flexbox{display:flex}.am-flexbox-dir-row{flex-direction:row}.am-flexbox-dir-row-reverse{flex-direction:row-reverse}.am-flexbox-dir-column{flex-direction:column}.am-flexbox-dir-column-reverse{flex-direction:column-reverse}.am-flexbox-nowrap{flex-wrap:nowrap}.am-flexbox-wrap{flex-wrap:wrap}.am-flexbox-wrap-reverse{flex-wrap:wrap-reverse}.am-flexbox-justify-start{justify-content:flex-start}.am-flexbox-justify-center{justify-content:center}.am-flexbox-justify-end{justify-content:flex-end}.am-flexbox-justify-between{justify-content:space-between}.am-flexbox-justify-around{justify-content:space-around}.am-flexbox-align-start{align-items:flex-start}.am-flexbox-align-end{align-items:flex-end}.am-flexbox-align-center{align-items:center}.am-flexbox-align-stretch{align-items:stretch}.am-flexbox-align-baseline{align-items:baseline}.am-flexbox-align-content-start{align-content:flex-start}.am-flexbox-align-content-end{align-content:flex-end}.am-flexbox-align-content-center{align-content:center}.am-flexbox-align-content-between{align-content:space-between}.am-flexbox-align-content-around{align-content:space-around}.am-flexbox-align-content-stretch{align-content:stretch}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/flex/index.axml b/node_modules/mini-ali-ui/es/flex/index.axml
new file mode 100755
index 0000000..94d1d06
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/flex/index.axml
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/flex/index.js b/node_modules/mini-ali-ui/es/flex/index.js
new file mode 100755
index 0000000..f66f96c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/flex/index.js
@@ -0,0 +1,10 @@
+Component({
+ props: {
+ className: '',
+ direction: 'row',
+ wrap: 'nowrap',
+ justify: 'start',
+ align: 'center',
+ alignContent: 'stretch'
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/flex/index.json b/node_modules/mini-ali-ui/es/flex/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/flex/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/flex/index.sjs b/node_modules/mini-ali-ui/es/flex/index.sjs
new file mode 100755
index 0000000..d062b11
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/flex/index.sjs
@@ -0,0 +1,64 @@
+export default function classnames(dir, wrap, justify, align, alignContent) {
+ const prefixCls = 'am-flexbox';
+ const classes = [];
+
+ const dirMaps = {
+ row: `${prefixCls}-dir-row`,
+ 'row-reverse': `${prefixCls}-dir-row-reverse`,
+ column: `${prefixCls}-dir-column`,
+ 'column-reverse': `${prefixCls}-dir-column-reverse`,
+ };
+
+ const wrapMaps = {
+ nowrap: `${prefixCls}-nowrap`,
+ wrap: `${prefixCls}-wrap`,
+ 'wrap-reverse': `${prefixCls}-wrap-reverse`,
+ };
+
+ const justifyMaps = {
+ start: `${prefixCls}-justify-start`,
+ end: `${prefixCls}-justify-end`,
+ center: `${prefixCls}-justify-center`,
+ between: `${prefixCls}-justify-between`,
+ around: `${prefixCls}-justify-around`,
+ };
+
+ const alignMaps = {
+ start: `${prefixCls}-align-start`,
+ center: `${prefixCls}-align-center`,
+ end: `${prefixCls}-align-end`,
+ baseline: `${prefixCls}-align-baseline`,
+ stretch: `${prefixCls}-align-stretch`,
+ };
+
+ const alignContentMaps = {
+ start: `${prefixCls}-align-content-start`,
+ end: `${prefixCls}-align-content-end`,
+ center: `${prefixCls}-align-content-center`,
+ between: `${prefixCls}-align-content-between`,
+ around: `${prefixCls}-align-content-around`,
+ stretch: `${prefixCls}-align-content-stretch`,
+ };
+
+ if (dirMaps[dir]) {
+ classes.push(dirMaps[dir]);
+ }
+
+ if (wrapMaps[wrap]) {
+ classes.push(wrapMaps[wrap]);
+ }
+
+ if (justifyMaps[justify]) {
+ classes.push(justifyMaps[justify]);
+ }
+
+ if (alignMaps[align]) {
+ classes.push(alignMaps[align]);
+ }
+
+ if (alignContentMaps[alignContent]) {
+ classes.push(alignContentMaps[alignContent]);
+ }
+
+ return classes.join(' ');
+}
diff --git a/node_modules/mini-ali-ui/es/footer/index.acss b/node_modules/mini-ali-ui/es/footer/index.acss
new file mode 100755
index 0000000..ab81da1
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/footer/index.acss
@@ -0,0 +1 @@
+.am-footer{display:flex;flex-direction:column;align-items:center}.am-footer-content{display:flex;flex-direction:column;align-items:center;flex-wrap:wrap;font-size:13px;font-size:var(--am-footer-content-fontSize,13px);color:#ccc;color:var(--am-footer-content-color,#ccc)}.am-footer-end{width:100%;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;padding:0 12px;padding:0 var(--am-footer-divider-paddingLR,12px);font-size:13px;font-size:var(--am-footer-content-fontSize,13px);color:#ccc;color:var(--am-footer-content-color,#ccc);box-sizing:border-box}.am-footer-end__divider{position:relative;flex:1 1 auto;height:2px;box-sizing:border-box}.am-footer-end__divider::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-footer-end__text{white-space:nowrap;padding:20px 12px;padding:var(--am-footer-divider-content-paddingTB,20px) var(--am-footer-divider-content-paddingLR,12px)}.am-footer-extend{display:flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:wrap}.am-footer-link{margin-bottom:8px;margin-bottom:var(--am-footer-link-marginBottom,8px);font-size:15px;font-size:var(--am-footer-link-fontSize,15px);color:#1677ff;color:var(--am-footer-link-color,#1677ff)}.am-footer-link__line{width:1px;height:12px;height:var(--am-footer-link-lineSize,12px);overflow:hidden;margin:0 12px 8px;margin:0 var(--am-footer-link-lineMarginLR,12px) var(--am-footer-link-lineMarginB,8px);font-size:0;background-color:#eee;background-color:var(--am-footer-link-lineColor,#eee)}.am-footer-link__hover{opacity:.6}.am-footer-guide{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;padding:4px 12px;padding:var(--am-footer-guide-paddingTB,4px) var(--am-footer-guide-paddingLR,12px);margin-right:12px;margin-right:var(--am-footer-guide-marginRight,12px);margin-top:12px;margin-top:var(--am-footer-guide-marginTop,12px);font-size:12px;font-size:var(--am-footer-guide-fontSize,12px);border-radius:50vh;border-radius:var(--am-footer-guide-borderRadius,50vh);background-color:#f5f5f5;background-color:var(--am-footer-guide-bgc,#f5f5f5)}.am-footer-guide:last-child{margin-right:0}.am-footer-guide__text{color:#999;color:var(--am-footer-guide-color,#999)}.am-footer-guide__hover{filter:brightness(.9)}.am-footer-guide__hover .am-footer-guide__text{opacity:.3}.am-footer-brand{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;justify-content:center}.am-footer-brand-logo{margin-right:12px;margin-right:var(--am-footer-brand-marginRight,12px);margin-bottom:8px;margin-bottom:var(--am-footer-brand-marginBottom,8px)}.am-footer-brand-logo:last-child{margin-right:0}.am-footer-brand-logo:active{filter:brightness(.9)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/footer/index.axml b/node_modules/mini-ali-ui/es/footer/index.axml
new file mode 100755
index 0000000..1dd24ce
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/footer/index.axml
@@ -0,0 +1,47 @@
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/footer/index.js b/node_modules/mini-ali-ui/es/footer/index.js
new file mode 100755
index 0000000..dba99ab
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/footer/index.js
@@ -0,0 +1,41 @@
+import fmtUnit from '../_util/fmtUnit';
+Component({
+ props: {
+ className: '',
+ // normal: 基础样式;
+ // guide:文案加引导;
+ // copyright:声明;
+ // brand:带品牌;
+ // link:带链接
+ // end: 没有更多
+ type: 'normal',
+ content: '',
+ extend: [],
+ onBrandTap: function onBrandTap() {},
+ showEndIcon: false,
+ iconName: 'selected'
+ },
+ data: {
+ defaultSize: fmtUnit(18),
+ maxSize: fmtUnit(22),
+ valueUnit: fmtUnit('px')
+ },
+ methods: {
+ onBrandClick: function onBrandClick(e) {
+ var brandLink = e.currentTarget.dataset.url;
+ var _this$props = this.props,
+ onBrandTap = _this$props.onBrandTap,
+ extend = _this$props.extend;
+
+ if (onBrandTap !== '' && brandLink) {
+ my.navigateTo({
+ url: brandLink
+ });
+ }
+
+ if (onBrandTap !== '' && !brandLink && typeof onBrandTap === 'function') {
+ onBrandTap(extend[e.currentTarget.dataset.index]);
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/footer/index.json b/node_modules/mini-ali-ui/es/footer/index.json
new file mode 100755
index 0000000..717cce8
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/footer/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/grid/index.acss b/node_modules/mini-ali-ui/es/grid/index.acss
new file mode 100755
index 0000000..9af00ec
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/grid/index.acss
@@ -0,0 +1 @@
+.am-grid{display:flex;flex-direction:row;flex-wrap:wrap;padding:12px 12px 0;padding:var(--am-grid-paddingTop,12px) var(--am-grid-paddingLeft,12px) 0;background-color:#fff;background-color:var(--am-grid-bgc,#fff);box-sizing:border-box}.am-grid-3{padding:0}.am-grid-4{padding:12px 6px 0;padding:var(--am-grid-paddingTop,12px) calc(var(--am-grid-paddingLeft,12px)/ 2) 0}.am-grid-5{flex-wrap:nowrap;padding-right:4px;padding-right:var(--am-grid-5-paddingRight,4px)}.am-grid-5__overHide{overflow:hidden;padding-right:0}.am-grid-5__overHide :nth-child(5){padding-right:4px;padding-right:var(--am-grid-5-paddingRight,4px)}.am-grid-scroll{background-color:#fff;background-color:var(--am-grid-bgc,#fff)}.am-grid-item{display:flex;overflow:hidden;margin-bottom:12px;margin-bottom:var(--am-grid-item-marginBottom,12px);box-sizing:border-box}.am-grid-item-wrapper{flex:1;display:flex;align-items:center;flex-direction:column;box-sizing:border-box}.am-grid-item-wrapper-2{flex-direction:row}.am-grid-item-wrapper-5{margin-right:8px;margin-right:var(--am-grid-item5-marginRight,8px)}.am-grid-item__hover{opacity:.6}.am-grid-item-2{flex:0 0 50%}.am-grid-item-2:nth-child(odd){padding-right:12px;padding-right:var(--am-grid-item2-marginRight,12px)}.am-grid-item-2:nth-child(even){padding-left:12px;padding-left:var(--am-grid-item2-marginRight,12px)}.am-grid-item-3{position:relative;flex:0 0 33.33%;margin-bottom:0;padding:12px;padding:var(--am-grid-item3-padding,12px);text-align:center}.am-grid-item-3::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-grid-item-3::before{content:'';position:absolute;background-color:#eee;display:block;top:0;right:auto;bottom:0;left:0;width:1px;transform:scaleX(.5)}.am-grid-item-3:nth-child(3n-2)::before,.am-grid-item-3_noBorder::after{display:none}.am-grid-item-4{flex:0 0 25%;padding:0 6px;padding:0 calc(var(--am-grid-item4-marginRight,12px)/ 2)}.am-grid-item-5{flex:0 0 18.5%}.am-grid-5__overHide .am-grid-item-5{flex:0 0 20%}.am-grid-no-line .am-grid-item-3::after,.am-grid-no-line .am-grid-item-3::before{display:none}.am-grid-icon{background-position:center;background-size:cover;background-repeat:no-repeat}.am-grid-icon-2{width:28px;width:var(--am-grid-icon2-size,28px);height:28px;height:var(--am-grid-icon2-size,28px);margin-right:12px;margin-right:var(--am-grid-icon2-marginRight,12px)}.am-grid-icon-3{width:36px;width:var(--am-grid-icon3-size,36px);height:36px;height:var(--am-grid-icon3-size,36px);margin-bottom:12px;margin-bottom:var(--am-grid-icon3-marginBottom,12px)}.am-grid-icon-4{width:44px;width:var(--am-grid-icon4-size,44px);height:44px;height:var(--am-grid-icon4-size,44px);margin-bottom:8px;margin-bottom:var(--am-grid-icon4-marginBottom,8px)}.am-grid-icon-circular{border-radius:50vh;border-radius:var(--am-grid-icon4-radius,50vh)}.am-grid-icon-5{width:28px;width:var(--am-grid-icon5-size,28px);height:28px;height:var(--am-grid-icon5-size,28px);line-height:28px;line-height:var(--am-grid-icon5-size,28px);margin-bottom:8px;margin-bottom:var(--am-grid-icon5-marginBottom,8px)}.am-grid-text{width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all;color:#333;color:var(--am-grid-text-color,#333)}.am-grid-text-wrapper{flex:1;display:flex;flex-direction:column;max-width:100%}.am-grid-text-2{height:24px;height:var(--am-grid-text2-height,24px);line-height:24px;line-height:var(--am-grid-text2-height,24px);font-size:17px;font-size:var(--am-grid-text2-fontSize,17px)}.am-grid-text-3{height:20px;height:var(--am-grid-text3-height,20px);line-height:20px;line-height:var(--am-grid-text3-height,20px);font-size:15px;font-size:var(--am-grid-text3-fontSize,15px)}.am-grid-text-4,.am-grid-text-5{height:20px;height:var(--am-grid-text45-height,20px);line-height:20px;line-height:var(--am-grid-text45-height,20px);font-size:13px;font-size:var(--am-grid-text45-fontSize,13px)}.am-grid-desc{height:17px;height:var(--am-grid-desc-height,17px);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all;line-height:17px;line-height:var(--am-grid-desc-height,17px);font-size:12px;font-size:var(--am-grid-desc-fontSize,12px);color:#999;color:var(--am-grid-desc-color,#999)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/grid/index.axml b/node_modules/mini-ali-ui/es/grid/index.axml
new file mode 100755
index 0000000..d0ecd62
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/grid/index.axml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+ {{item.text}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.text}}
+ {{item.desc}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/grid/index.js b/node_modules/mini-ali-ui/es/grid/index.js
new file mode 100755
index 0000000..0a1762a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/grid/index.js
@@ -0,0 +1,59 @@
+import fmtUnit from '../_util/fmtUnit';
+Component({
+ data: {
+ getColumnBorderIndex: 0
+ },
+ props: {
+ columnNum: 3,
+ circular: false,
+ list: [],
+ onGridItemClick: function onGridItemClick() {},
+ hasLine: true,
+ infinite: false,
+ infiniteHeight: fmtUnit('90px'),
+ gridName: ''
+ },
+ didMount: function didMount() {
+ this.clearBorder();
+ this.createGridName();
+ },
+ didUpdate: function didUpdate() {
+ this.clearBorder();
+ this.createGridName();
+ },
+ methods: {
+ onGridItemClick: function onGridItemClick(e) {
+ this.props.onGridItemClick({
+ detail: {
+ index: e.target.dataset.index
+ }
+ });
+ },
+ clearBorder: function clearBorder() {
+ var _this$props = this.props,
+ list = _this$props.list,
+ columnNum = _this$props.columnNum;
+
+ if (columnNum === 3) {
+ var rows = list.length % columnNum;
+ this.setData({
+ getColumnBorderIndex: rows === 0 ? 3 : rows
+ });
+ }
+ },
+ createGridName: function createGridName() {
+ var _this$props2 = this.props,
+ infinite = _this$props2.infinite,
+ gridName = _this$props2.gridName;
+
+ if (infinite) {
+ if (gridName === '' && !gridName) {
+ this.props.gridName = "grid" + Math.floor(Math.random() * 100000);
+ this.setData({
+ gridName: this.props.gridName
+ });
+ }
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/grid/index.json b/node_modules/mini-ali-ui/es/grid/index.json
new file mode 100755
index 0000000..67758f1
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/grid/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "pagination": "../pagination/index",
+ "am-icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/guide/index.acss b/node_modules/mini-ali-ui/es/guide/index.acss
new file mode 100755
index 0000000..f2e51e5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/guide/index.acss
@@ -0,0 +1 @@
+.am-button-ghost{--am-button-ghost-border-color:#fff;--am-button-ghost-color:#fff}.am-guide{position:fixed;top:0;left:0;right:0;bottom:0}.am-guide-content{position:relative;z-index:2;width:100vw;height:100vh;overflow:hidden;padding-bottom:104px;box-sizing:border-box}.am-guide-content-pager{padding-bottom:130px}.am-guide-img{position:absolute;z-index:2}.am-guide-btn{position:absolute;bottom:60px;left:0;right:0;display:flex;justify-content:center;z-index:5}.am-guide-btn-item{margin-right:12px}.am-guide-btn-item:last-child{margin-right:0}.am-guide-pager{position:absolute;bottom:98px;left:0;right:0;z-index:5}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/guide/index.axml b/node_modules/mini-ali-ui/es/guide/index.axml
new file mode 100755
index 0000000..d4fd5f1
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/guide/index.axml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/guide/index.js b/node_modules/mini-ali-ui/es/guide/index.js
new file mode 100755
index 0000000..5a70765
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/guide/index.js
@@ -0,0 +1,69 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ btn_next: '下一步',
+ btn_jump: '跳过',
+ btn_over: '知道了',
+ hasJump: false,
+ show: false,
+ guideList: [],
+ onGuideOver: function onGuideOver() {},
+ maskClick: false
+ },
+ data: {
+ guideNumber: 1,
+ guideCurrent: 1,
+ guideLast: 1,
+ showGuideList: []
+ },
+ didMount: function didMount() {
+ var guideList = this.props.guideList;
+ this.setData({
+ guideNumber: guideList.length,
+ guideCurrent: guideList.length,
+ showGuideList: guideList[this.data.guideNumber - this.data.guideCurrent]
+ });
+ },
+ didUpdate: function didUpdate() {
+ var guideList = this.props.guideList;
+
+ if (this.data.guideCurrent - 1 >= 0) {
+ this.setData({
+ guideCurrent: this.data.guideCurrent,
+ showGuideList: guideList[this.data.guideNumber - this.data.guideCurrent]
+ });
+ }
+ },
+ methods: {
+ onBtnClick: function onBtnClick() {
+ if (this.data.guideCurrent > this.data.guideLast) {
+ this.setData({
+ guideCurrent: this.data.guideCurrent - 1
+ });
+ } else {
+ this.props.show = false;
+ }
+ },
+ onGuideClick: function onGuideClick(e) {
+ this.props.show = false;
+ var onGuideOver = this.props.onGuideOver;
+
+ if (onGuideOver !== '' && typeof onGuideOver === 'function') {
+ var event = fmtEvent(this.props, e);
+ onGuideOver(event);
+ }
+ },
+ onMaskTap: function onMaskTap(e) {
+ var maskClick = this.props.maskClick;
+ var event = fmtEvent(this.props, e);
+
+ if (maskClick === true) {
+ if (this.data.guideCurrent > this.data.guideLast) {
+ this.onBtnClick();
+ } else {
+ this.onGuideClick(event);
+ }
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/guide/index.json b/node_modules/mini-ali-ui/es/guide/index.json
new file mode 100755
index 0000000..fae455c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/guide/index.json
@@ -0,0 +1,8 @@
+{
+ "component": true,
+ "usingComponents": {
+ "pagination": "../pagination/index",
+ "mask": "../mask/index",
+ "button": "../button/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/input-item/index.acss b/node_modules/mini-ali-ui/es/input-item/index.acss
new file mode 100755
index 0000000..7b9fb9b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/input-item/index.acss
@@ -0,0 +1 @@
+.am-input-item{display:flex;align-items:center;background:#fff;background:var(--am-input-item-background,#fff);padding-left:12px;padding-left:var(--am-input-item-padding-left,12px)}.am-input-item-extra{margin-left:12px;margin-left:var(--am-input-item-padding-left,12px)}.am-input-line{position:relative;flex:1;display:flex;align-items:center;padding-right:12px;padding-right:var(--am-input-line-padding-right,12px);min-height:48px;min-height:var(--am-input-line-min-height,48px);overflow:hidden}.am-input-label{align-self:center;min-width:80px;min-width:var(--am-input-label-min-width,80px);margin-right:2px;font-size:17px;font-size:var(--am-input-label-font-size,17px);color:#333;color:var(--am-input-item-label-color,#333)}.am-input-layer{display:flex;flex:1}.am-input-layer-vertical{flex-direction:column;padding:12px 0;padding:var(--am-input-vlabel-paddingTB,12px) 0}.am-input-layer-vertical .am-input-label{align-self:flex-start;font-size:15px;font-size:var(--am-input-vlabel-font-size,15px);color:#999;color:var(--am-input-vlabel-color,#999)}.am-input-layer-vertical .a-input-placeholder{margin-left:-3px}.am-input-content{flex:1;display:flex;padding:0;font-size:17px;font-size:var(--am-input-font-size,17px);text-align:left;color:#333;color:var(--am-input-item-color,#333)}.am-input-content .a-input-wrap{flex:1}.am-input-clear{display:flex;height:22px;height:var(--am-input-icon-size,22px);width:22px;width:var(--am-input-icon-size,22px);justify-content:center;align-items:center}.am-input-clear-icon{line-height:1;line-height:var(--am-input-icon-line-height,1)}.am-input-clear.show{visibility:visible}.am-input-clear.hidden{visibility:hidden;pointer-events:none}.am-input-line-bottom::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-input-item.last .am-input-line-bottom::after{display:none}.am-input-placeholder-base{color:#ccc;color:var(--am-input-item-placeholder-color,#ccc)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/input-item/index.axml b/node_modules/mini-ali-ui/es/input-item/index.axml
new file mode 100755
index 0000000..15aef4a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/input-item/index.axml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/input-item/index.js b/node_modules/mini-ali-ui/es/input-item/index.js
new file mode 100755
index 0000000..6364590
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/input-item/index.js
@@ -0,0 +1,68 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ className: '',
+ labelCls: '',
+ inputCls: '',
+ last: false,
+ value: '',
+ name: '',
+ type: 'text',
+ password: false,
+ placeholder: '',
+ placeholderClass: '',
+ placeholderStyle: '',
+ disabled: false,
+ maxlength: 140,
+ focus: false,
+ clear: true,
+ // 默认有清除功能
+ syncInput: false,
+ enableNative: false,
+ // 兼容安卓input的输入bug
+ onInput: function onInput() {},
+ onConfirm: function onConfirm() {},
+ onFocus: function onFocus() {},
+ onBlur: function onBlur() {},
+ onClear: function onClear() {},
+ layer: '',
+ // 表单排列位置,当为空时默认横向排列, vertical 为竖向排列
+ controlled: false
+ },
+ data: {
+ _focus: false
+ },
+ didMount: function didMount() {
+ this.setData({
+ _focus: this.props.focus
+ });
+ },
+ methods: {
+ onBlur: function onBlur(e) {
+ this.setData({
+ _focus: false
+ });
+ var event = fmtEvent(this.props, e);
+ this.props.onBlur(event);
+ },
+ onConfirm: function onConfirm(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onConfirm(event);
+ },
+ onFocus: function onFocus(e) {
+ this.setData({
+ _focus: true
+ });
+ var event = fmtEvent(this.props, e);
+ this.props.onFocus(event);
+ },
+ onInput: function onInput(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onInput(event);
+ },
+ onClear: function onClear(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onClear(event);
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/input-item/index.json b/node_modules/mini-ali-ui/es/input-item/index.json
new file mode 100755
index 0000000..c923371
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/input-item/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/list/alphabet/index.acss b/node_modules/mini-ali-ui/es/list/alphabet/index.acss
new file mode 100755
index 0000000..c8f1da6
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/alphabet/index.acss
@@ -0,0 +1 @@
+.am-alphabet{position:absolute;right:0;top:0;height:100%;z-index:99;display:flex;align-items:center}.am-alphabet-letter{text-align:center;font-size:11px;font-size:var(--am-alphabet-letter-font-size,11px);color:#999;color:var(--am-alphabet-letter-color,#999);height:16px;height:var(--am-alphabet-letter-size,16px);width:16px;width:var(--am-alphabet-letter-size,16px);border-radius:50vh;border-radius:var(--am-alphabet-letter-border-radius,50vh);position:relative;display:flex;align-items:center;justify-content:center}.am-alphabet-letter-chosen{background:#1677ff;background:var(--am-alphabet-letter-chosen-background,#1677ff);color:#fff;color:var(--am-alphabet-letter-chosen-text-color,#fff)}.am-alphabet-bubble{color:#fff;color:var(--am-alphabet-bubble-color,#fff);position:absolute;right:48px;height:47px;width:47px;border-radius:50vh;background:#ccc;background:var(--am-alphabet-bubble-background,#ccc);top:-17px;font-size:27px;font-size:var(--am-alphabet-bubble-font-size,27px);display:flex;align-items:center;justify-content:center;font-family:PingFangSC-Medium}.am-alphabet-item{min-height:48px;min-height:var(--am-alphabet-min-height,48px)}.am-alphabet-line{position:relative;flex:1;display:flex;align-items:center;align-self:stretch;overflow:hidden}.am-alphabet-content{padding:20px 0;width:95px;flex-direction:column;display:flex;justify-content:center;align-items:flex-end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/alphabet/index.axml b/node_modules/mini-ali-ui/es/list/alphabet/index.axml
new file mode 100755
index 0000000..4ce5f46
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/alphabet/index.axml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+ {{ item }}
+
+ {{item}}
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/list/alphabet/index.js b/node_modules/mini-ali-ui/es/list/alphabet/index.js
new file mode 100755
index 0000000..4e44df2
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/alphabet/index.js
@@ -0,0 +1,53 @@
+Component({
+ props: {
+ alphabet: []
+ },
+ data: {
+ current: -1
+ },
+ didMount: function didMount() {
+ this._updateDataSet();
+ },
+ didUpdate: function didUpdate() {
+ this._updateDataSet();
+ },
+ methods: {
+ _updateDataSet: function _updateDataSet() {
+ this.dataset = {};
+
+ for (var key in this.props) {
+ if (/data-/gi.test(key)) {
+ this.dataset[key.replace(/data-/gi, '')] = this.props[key];
+ }
+ }
+ },
+ onItemTap: function onItemTap(ev) {
+ var _this$props = this.props,
+ onClick = _this$props.onClick,
+ disabled = _this$props.disabled;
+
+ if (onClick && !disabled) {
+ onClick({
+ data: ev.target.dataset,
+ target: {
+ dataset: this.dataset
+ }
+ });
+ }
+ },
+ onTouchStart: function onTouchStart(ev) {
+ var disabled = this.props.disabled;
+
+ if (!disabled) {
+ this.setData({
+ current: ev.target.dataset.index
+ });
+ }
+ },
+ onTouchEnd: function onTouchEnd() {
+ this.setData({
+ current: -1
+ });
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/alphabet/index.json b/node_modules/mini-ali-ui/es/list/alphabet/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/alphabet/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/list/auto-size-img/index.acss b/node_modules/mini-ali-ui/es/list/auto-size-img/index.acss
new file mode 100755
index 0000000..91634e5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/auto-size-img/index.acss
@@ -0,0 +1 @@
+.am-auto-sizer-container{position:relative;font-size:17px;font-size:var(--am-list-item-content-title-size,17px);margin-right:12px;margin-right:var(--am-list-item-padding,12px);color:transparent;overflow:visible;white-space:nowrap}.am-auto-sizer-container::before{float:left;content:'';padding-bottom:100%}.am-auto-sizer-content{position:absolute;top:0;left:0;background:grey;width:100%;height:100%;background-size:cover;background-repeat:no-repeat;background-position:center}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/auto-size-img/index.axml b/node_modules/mini-ali-ui/es/list/auto-size-img/index.axml
new file mode 100755
index 0000000..f8fc94b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/auto-size-img/index.axml
@@ -0,0 +1,5 @@
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/auto-size-img/index.js b/node_modules/mini-ali-ui/es/list/auto-size-img/index.js
new file mode 100755
index 0000000..fa0821a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/auto-size-img/index.js
@@ -0,0 +1,6 @@
+import fmtUnit from '../../_util/fmtUnit';
+Component({
+ props: {
+ size: fmtUnit('40px')
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/auto-size-img/index.json b/node_modules/mini-ali-ui/es/list/auto-size-img/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/auto-size-img/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/list/index.acss b/node_modules/mini-ali-ui/es/list/index.acss
new file mode 100755
index 0000000..347adc5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/index.acss
@@ -0,0 +1 @@
+.am-list-footer,.am-list-header{display:flex;align-items:center;color:#999;color:var(--am-list-footer-header-color,#999);padding-left:12px;padding-left:var(--am-list-padding,12px);padding-right:12px;padding-right:var(--am-list-padding,12px)}.am-list-header{font-size:15px;font-size:var(--am-list-header-font-size,15px);line-height:normal;padding-top:12px;padding-top:var(--am-list-header-padding-top,12px);padding-bottom:8px;padding-bottom:var(--am-list-header-padding-bottom,8px)}.am-list-body{position:relative}.am-list-body::before{content:'';position:absolute;background-color:#eee;display:block;top:0;right:0;bottom:auto;left:0;height:1px;transform:scaleY(.5)}.am-list-body::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-list-footer{font-size:13px;line-height:normal;padding-top:8px;padding-top:var(--am-list-footer-padding-top,8px);padding-bottom:12px;padding-bottom:var(--am-list-footer-padding-bottom,12px)}.am-list-load-more{display:flex;justify-content:center;align-items:center;background:#fff;background:var(--am-list-background,#fff);padding:12px;font-size:15px;line-height:1.4;color:#333;color:var(--am-list-load-more-color,#333)}.am-list-load-more-txt{padding:0 8px;color:#999}.am-list-load-over{display:block;padding:12px;font-size:10px;text-align:center;color:#ccc;text-shadow:1px 1px #f0f0f0}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/index.axml b/node_modules/mini-ali-ui/es/list/index.axml
new file mode 100755
index 0000000..c4636b1
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/index.axml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ {{loadContent[0]?loadContent[0]:''}}
+ {{loadContent[1]?loadContent[1]:''}}
+
+
diff --git a/node_modules/mini-ali-ui/es/list/index.js b/node_modules/mini-ali-ui/es/list/index.js
new file mode 100755
index 0000000..cdcbf47
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/index.js
@@ -0,0 +1,29 @@
+import fmtUnit from '../_util/fmtUnit';
+Component({
+ props: {
+ className: '',
+ loadMore: false,
+ loadContent: ['', ''],
+ loadingSize: fmtUnit('16px')
+ },
+ data: {
+ loadContent: ['加载更多...', '-- 数据加载完了 --']
+ },
+ didMount: function didMount() {
+ var loadTxt = this.props.loadContent[0] ? this.props.loadContent[0] : this.data.loadContent[0];
+ var overTxt = this.props.loadContent[1] ? this.props.loadContent[1] : this.data.loadContent[1];
+ this.setData({
+ loadContent: [loadTxt, overTxt]
+ });
+ },
+ didUpdate: function didUpdate() {
+ var loadTxt = this.props.loadContent[0] ? this.props.loadContent[0] : this.data.loadContent[0];
+ var overTxt = this.props.loadContent[1] ? this.props.loadContent[1] : this.data.loadContent[1];
+
+ if (loadTxt !== this.data.loadContent[0] || overTxt !== this.data.loadContent[1]) {
+ this.setData({
+ loadContent: [loadTxt, overTxt]
+ });
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/index.json b/node_modules/mini-ali-ui/es/list/index.json
new file mode 100755
index 0000000..d7ac60f
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "loading": "../loading/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/list/list-item/index.acss b/node_modules/mini-ali-ui/es/list/list-item/index.acss
new file mode 100755
index 0000000..d1276eb
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/list-item/index.acss
@@ -0,0 +1 @@
+.am-list-item{display:flex;align-items:center;background:#fff;background:var(--am-list-item-background,#fff)}.am-list-item-hover{filter:brightness(.9)}.am-list-item-radius{margin:0 12px;margin:0 var(--am-list-item-outside-spacing,12px);border-radius:8px;border-radius:var(--am-list-item-border-radius,8px)}.am-list-prefix{display:flex;align-items:center;padding:12px;padding:var(--am-list-item-padding,12px);padding-right:0}.am-list-supporting{margin-right:12px;margin-right:var(--am-list-item-padding,12px);color:#999;color:var(--am-list-item-content-subtitle-color,#999);font-size:15px;font-size:var(--am-list-item-subtitle-size,15px);display:flex}.am-list-thumb{width:30px;height:30px;margin-right:12px;margin-right:var(--am-list-item-padding,12px)}.am-list-line{position:relative;padding:12px;padding:var(--am-list-item-padding,12px);padding-left:0;flex:1;display:flex;align-items:center;align-self:stretch;overflow:hidden;max-width:100%}.am-list-line::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-list-text-wrapper{margin-right:12px;margin-right:var(--am-list-item-padding,12px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.am-list-content{flex:3;text-align:left;align-self:stretch;display:flex;flex-direction:column;justify-content:space-evenly;overflow:hidden;line-height:normal}.am-list-content-subtitle,.am-list-content-title{display:flex;align-items:center}.am-list-content-title{font-size:17px;font-size:var(--am-list-item-content-title-size,17px);color:#333;color:var(--am-list-item-content-color,#333);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:flex}.am-list-content-subtitle{font-size:15px;font-size:var(--am-list-item-subtitle-size,15px);color:#999;color:var(--am-list-item-content-subtitle-color,#999)}.am-list-content-subtitle-small{font-size:13px;font-size:var(--am-list-item-content-subtitle-size-small,13px)}.am-list-extra{color:#999;color:var(--am-list-item-extra-color,#999);display:flex;justify-content:flex-end;align-self:stretch;align-items:center;margin-left:12px;margin-left:var(--am-list-item-padding,12px);flex:2;overflow:hidden}.am-list-primary{color:#333;color:var(--am-list-item-content-color,#333);font-size:17px;font-size:var(--am-list-item-content-title-size,17px)}.am-list-wrap .am-list-content,.am-list-wrap .am-list-extra{white-space:normal;word-break:break-all}.am-list-arrow{display:flex;align-items:center;margin-left:12px;margin-left:var(--am-list-item-arrow-margin,12px);height:22px;height:var(--am-list-item-arrow-size,22px);width:22px;width:var(--am-list-item-arrow-size,22px)}.am-list-item.last .am-list-line-bottom::after{display:none}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/list-item/index.axml b/node_modules/mini-ali-ui/es/list/list-item/index.axml
new file mode 100755
index 0000000..968aa7a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/list-item/index.axml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{upperSubtitle}}
+
+
+
+
+
+
+
+
+
+ {{lowerSubtitle}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/list/list-item/index.js b/node_modules/mini-ali-ui/es/list/list-item/index.js
new file mode 100755
index 0000000..c829418
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/list-item/index.js
@@ -0,0 +1,42 @@
+Component({
+ props: {
+ className: '',
+ align: false,
+ disabled: false,
+ multipleLine: false,
+ wrap: false,
+ enforceExtra: false,
+ titlePosition: 'top'
+ },
+ didMount: function didMount() {
+ this._updateDataSet();
+ },
+ didUpdate: function didUpdate() {
+ this._updateDataSet();
+ },
+ methods: {
+ _updateDataSet: function _updateDataSet() {
+ this.dataset = {};
+
+ for (var key in this.props) {
+ if (/data-/gi.test(key)) {
+ this.dataset[key.replace(/data-/gi, '')] = this.props[key];
+ }
+ }
+ },
+ onItemTap: function onItemTap(ev) {
+ var _this$props = this.props,
+ onClick = _this$props.onClick,
+ disabled = _this$props.disabled;
+
+ if (onClick && !disabled) {
+ onClick({
+ index: ev.target.dataset.index,
+ target: {
+ dataset: this.dataset
+ }
+ });
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/list-item/index.json b/node_modules/mini-ali-ui/es/list/list-item/index.json
new file mode 100755
index 0000000..5cbc6ec
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/list-item/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "auto-sizer": "../auto-size-img/index",
+ "am-icon": "../../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/list/list-secondary/index.acss b/node_modules/mini-ali-ui/es/list/list-secondary/index.acss
new file mode 100755
index 0000000..5ee9723
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/list-secondary/index.acss
@@ -0,0 +1 @@
+.am-list-secondary{display:flex;align-items:center;justify-content:flex-end;position:relative;height:100%;max-width:100%}.am-list-secondary-text{display:flex;flex-direction:column;justify-content:space-evenly;align-items:flex-end;height:100%;max-width:100%;overflow:hidden}.am-list-secondary-title{font-size:17px;font-size:var(--am-list-secondary-title-size,17px);color:#333;color:var(--am-list-secondary-title-color,#333);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%}.am-list-secondary-subtitle{font-size:15px;font-size:var(--am-list-secondary-subtitle-size,15px);color:#999;color:var(--am-list-secondary-subtitle-color,#999);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/list-secondary/index.axml b/node_modules/mini-ali-ui/es/list/list-secondary/index.axml
new file mode 100755
index 0000000..a26bdd5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/list-secondary/index.axml
@@ -0,0 +1,10 @@
+
+
+
+ {{title}}
+ {{subtitle}}
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/list-secondary/index.js b/node_modules/mini-ali-ui/es/list/list-secondary/index.js
new file mode 100755
index 0000000..f0f1635
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/list-secondary/index.js
@@ -0,0 +1,19 @@
+Component({
+ props: {
+ title: '',
+ subtitle: '',
+ thumb: ''
+ },
+ didMount: function didMount() {
+ var _this$props = this.props,
+ _this$props$title = _this$props.title,
+ title = _this$props$title === void 0 ? '' : _this$props$title,
+ _this$props$subtitle = _this$props.subtitle,
+ subtitle = _this$props$subtitle === void 0 ? '' : _this$props$subtitle;
+ var thumbPlaceholder = title.slice(0, 1) + subtitle.slice(0, 1);
+ this.setData({
+ // thumbPlaceholder: thumbPlaceholder.slice(1),
+ thumbPlaceholder: thumbPlaceholder
+ });
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/list/list-secondary/index.json b/node_modules/mini-ali-ui/es/list/list-secondary/index.json
new file mode 100755
index 0000000..78e70ee
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/list/list-secondary/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "auto-sizer": "../auto-size-img/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/loading/index.acss b/node_modules/mini-ali-ui/es/loading/index.acss
new file mode 100755
index 0000000..f1709aa
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/loading/index.acss
@@ -0,0 +1 @@
+.am-loading{width:100px;height:100px;background-position:center;background-repeat:no-repeat;background-size:100% 100%}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/loading/index.axml b/node_modules/mini-ali-ui/es/loading/index.axml
new file mode 100755
index 0000000..ccb791c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/loading/index.axml
@@ -0,0 +1,7 @@
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/loading/index.js b/node_modules/mini-ali-ui/es/loading/index.js
new file mode 100755
index 0000000..cb911e1
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/loading/index.js
@@ -0,0 +1,8 @@
+import fmtUnit from '../_util/fmtUnit';
+Component({
+ props: {
+ size: fmtUnit('100px'),
+ className: '',
+ color: '#1677ff'
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/loading/index.json b/node_modules/mini-ali-ui/es/loading/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/loading/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/long-password/index.acss b/node_modules/mini-ali-ui/es/long-password/index.acss
new file mode 100755
index 0000000..0b919af
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/long-password/index.acss
@@ -0,0 +1 @@
+.am-long-password-item{display:flex;align-items:center;background:#fff;background:var(--am-long-password-item-background,#fff);padding-left:12px;padding-left:var(--am-long-password-item-padding-left,12px)}.am-long-password-item .a-input-content{padding-left:2px}.am-long-password-line{position:relative;flex:1;display:flex;align-items:center;padding-right:12px;padding-right:var(--am-long-password-line-padding-right,12px);min-height:48px;min-height:var(--am-long-password-line-min-height,48px);overflow:hidden;font-size:17px;font-size:var(--am-long-password-font-size,17px)}.am-long-password-content{flex:1;display:flex;color:#333;color:var(--am-long-password-content-color,#333);text-align:left;padding:0}.am-long-password-content .a-input-wrap{flex:1}.am-long-password-clear{display:flex;height:22px;height:var(--am-long-password-icon-size,22px);width:22px;width:var(--am-long-password-icon-size,22px);justify-content:center;align-items:center;margin-left:12px;margin-left:var(--am-long-password-eye-spacing,12px)}.am-long-password-clear-icon{line-height:1;line-height:var(--am-long-password-icon-line-height,1)}.am-long-password-clear.show{visibility:visible}.am-long-password-clear.hidden{visibility:hidden;pointer-events:none}.am-long-password-line-bottom::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-long-password-item.last .am-input-line-bottom::after{display:none}.am-long-password-placeholder-base{color:#ccc;color:var(--am-long-password-placeholder-color,#ccc)}.am-long-password-eye{margin-left:12px;margin-left:var(--am-long-password-eye-spacing,12px);height:22px;height:var(--am-long-password-icon-size,22px);width:22px;width:var(--am-long-password-icon-size,22px);display:flex;align-items:center}.am-long-password-eye-icon{line-height:1;line-height:var(--am-long-password-icon-line-height,1)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/long-password/index.axml b/node_modules/mini-ali-ui/es/long-password/index.axml
new file mode 100755
index 0000000..bc50f4e
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/long-password/index.axml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/long-password/index.js b/node_modules/mini-ali-ui/es/long-password/index.js
new file mode 100755
index 0000000..b3fa99b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/long-password/index.js
@@ -0,0 +1,70 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ className: '',
+ inputCls: '',
+ last: false,
+ value: '',
+ name: '',
+ type: 'text',
+ // password: false,
+ // placeholder: '',
+ placeholderClass: '',
+ placeholderStyle: '',
+ disabled: false,
+ maxlength: 140,
+ focus: false,
+ clear: true,
+ // 默认有清除功能
+ syncInput: false,
+ enableNative: false,
+ // 兼容安卓input的输入bug
+ onInput: function onInput() {},
+ onConfirm: function onConfirm() {},
+ onFocus: function onFocus() {},
+ onBlur: function onBlur() {},
+ onClear: function onClear() {}
+ },
+ data: {
+ _focus: false,
+ visible: false
+ },
+ didMount: function didMount() {
+ this.setData({
+ _focus: this.props.focus
+ });
+ },
+ methods: {
+ onBlur: function onBlur(e) {
+ this.setData({
+ _focus: false
+ });
+ var event = fmtEvent(this.props, e);
+ this.props.onBlur(event);
+ },
+ onConfirm: function onConfirm(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onConfirm(event);
+ },
+ onFocus: function onFocus(e) {
+ this.setData({
+ _focus: true
+ });
+ var event = fmtEvent(this.props, e);
+ this.props.onFocus(event);
+ },
+ onInput: function onInput(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onInput(event);
+ },
+ onClear: function onClear(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onClear(event);
+ },
+ onSwitchVisible: function onSwitchVisible() {
+ this.setData({
+ visible: !this.data.visible
+ });
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/long-password/index.json b/node_modules/mini-ali-ui/es/long-password/index.json
new file mode 100755
index 0000000..717cce8
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/long-password/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/mask/index.acss b/node_modules/mini-ali-ui/es/mask/index.acss
new file mode 100755
index 0000000..d537b4f
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/mask/index.acss
@@ -0,0 +1 @@
+.am-mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:0;background-color:rgba(0,0,0,.55);background-color:var(--am-mask-backgroundColor,rgba(0,0,0,.55))}.am-mask__m{background-color:rgba(0,0,0,.75);background-color:var(--am-mask-market-backgroundColor,rgba(0,0,0,.75))}.am-mask__fix{width:300vw;height:300vh;transform:translate3d(-100vw,-100vh,0)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/mask/index.axml b/node_modules/mini-ali-ui/es/mask/index.axml
new file mode 100755
index 0000000..c2a5349
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/mask/index.axml
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/mask/index.js b/node_modules/mini-ali-ui/es/mask/index.js
new file mode 100755
index 0000000..8f89c4b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/mask/index.js
@@ -0,0 +1,21 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ maskZindex: '',
+ // product: 产品弹窗蒙层;market:营销弹窗蒙层;
+ type: 'product',
+ onMaskTap: function onMaskTap() {},
+ show: true,
+ fixMaskFull: false
+ },
+ methods: {
+ onMaskClick: function onMaskClick(e) {
+ var onMaskTap = this.props.onMaskTap;
+
+ if (onMaskTap !== '' && typeof onMaskTap === 'function') {
+ var event = fmtEvent(this.props, e);
+ onMaskTap(event);
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/mask/index.json b/node_modules/mini-ali-ui/es/mask/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/mask/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/message/index.acss b/node_modules/mini-ali-ui/es/message/index.acss
new file mode 100755
index 0000000..901bde9
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/message/index.acss
@@ -0,0 +1 @@
+.am-message{background-color:#fff;background-color:var(--am-message-background,#fff);padding:32px 12px;padding:var(--am-message-padding-h,32px) var(--am-message-padding-v,12px);text-align:center;line-height:normal;box-sizing:border-box;position:relative}.am-message::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-message .am-icon{display:block;line-height:1;line-height:var(--am-message-icon-lineheight,1);font-size:64px;font-size:var(--am-message-icon-size,64px)}.am-message .icon-success{color:#1677ff;color:var(--am-message-success-color,#1677ff)}.am-message .icon-info{color:#1677ff;color:var(--am-message-info-color,#1677ff)}.am-message .icon-waiting{color:#00b578;color:var(--am-message-waiting-color,#00b578)}.am-message .icon-warn{color:#ff8f1f;color:var(--am-message-warn-color,#ff8f1f)}.am-message .icon-fail{color:#ff3b30;color:var(--am-message-fail-color,#ff3b30)}.am-message-main{font-size:18px;font-size:var(--am-message-title-size,18px);margin-top:20px;margin-top:var(--am-message-title-margin,20px);color:#333;color:var(--am-message-title-color,#333)}.am-message-sub{font-size:13px;font-size:var(--am-message-subtitle-size,13px);margin-top:8px;margin-top:var(--am-message-subtitle-margin,8px);color:#999;color:var(--am-message-subtitle-color,#999)}.am-message-button-wrap{margin-top:20px;margin-top:var(--am-message-margintop,20px);padding:0 12px;padding:0 var(--am-message-button-margin,12px)}.am-message-button-wrap .a-button{margin-bottom:12px;margin-bottom:var(--am-message-button-margin,12px)}.am-message-button-wrap .a-button:last-child{margin-bottom:0}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/message/index.axml b/node_modules/mini-ali-ui/es/message/index.axml
new file mode 100755
index 0000000..f47fc12
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/message/index.axml
@@ -0,0 +1,30 @@
+
+
+
+ {{title}}
+
+
+ {{subTitle}}
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/message/index.js b/node_modules/mini-ali-ui/es/message/index.js
new file mode 100755
index 0000000..5e23ee1
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/message/index.js
@@ -0,0 +1,55 @@
+import fmtEvent from '../_util/fmtEvent';
+var SUPPORT_COMPONENT2 = my.canIUse('component2');
+var TYPE_MAP = {
+ success: 'check_',
+ fail: 'close_',
+ info: 'help_',
+ warn: 'warn_',
+ waiting: 'time-5_'
+};
+Component({
+ props: {
+ className: '',
+ type: 'success',
+ title: '',
+ onTapMain: function onTapMain() {},
+ onTapSub: function onTapSub() {}
+ },
+ data: {
+ iconType: 'check_'
+ },
+ onInit: function onInit() {
+ this.setType(this.props.type);
+ },
+ didMount: function didMount() {
+ if (!SUPPORT_COMPONENT2) {
+ this.setType(this.props.type);
+ }
+ },
+ didUpdate: function didUpdate(prevProps) {
+ if (!SUPPORT_COMPONENT2 && this.props.type !== prevProps.type) {
+ this.setType(this.props.type);
+ }
+ },
+ deriveDataFromProps: function deriveDataFromProps(nextProps) {
+ if (this.props.type !== nextProps.type) {
+ this.setType(nextProps.type);
+ }
+ },
+ methods: {
+ tapMain: function tapMain(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onTapMain(event);
+ },
+ tapSub: function tapSub(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onTapSub(event);
+ },
+ setType: function setType(type) {
+ var realType = TYPE_MAP[type] || 'check_';
+ this.setData({
+ iconType: realType
+ });
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/message/index.json b/node_modules/mini-ali-ui/es/message/index.json
new file mode 100755
index 0000000..74316e1
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/message/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "button": "../button/index",
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/modal/index.acss b/node_modules/mini-ali-ui/es/modal/index.acss
new file mode 100755
index 0000000..1f570f6
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/modal/index.acss
@@ -0,0 +1 @@
+.am-modal{background-color:#fff;background-color:var(--am-modal-content-backgroundColor,#fff);border-radius:8px;border-radius:var(--am-modal-content-radius,8px);width:280px;position:relative}.am-modal-show{position:fixed;top:0;left:0;right:0;bottom:0}.am-modal-hide{display:none}.am-modal-document,.am-modal-mask{position:absolute;top:0;left:0;right:0;bottom:0}.am-modal-mask{background-color:rgba(0,0,0,.55);background-color:var(--am-modal-mask-backgroundColor,rgba(0,0,0,.55))}.am-modal-mask-advice{background-color:rgba(0,0,0,.75);background-color:var(--am-modal-market-mask-backgroundColor,rgba(0,0,0,.75))}.am-modal-document{display:flex;align-items:center;justify-content:center}.am-modal-content{padding:20px 12px;padding:var(20px --am-modal-content-padding-h,20px 12px)}.am-modal-content--fill{padding-top:0}.am-modal-image{display:flex;justify-content:center;margin-bottom:12px;margin-bottom:var(--am-modal-content-margin-v,12px)}.am-modal-image-lg .am-modal-image-element{width:280px;height:156px;margin-left:-12px;margin-left:var(---am-modal-content-padding-h,-12px);margin-right:-12px;margin-right:var(---am-modal-content-padding-h,-12px);border-top-left-radius:8px;border-top-left-radius:var(--am-modal-content-radius,8px);border-top-right-radius:8px;border-top-right-radius:var(--am-modal-content-radius,8px);overflow:hidden}.am-modal-image-md .am-modal-image-element{width:140px;height:140px}.am-modal-image-sm .am-modal-image-element{width:80px;height:80px}.am-modal-header{font-size:18px;font-size:var(--am-modal-title-fontSize,18px);line-height:1.5;line-height:var(--am-modal-title-lineHeight,1.5);text-align:center;color:#333;color:var(--am-modal-title-color,#333);font-weight:700;margin-bottom:8px;margin-bottom:var(--am-modal-title-margin-v,8px)}.am-modal-body{overflow:hidden;max-width:280px;line-height:1.5;line-height:var(--am-modal-body-lineHeight,1.5);text-align:center;color:#333;color:var(--am-modal-body-color,#333);font-size:15px;font-size:var(--am-modal-body-fontSize,15px)}.am-modal-footer{height:50px;line-height:50px;position:relative;font-size:18px;font-size:var(--am-modal-footer-fontSize,18px);color:#1677ff;color:var(--am-color-text-primary,#1677ff);text-align:center}.am-modal-footer::before{content:'';position:absolute;background-color:#e5e5e5;display:block;top:0;right:0;bottom:auto;left:0;height:1px;transform:scaleY(.5)}.am-modal-buttons{position:relative;display:flex;font-size:18px;font-size:var(--am-modal-footer-fontSize,18px);color:#1677ff;color:var(--am-color-text-primary,#1677ff);text-align:center}.am-modal-buttons::before{content:'';position:absolute;background-color:#e5e5e5;display:block;top:0;right:0;bottom:auto;left:0;height:1px;transform:scaleY(.5)}.am-modal-buttons--vertical{flex-direction:column}.am-modal-buttons--horizontal{flex-direction:row}.am-modal-button{padding:12px;flex:1;position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.am-modal-button--vertical::after{content:'';position:absolute;background-color:#e5e5e5;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-modal-button--vertical:last-child::after{display:none}.am-modal-button--horizontal::after{content:'';position:absolute;background-color:#e5e5e5;display:block;top:0;right:0;bottom:0;left:auto;width:1px;transform:scaleX(.5)}.am-modal-button--horizontal:last-child::after{display:none}.am-modal-close{position:absolute;display:block;right:0;top:0;height:44px;width:44px;text-align:center;line-height:44px}.am-modal-button-active,.am-modal-close-active,.am-modal-footer-active{background-color:rgba(37,39,40,.05)}.am-modal-document-advice .am-modal{margin-top:-38px;padding-top:0;width:auto}.am-modal-document-advice .am-modal-content{padding:0;border-radius:8px;overflow:hidden}.am-modal-document-advice .am-modal-body{padding:0;max-width:319px}.am-modal-document-advice .am-modal-close{bottom:-50px;top:auto;right:50%;transform:translateX(50%);line-height:1;margin-top:24px;height:26px;width:26px}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/modal/index.axml b/node_modules/mini-ali-ui/es/modal/index.axml
new file mode 100755
index 0000000..005f070
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/modal/index.axml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{button.text}}
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/modal/index.js b/node_modules/mini-ali-ui/es/modal/index.js
new file mode 100755
index 0000000..8747b0d
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/modal/index.js
@@ -0,0 +1,58 @@
+import fmtUnit from '../_util/fmtUnit';
+Component({
+ data: {
+ _buttonsLayout: '',
+ adviceClose: fmtUnit(26),
+ normalClose: fmtUnit(18)
+ },
+ props: {
+ className: '',
+ topImageSize: 'md',
+ showClose: false,
+ closeType: '0',
+ mask: true,
+ buttonsLayout: 'horizontal',
+ disableScroll: true
+ },
+ didMount: function didMount() {
+ var _this$props = this.props,
+ buttons = _this$props.buttons,
+ buttonsLayout = _this$props.buttonsLayout; // button数目大于 2 个,则强制使用竖排结构
+
+ if (buttons && buttons.length > 2) {
+ this.setData({
+ _buttonsLayout: 'vertical'
+ });
+ } else {
+ this.setData({
+ _buttonsLayout: buttonsLayout
+ });
+ }
+ },
+ methods: {
+ // footer点击
+ _onModalClick: function _onModalClick() {
+ var onModalClick = this.props.onModalClick;
+
+ if (onModalClick) {
+ onModalClick();
+ }
+ },
+ // buttons点击
+ _onButtonClick: function _onButtonClick(e) {
+ var onButtonClick = this.props.onButtonClick;
+
+ if (onButtonClick) {
+ onButtonClick(e);
+ }
+ },
+ // 关闭按钮点击
+ _onModalClose: function _onModalClose() {
+ var onModalClose = this.props.onModalClose;
+
+ if (onModalClose) {
+ onModalClose();
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/modal/index.json b/node_modules/mini-ali-ui/es/modal/index.json
new file mode 100755
index 0000000..39f9a04
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/modal/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "button": "../button/index",
+ "am-icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/multi-liner/index.acss b/node_modules/mini-ali-ui/es/multi-liner/index.acss
new file mode 100755
index 0000000..28e39ac
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/multi-liner/index.acss
@@ -0,0 +1 @@
+.am-multi-liner-item{display:flex;align-items:center;background:#fff;background:var(--am-multi-liner-item-background,#fff)}.am-multi-liner-item .a-input-content{padding-left:2px}.am-multi-liner-item .a-textarea-count-wrap{position:relative;bottom:0;right:0}.am-multi-liner-line{position:relative;flex:1;display:flex;align-items:center;min-height:48px;min-height:var(--am-multi-liner-line-min-height,48px);overflow:hidden;font-size:17px;font-size:var(--am-multi-liner-font-size,17px)}.am-multi-liner-label{min-width:80px;min-width:var(--am-multi-liner-label-min-width,80px);margin-right:2px;color:#333;color:var(--am-multi-liner-item-label-color,#333)}.am-multi-liner-content{flex:1;display:flex;flex-direction:column;align-items:flex-end;width:100%;color:#333;color:var(--am-multi-liner-item-label-color,#333);text-align:left;padding:12px;padding:var(--am-multi-liner-content-padding,12px)}.am-multi-liner-content .a-input-wrap{flex:1}.am-multi-liner-line-bottom::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-multi-liner-item.last .am-input-line-bottom::after{display:none}.am-multi-liner-placeholder-base{color:#ccc;color:var(--am-multi-liner-item-placeholder-color,#ccc)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/multi-liner/index.axml b/node_modules/mini-ali-ui/es/multi-liner/index.axml
new file mode 100755
index 0000000..a97aad9
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/multi-liner/index.axml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/multi-liner/index.js b/node_modules/mini-ali-ui/es/multi-liner/index.js
new file mode 100755
index 0000000..461b5c5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/multi-liner/index.js
@@ -0,0 +1,65 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ className: '',
+ labelCls: '',
+ inputCls: '',
+ last: false,
+ value: '',
+ name: '',
+ type: 'text',
+ password: false,
+ placeholder: '',
+ placeholderClass: '',
+ placeholderStyle: '',
+ disabled: false,
+ maxlength: 140,
+ showCount: true,
+ autoHeight: false,
+ focus: false,
+ syncInput: false,
+ enableNative: false,
+ // 兼容安卓input的输入bug
+ onInput: function onInput() {},
+ onConfirm: function onConfirm() {},
+ onFocus: function onFocus() {},
+ onBlur: function onBlur() {},
+ onClear: function onClear() {}
+ },
+ data: {
+ _focus: false
+ },
+ didMount: function didMount() {
+ this.setData({
+ _focus: this.props.focus
+ });
+ },
+ methods: {
+ onBlur: function onBlur(e) {
+ this.setData({
+ _focus: false
+ });
+ var event = fmtEvent(this.props, e);
+ this.props.onBlur(event);
+ },
+ onConfirm: function onConfirm(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onConfirm(event);
+ },
+ onFocus: function onFocus(e) {
+ this.setData({
+ _focus: true
+ });
+ var event = fmtEvent(this.props, e);
+ this.props.onFocus(event);
+ },
+ onInput: function onInput(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onInput(event);
+ },
+ onClear: function onClear(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onClear(event);
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/multi-liner/index.json b/node_modules/mini-ali-ui/es/multi-liner/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/multi-liner/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/notice/index.acss b/node_modules/mini-ali-ui/es/notice/index.acss
new file mode 100755
index 0000000..fc53dbc
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/notice/index.acss
@@ -0,0 +1 @@
+.am-notice{position:relative;display:flex;align-items:center;overflow:hidden;padding:8px 12px;padding:var(--am-notice-paddingV,8px) var(--am-notice-paddingH,12px);font-size:15px;font-size:var(--am-notice-fontSize,15px);color:#ff6010;color:var(--am-notice-color,#ff6010);background-color:#fff9ed;background-color:var(--am-notice-bgc,#fff9ed);border-style:solid;border-color:#fff3d9;border-color:var(--am-notice-borderColor,#fff3d9);border-width:1px 0;border-width:var(--am-notice-borderWidth,1px) 0;box-sizing:border-box}.am-notice-capsule-wrap{display:flex;flex-direction:column;align-items:center}.am-notice-capsule{position:relative;display:flex;align-items:center;flex:1;font-weight:700;border-radius:50vh;border-color:#e5e5e5;border-color:var(--am-notice-capsule-borderColor,#e5e5e5);border-width:var(--am-notice-borderWidth,1px);background-color:#fff;background-color:var(--am-notice-capsule-bgc,#fff)}.am-notice-capsule-item{position:relative;z-index:2;display:flex;flex-direction:row-reverse;margin-right:8px;margin-right:var(--am-notice-capsule-item-marginRight,8px);padding-left:8px;padding-left:var(--am-notice-capsule-item-paddingRight,8px)}.am-notice-capsule-content{position:relative;z-index:2}.am-notice-capsule-content__hover{opacity:.6}.am-notice-capsule-img{width:22px;width:var(--am-notice-capsule-item-size,22px);height:22px;height:var(--am-notice-capsule-item-size,22px);overflow:hidden;margin-left:-8px;margin-left:-var(--am-notice-capsule-item-paddingRight,8px);border:2px solid #fff;border:var(--am-notice-capsule-item-borderWidth,2px) solid var(--am-notice-capsule-item-borderColor,#fff);border-radius:50vh;border-radius:var(--am-notice-capsule-radius,50vh)}.am-notice-scroll-left,.am-notice-scroll-right{width:8px;position:absolute;top:0;bottom:0;z-index:99;background-size:100%;pointer-events:none;background-color:#fff9ed;background-color:var(--am-notice-bgc,#fff9ed)}.am-notice-scroll-left{left:0;-webkit-mask-image:linear-gradient(to right,#000,rgba(255,255,255,0));mask-image:linear-gradient(to right,#000,rgba(255,255,255,0))}.am-notice-scroll-right{right:0;-webkit-mask-image:linear-gradient(to left,#000,rgba(255,255,255,0));mask-image:linear-gradient(to left,#000,rgba(255,255,255,0))}.am-notice-transparent{color:#fff;border-color:#b7b7b7;background:0 0}.am-notice-transparent-bg{position:absolute;top:0;left:0;bottom:0;right:0;z-index:1;background-color:rgba(0,0,0,.3)}.am-notice-transparent-scroll-left,.am-notice-transparent-scroll-right{display:none}.am-notice-error{color:#fff;color:var(--am-notice-error-color,#fff);border-color:#fff3d9;border-color:var(--am-notice-error-borderColor,#fff3d9);background-color:#ff3b30;background-color:var(--am-notice-error-bgc,#ff3b30)}.am-notice-error-scroll-left,.am-notice-error-scroll-right{background:#ff3b30;background:var(--am-notice-error-bgc,#ff3b30)}.am-notice-active{color:#1677ff;color:var(--am-notice-active-color,#1677ff);border:0 none;background:0 0}.am-notice-active-bg{position:absolute;top:0;left:0;bottom:0;right:0;z-index:1;border-color:#bed9ff;border-color:var(--am-notice-active-borderColor,#bed9ff);background-color:#d0e4ff;background-color:var(--am-notice-active-bgc,#d0e4ff)}.am-notice-active-scroll-left,.am-notice-active-scroll-right{background-color:#d0e4ff;background-color:var(--am-notice-active-bgc,#d0e4ff)}.am-notice-thumb{position:relative;z-index:2;margin-right:8px;margin-right:var(--am-notice-thumb-marginRight,8px)}.am-notice-thumb-icon{font-size:18px;font-size:var(--am-notice-icon-size,18px)}.am-notice-content{position:relative;z-index:2;flex:1;width:100%;overflow:hidden;vertical-align:middle;line-height:1.5;line-height:var(--am-notice-content-lineHeight,1.5)}.am-notice-operation{position:relative;z-index:2;display:flex;align-items:center;margin-left:8px;margin-left:var(--am-notice-operation-marginLeft,8px);font-size:15px;font-size:var(--am-notice-operation-FontSize,15px)}.am-notice-operation-left{margin-right:8px}.am-notice-operation-text__hover{opacity:.6}.am-notice-operation-icon{font-size:18px;font-size:var(--am-notice-icon-size,18px)}.am-notice-marquee{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/notice/index.axml b/node_modules/mini-ali-ui/es/notice/index.axml
new file mode 100755
index 0000000..791a312
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/notice/index.axml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{actionLeft?actionLeft:'查看详情'}}
+
+ {{action?action:'查看详情'}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/notice/index.js b/node_modules/mini-ali-ui/es/notice/index.js
new file mode 100755
index 0000000..bb645e8
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/notice/index.js
@@ -0,0 +1,248 @@
+import fmtEvent from '../_util/fmtEvent';
+
+var noop = function noop() {};
+
+var canIUseTransitionEnd = my.canIUse('view.onTransitionEnd');
+Component({
+ props: {
+ className: '',
+ mode: '',
+ // closable,link
+ action: '',
+ // 文本按钮
+ actionLeft: '',
+ // 文本按钮
+ show: true,
+ // 是否显示
+ enableMarquee: false,
+ // 是否开启marquee
+ onClick: function onClick() {},
+ onClickLeft: function onClickLeft() {},
+ marqueeProps: {
+ loop: false,
+ leading: 500,
+ trailing: 800,
+ fps: 40
+ },
+ capsuleItem: [],
+ showIcon: true,
+ type: 'normal',
+ // 通告栏类型: normal/error/active
+ capsule: false,
+ // 是否为胶囊型通告栏
+ transparent: false
+ },
+ data: {
+ animatedWidth: 0,
+ overflowWidth: 0,
+ duration: 0,
+ marqueeStyle: '',
+ canIUseTransitionEnd: canIUseTransitionEnd,
+ showShadow: true
+ },
+ didMount: function didMount() {
+ if (this.props.enableMarquee) {
+ if (!canIUseTransitionEnd) {
+ this._measureText();
+
+ this._startAnimation();
+ } else {
+ this._measureText(this.startMarquee.bind(this));
+ }
+ }
+
+ if (this.props.type === 'active' && this.props.transparent) {
+ this.setData({
+ showShadow: false
+ });
+ } else {
+ this.setData({
+ showShadow: true
+ });
+ }
+ },
+ didUpdate: function didUpdate() {
+ if (this.props.type === 'active' && this.props.transparent) {
+ this.setData({
+ showShadow: false
+ });
+ } else {
+ this.setData({
+ showShadow: true
+ });
+ } // 这里更新处理的原因是防止notice内容在动画过程中发生改变。
+
+
+ if (!canIUseTransitionEnd) {
+ this._measureText();
+ }
+
+ if (this.props.enableMarquee && !this._marqueeTimer && !canIUseTransitionEnd) {
+ this._measureText();
+
+ this._startAnimation();
+ } else {
+ // 当通过脚本切换 show 的值时(true or false),导致跑马灯动画效果失效的 bug 处理
+ if (!this.props.show) {
+ this.setData({
+ marqueeStyle: ''
+ });
+ }
+
+ this._measureText(this.startMarquee.bind(this));
+ }
+ },
+ didUnmount: function didUnmount() {
+ if (this._marqueeTimer) {
+ clearTimeout(this._marqueeTimer);
+ this._marqueeTimer = null;
+ }
+ },
+ methods: {
+ resetMarquee: function resetMarquee() {
+ var marqueeStyle = 'transform: translateX(0px); transition: 0s all linear;';
+ this.setData({
+ marqueeStyle: marqueeStyle
+ });
+ },
+ startMarquee: function startMarquee() {
+ var _this$props$marqueePr = this.props.marqueeProps.leading,
+ leading = _this$props$marqueePr === void 0 ? 500 : _this$props$marqueePr;
+ var _this$data = this.data,
+ duration = _this$data.duration,
+ overflowWidth = _this$data.overflowWidth;
+ var marqueeStyle = "transform: translateX(" + -overflowWidth + "px); transition: " + duration + "s all linear " + (typeof leading === 'number' ? leading / 1000 + "s" : '0s') + ";";
+ this.setData({
+ marqueeStyle: marqueeStyle
+ });
+ },
+ onTransitionEnd: function onTransitionEnd() {
+ var _this = this;
+
+ var _this$props$marqueePr2 = this.props.marqueeProps,
+ _this$props$marqueePr3 = _this$props$marqueePr2.loop,
+ loop = _this$props$marqueePr3 === void 0 ? false : _this$props$marqueePr3,
+ _this$props$marqueePr4 = _this$props$marqueePr2.trailing,
+ trailing = _this$props$marqueePr4 === void 0 ? 800 : _this$props$marqueePr4;
+
+ if (loop) {
+ setTimeout(function () {
+ _this.resetMarquee();
+
+ _this._measureText(_this.startMarquee.bind(_this));
+ }, typeof trailing === 'number' ? trailing : 0);
+ }
+ },
+ _measureText: function _measureText(callback) {
+ var _this2 = this;
+
+ if (callback === void 0) {
+ callback = noop;
+ }
+
+ var _this$props$marqueePr5 = this.props.marqueeProps.fps,
+ fps = _this$props$marqueePr5 === void 0 ? 40 : _this$props$marqueePr5; // 计算文本所占据的宽度,计算需要滚动的宽度
+
+ my.createSelectorQuery().select(".am-notice-marquee-" + this.$id).boundingClientRect().select(".am-notice-content-" + this.$id).boundingClientRect().exec(function (ret) {
+ var overflowWidth = ret && ret[0] && ret[1] && ret[0].width - ret[1].width || 0;
+
+ if (overflowWidth > 0) {
+ _this2.setData({
+ overflowWidth: overflowWidth,
+ duration: overflowWidth / fps
+ });
+
+ callback();
+ }
+ });
+ },
+ _startAnimation: function _startAnimation() {
+ var _this3 = this;
+
+ if (this._marqueeTimer) {
+ clearTimeout(this._marqueeTimer);
+ }
+
+ var _this$props$marqueePr6 = this.props.marqueeProps,
+ _this$props$marqueePr7 = _this$props$marqueePr6.loop,
+ loop = _this$props$marqueePr7 === void 0 ? false : _this$props$marqueePr7,
+ _this$props$marqueePr8 = _this$props$marqueePr6.leading,
+ leading = _this$props$marqueePr8 === void 0 ? 500 : _this$props$marqueePr8,
+ _this$props$marqueePr9 = _this$props$marqueePr6.trailing,
+ trailing = _this$props$marqueePr9 === void 0 ? 800 : _this$props$marqueePr9,
+ _this$props$marqueePr10 = _this$props$marqueePr6.fps,
+ fps = _this$props$marqueePr10 === void 0 ? 40 : _this$props$marqueePr10;
+ var TIMEOUT = 1 / fps * 1000;
+ var isLeading = this.data.animatedWidth === 0;
+ var timeout = isLeading ? leading : TIMEOUT;
+
+ var animate = function animate() {
+ var overflowWidth = _this3.data.overflowWidth;
+ var animatedWidth = _this3.data.animatedWidth + 1;
+ var isRoundOver = animatedWidth > overflowWidth;
+
+ if (isRoundOver) {
+ if (loop) {
+ animatedWidth = 0;
+ } else {
+ return;
+ }
+ }
+
+ if (isRoundOver && trailing) {
+ _this3._marqueeTimer = setTimeout(function () {
+ _this3.setData({
+ animatedWidth: animatedWidth
+ });
+
+ _this3._marqueeTimer = setTimeout(animate, TIMEOUT);
+ }, trailing);
+ } else {
+ _this3.setData({
+ animatedWidth: animatedWidth
+ });
+
+ _this3._marqueeTimer = setTimeout(animate, TIMEOUT);
+ }
+ };
+
+ if (this.data.overflowWidth !== 0) {
+ this._marqueeTimer = setTimeout(animate, timeout);
+ }
+ },
+ onNoticeTap: function onNoticeTap(e) {
+ var _this$props = this.props,
+ capsule = _this$props.capsule,
+ mode = _this$props.mode,
+ action = _this$props.action,
+ actionLeft = _this$props.actionLeft,
+ onClick = _this$props.onClick;
+ var event = fmtEvent(this.props, e);
+
+ if (capsule && typeof onClick === 'function' || mode === 'link' && actionLeft === '' && action === '' && typeof onClick === 'function') {
+ onClick(event);
+ }
+ },
+ onOperationTap: function onOperationTap(e) {
+ var _this$props2 = this.props,
+ mode = _this$props2.mode,
+ action = _this$props2.action,
+ onClick = _this$props2.onClick;
+ var event = fmtEvent(this.props, e);
+
+ if ((mode || action !== '') && typeof onClick === 'function') {
+ onClick(event);
+ }
+ },
+ onActionLeftTap: function onActionLeftTap(e) {
+ var _this$props3 = this.props,
+ actionLeft = _this$props3.actionLeft,
+ onClickLeft = _this$props3.onClickLeft;
+ var event = fmtEvent(this.props, e);
+
+ if (actionLeft !== '' && typeof onClickLeft === 'function') {
+ onClickLeft(event);
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/notice/index.json b/node_modules/mini-ali-ui/es/notice/index.json
new file mode 100755
index 0000000..717cce8
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/notice/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/page-result/index.acss b/node_modules/mini-ali-ui/es/page-result/index.acss
new file mode 100755
index 0000000..0d6b3aa
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/page-result/index.acss
@@ -0,0 +1 @@
+.am-page-result{display:flex;flex-direction:column;background:#fff;background:var(--am-result-background,#fff);height:100vh;overflow:hidden}.am-page-result-pic{width:168px;height:168px;margin:calc(50vh - 168px) auto 0;background-position:center bottom;background-repeat:no-repeat;background-size:contain}.am-page-result-title{margin:20px auto 0;margin:var(--am-result-margin-vertical,20px) auto 0;max-width:calc(100vw - 48px);max-width:calc(100vw - var(--am-result-title-h-spacing,48px));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:18px;font-size:var(--am-result-title-fontSize,18px);color:#333;color:var(--am-result-title-color,#333)}.am-page-result-brief{margin:0 auto;padding-top:12px;padding-top:var(--am-result-brief-margin-top,12px);font-size:13px;font-size:var(--am-result-brief-fontSize,13px);color:#999;color:var(--am-result-brief-color,#999);max-width:calc(100vw - 96px);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-align:center}.am-page-result-button{margin:20px auto 0;margin:var(--am-result-margin-vertical,20px) auto 0}.am-page-result-button-right{margin-left:12px;margin-left:var(--am-result-button-margin-left,12px)}.am-local-page{height:100%;padding-bottom:20px;padding-bottom:var(--am-result-margin-vertical,20px)}.am-local-page .am-page-result-pic{width:100px;height:100px;margin:20px auto 0;margin:var(--am-result-margin-vertical,20px) auto 0;background-size:contain}.am-local-page .am-page-result-brief{font-size:15px;font-size:var(--am-result-local-brief-fontSize,15px)}.page-empty{background-image:url("https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*XqqzSpaXRUcAAAAAAAAAAABkARQnAQ")}.page-error{background-image:url("https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*oJZsRIB9TGYAAAAAAAAAAABkARQnAQ")}.page-network{background-image:url("https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*tP6AQa0UANAAAAAAAAAAAABkARQnAQ")}.page-busy{background-image:url("https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*hkCKTJY-nXMAAAAAAAAAAABkARQnAQ")}.page-logoff{background-image:url("https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*kButSYpTAYUAAAAAAAAAAABkARQnAQ")}.page-payment{background-image:url("https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*bp8aTomhW3YAAAAAAAAAAABkARQnAQ")}.page-redpacket{background-image:url("https://gw.alipayobjects.com/mdn/rms_ce4c6f/afts/img/A*sb4TTqsZRMYAAAAAAAAAAABkARQnAQ")}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/page-result/index.axml b/node_modules/mini-ali-ui/es/page-result/index.axml
new file mode 100755
index 0000000..eb96a5f
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/page-result/index.axml
@@ -0,0 +1,14 @@
+
+
+ {{title === undefined ? defaultTitle[type] : title }}
+ {{brief === undefined ? defaultBrief[type] : brief}}
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/page-result/index.js b/node_modules/mini-ali-ui/es/page-result/index.js
new file mode 100755
index 0000000..adbc48a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/page-result/index.js
@@ -0,0 +1,105 @@
+var defaultEvent = function defaultEvent() {};
+
+var COUNT_DOWN_TIMES = 10;
+Component({
+ props: {
+ className: '',
+ type: 'network',
+ local: false,
+ footer: null,
+ onTapLeft: defaultEvent,
+ onTapRight: defaultEvent,
+ isCountDown: false,
+ countDownText: '重新刷新'
+ },
+ data: {
+ defaultTitle: {
+ network: '网络不给力',
+ error: '页面遇到一些小问题',
+ busy: '请稍等哦,马上出来',
+ empty: '什么都没有',
+ logoff: '此用户已注销',
+ payment: '付款没成功',
+ redpacket: '什么都没有'
+ },
+ defaultBrief: {
+ network: '世界上最遥远的距离莫过于此',
+ error: '请稍后刷新',
+ busy: '前面还有很多朋友在排队',
+ empty: '前不见古人,后不见来者',
+ logoff: '',
+ payment: '请重新付款',
+ redpacket: '红包已领空'
+ },
+ countDownTitle: ''
+ },
+ didMount: function didMount() {
+ var _this = this;
+
+ var _this$props = this.props,
+ countDownText = _this$props.countDownText,
+ isCountDown = _this$props.isCountDown;
+
+ if (!isCountDown) {
+ return;
+ }
+
+ var countDownTimes = COUNT_DOWN_TIMES;
+ this._timer = null;
+
+ var execCountDown = function execCountDown() {
+ _this.setData({
+ countDownTitle: countDownTimes + " \u79D2\u540E" + countDownText
+ });
+
+ countDownTimes -= 1;
+
+ if (countDownTimes < 0) {
+ clearTimeout(_this._timer);
+
+ _this.setData({
+ isCountDown: false
+ });
+ } else {
+ _this._timer = setTimeout(execCountDown, 1000);
+ }
+ };
+
+ execCountDown();
+ },
+ didUnmount: function didUnmount() {
+ if (this._timer) {
+ clearTimeout(this._timer);
+ this._timer = null;
+ }
+ },
+ methods: {
+ onDefaultTap: function onDefaultTap(propName) {
+ if (this.props.footer && this.props[propName]) {
+ var _this$props2;
+
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ (_this$props2 = this.props)[propName].apply(_this$props2, args);
+ } else {
+ defaultEvent();
+ }
+ },
+ onLeftButton: function onLeftButton() {
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+
+ this.onDefaultTap.apply(this, ['onTapLeft'].concat(args));
+ },
+ onRightButton: function onRightButton() {
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
+ args[_key3] = arguments[_key3];
+ }
+
+ this.onDefaultTap.apply(this, ['onTapRight'].concat(args));
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/page-result/index.json b/node_modules/mini-ali-ui/es/page-result/index.json
new file mode 100755
index 0000000..b8b801d
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/page-result/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "button": "../button/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/pagination/index.acss b/node_modules/mini-ali-ui/es/pagination/index.acss
new file mode 100755
index 0000000..41d088d
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/pagination/index.acss
@@ -0,0 +1 @@
+.am-pageInfinite{position:relative;width:100%;box-sizing:border-box}.am-pageInfinite_content{position:absolute;top:0;left:0;width:100%}.am-pageInfiniteWrap{position:absolute;bottom:8px;left:0;right:0;width:100%;height:5px;z-index:2;pointer-events:none}.am-pageInfiniteArea{position:absolute;left:50%;height:9px;width:50px;overflow:hidden;transform:translateX(-50%) scale(.5);background-repeat:no-repeat}.am-pageInfiniteMove{position:absolute;bottom:0;left:50%;width:180px;height:180px;margin-left:-90px;transition:all .1s linear;border-radius:50%}.am-pageInfiniteInner{position:absolute;bottom:0;left:50%;transform:translateX(-100%);height:9px;width:25px;background-repeat:no-repeat}.am-pager{display:flex;justify-content:center;transform:scale(.5)}.am-pager-number{flex:0 0 6px;height:6px;overflow:hidden;margin-right:6px;margin-bottom:8px;border-radius:50%;background-color:#ddd}.am-pager-number_white{background-color:rgba(255,255,255,.4)}.am-pager-current{width:24px;height:7px;margin-right:6px;background-repeat:no-repeat}.am-pager-lastChild{margin-right:0}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/pagination/index.axml b/node_modules/mini-ali-ui/es/pagination/index.axml
new file mode 100755
index 0000000..1d28fa5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/pagination/index.axml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/pagination/index.js b/node_modules/mini-ali-ui/es/pagination/index.js
new file mode 100755
index 0000000..31888be
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/pagination/index.js
@@ -0,0 +1,37 @@
+import fmtUnit from '../_util/fmtUnit';
+Component({
+ props: {
+ infinite: false,
+ className: '',
+ fillColor: '#ddd',
+ frontColor: '#006EFF',
+ pagerName: '',
+ height: fmtUnit('100px'),
+ white: false,
+ max: 5,
+ currentPage: 1
+ },
+ methods: {
+ clacWidth: function clacWidth(pagerName) {
+ var _this = this;
+
+ my.createSelectorQuery().select("#" + pagerName).boundingClientRect().exec(function (ret) {
+ _this.wrapWidth = ret[0].width;
+ });
+ return this.wrapWidth;
+ },
+ onScroll: function onScroll(e) {
+ var infinitePageNumber = {};
+ var _e$detail = e.detail,
+ scrollLeft = _e$detail.scrollLeft,
+ scrollWidth = _e$detail.scrollWidth;
+ var viewWidth = this.clacWidth(e.currentTarget.dataset.id);
+ infinitePageNumber[e.currentTarget.dataset.id] = {
+ pageDeg: Math.round(scrollLeft / (scrollWidth - viewWidth) * 16) > 16 ? 16 : Math.round(scrollLeft / (scrollWidth - viewWidth) * 16)
+ };
+ this.setData({
+ pageDeg: infinitePageNumber[e.currentTarget.dataset.id].pageDeg
+ });
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/pagination/index.json b/node_modules/mini-ali-ui/es/pagination/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/pagination/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/pagination/index.sjs b/node_modules/mini-ali-ui/es/pagination/index.sjs
new file mode 100755
index 0000000..c15f38b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/pagination/index.sjs
@@ -0,0 +1,5 @@
+const calcCurrent = (propsCurrent, current) => (typeof current === 'number' ? current : propsCurrent);
+
+export default {
+ calcCurrent,
+};
diff --git a/node_modules/mini-ali-ui/es/picker-item/index.acss b/node_modules/mini-ali-ui/es/picker-item/index.acss
new file mode 100755
index 0000000..691a3f2
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/picker-item/index.acss
@@ -0,0 +1 @@
+.am-picker-item{display:flex;align-items:center;background:#fff;background:var(--am-picker-background,#fff);padding-left:12px;padding-left:var(--am-picker-padding-left,12px)}.am-picker-line{position:relative;flex:1;display:flex;align-items:center;padding-right:12px;padding-right:var(--am-picker-line-padding-right,12px);min-height:48px;min-height:var(--am-picker-line-min-height,48px);overflow:hidden}.am-picker-label{align-self:center;min-width:80px;min-width:var(--am-picker-label-min-width,80px);margin-right:2px;font-size:17px;font-size:var(--am-picker-label-font-size,17px);color:#333;color:var(--am-picker-label-color,#333)}.am-picker-wrapper{display:flex;flex:1;height:24px;height:var(--am-picker-wrapper-height,24px);align-items:center;padding-left:3px;overflow:hidden;font-size:17px;font-size:var(--am-picker-font-size,17px)}.am-picker-layer{display:flex;flex:1}.am-picker-layer-vertical{flex-direction:column;padding:12px 0;padding:var(--am-picker-vlabel-paddingTB,12px) 0}.am-picker-layer-vertical .am-picker-label{align-self:flex-start;font-size:15px;font-size:var(--am-picker-vlabel-font-size,15px);color:#999;color:var(--am-picker-vlabel-color,#999)}.am-picker-layer-vertical .am-picker-wrapper{padding-left:0}.am-picker-content{flex:1;display:flex;align-items:center;color:#333;color:var(--am-picker-label-color,#333);text-align:left;overflow:hidden;white-space:nowrap;padding:0}.am-picker-clear{display:flex}.am-picker-line-bottom::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-picker-item.last .am-picker-line-bottom::after{display:none}.am-picker-content-placeholder{color:#ccc;color:var(--am-picker-placeholder-color,#ccc)}.am-picker-content-value{color:#333;color:var(--am-picker-content-value-color,#333)}.am-picker-arrow{display:block;margin-left:8px;margin-left:var(--am-picker-arrow-marginLeft,8px);line-height:1}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/picker-item/index.axml b/node_modules/mini-ali-ui/es/picker-item/index.axml
new file mode 100755
index 0000000..059f3ad
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/picker-item/index.axml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+ {{value.length > 0 ? value : placeholder}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/picker-item/index.js b/node_modules/mini-ali-ui/es/picker-item/index.js
new file mode 100755
index 0000000..adc1b66
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/picker-item/index.js
@@ -0,0 +1,19 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ className: '',
+ value: '',
+ placeholder: '',
+ onSelect: function onSelect() {},
+ labelCls: '',
+ pickerCls: '',
+ layer: '' // 表单排列位置,当为空时默认横向排列, vertical 为竖向排列
+
+ },
+ methods: {
+ onPickerTap: function onPickerTap(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onPickerTap(event);
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/picker-item/index.json b/node_modules/mini-ali-ui/es/picker-item/index.json
new file mode 100755
index 0000000..717cce8
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/picker-item/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popover/index.acss b/node_modules/mini-ali-ui/es/popover/index.acss
new file mode 100755
index 0000000..a3375c9
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popover/index.acss
@@ -0,0 +1 @@
+.am-popover{position:relative}.am-popover-content{position:absolute;z-index:100;border-radius:4px;border-radius:var(--am-popover-border-radius,4px);font-size:15px;font-size:var(--am-popover-font-size,15px);color:#333;color:var(--am-popover-font-color,#333)}.border-true{border:1px solid #ddd}.am-popover-inner{position:relative;background-color:#fff;background-color:var(--am-popover-bg-color,#fff);border-radius:4px;border-radius:var(--am-popover-border-radius,4px);overflow:hidden}.am-popover-placement-top{top:-7px;left:50%;transform:translate(-50%,-100%)}.am-popover-placement-topLeft{top:-7px;left:0;transform:translate(0,-100%)}.am-popover-placement-topRight{top:-7px;right:0;transform:translate(0,-100%)}.am-popover-placement-right{top:50%;right:-7px;transform:translate(100%,-50%)}.am-popover-placement-rightTop{top:0;right:-7px;transform:translateX(100%)}.am-popover-placement-rightBottom{bottom:0;right:-7px;transform:translateX(100%)}.am-popover-placement-bottom{bottom:-7px;left:50%;transform:translate(-50%,100%)}.am-popover-placement-bottomRight{bottom:-7px;right:0;transform:translateY(100%)}.am-popover-placement-bottomLeft{bottom:-7px;left:0;transform:translateY(100%)}.am-popover-placement-left{top:50%;left:-7px;transform:translate(-100%,-50%)}.am-popover-placement-leftTop{top:0;left:-7px;transform:translateX(-100%)}.am-popover-placement-leftBottom{bottom:0;left:-7px;transform:translateX(-100%)}.am-popover-arrow{position:absolute;width:7px;height:7px;background-color:#fff;background-color:var(--am-popover-arrow-color,#fff);z-index:0}.am-popover-placement-top .am-popover-arrow,.am-popover-placement-topLeft .am-popover-arrow,.am-popover-placement-topRight .am-popover-arrow{transform:translateY(50%) rotate(45deg);bottom:0}.am-popover-placement-top .am-popover-arrow{transform:translate(-50%,50%) rotate(45deg);left:50%}.am-popover-placement-topRight .am-popover-arrow{right:16px}.am-popover-placement-topLeft .am-popover-arrow{left:16px}.am-popover-placement-right .am-popover-arrow,.am-popover-placement-rightBottom .am-popover-arrow,.am-popover-placement-rightTop .am-popover-arrow{transform:translateX(-50%) rotate(45deg);left:0}.am-popover-placement-right .am-popover-arrow{transform:translate(-50%,-50%) rotate(45deg);top:50%}.am-popover-placement-rightBottom .am-popover-arrow{bottom:16px}.am-popover-placement-rightTop .am-popover-arrow{top:16px}.am-popover-placement-bottom .am-popover-arrow,.am-popover-placement-bottomLeft .am-popover-arrow,.am-popover-placement-bottomRight .am-popover-arrow{transform:translateY(-50%) rotate(45deg);top:0}.am-popover-placement-bottom .am-popover-arrow{transform:translate(-50%,-50%) rotate(45deg);left:50%}.am-popover-placement-bottomLeft .am-popover-arrow{left:16px}.am-popover-placement-bottomRight .am-popover-arrow{right:16px}.am-popover-placement-left .am-popover-arrow,.am-popover-placement-leftBottom .am-popover-arrow,.am-popover-placement-leftTop .am-popover-arrow{transform:translateX(50%) rotate(45deg);right:0}.am-popover-placement-left .am-popover-arrow{transform:translate(50%,-50%) rotate(45deg);top:50%}.am-popover-placement-leftTop .am-popover-arrow{top:16px}.am-popover-placement-leftBottom .am-popover-arrow{bottom:16px}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popover/index.axml b/node_modules/mini-ali-ui/es/popover/index.axml
new file mode 100755
index 0000000..de1a513
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popover/index.axml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popover/index.js b/node_modules/mini-ali-ui/es/popover/index.js
new file mode 100755
index 0000000..c0543ba
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popover/index.js
@@ -0,0 +1,16 @@
+Component({
+ props: {
+ show: false,
+ className: '',
+ showMask: true,
+ position: 'bottomRight',
+ fixMaskFull: false
+ },
+ methods: {
+ onMaskClick: function onMaskClick() {
+ if (this.props.onMaskClick && typeof this.props.onMaskClick === 'function') {
+ this.props.onMaskClick();
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popover/index.json b/node_modules/mini-ali-ui/es/popover/index.json
new file mode 100755
index 0000000..4a9a01b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popover/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "mask": "../mask/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/popover/popover-item/index.acss b/node_modules/mini-ali-ui/es/popover/popover-item/index.acss
new file mode 100755
index 0000000..e7d34c4
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popover/popover-item/index.acss
@@ -0,0 +1 @@
+.am-popover-item{max-width:170px;padding:0 12px;padding:0 var(--am-popover-item-padding,12px)}.am-popover-item-hover{background-color:#f2f2f2}.am-popover-item-wrapper{position:relative;padding-top:12px;padding-top:var(--am-popover-item-padding,12px);padding-bottom:12px;padding-bottom:var(--am-popover-item-padding,12px);padding-right:36px;padding-right:var(--am-popover-item-padding-right,36px);font-size:15px;font-size:var(--am-popover-item-font-size,15px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#333;color:var(--am-popover-item-font-color,#333);display:flex;align-items:center}.am-popover-item-icon-holder{height:22px;width:22px}.am-popover-item-ver-center{display:flex;align-items:center}.am-popover-item-slot-holder{padding-left:12px;padding-left:var(--am-popover-item-icon-text-space,12px)}.am-popover-item:not(:last-child)>.am-popover-item-wrapper::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popover/popover-item/index.axml b/node_modules/mini-ali-ui/es/popover/popover-item/index.axml
new file mode 100755
index 0000000..adda60a
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popover/popover-item/index.axml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/popover/popover-item/index.js b/node_modules/mini-ali-ui/es/popover/popover-item/index.js
new file mode 100755
index 0000000..9bc49d1
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popover/popover-item/index.js
@@ -0,0 +1,14 @@
+import fmtEvent from '../../_util/fmtEvent';
+Component({
+ props: {
+ className: ''
+ },
+ methods: {
+ onItemClick: function onItemClick(e) {
+ if (this.props.onItemClick && typeof this.props.onItemClick === 'function') {
+ var event = fmtEvent(this.props, e);
+ this.props.onItemClick(event);
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popover/popover-item/index.json b/node_modules/mini-ali-ui/es/popover/popover-item/index.json
new file mode 100755
index 0000000..fe1780c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popover/popover-item/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popup/index.acss b/node_modules/mini-ali-ui/es/popup/index.acss
new file mode 100755
index 0000000..68556bf
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popup/index.acss
@@ -0,0 +1 @@
+.am-popup-content{position:fixed}.am-popup-mask{visibility:hidden;position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);opacity:0}.am-popup-left{transform:translateX(-100%);left:0;top:0;bottom:0}.am-popup-right{transform:translateX(100%);right:0;top:0;bottom:0}.am-popup-top{top:0;width:100vw;transform:translateY(-100%)}.am-popup-bottom{bottom:0;width:100vw;transform:translateY(100%)}.am-popup-show .am-popup-content{transform:none}.am-popup-show .am-popup-mask{visibility:visible;opacity:1}.am-popup.animation .am-popup-content{transition:all .2s linear}.am-popup.animation .am-popup-mask{transition:all .2s linear}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popup/index.axml b/node_modules/mini-ali-ui/es/popup/index.axml
new file mode 100755
index 0000000..9eb219c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popup/index.axml
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popup/index.js b/node_modules/mini-ali-ui/es/popup/index.js
new file mode 100755
index 0000000..47438fb
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popup/index.js
@@ -0,0 +1,27 @@
+Component({
+ props: {
+ className: '',
+ show: false,
+ position: 'bottom',
+ mask: true,
+ animation: true,
+ disableScroll: true
+ },
+ methods: {
+ onMaskTap: function onMaskTap() {
+ var _this$props = this.props,
+ onClose = _this$props.onClose,
+ animation = _this$props.animation;
+
+ if (onClose) {
+ if (animation) {
+ onClose();
+ } else {
+ setTimeout(function () {
+ onClose();
+ }, 200);
+ }
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/popup/index.json b/node_modules/mini-ali-ui/es/popup/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/popup/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/search-bar/index.acss b/node_modules/mini-ali-ui/es/search-bar/index.acss
new file mode 100755
index 0000000..270357c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/search-bar/index.acss
@@ -0,0 +1 @@
+.am-search{height:44px;display:flex;align-items:center;padding:0 0 0 12px;overflow:hidden}.am-search-input{display:flex;position:relative;height:30px;line-height:30px;flex:1;box-sizing:border-box;border-radius:6px;border-radius:var(--am-search-corner-radius,6px);border-width:1px;border-width:var(--am-search-borderwidth,1px);border-style:solid;background:#fff;background:var(--am-search-background,#fff)}.am-search-synthetic{display:flex;position:absolute;left:0;top:0;height:28px;line-height:28px;padding-left:12px;align-items:center}.am-search-synthetic-placeholder{font-size:13px;font-size:var(--am-search-fontsize,13px);color:#999;color:var(--am-search-placeholder-color,#999);margin-left:4px;line-height:1;display:inline-block}.am-search-synthetic-icon{line-height:1;font-size:15px;font-size:var(--am-search-iconsize,15px);color:#999;color:var(--am-search-searchicon-color,#999);display:inline-block}.am-search-value{flex:1;height:28px;font-size:13px;font-size:var(--am-search-fontsize,13px);padding:0 0 0 34px;background:0 0;box-sizing:border-box}.am-search-clear{display:flex;align-items:center;position:relative;visibility:hidden;width:28px;height:28px}.am-search-clear-font{font-size:15px;font-size:var(--am-search-iconsize,15px);color:#ccc;color:var(--am-search-clearicon-color,#ccc)}.am-search-voice{display:flex;align-items:center;position:relative;width:28px;height:28px}.am-search-voice-font{font-size:15px;font-size:var(--am-search-iconsize,15px);color:#999;color:var(--am-search-vocieicon-color,#999)}.am-search-clear-show{visibility:visible}.am-search-cancel{margin-right:-46px;opacity:0;color:#1677ff;color:var(--am-search-cancel-color,#1677ff);font-size:15px;font-size:var(--am-search-cancel-fontsize,15px);width:58px;height:30px;line-height:30px;text-align:center}.am-search-repos{margin-right:0;opacity:1}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/search-bar/index.axml b/node_modules/mini-ali-ui/es/search-bar/index.axml
new file mode 100755
index 0000000..841d1a2
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/search-bar/index.axml
@@ -0,0 +1,29 @@
+
+
+
+
+ {{placeholder}}
+
+
+
+
+
+
+
+
+
+ 取消
+
diff --git a/node_modules/mini-ali-ui/es/search-bar/index.js b/node_modules/mini-ali-ui/es/search-bar/index.js
new file mode 100755
index 0000000..63df591
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/search-bar/index.js
@@ -0,0 +1,111 @@
+Component({
+ props: {
+ className: '',
+ placeholder: '',
+ focus: false,
+ showVoice: false,
+ borderColor: '#1677ff'
+ },
+ data: {
+ _value: '',
+ focus: false
+ },
+ didMount: function didMount() {
+ this.setData({
+ _value: 'value' in this.props ? this.props.value : '',
+ focus: this.props.focus
+ });
+ },
+ didUpdate: function didUpdate() {
+ if ('value' in this.props && this.props.value !== this.data._value) {
+ this.setData({
+ _value: this.props.value
+ });
+ }
+ },
+ methods: {
+ handleInput: function handleInput(e) {
+ var value = e.detail.value;
+
+ if (!('value' in this.props)) {
+ this.setData({
+ _value: value
+ });
+ }
+
+ if (this.props.onInput) {
+ this.props.onInput(value);
+ }
+ },
+ handleClear: function handleClear() {
+ var _this = this;
+
+ // this.setData({
+ // focus: true,
+ // });
+ setTimeout(function () {
+ _this.handleFocus();
+ }, 100);
+
+ if (!('value' in this.props)) {
+ this.setData({
+ _value: ''
+ });
+ }
+
+ this.doClear();
+ },
+ doClear: function doClear() {
+ if (this.props.onClear) {
+ this.props.onClear('');
+ }
+
+ if (this.props.onChange) {
+ this.props.onChange('');
+ }
+ },
+ handleFocus: function handleFocus() {
+ this.setData({
+ focus: true
+ });
+
+ if (this.props.onFocus) {
+ this.props.onFocus();
+ }
+ },
+ handleBlur: function handleBlur() {
+ this.setData({
+ focus: false
+ });
+
+ if (this.props.onBlur) {
+ this.props.onBlur();
+ }
+ },
+ handleCancel: function handleCancel() {
+ if (!('value' in this.props)) {
+ this.setData({
+ _value: ''
+ });
+ }
+
+ if (this.props.onCancel) {
+ this.props.onCancel();
+ } else {
+ this.doClear();
+ }
+ },
+ handleConfirm: function handleConfirm(e) {
+ var value = e.detail.value;
+
+ if (this.props.onSubmit) {
+ this.props.onSubmit(value);
+ }
+ },
+ handleVoice: function handleVoice() {
+ if (this.props.onVoiceClick) {
+ this.props.onVoiceClick();
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/search-bar/index.json b/node_modules/mini-ali-ui/es/search-bar/index.json
new file mode 100755
index 0000000..c923371
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/search-bar/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/stepper/index.acss b/node_modules/mini-ali-ui/es/stepper/index.acss
new file mode 100755
index 0000000..a59e761
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/stepper/index.acss
@@ -0,0 +1 @@
+.am-stepper-content{display:flex;position:relative;height:24px;height:var(--am-stepper-height,24px);overflow:hidden;font-size:15px;border:1px solid #eee;border:var(--am-stepper-borderWidth,1px) solid var(--am-stepper-borderColor,#eee);background-color:#fff;background-color:var(--am-stepper-bgc,#fff);border-radius:2px;border-radius:var(--am-stepper-borderRadius,2px);box-sizing:border-box}.am-stepper-input{height:24px;height:var(--am-stepper-input-size,24px);padding:0;margin:0 8px;margin:0 var(--am-stepper-input-marginLR,v-spacing-standard);line-height:24px;line-height:var(--am-stepper-input-size,24px);text-align:center;font-size:15px;font-size:var(--am-stepper-input-fontSize,15px);color:#333;color:var(--am-stepper-input-color,#333);border:0 none;background-color:transparent;transform:translate(0,-1px)}.am-stepper-input-hide{visibility:hidden}.am-stepper-option{display:flex;flex:0 0 24px;flex:0 0 var(--am-stepper-btn-size,24px);height:24px;height:var(--am-stepper-btn-size,24px);justify-content:center;align-items:center;border:1px solid #eee;border:var(--am-stepper-borderWidth,1px) solid var(--am-stepper-borderColor,#eee);border-radius:2px;border-radius:var(--am-stepper-borderRadius,2px);box-sizing:border-box}.am-stepper-reduce{position:relative;transform:translate(-1px,-1px)}.am-stepper-reduce::before{content:"";display:inline-block;width:8px;width:var(--am-stepper-btn-reduce,8px);height:1px;overflow:hidden;background-color:#1677ff;background-color:var(--am-stepper-btn-color,#1677ff);border-radius:50vh}.am-stepper-add{transform:translate(1px,-1px)}.am-stepper-add .am-icon{font-size:12px;font-size:var(--am-stepper-btn-add,12px);color:#1677ff;color:var(--am-stepper-btn-color,#1677ff)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/stepper/index.axml b/node_modules/mini-ali-ui/es/stepper/index.axml
new file mode 100755
index 0000000..805f617
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/stepper/index.axml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/stepper/index.js b/node_modules/mini-ali-ui/es/stepper/index.js
new file mode 100755
index 0000000..9e2165f
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/stepper/index.js
@@ -0,0 +1,138 @@
+import fmtUnit from '../_util/fmtUnit';
+Component({
+ data: {
+ opaReduce: 1,
+ opaAdd: 1
+ },
+ props: {
+ className: '',
+ min: 0,
+ max: 100000,
+ disabled: false,
+ value: 10,
+ readOnly: false,
+ showNumber: false,
+ inputWidth: fmtUnit('36px'),
+ step: 1,
+ onChange: function onChange() {}
+ },
+ didMount: function didMount() {
+ var _this$props = this.props,
+ value = _this$props.value,
+ min = _this$props.min,
+ max = _this$props.max;
+ this.setData({
+ value: Math.min(Math.max(min, value), max)
+ });
+ },
+ didUpdate: function didUpdate(preProps) {
+ var _this$props2 = this.props,
+ value = _this$props2.value,
+ min = _this$props2.min,
+ max = _this$props2.max;
+
+ if (preProps.value !== value) {
+ var newValue = Math.min(Math.max(min, value), max);
+ this.setData({
+ value: newValue
+ });
+ this.resetFn(newValue);
+ }
+ },
+ methods: {
+ changeFn: function changeFn(ev) {
+ var _this$props3 = this.props,
+ min = _this$props3.min,
+ max = _this$props3.max,
+ onChange = _this$props3.onChange,
+ disabled = _this$props3.disabled,
+ step = _this$props3.step;
+ var evType = ev.target.dataset.type;
+ var _this$data = this.data,
+ opaReduce = _this$data.opaReduce,
+ opaAdd = _this$data.opaAdd,
+ value = _this$data.value;
+
+ if (!disabled) {
+ if (evType === 'reduce') {
+ if (value > min) {
+ opaAdd = 1;
+ value = Math.max(min, this.getCalculateValue('reduce', +value, +step));
+ opaReduce = value === min ? 0.4 : 1;
+ }
+ } else {
+ /* eslint-disable no-lonely-if */
+ if (value < max) {
+ opaReduce = 1;
+ value = Math.min(this.getCalculateValue('add', +value, +step), max);
+ opaAdd = value === max ? 0.4 : 1;
+ }
+ }
+
+ this.setData({
+ value: value,
+ opaAdd: opaAdd,
+ opaReduce: opaReduce
+ });
+ onChange(value, 'click');
+ }
+ },
+ onInput: function onInput(e) {
+ var max = this.props.max;
+ var value = e.detail.value;
+
+ if (value >= max) {
+ e.detail.value = max;
+ this.setData({
+ value: max
+ });
+ }
+
+ this.resetFn(Number(value), 'input');
+ },
+ onBlur: function onBlur(event) {
+ var value = event.detail.value;
+ var max = this.props.max;
+
+ if (value >= max) {
+ event.detail.value = max;
+ this.setData({
+ value: max
+ });
+ }
+
+ this.resetFn(Number(value), 'input');
+ },
+ resetFn: function resetFn(value, mode) {
+ var _this$props4 = this.props,
+ max = _this$props4.max,
+ min = _this$props4.min,
+ onChange = _this$props4.onChange;
+ var calculatedVal = value;
+ var opaAdd = 1;
+ var opaReduce = 1;
+
+ if (value >= max) {
+ calculatedVal = max;
+ opaAdd = 0.4;
+ } else if (value <= min) {
+ calculatedVal = min;
+ opaReduce = 0.4;
+ }
+
+ this.setData({
+ value: calculatedVal,
+ opaAdd: opaAdd,
+ opaReduce: opaReduce
+ });
+ onChange(calculatedVal, mode);
+ },
+ getCalculateValue: function getCalculateValue(type, arg1, arg2) {
+ var numFloat = arg1.toString().split('.')[1] || '';
+ var num2Float = arg2.toString().split('.')[1] || '';
+ var length = Math.max(numFloat.length, num2Float.length);
+ var times = Math.pow(10, length);
+ return type === 'reduce' ? ((+arg1 * times - +arg2 * times) / times).toFixed(length) : ((+arg1 * times + +arg2 * times) / times).toFixed(length);
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/stepper/index.json b/node_modules/mini-ali-ui/es/stepper/index.json
new file mode 100755
index 0000000..c923371
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/stepper/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/steps/index.acss b/node_modules/mini-ali-ui/es/steps/index.acss
new file mode 100755
index 0000000..b7038fe
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/steps/index.acss
@@ -0,0 +1 @@
+.am-hor-steps{padding:20px 56px;background-color:#fff;background-color:var(--am-steps-bg-color,#fff);overflow:hidden;white-space:nowrap}.am-hor-step{display:inline-block;white-space:normal;text-align:center;vertical-align:top;line-height:normal}.am-hor-step-line{position:relative;margin:6px 0;height:1px;background-color:#e5e5e5;background-color:var(--am-steps-bg-color,#e5e5e5)}.am-hor-step-line.is-active{background-color:#1677ff;background-color:var(--am-steps-color,#1677ff)}.am-hor-step-line.is-last{background-color:transparent}.am-hor-step-icon{position:absolute;top:50%;left:0;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50vh;border-radius:var(--am-steps-icon-border-radius,50vh);background-color:#e5e5e5;background-color:var(--am-steps-bg-color,#e5e5e5)}.am-hor-step-icon.is-active{background-color:#1677ff;background-color:var(--am-steps-color,#1677ff)}.am-hor-step-text{margin-top:12px;padding:0 5px;max-width:90px;transform:translateX(-50%)}.am-hor-step-title{font-size:12px;font-size:var(--am-steps-horizontal-title-size,12px);color:#333;color:var(--am-steps-title-color,#333)}.am-hor-step-description{margin-top:2px;font-size:12px;font-size:var(--am-steps-horizontal-description-size,12px);color:#999;color:var(--am-steps-description-color,#999)}.am-vertical-steps{padding:20px 30px 20px 30px;background-color:#fff;background-color:var(--am-steps-bg-color,#fff)}.am-vertical-step{display:flex}.am-vertical-step-left{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:24px;margin-right:20px}.am-vertical-step-line{position:relative;top:10px;width:1px;background-color:#e5e5e5;background-color:var(--am-steps-bg-color,#e5e5e5)}.am-vertical-step-line-top{flex:1}.am-vertical-step-line-bottom{height:30px;width:1px;background-color:#e5e5e5;background-color:var(--am-steps-bg-color,#e5e5e5)}.am-vertical-step-line.is-active{background-color:#1677ff;background-color:var(--am-steps-color,#1677ff)}.am-vertical-step-icon{position:absolute;top:0;left:50%;transform:translateX(-50%);border-radius:50vh;border-radius:var(--am-steps-icon-border-radius,50vh)}.am-vertical-step-active-image,.am-vertical-step-image{width:24px;border-radius:50vh;border-radius:var(--am-steps-icon-border-radius,50vh)}.am-vertical-step-active-image{background-color:#1677ff;background-color:var(--am-steps-color,#1677ff)}.am-vertical-step-image{background-color:#e5e5e5;background-color:var(--am-steps-bg-color,#e5e5e5)}.am-vertical-step-icon.is-normal{top:5px;background-color:#e5e5e5;background-color:var(--am-steps-bg-color,#e5e5e5);width:8px;height:8px}.am-vertical-step-icon.is-active,.am-vertical-step-icon.is-fail{display:flex;background-color:#fff;background-color:var(--am-steps-bg-color,#fff)}.am-vertical-step-right{flex:1;margin-bottom:12px}.am-vertical-step-right-last{margin-bottom:0}.am-vertical-step-title{margin-bottom:4px;font-size:17px;font-size:var(--am-steps-vertical-title-size,17px);color:#333;color:var(--am-steps-title-color,#333)}.am-vertical-step-title.is-active{color:#1677ff;color:var(--am-steps-vertical-title-active-color,#1677ff)}.am-vertical-step-title.is-fail{color:#ff3b30;color:var(--am-steps-vertical-warning-color,#ff3b30)}.am-vertical-step-description{font-size:15px;font-size:var(--am-steps-vertical-description-size,15px);color:#999;color:var(--am-steps-description-color,#999)}.am-vertical-placeholder{height:20px}.am-vertical-placeholder-line{position:absolute;left:50%;transform:translateX(-50%);height:100%;width:1px;background-color:#e5e5e5;background-color:var(--am-steps-bg-color,#e5e5e5)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/steps/index.axml b/node_modules/mini-ali-ui/es/steps/index.axml
new file mode 100755
index 0000000..5ae1482
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/steps/index.axml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+
+ {{item.description}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+
+ {{item.description}}
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/steps/index.js b/node_modules/mini-ali-ui/es/steps/index.js
new file mode 100755
index 0000000..c1b6708
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/steps/index.js
@@ -0,0 +1,10 @@
+Component({
+ props: {
+ className: '',
+ activeIndex: 1,
+ failIndex: 0,
+ size: 0,
+ direction: 'horizontal',
+ items: []
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/steps/index.json b/node_modules/mini-ali-ui/es/steps/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/steps/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/style/themes/default.acss b/node_modules/mini-ali-ui/es/style/themes/default.acss
new file mode 100755
index 0000000..a0102d5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/style/themes/default.acss
@@ -0,0 +1 @@
+:root{--am-color-brand-1:#1677ff;--am-color-brand-2:#e7f1ff;--am-color-red-1:#f93a4a;--am-color-red-2:#ffeeef;--am-color-pink-1:#ff6565;--am-color-pink-2:#ffeeee;--am-color-tangerine-1:#ff6010;--am-color-tangerine-2:#ffece3;--am-color-orange-1:#ff8f1f;--am-color-orange-2:#ffefdf;--am-color-golden-1:#c19030;--am-color-golden-2:#fff3d9;--am-color-golden-3:#fff9ed;--am-color-pomonagreen-1:#00B578;--am-color-pomonagreen-2:#d4fff1;--am-color-darkgreen-1:#00bfd0;--am-color-darkgreen-2:#ddfcff;--am-color-skybule-1:#00b7f4;--am-color-skybule-2:#e0f7ff;--am-color-royallight-1:#4876ff;--am-color-royallight-2:#ebefff;--am-color-purple-1:#5260ff;--am-color-purple-2:#edeeff;--am-color-ironblack-1:#454955;--am-color-ironblack-2:#f1f1f1;--am-color-fill-primary:#1677ff;--am-color-fill-primary-light:#e7f1ff;--am-color-fill-warning:#ff3b30;--am-color-fill-grey-base:#ccc;--am-color-fill-grey-dark:#333;--am-color-fill-grey-light:#e5e5e5;--am-color-fill-grey-inverse:#fff;--am-color-divider-line:#eeeeee;--am-color-divider-background:#f5f5f5;--am-color-product-mask:rgba(0, 0, 0, 0.55);--am-color-marketing-mask:rgba(0, 0, 0, 0.75);--am-color-text-primary:#1677ff;--am-color-text-primary-light:#e7f1ff;--am-color-text-warning:#ff3b30;--am-color-text-title:#333;--am-color-text-subtitle:#999;--am-color-text-weak:#ccc;--am-color-text-base:#fff;--am-opacity-disabled:0.4;--am-font-size-stress:27px;--am-font-size-title:18px;--am-font-size-list:17px;--am-font-size-subtitle:15px;--am-font-size-content:13px;--am-font-size-subcontent:12px;--am-font-size-weak:11px;--am-font-family-alipay-number:DIN PRO;--am-font-size-amount-core:55px;--am-font-size-amount-largenumber:45px;--am-font-size-amount-large:30px;--am-font-size-number-keyboard:25px;--am-line-height-base:1;--am-line-height-paragraph:1.5;--am-corner-radius-sm:2px;--am-corner-radius-md:4px;--am-corner-radius-md-plus:6px;--am-corner-radius-lg:8px;--am-corner-radius-circle:50vh;--am-size-0:0;--am-size-1:4px;--am-size-2:8px;--am-size-3:12px;--am-size-4:16px;--am-size-5:20px;--am-size-6:24px;--am-size-7:28px;--am-size-8:32px;--am-size-9:36px;--am-size-10:40px;--am-size-11:44px;--am-size-12:48px;--am-size-13:52px;--am-size-14:56px;--am-size-15:60px;--am-size-16:64px;--am-size-17:68px;--am-size-18:72px;--am-size-19:76px;--am-size-20:80px;--am-h-spacing-standard:8px;--am-h-spacing-large:12px;--am-v-spacing-standard:8px;--am-v-spacing-large:12px;--am-border-width-standard:1px;--am-border-width-thick:2px;--am-icon-size-xs:18px;--am-icon-size-sm:22px;--am-icon-size-md:28px;--am-icon-size-lg:32px}:root{--am-input-item-placeholder-color:var(--am-color-text-weak);--am-input-item-label-color:var(--am-color-text-title);--am-input-item-color:var(--am-color-text-title);--am-input-item-padding-left:var(--am-h-spacing-large);--am-input-item-background:var(--am-color-fill-grey-inverse);--am-input-line-padding-right:var(--am-h-spacing-large);--am-input-line-min-height:var(--am-size-12);--am-input-label-min-width:var(--am-size-20);--am-input-content-height:var(--am-size-6);--am-input-clear-size:var(--am-size-8);--am-input-font-size:var(--am-font-size-list);--am-input-label-font-size:var(--am-font-size-list);--am-input-icon-size:var(--am-icon-size-sm);--am-input-icon-line-height:var(--am-line-height-base);--am-input-vlabel-paddingTB:var(--am-v-spacing-large);--am-input-vlabel-font-size:var(--am-font-size-subtitle);--am-input-vlabel-color:var(--am-color-text-subtitle);--am-picker-placeholder-color:var(--am-color-text-weak);--am-picker-padding-left:var(--am-h-spacing-large);--am-picker-background:var(--am-color-fill-grey-inverse);--am-picker-line-padding-right:var(--am-h-spacing-large);--am-picker-line-min-height:var(--am-size-12);--am-picker-label-min-width:var(--am-size-20);--am-picker-label-color:var(--am-color-text-title);--am-picker-wrapper-height:var(--am-size-6);--am-picker-arrow-size:var(--am-size-4);--am-picker-font-size:var(--am-font-size-list);--am-picker-label-font-size:var(--am-font-size-list);--am-picker-vlabel-font-size:var(--am-font-size-subtitle);--am-picker-vlabel-color:var(--am-color-text-subtitle);--am-picker-vlabel-paddingTB:var(--am-v-spacing-large);--am-picker-content-value-color:var(--am-color-text-title);--am-picker-arrow-marginLeft:var(--am-h-spacing-standard);--am-verify-code-placeholder-color:var(--am-color-text-weak);--am-verify-code-action-active-color:var(--am-color-text-primary);--am-verify-code-action-inactive-color:var(--am-color-text-subtitle);--am-verify-code-action-border-left-width:var(--am-border-width-standard);--am-verify-code-action-border-left-color:var(--am-color-text-weak);--am-verify-code-item-padding-left:var(--am-h-spacing-large);--am-verify-code-action-padding-left:var(--am-h-spacing-large);--am-verify-code-item-background:var(--am-color-fill-grey-inverse);--am-verify-code-line-padding-right:var(--am-h-spacing-large);--am-verify-code-line-min-height:var(--am-size-12);--am-verify-code-label-min-width:var(--am-size-20);--am-verify-code-label-color:var(--am-color-text-title);--am-verify-code-content-height:var(--am-size-6);--am-verify-code-icon-size:var(--am-icon-size-sm);--am-verify-code-icon-line-height:var(--am-line-height-base);--am-verify-code-font-size:var(--am-font-size-list);--am-multi-liner-item-placeholder-color:var(--am-color-text-weak);--am-multi-liner-item-label-color:var(--am-color-text-title);--am-multi-liner-item-padding-left:var(--am-h-spacing-large);--am-multi-liner-item-background:var(--am-color-fill-grey-inverse);--am-multi-liner-line-padding-right:var(--am-size-3);--am-multi-liner-line-min-height:var(--am-size-12);--am-multi-liner-label-min-width:var(--am-size-20);--am-multi-liner-label-color:var(--am-color-text-title);--am-multi-liner-content-height:var(--am-size-6);--am-multi-liner-font-size:var(--am-font-size-list);--am-multi-liner-content-padding:var(--am-h-spacing-large);--am-long-password-item-background:var(--am-color-fill-grey-inverse);--am-long-password-item-padding-left:var(--am-h-spacing-large);--am-long-password-line-padding-right:var(--am-h-spacing-large);--am-long-password-line-min-height:var(--am-size-12);--am-long-password-content-color:var(--am-color-text-title);--am-long-password-font-size:var(--am-font-size-list);--am-long-password-eye-spacing:var(--am-h-spacing-large);--am-long-password-icon-size:var(--am-icon-size-sm);--am-long-password-icon-line-height:var(--am-line-height-base);--am-amount-padding-horizontal:var(--am-color-text-weak);--am-amount-padding-vertical:var(--am-color-text-weak);--am-amount-placeholder-color:var(--am-color-text-weak);--am-amount-placeholder-font-size:var(--am-font-size-subcontent);--am-amount-title-color:var(--am-color-text-title);--am-amount-title-height:var(--am-size-6);--am-amount-background:var(--am-color-fill-grey-inverse);--am-amount-input-padding-bottom:var(--am-v-spacing-standard);--am-amount-input-height:var(--am-size-12);--am-amount-input-line-height:var(--am-line-height-base);--am-amount-symbol-color:var(--am-color-text-title);--am-amount-symbol-font-size:var(--am-font-size-amount-large);--am-amount-symbol-line-height:var(--am-line-height-base);--am-amount-a-input-padding:var(--am-h-spacing-standard);--am-amount-placeholder-font-size:var(--am-font-size-amount-large);--am-amount-footer-padding-top:var(--am-h-spacing-large);--am-amount-footer-line-height:var(--am-line-height-base);--am-amount-extra-line-height:var(--am-line-height-base);--am-amount-extra-color:var(--am-color-text-subtitle);--am-amount-extra-font-size:var(--am-font-size-subtitle);--am-amount-btn-font-size:var(--am-font-size-subtitle);--am-amount-btn-font-color:var(--am-color-text-primary);--am-amount-btn-line-height:var(--am-line-height-base);--am-amount-title-line-height:var(--am-line-height-base);--am-amount-title-font-size:var(--am-color-text-title);--am-amount-content-line-height:var(--am-line-height-base);--am-amount-value-margin-top:var(--am-size-6);--am-footer-divider-content-paddingLR:var(12px);--am-footer-divider-content-paddingTB:var(20px);--am-footer-divider-paddingLR:var(12px);--am-notice-paddingV:var(--am-v-spacing-standard);--am-notice-paddingH:var(--am-h-spacing-large);--am-notice-color:var(--am-color-tangerine-1);--am-notice-bgc:var(--am-color-golden-3);--am-notice-icon-size:var(--am-icon-size-xs);--am-notice-borderWidth:var(--am-border-width-standard);--am-notice-borderColor:var(--am-color-golden-2);--am-notice-error-color:var(--am-color-text-base);--am-notice-error-borderColor:var(--am-color-golden-2);--am-notice-error-bgc:var(--am-color-fill-warning);--am-notice-active-color:var(--am-color-text-primary);--am-notice-active-bgc:#d0e4ff;--am-notice-active-borderColor:#bed9ff;--am-notice-thumb-marginRight:var(--am-h-spacing-standard);--am-notice-content-fontSize:var(--am-font-size-subtitle);--am-notice-content-lineHeight:var(--am-line-height-paragraph);--am-notice-operation-FontSize:var(--am-font-size-subtitle);--am-notice-operation-color:var(--am-color-text-warning);--am-notice-operation-marginLeft:var(--am-h-spacing-standard);--am-notice-capsule-item-marginRight:var(--am-h-spacing-standard);--am-notice-capsule-item-paddingRight:var(--am-h-spacing-standard);--am-notice-capsule-radius:var(--am-corner-radius-circle);--am-notice-capsule-item-size:var(--am-icon-size-sm);--am-notice-capsule-item-borderWidth:var(--am-border-width-thick);--am-notice-capsule-item-borderColor:var(--am-color-fill-grey-inverse);--am-notice-capsule-bgc:var(--am-color-fill-grey-inverse);--am-notice-capsule-borderColor:var(--am-color-fill-grey-light);--am-title-paddingB:var(--am-v-spacing-large);--am-title-paddingLR:var(--am-h-spacing-large);--am-title-marginBottom:var(--am-v-spacing-large);--am-title-borderWidth:var(--am-border-width-standard);--am-title-borderColor:var(--am-color-divider-line);--am-title-text-fontSize:var(--am-font-size-subtitle);--am-title-text-color:var(--am-color-text-title);--am-title-icon-width:var(--am-size-6);--am-title-icon-height:var(--am-size-6);--am-title-icon-marginRight:var(--am-h-spacing-standard);--am-operation-icon-width:var(--am-size-6);--am-operation-icon-height:var(--am-size-6);--am-title-operation-lineHeight:var(--am-size-6);--am-title-operation-marginLeft:var(--am-h-spacing-standard);--am-title-operation-icon-color:var(--am-color-text-weak);--am-title-operation-icon-size:var(--am-icon-size-xs);--am-container-corner-radius:var(--am-corner-radius-lg);--am-container-item-corner-radius:var(--am-corner-radius-md);--am-container-background:var(--am-color-fill-grey-inverse);--am-container-padding-v:var(--am-v-spacing-large);--am-container-padding-h:var(--am-h-spacing-large);--am-container-padding-item:var(--am-v-spacing-standard);--am-list-item-outside-spacing:var(--am-h-spacing-large);--am-list-item-border-radius:var(--am-corner-radius-lg);--am-list-item-content-color:var(--am-color-text-title);--am-list-item-content-subtitle-color:var(--am-color-text-subtitle);--am-list-item-content-title-size:var(--am-font-size-list);--am-list-item-subtitle-size:var(--am-font-size-subtitle);--am-list-item-content-subtitle-size-small:var(--am-font-size-content);--am-list-item-content-padding:var(--am-v-spacing-large);--am-list-item-background:var(--am-color-fill-grey-inverse);--am-list-item-line-height:var(--am-line-height-paragraph);--am-list-item-padding:var(--am-h-spacing-large);--am-list-item-padding-vertical:var(--am-v-spacing-large);--am-list-item-min-height:var(--am-size-12);--am-list-item-extra-size:var(--am-font-size-subtitle);--am-list-item-extra-color:var(--am-color-text-subtitle);--am-list-item-arrow-margin:var(--am-h-spacing-large);--am-list-item-arrow-size:var(--am-icon-size-sm);--am-list-secondary-title-size:var(--am-font-size-list);--am-list-secondary-subtitle-size:var(--am-font-size-subtitle);--am-list-secondary-title-color:var(--am-color-text-title);--am-list-secondary-subtitle-color:var(--am-color-text-subtitle);--am-list-switch-content-color:var(--am-color-text-title);--am-list-switch-content-font-size:var(--am-font-size-list);--am-list-switch-background:var(--am-color-fill-grey-inverse);--am-list-switch-line-height:var(--am-line-height-paragraph);--am-list-switch-padding:var(--am-h-spacing-large);--am-list-switch-padding-vertical:var(--am-v-spacing-large);--am-list-switch-min-height:var(--am-size-12);--am-list-switch-color-on:var(--am-color-fill-primary);--am-list-switch-color-off:var(--am-color-fill-grey-inverse);--am-list-switch-nob-color:var(--am-color-fill-grey-inverse);--am-list-check-content-color:var(--am-color-text-title);--am-list-check-content-font-size:var(--am-font-size-list);--am-list-check-background:var(--am-color-fill-grey-inverse);--am-list-check-line-height:var(--am-line-height-paragraph);--am-list-check-padding:var(--am-h-spacing-large);--am-list-check-padding-vertical:var(--am-v-spacing-large);--am-list-check-min-height:var(--am-size-12);--am-list-capsule-content-color:var(--am-color-text-title);--am-list-capsule-content-font-size:var(--am-font-size-list);--am-list-capsule-background:var(--am-color-fill-grey-inverse);--am-list-capsule-line-height:var(--am-line-height-paragraph);--am-list-capsule-padding:var(--am-h-spacing-large);--am-list-capsule-padding-vertical:var(--am-v-spacing-large);--am-list-capsule-min-height:var(--am-size-12);--am-list-capsule-btn-color:var(--am-color-text-primary);--am-list-capsule-btn-font-size:var(--am-font-size-subcontent);--am-list-capsule-btn-border-width:var(--am-border-width-standard);--am-list-capsule-btn-border-color:var(--am-color-fill-primary);--am-list-capsule-btn-padding:var(--am-h-spacing-large);--am-list-footer-header-color:var(--am-color-text-title);--am-list-footer-header-min-height:var(--am-size-12);--am-list-header-font-size:var(--am-font-size-list);--am-list-padding:var(--am-h-spacing-large);--am-list-header-padding-top:var(--am-h-spacing-large);--am-list-header-padding-bottom:var(--am-h-spacing-standard);--am-list-footer-padding-top:var(--am-h-spacing-standard);--am-list-footer-padding-bottom:var(--am-h-spacing-large);--am-list-background:var(--am-color-fill-grey-inverse);--am-list-load-more-color:var(--am-color-fill-grey-dark);--am-alphabet-letter-size:var(--am-size-4);--am-alphabet-letter-font-size:var(--am-font-size-weak);--am-alphabet-letter-border-radius:var(--am-corner-radius-circle);--am-alphabet-letter-chosen-background:var(--am-color-fill-primary);--am-alphabet-letter-chosen-text-color:var(--am-color-text-base);--am-alphabet-min-height:var(--am-size-12);--am-alphabet-letter-font-size:var(--am-font-size-subtitle);--am-alphabet-letter-color:var(--am-color-text-subtitle);--am-alphabet-bubble-color:var(--am-color-text-subtitle);--am-alphabet-bubble-background:var(--am-color-fill-grey-base);--am-alphabet-bubble-font-size:var(--am-font-size-stress);--am-button-padding:var(--am-size-3);--am-button-corner-radius:var(--am-corner-radius-md);--am-button-title-size:var(--am-font-size-title);--am-button-doubleline-title-size:var(--am-font-size-list);--am-button-subtitle-size:var(--am-font-size-subcontent);--am-button-border-size:var(--am-border-width-standard);--am-button-disabled-opacity:var(--am-opacity-disabled);--am-button-color:var(--am-color-fill-grey-dark);--am-button-background:var(--am-color-fill-grey-inverse);--am-button-border-color:var(--am-color-fill-grey-light);--am-button-primary-background:var(--am-color-fill-primary);--am-button-primary-border-color:var(--am-color-fill-primary);--am-button-primary-color:var(--am-color-text-base);--am-button-ghost-border-color:var(--am-color-fill-primary);--am-button-ghost-color:var(--am-color-text-primary);--am-button-warn-background:var(--am-color-fill-warning);--am-button-warn-border-color:var(--am-color-fill-warning);--am-button-warn-color:var(--am-color-text-base);--am-button-warn-ghost-border-color:var(--am-color-fill-warning);--am-button-warn-ghost-color:var(--am-color-text-warning);--am-button-light-background:var(--am-color-fill-primary-light);--am-button-light-border-color:var(--am-color-fill-primary-light);--am-button-light-color:var(--am-color-text-primary);--am-button-text-color:var(--am-color-fill-primary);--am-button-capsule-corner:var(--am-corner-radius-circle);--am-button-capsule-padding-h:var(--am-size-3);--am-button-capsule-padding-v:var(--am-size-1);--am-button-capsule-size-l:var(--am-font-size-subtitle);--am-button-capsule-size-m:var(--am-font-size-content);--am-button-capsule-size-s:var(--am-font-size-subcontent);--am-tabs-padding:var(--am-h-spacing-large);--am-tabs-plus-marginLeft:var(--am-h-spacing-large);--am-tabs-fontSize:var(--am-font-size-list);--am-tabs-capsule-paddingV:var(--am-v-spacing-large);--am-tabs-capsule-marginRight:var(--am-h-spacing-large);--am-tabs-subTitle-marginRight:var(--am-size-4);--am-tabs-subTitle-paddingH:var(--am-h-spacing-standard);--am-tabs-subTitle-fontSize:var(--am-font-size-content);--am-tabs-subTitle-lineHeght:var(--am-line-height-paragraph);--am-tabs-title-marginRight:var(--am-size-6);--am-tabs-title-paddingTop:var(--am-v-spacing-large);--am-tabs-title-paddingBottom:var(--am-v-spacing-large);--am-tabs-title-capsule-paddingTB:var(--am-h-spacing-standard);--am-tabs-title-capsule-paddingLR:var(--am-h-spacing-large);--am-tabs-title-capsule-bgc:var(--am-color-fill-grey-light);--am-tabs-content-bgc:var(--am-color-fill-grey-inverse);--am-tabs-number-marginLeft:var(--am-size-1);--am-tabs-number-fontSize:var(--am-font-size-content);--am-tabs-number-color:var(--am-color-text-subtitle);--am-tabs-number-color__active:var(--am-color-text-base);--am-tabs-content-borderWidth:var(--am-border-width-standard);--am-tabs-content-borderColor:var(--am-color-divider-line);--am-modal-title-fontSize:var(--am-font-size-title);--am-modal-mask-backgroundColor:var(--am-color-product-mask);--am-modal-market-mask-backgroundColor:var(--am-color-marketing-mask);--am-modal-content-backgroundColor:var(--am-color-fill-grey-inverse);--am-modal-content-radius:var(--am-corner-radius-lg);--am-modal-content-padding-h:var(--am-h-spacing-large);--am-modal-content-margin-v:var(--am-v-spacing-large);--am-modal-title-lineHeight:var(--am-line-height-paragraph);--am-modal-title-color:var(--am-color-text-title);--am-modal-title-margin-v:var(--am-v-spacing-standard);--am-modal-body-lineHeight:var(--am-line-height-paragraph);--am-modal-body-color:var(--am-color-text-title);--am-modal-body-fontSize:var(--am-font-size-subtitle);--am-modal-footer-fontSize:var(--am-font-size-title);--am-modal-footer-color:var(--am-color-text-primary);--am-steps-bg-color:var(--am-color-fill-grey-inverse);--am-steps-color:var(--am-color-fill-primary);--am-steps-bg-color:var(--am-color-fill-grey-light);--am-steps-icon-border-radius:var(--am-corner-radius-circle);--am-steps-vertical-title-active-color:var(--am-color-text-primary);--am-steps-title-color:var(--am-color-text-title);--am-steps-description-color:var(--am-color-text-subtitle);--am-steps-vertical-warning-color:var(--am-color-text-warning);--am-steps-horizontal-title-size:var(--am-font-size-subcontent);--am-steps-horizontal-description-size:var(--am-font-size-subcontent);--am-steps-vertical-title-size:var(--am-font-size-list);--am-steps-vertical-description-size:var(--am-font-size-subtitle);--am-tips-plain-border-radius:var(--am-corner-radius-lg);--am-tips-plain-text-color:var(--am-color-text-base);--am-tips-plain-bg-color:var(--am-color-fill-grey-dark);--am-tips-plain-padding:var(--am-h-spacing-large);--am-tips-plain-font-size:var(--am-font-size-subtitle);--am-tips-plain-line-height:var(--am-line-height-paragraph);--am-tips-dialog-border-radius:var(--am-corner-radius-lg);--am-tips-dialog-text-color:var(--am-color-text-base);--am-tips-dialog-line-height:var(--am-line-height-paragraph);--am-tips-dialog-bg-color:var(--am-color-fill-grey-dark);--am-tips-dialog-close-btn-color:var(--am-color-fill-grey-base);--am-tips-dialog-icon-bg-color:var(--am-color-fill-grey-inverse);--am-tips-dialog-h-spacing:var(--am-h-spacing-large);--am-tips-dialog-v-spacing:var(--am-v-spacing-standard);--am-tips-dialog-container-spacing:var(--am-h-spacing-standard);--am-tips-dialog-close-btn-spacing:var(--am-h-spacing-large);--am-tips-dialog-font-size:var(--am-font-size-subtitle);--am-tips-dialog-image-size:var(--am-size-9);--am-tips-dialog-image-radius:var(--am-corner-radius-md);--am-tips-dialog-icon-size:var(--am-icon-size-sm);--am-popover-border-radius:var(--am-corner-radius-md);--am-popover-font-color:var(--am-color-text-title);--am-popover-bg-color:var(--am-color-fill-grey-inverse);--am-popover-mask-color:var(--am-color-marketing-mask);--am-popover-arrow-color:var(--am-color-fill-grey-inverse);--am-popover-font-size:var(--am-font-size-subtitle);--am-popover-item-font-color:var(--am-color-text-title);--am-popover-item-font-size:var(--am-font-size-subtitle);--am-popover-item-padding:var(--am-h-spacing-large);--am-popover-item-padding-right:var(--am-size-9);--am-popover-item-icon-text-space:var(--am-h-spacing-large);--am-badge-bg-color:var(--am-color-fill-warning);--am-badge-font-color:var(--am-color-text-base);--am-badge-border-radius:var(--am-corner-radius-circle);--am-badge-line-height:var(--am-line-height-base);--am-card-border-radius:var(--am-corner-radius-lg);--am-card-thumb-border-radius:var(--am-corner-radius-circle);--am-card-bg-color:var(--am-color-fill-grey-inverse);--am-card-padding:var(--am-h-spacing-large);--am-card-thumb-border-width:var(--am-border-width-thick);--am-card-thumb-border-color:var(--am-color-fill-grey-inverse);--am-card-footer-color:var(--am-color-fill-grey-inverse);--am-card-title-color:var(--am-color-text-base);--am-card-subtitle-color:var(--am-color-text-base);--am-card-action-color:var(--am-color-text-title);--am-card-title-size:var(--am-font-size-title);--am-coupon-border-radius:var(--am-corner-radius-lg);--am-coupon-background-color:var(--am-color-fill-grey-inverse);--am-coupon-thumb-border-radius:var(--am-corner-radius-circle);--am-coupon-content-spacingTB:var(--am-size-5);--am-coupon-content-spacingLR:var(--am-h-spacing-standards);--am-coupon-no-extra-spacingL:var(--am-size-5);--am-coupon-title-size:var(--am-font-size-title);--am-coupon-title-color:var(--am-color-text-title);--am-coupon-subTitle-marginTop:var(--am-v-spacing-standard);--am-coupon-subtitle-size:var(--am-font-size-content);--am-coupon-subtitle-color:var(--am-color-text-subtitle);--am-coupon-detail-size:var(--am-font-size-weak);--am-coupon-detail-color:var(--am-color-text-subtitle);--am-coupon-detail-arrow-size:var(--am-font-size-subtitle);--am-coupon-detail-arrow-color:var(--am-color-text-weak);--am-coupon-no-extra-detail-padding:var(--am-size-20);--am-message-background:var(--am-color-fill-grey-inverse);--am-message-padding-h:var(--am-size-8);--am-message-padding-v:var(--am-size-3);--am-message-icon-lineheight:var(--am-line-height-base);--am-message-icon-size:var(--am-size-16);--am-message-success-color:var(--am-color-fill-primary);--am-message-info-color:var(--am-color-fill-primary);--am-message-waiting-color:var(--am-color-pomonagreen-1);--am-message-warn-color:var(--am-color-orange-1);--am-message-fail-color:var(--am-color-fill-warning);--am-message-title-size:var(--am-font-size-title);--am-message-title-margin:var(--am-size-5);--am-message-title-color:var(--am-color-text-title);--am-message-subtitle-size:var(--am-font-size-content);--am-message-subtitle-margin:var(--am-size-2);--am-message-subtitle-color:var(--am-color-text-subtitle);--am-message-margintop:var(--am-size-5);--am-message-button-margin:var(--am-size-3);--am-footer-content-fontSize:var(--am-font-size-content);--am-footer-content-color:var(--am-color-text-weak);--am-footer-link-marginBottom:var(--am-v-spacing-standard);--am-footer-link-fontSize:var(--am-font-size-subtitle);--am-footer-link-color:var(--am-color-text-primary);--am-footer-link-lineSize:var(--am-font-size-subcontent);--am-footer-link-lineMarginLR:var(--am-h-spacing-large);--am-footer-link-lineMarginLR:var(--am-v-spacing-standard);--am-footer-link-lineColor:var(--am-color-divider-line);--am-footer-guide-paddingTB:var(--am-size-1);--am-footer-guide-paddingLR:var(--am-h-spacing-large);--am-footer-guide-marginRight:var(--am-h-spacing-large);--am-footer-guide-marginTop:var(--am-v-spacing-standard);--am-footer-guide-fontSize:var(--am-font-size-subcontent);--am-footer-guide-borderRadius:var(--am-corner-radius-circle);--am-footer-guide-bgc:var(--am-color-divider-background);--am-footer-guide-color:var(--am-color-text-subtitle);--am-footer-brand-marginRight:var(--am-h-spacing-large);--am-footer-brand-marginBottom:var(--am-v-spacing-standard);--am-switch-background:var(--am-color-fill-primary);--am-switch-corner-radius:var(--am-corner-radius-circle);--am-switch-float-corner-radius:var(--am-corner-radius-circle);--am-grid-paddingTop:var(--am-v-spacing-large);--am-grid-paddingLeft:var(--am-h-spacing-large);--am-grid-5-paddingRight:var(--am-size-1);--am-grid-bgc:var(--am-color-fill-grey-inverse);--am-grid-item-marginBottom:var(--am-v-spacing-large);--am-grid-item3-padding:var(--am-h-spacing-large);--am-grid-item3-borderWidth:var(--am-border-width-standard);--am-grid-item3-borderColor:var(--am-color-divider-line);--am-grid-icon2-size:var(--am-icon-size-md);--am-grid-icon2-marginRight:var(--am-h-spacing-large);--am-grid-icon3-size:var(--am-size-9);--am-grid-icon3-marginRight:var(--am-v-spacing-large);--am-grid-icon4-size:var(--am-size-11);--am-grid-icon4-marginRight:var(--am-v-spacing-standard);--am-grid-icon4-radius:var(--am-corner-radius-circle);--am-grid-icon5-size:var(--am-icon-size-md);--am-grid-icon5-marginBottom:var(--am-v-spacing-standard);--am-grid-text-color:var(--am-color-text-title);--am-grid-text2-height:var(--am-size-6);--am-grid-text2-fontSize:var(--am-font-size-list);--am-grid-text3-height:var(--am-size-5);--am-grid-text3-fontSize:var(--am-font-size-subtitle);--am-grid-text45-height:var(--am-size-5);--am-grid-text45-fontSize:var(--am-font-size-content);--am-grid-desc-height:var(--am-font-size-list);--am-grid-desc-fontSize:var(--am-font-size-subcontent);--am-grid-desc-color:var(--am-color-text-subtitle);--am-checkbox-size:var(--am-icon-size-sm);--am-checkbox-corner-radius:var(--am-corner-radius-circle);--am-checkbox-border-width:var(--am-border-width-standard);--am-checkbox-border-color:var(--am-color-fill-grey-base);--am-checkbox-background:var(--am-color-fill-primary);--am-checkbox-disabled-background:var(--am-color-fill-grey-light);--am-radio-size:var(--am-icon-size-xs);--am-radio-color:var(--am-color-text-primary);--am-terms-background-color:var(--am-color-text-primary-light);--am-terms-padding:var(--am-v-spacing-standard);--am-terms-content-font-size:var(--am-font-size-subtitle);--am-terms-content-color:var(--am-color-text-title);--am-terms-link-color:var(--am-color-text-primary);--am-terms-content-line-height:var(--am-line-height-base);--am-terms-content-margin:var(--am-size-5);--am-terms-button-margin:var(--am-v-spacing-large);--am-terms-desc-font-size:var(--am-font-size-subtitle);--am-terms-desc-color:var(--am-color-text-subtitle);--am-terms-desc-line-height:var(--am-line-height-base);--am-terms-desc-margin:var(--am-v-spacing-standard);--am-terms-fixed-padding:var(--am-v-spacing-standard);--am-terms-checkbox-margin:var(--am-h-spacing-standard);--am-search-background:var(--am-color-fill-grey-inverse);--am-search-corner-radius:var(--am-corner-radius-md-plus);--am-search-borderwidth:var(--am-border-width-standard);--am-search-border-color:var(--am-color-fill-primary);--am-search-fontsize:var(--am-font-size-content);--am-search-placeholder-color:var(--am-color-text-subtitle);--am-search-iconsize:var(--am-font-size-subtitle);--am-search-searchicon-color:var(--am-color-text-subtitle);--am-search-clearicon-color:var(--am-color-text-weak);--am-search-vocieicon-color:var(--am-color-text-subtitle);--am-search-cancel-color:var(--am-color-text-primary);--am-search-cancel-fontsize:var(--am-font-size-subtitle);--am-filter-padding:var(--am-size-3);--am-filter-internal-padding:var(--am-size-2);--am-filter-background:var(--am-color-divider-background);--am-filter-corner-radius:var(--am-corner-radius-md);--am-filter-title-size:var(--am-font-size-subtitle);--am-filter-title-color:var(--am-color-text-title);--am-filter-subtitle-size:var(--am-font-size-content);--am-filter-subtitle-color:var(--am-color-text-subtitle);--am-filter-title-pick-color:var(--am-color-text-primary);--am-filter-pick-background:var(--am-color-fill-primary-light);--am-result-title-fontSize:var(--am-font-size-title);--am-result-brief-fontSize:var(--am-font-size-content);--am-result-local-brief-fontSize:var(--am-font-size-subtitle);--am-result-background:var(--am-color-fill-grey-inverse);--am-result-title-color:var(--am-color-text-title);--am-result-brief-color:var(--am-color-text-subtitle);--am-result-button-margin-left:var(--am-h-spacing-large);--am-result-brief-margin-top:var(--am-v-spacing-large);--am-result-margin-vertical:var(--am-size-5);--am-result-title-h-spacing:var(--am-size-12);--am-collapse-bgc:var(--am-color-fill-grey-inverse);--am-collapse-title-color:var(--am-color-text-title);--am-collapse-title-fontSize:var(--am-font-size-list);--am-collapse-title-marginLR:var(--am-h-spacing-large);--am-collapse-title-paddingTB:var(--am-v-spacing-large);--am-collapse-arrow-size:var(--am-icon-size-xs);--am-collapse-arrow-color:var(--am-color-text-weak);--am-collapse-disabled:var(--am-opacity-disabled);--am-collapse-title-arrow-spacing:var(--am-h-spacing-large);--am-tag-bg-danger:var(--am-color-tangerine-1);--am-tag-bg-primary:var(--am-color-brand-1);--am-tag-bg-success:var(--am-color-pomonagreen-1);--am-tag-bg-warning:var(--am-color-orange-1);--am-tag-icon-bg-danger:var(--am-color-tangerine-2);--am-tag-icon-bg-primary:var(--am-color-brand-2);--am-tag-icon-bg-success:var(--am-color-pomonagreen-2);--am-tag-icon-bg-warning:var(--am-color-orange-2);--am-tag-icon-font-danger:var(--am-color-tangerine-1);--am-tag-icon-font-primary:var(--am-color-brand-1);--am-tag-icon-font-success:var(--am-color-pomonagreen-1);--am-tag-icon-font-warning:var(--am-color-orange-1);--am-tag-line-height:var(--am-line-height-paragraph);--am-tag-text-color:var(--am-color-text-base);--am-tag-lg-font-size:var(--am-font-size-subtitle);--am-tag-border-radius:var(--am-corner-radius-sm);--am-tag-ghost-primary:var(--am-color-brand-1);--am-tag-ghost-warning:var(--am-color-orange-1);--am-tag-ghost-success:var(--am-color-orange-1);--am-tag-ghost-danger:var(--am-color-orange-1);--am-tag-ghost-bg:var(--am-color-fill-grey-inverse);--am-tag-sm-font-size:var(--am-font-size-weak);--am-tag-lg-font-size:var(--am-font-size-subcontent);--am-stepper-height:var(--am-size-6);--am-stepper-bgc:var(--am-color-fill-grey-inverse);--am-stepper-borderRadius:var(--am-corner-radius-sm);--am-stepper-borderWidth:var(--am-border-width-standard);--am-stepper-borderColor:var(--am-color-divider-line);--am-stepper-input-fontSize:var(--am-font-size-subtitle);--am-stepper-input-color:var(--am-color-text-title);--am-stepper-input-marginLR:var(--am-v-spacing-standard);--am-stepper-btn-size:var(--am-size-6);--am-stepper-btn-color:var(--am-color-text-primary);--am-stepper-btn-reduce:var(--am-size-2);--am-stepper-btn-add:var(--am-size-3);--am-calendar-bgc:var(--am-color-fill-grey-inverse);--am-calendar-paddingT:var(--am-v-spacing-large);--am-calendar-month-paddingLR:var(--am-size-6);--am-calendar-btn-size:var(--am-size-10);--am-calendar-arrow-size:var(--am-icon-size-sm);--am-calendar-month-fontSize:var(--am-font-size-title);--am-calendar-month-color:var(--am-color-text-title);--am-calendar-day-fontSize:var(--am-font-size-subtitle);--am-calendar-day-color:var(--am-color-text-title);--am-calendar-week-marginTB:var(--am-v-spacing-large);--am-calendar-week-paddingLR:var(--am-h-spacing-large);--am-calendar-date-height:var(--am-size-11);--am-calendar-date-fontSize:var(--am-font-size-title);--am-calendar-date-color:var(--am-color-text-title);--am-calendar-tag-fontSize:var(--am-font-size-weak);--am-calendar-tag-color:var(--am-color-tangerine-1);--am-calendar-today-color:var(--am-color-text-primary);--am-calendar-selected-bgc:var(--am-color-fill-primary);--am-calendar-selected-corner:var(--am-corner-radius-md);--am-calendar-selected-color:var(--am-color-text-base);--am-calendar-outer-color:var(--am-color-text-weak);--am-mask-backgroundColor:var(--am-color-product-mask);--am-mask-market-backgroundColor:var(--am-color-marketing-mask)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/swipe-action/index.acss b/node_modules/mini-ali-ui/es/swipe-action/index.acss
new file mode 100755
index 0000000..1f5b2b3
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/swipe-action/index.acss
@@ -0,0 +1 @@
+.am-swipe{position:relative;overflow:hidden}.am-swipe-content{position:relative;transition:all 250ms}.am-swipe-right{position:absolute;top:0;bottom:0;display:flex;right:0;transition:all .1s 0s ease-out}.am-swipe-btn{padding:0 12px;justify-content:center;align-items:center;display:flex;color:#fff}.am-swipe-btn-text{height:1em;overflow:hidden;line-height:1}.am-swipe-btn-delete{background-color:#ff3b30}.am-swipe-btn-edit{background-color:#ccc}.am-swipe-btn-other{background-color:#1677ff}.am-swipe-right-radius{overflow:hidden}.am-swipe-right-radius .am-swipe-btn{margin-right:1px}.am-swipe-right-radius .am-swipe-btn:nth-child(2){border-radius:8px 0 0 8px}.am-swipe-right-radius .am-swipe-btn:last-child{margin-right:0;border-radius:0 8px 8px 0}.am-swipe-right-radius .am-swipe-btn:nth-child(2):last-child{border-radius:8px}.am-swipe-movable-area .am-swipe-content{transition:none}.am-swipe .am-list-item{height:100%;box-sizing:border-box}.am-swiping .am-swipe-content{transition:none}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/swipe-action/index.axml b/node_modules/mini-ali-ui/es/swipe-action/index.axml
new file mode 100755
index 0000000..4d5c3f2
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/swipe-action/index.axml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+ {{item.text}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.text}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/swipe-action/index.js b/node_modules/mini-ali-ui/es/swipe-action/index.js
new file mode 100755
index 0000000..140d5f2
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/swipe-action/index.js
@@ -0,0 +1,265 @@
+import fmtUnit from '../_util/fmtUnit';
+
+var _my$getSystemInfoSync = my.getSystemInfoSync(),
+ windowWidth = _my$getSystemInfoSync.windowWidth;
+
+var isV2 = my.canIUse('movable-view.onTouchStart');
+Component({
+ data: {
+ leftPos: 0,
+ swiping: false,
+ holdSwipe: true,
+ viewWidth: windowWidth,
+ x: 0,
+ actionWidth: 0,
+ transitionVal: 'none',
+ radiusItemSpace: fmtUnit('12px')
+ },
+ props: {
+ className: '',
+ right: [],
+ restore: false,
+ borderRadius: false,
+ index: null,
+ swipeitem: null,
+ height: 0,
+ enableNew: true,
+ swipeWidth: ''
+ },
+ didMount: function didMount() {
+ var _this$props = this.props,
+ enableNew = _this$props.enableNew,
+ swipeWidth = _this$props.swipeWidth;
+ var useV2 = isV2 && enableNew;
+ this.setData({
+ useV2: useV2
+ });
+
+ if (swipeWidth.match(/%/)) {
+ this.setData({
+ swipeWidth: ''
+ });
+ }
+
+ this.setBtnWidth();
+ this.getSwipeHeight();
+ },
+ didUpdate: function didUpdate(_prevProps, prevData) {
+ var restore = this.props.restore;
+ var _this$data = this.data,
+ holdSwipe = _this$data.holdSwipe,
+ useV2 = _this$data.useV2;
+
+ if (restore === true && _prevProps.restore !== restore || prevData.holdSwipe === true && holdSwipe === false) {
+ this.setData({
+ leftPos: 0,
+ swiping: false,
+ cellWidth: this.btnWidth,
+ x: this.btnWidth // V2
+
+ });
+ }
+
+ this.getSwipeHeight();
+
+ if (!useV2) {
+ this.setBtnWidth();
+ this.getSwipeHeight();
+ }
+ },
+ methods: {
+ setBtnWidth: function setBtnWidth() {
+ var _this = this;
+
+ my.createSelectorQuery().select(".am-swipe-right-" + this.$id).boundingClientRect().exec(function (ret) {
+ _this.btnWidth = ret && ret[0] && ret[0].width || 0;
+
+ if (isV2 && _this.props.enableNew) {
+ _this.setData({
+ actionWidth: _this.btnWidth,
+ x: _this.btnWidth,
+ cellWidth: _this.btnWidth,
+ lastWidth: _this.btnWidth
+ });
+ }
+ });
+ },
+ getSwipeHeight: function getSwipeHeight() {
+ var _this2 = this;
+
+ var enableNew = this.props.enableNew;
+ var useV2 = isV2 && enableNew;
+
+ if (useV2) {
+ my.createSelectorQuery().select(".am-swipe-movable-area-" + this.$id).boundingClientRect().exec(function (ret) {
+ _this2.setData({
+ height: parseInt(ret[0].height, 0)
+ });
+ });
+ }
+ },
+ onSwipeTap: function onSwipeTap() {
+ this.setData({
+ cellWidth: this.data.lastWidth
+ });
+
+ if (!this.data.swiping && this.data.x < 0 || this.data.leftPos !== 0) {
+ this.setData({
+ leftPos: 0,
+ swiping: false,
+ x: 0
+ });
+ }
+ },
+ onSwipeStart: function onSwipeStart(e) {
+ this.touchObject = {
+ startX: e.touches[0].pageX,
+ startY: e.touches[0].pageY
+ };
+ var _this$props2 = this.props,
+ index = _this$props2.index,
+ onSwipeStart = _this$props2.onSwipeStart;
+
+ if (onSwipeStart) {
+ onSwipeStart({
+ index: index
+ });
+ }
+ },
+ onSwipeMove: function onSwipeMove(e) {
+ var touchObject = this.touchObject;
+ var touchePoint = e.touches[0];
+ var leftPos = this.data.leftPos;
+ touchObject.endX = touchePoint.pageX; // 首次触发时,计算滑动角度
+
+ if (touchObject.direction === undefined) {
+ var direction = 0;
+ var xDist = touchObject.startX - touchePoint.pageX || 0;
+ var yDist = touchObject.startY - touchePoint.pageY || 0;
+ var r = Math.atan2(yDist, xDist);
+ var swipeAngle = Math.round(r * 180 / Math.PI);
+
+ if (swipeAngle < 0) {
+ swipeAngle = 360 - Math.abs(swipeAngle);
+ }
+
+ if (swipeAngle <= 45 && swipeAngle >= 0) {
+ direction = 1;
+ }
+
+ if (swipeAngle <= 360 && swipeAngle >= 315) {
+ direction = 1;
+ }
+
+ if (swipeAngle >= 135 && swipeAngle <= 225) {
+ direction = -1;
+ }
+
+ touchObject.direction = direction;
+ } // 通过角度判断是左右方向
+
+
+ if (touchObject.direction !== 0) {
+ var newLeftPos = leftPos; // 滑动距离
+
+ var distance = touchObject.endX - touchObject.startX; // 左划
+
+ if (distance < 0) {
+ newLeftPos = Math.max(distance, -this.btnWidth); // 右划
+ } else {
+ newLeftPos = 0;
+ }
+
+ if (Math.abs(distance) > 10) {
+ this.setData({
+ leftPos: newLeftPos,
+ swiping: distance < 0
+ });
+ }
+ }
+ },
+ onSwipeEnd: function onSwipeEnd(e) {
+ var touchObject = this.touchObject;
+
+ if (touchObject.direction !== 0) {
+ var touchePoint = e.changedTouches[0];
+ touchObject.endX = touchePoint.pageX;
+ var leftPos = this.data.leftPos;
+ var distance = touchObject.endX - touchObject.startX;
+ var newLeftPos = leftPos;
+
+ if (distance < 0) {
+ if (Math.abs(distance + leftPos) > this.btnWidth * 0.7) {
+ newLeftPos = -this.btnWidth;
+ } else {
+ newLeftPos = 0;
+ }
+ }
+
+ this.setData({
+ leftPos: newLeftPos,
+ swiping: false
+ });
+ }
+ },
+ onChange: function onChange() {
+ if (!this.data.swiping) {
+ this.setData({
+ swiping: true,
+ transitionVal: 'transform 100ms linear'
+ });
+ }
+ },
+ onChangeEnd: function onChangeEnd(e) {
+ var _this3 = this;
+
+ var actionWidth = this.data.actionWidth;
+ var x = e.detail.x;
+ this.setData({
+ x: x < actionWidth / 2 ? -1 : actionWidth - 1,
+ swiping: false
+ }, function () {
+ _this3.setData({
+ x: _this3.data.x === -1 ? 0 : actionWidth
+ });
+ });
+ },
+ done: function done() {
+ var _this4 = this;
+
+ this.setData({
+ holdSwipe: true
+ }, function () {
+ _this4.setData({
+ holdSwipe: false
+ });
+ });
+ },
+ onItemClick: function onItemClick(e) {
+ var _this5 = this;
+
+ var onRightItemClick = this.props.onRightItemClick;
+ var holdSwipe = this.data.holdSwipe;
+
+ if (onRightItemClick) {
+ var index = e.target.dataset.index;
+ onRightItemClick({
+ index: index,
+ extra: this.props.extra,
+ detail: this.props.right[index],
+ done: this.done.bind(this)
+ });
+ }
+
+ if (!this.data.swiping && holdSwipe === false) {
+ setTimeout(function () {
+ _this5.setData({
+ leftPos: 0,
+ swiping: false,
+ x: 0
+ });
+ }, 300);
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/swipe-action/index.json b/node_modules/mini-ali-ui/es/swipe-action/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/swipe-action/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/tabs/index.acss b/node_modules/mini-ali-ui/es/tabs/index.acss
new file mode 100755
index 0000000..2b6f31e
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tabs/index.acss
@@ -0,0 +1 @@
+.am-tabs-tab-bar-wrap{width:100%}.am-tabs-bar{position:relative;display:flex;align-items:stretch;width:100%;padding:0 12px;padding:0 var(--am-tabs-padding,12px);border-bottom:1px solid #eee;border-bottom:var(--am-tabs-content-borderWidth,1px) solid var(--am-tabs-content-borderColor,#eee);box-sizing:border-box}.am-tabs-bar-capsule{border-bottom:0 none}.am-tabs-bar-sticky{position:-webkit-sticky;position:sticky}.am-tabs-scroll-left,.am-tabs-scroll-right{width:36px;position:absolute;top:0;bottom:1px;z-index:99;background-size:100%;pointer-events:none}.am-tabs-scroll-left{left:0;-webkit-mask-image:linear-gradient(to right,#000,rgba(255,255,255,0));mask-image:linear-gradient(to right,#000,rgba(255,255,255,0))}.am-tabs-scroll-right{right:0;-webkit-mask-image:linear-gradient(to left,#000,rgba(255,255,255,0));mask-image:linear-gradient(to left,#000,rgba(255,255,255,0))}.am-tabs-bar-content{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;overflow:hidden}.am-tabs-bar-content::-webkit-scrollbar{display:none}.am-tabs-plus{display:none}.am-tabs-plus.show{display:flex;flex:0 0 auto;align-items:center;margin-left:12px;margin-left:var(--am-tabs-plus-marginLeft,12px)}.am-tabs-bar-content-wrap{position:relative;flex:1 1 auto;overflow:hidden;margin-bottom:-1px}.am-tabs-bar-tab{display:flex;align-items:center;justify-content:center;flex:1 0 auto;font-size:17px;font-size:var(--am-tabs-fontSize,17px);white-space:nowrap}.am-tabs-bar-tab-badge{position:absolute;top:0;right:0;transform:translate(55%,-70%)}.am-tabs-bar-tab-mainTitle{position:relative}.am-tabs-bar-tab-capsule{padding:12px 0;padding:var(--am-tabs-capsule-paddingV,12px) 0;margin-right:12px;margin-right:var(--am-tabs-capsule-marginRight,12px);box-sizing:border-box}.am-tabs-bar-tab-capsule:last-child{margin-right:0}.am-tabs-bar-tab-capsule .am-tabs-bar-tab-mainTitle{position:static}.am-tabs-bar-tab-capsule .am-tabs-bar-tab-badge{transform:translate(0,-55%)}.am-tabs-bar-tab__hasSubTitle{margin-right:16px;margin-right:var(--am-tabs-subTitle-marginRight,16px)}.am-tabs-bar-tab__hasSubTitle:last-child{margin-right:0}.am-tabs-bar-tab-subTitle{margin-top:4px;padding:0 8px;padding:0 var(--am-tabs-subTitle-paddingH,8px);font-size:13px;font-size:var(--am-tabs-subTitle-fontSize,13px);line-height:1.5;line-height:var(--am-tabs-subTitle-lineHeght,1.5);border-radius:50vh}.am-tabs-bar-tab-number{margin-left:4px;margin-left:var(--am-tabs-number-marginLeft,4px);font-size:13px;font-size:var(--am-tabs-number-fontSize,13px);color:#999;color:var(--am-tabs-number-color,#999)}.am-tabs-bar-tab-number_active{color:#fff;color:var(--am-tabs-number-color__active,#fff)}.am-tabs-bar-tab__hover{opacity:.6}.am-tabs-bar-tab-capsule__hover{filter:brightness(.9)}.am-tabs-bar-tab-capsule__hover .am-tabs-bar-tab-mainTitle{opacity:.3}.am-tabs-bar-title{position:relative;display:flex;align-items:center;margin-right:24px;margin-right:var(--am-tabs-title-marginRight,24px);padding-top:12px;padding-top:var(--am-tabs-title-paddingTop,12px);padding-bottom:12px;padding-bottom:var(--am-tabs-title-paddingBottom,12px);box-sizing:border-box}.am-tabs-bar-title__noMargin{margin-right:0;z-index:101}.am-tabs-bar-title__hasSubTitle{flex-direction:column;margin-right:0;text-align:center;border-bottom:0 none}.am-tabs-bar-title-underline{position:absolute;left:50%;bottom:0;width:100%;height:2px;overflow:hidden;font-size:0;border-radius:50vh;box-sizing:border-box;animation:underlineShow .2s linear 0s 1 forwards}.am-tabs-bar-capsule-title{flex:1;justify-content:center;margin-right:0;padding:8px 12px;padding:var(--am-tabs-title-capsule-paddingTB,8px) var(--am-tabs-title-capsule-paddingLR,12px);border-radius:10vh;background-color:#e5e5e5;background-color:var(--am-tabs-title-capsule-bgc,#e5e5e5);border-bottom:0 none}.am-tabs-content-wrap{display:flex;flex-direction:row;align-content:stretch;overflow:hidden;height:auto;background-color:#fff;background-color:var(--am-tabs-content-bgc,#fff)}.am-tabs-content-wrap.fix{height:auto!important}.am-tabs-slides{width:100%;display:flex;transition-duration:.5s}@keyframes underlineShow{0%{transform:scale(.1) translateX(-100%)}100%{transform:scale(1) translateX(-50%)}}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tabs/index.axml b/node_modules/mini-ali-ui/es/tabs/index.axml
new file mode 100755
index 0000000..f612141
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tabs/index.axml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+
+ ({{item.number}})
+ {{item.subTitle}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/tabs/index.js b/node_modules/mini-ali-ui/es/tabs/index.js
new file mode 100755
index 0000000..8587d01
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tabs/index.js
@@ -0,0 +1,235 @@
+import fmtUnit from '../_util/fmtUnit';
+
+var _my$getSystemInfoSync = my.getSystemInfoSync(),
+ windowWidth = _my$getSystemInfoSync.windowWidth;
+
+Component({
+ props: {
+ className: '',
+ // tabbar激活的 tab 样式 class
+ activeCls: '',
+ // tabbar的自定义样式class
+ tabBarCls: '',
+ // 选中选项卡下划线颜色
+ tabBarUnderlineColor: '#1677FF',
+ // 选中选项卡字体颜色
+ tabBarActiveTextColor: '#1677FF',
+ // 胶囊选中选项卡字体颜色
+ capsuleTabBarActiveTextColor: '#ffffff',
+ // 未选中选项卡字体颜色
+ tabBarInactiveTextColor: '#333333',
+ // 未选中描述字体颜色
+ tabBarSubTextColor: '#999999',
+ // 选中描述字体颜色
+ tabBarActiveSubTextColor: '#ffffff',
+ // 选项卡背景颜色
+ tabBarBackgroundColor: '#ffffff',
+ showPlus: false,
+ // tabs 内容区是否可拖动,true 可拖动,内容区固定高度 false 不可拖动,内容区自适应高度
+ swipeable: true,
+ // 当前激活tab id
+ activeTab: 0,
+ animation: true,
+ duration: 500,
+ // 是否为胶囊形式 tab
+ capsule: false,
+ // 是否有副标题
+ hasSubTitle: false,
+ elevator: false,
+ floorNumber: [],
+ elevatorTop: '0px',
+ showBadge: false,
+ // 选中选项卡下划线宽度
+ tabBarUnderlineWidth: '',
+ // 选中选项卡下划线高度
+ tabBarUnderlineHeight: '',
+ // 电梯组件 tab-content 距离顶部高度
+ elevatorContentTop: 0
+ },
+ data: {
+ windowWidth: windowWidth,
+ tabWidth: 0.25,
+ autoplay: false,
+ animation: false,
+ showLeftShadow: false,
+ version: my.SDKVersion,
+ viewScrollLeft: 0,
+ tabViewNum: 0,
+ hideRightShadow: false,
+ boxWidth: 0,
+ elWidth: 0,
+ tabFontSize15: fmtUnit('15px'),
+ tabFontSize13: fmtUnit('13px')
+ },
+ didMount: function didMount() {
+ var _this = this;
+
+ var _this$props = this.props,
+ tabs = _this$props.tabs,
+ animation = _this$props.animation,
+ hasSubTitle = _this$props.hasSubTitle,
+ elevator = _this$props.elevator;
+
+ if (hasSubTitle) {
+ this.setData({
+ capsule: true
+ });
+ }
+
+ this.setData({
+ tabWidth: tabs.length > 3 ? 0.25 : 1 / tabs.length,
+ animation: animation,
+ autoplay: true
+ });
+
+ if (elevator) {
+ this.setData({
+ swipeable: false
+ });
+
+ var _loop = function _loop(i) {
+ my.createSelectorQuery().select("#am-tabs-elevator-pane-" + i).boundingClientRect().select('.am-tabs-bar-sticky').boundingClientRect().exec(function (ret) {
+ var _this$props2 = _this.props,
+ elevatorTop = _this$props2.elevatorTop,
+ elevatorContentTop = _this$props2.elevatorContentTop;
+ var tabContentDistance = 0;
+
+ if (elevatorTop.match(/\d+px/)) {
+ tabContentDistance = parseInt(elevatorTop, 10);
+ } else {
+ tabContentDistance = parseInt(elevatorContentTop, 10);
+ }
+
+ _this.props.floorNumber[i] = ret[0].top - ret[1].height - tabContentDistance;
+
+ _this.setData({
+ floorNumber: _this.props.floorNumber
+ });
+ });
+ };
+
+ for (var i = 0; i < tabs.length; i++) {
+ _loop(i);
+ }
+
+ setTimeout(function () {
+ _this.$page.data.floorNumber = _this.data.floorNumber;
+ }, 100);
+ }
+ },
+ didUpdate: function didUpdate(prevProps, prevData) {
+ var _this$props3 = this.props,
+ tabs = _this$props3.tabs,
+ elevator = _this$props3.elevator;
+
+ if (prevProps.tabs.length !== tabs.length) {
+ this.setData({
+ tabWidth: tabs.length > 3 ? 0.25 : 1 / tabs.length
+ });
+ }
+
+ if (elevator) {
+ this.$page.data.floorNumber = this.data.floorNumber;
+
+ if (this.$page.data.getFloorNumber >= 0) {
+ this.setData({
+ tabViewNum: this.$page.data.getFloorNumber,
+ prevTabViewNum: prevData.tabViewNum
+ });
+ }
+ }
+ },
+ methods: {
+ handleSwiperChange: function handleSwiperChange(e) {
+ var current = e.detail.current;
+ var tabsName = e.target.dataset.tabsName;
+ this.setData({
+ tabViewNum: current
+ });
+
+ if (this.props.onChange) {
+ this.props.onChange({
+ index: current,
+ tabsName: tabsName
+ });
+ }
+ },
+ handleTabClick: function handleTabClick(e) {
+ var _this2 = this;
+
+ var _e$target$dataset = e.target.dataset,
+ index = _e$target$dataset.index,
+ tabsName = _e$target$dataset.tabsName,
+ floor = _e$target$dataset.floor;
+ var boxWidth = 0;
+ var elWidth = 0;
+ my.createSelectorQuery().select("#" + e.currentTarget.id).boundingClientRect().exec(function (ret) {
+ elWidth = ret[0].width;
+
+ _this2.setData({
+ elWidth: elWidth
+ });
+ });
+ my.createSelectorQuery().select("#am-tabs-bar-" + tabsName + "-content").boundingClientRect().exec(function (ret) {
+ boxWidth = ret[0].width;
+
+ _this2.setData({
+ boxWidth: boxWidth
+ });
+
+ if (_this2.data.elWidth > _this2.data.boxWidth / 2) {
+ setTimeout(function () {
+ _this2.setData({
+ viewScrollLeft: e.currentTarget.offsetLeft - 40
+ });
+ }, 300);
+ } else {
+ setTimeout(function () {
+ _this2.setData({
+ viewScrollLeft: e.currentTarget.offsetLeft - Math.floor(_this2.data.boxWidth / 2)
+ });
+ }, 300);
+ }
+ });
+
+ if (this.props.onTabClick) {
+ this.props.onTabClick({
+ index: index,
+ tabsName: tabsName
+ });
+ }
+
+ if (this.props.onTabClick && this.props.elevator) {
+ this.setData({
+ tabViewNum: this.data.prevTabViewNum
+ });
+ setTimeout(function () {
+ _this2.props.onTabClick({
+ index: index,
+ tabsName: tabsName
+ });
+ }, 300);
+ my.pageScrollTo({
+ scrollTop: Math.ceil(floor),
+ duration: 1
+ });
+ }
+ },
+ handlePlusClick: function handlePlusClick() {
+ if (this.props.onPlusClick) {
+ this.props.onPlusClick();
+ }
+ },
+ showLeftShadow: function showLeftShadow(e) {
+ if (e.detail.scrollLeft > 0) {
+ this.setData({
+ showLeftShadow: true
+ });
+ } else {
+ this.setData({
+ showLeftShadow: false
+ });
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tabs/index.json b/node_modules/mini-ali-ui/es/tabs/index.json
new file mode 100755
index 0000000..1bd54e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tabs/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "badge": "../badge/index",
+ "am-icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/tabs/tab-content/index.acss b/node_modules/mini-ali-ui/es/tabs/tab-content/index.acss
new file mode 100755
index 0000000..387a53e
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tabs/tab-content/index.acss
@@ -0,0 +1 @@
+.am-tabs-pane-swiper-item{position:absolute;width:100%;height:100%;will-change:auto;box-sizing:border-box;overflow:hidden}.am-tabs-pane-wrap{width:100%;height:auto;flex-shrink:0}.fix .am-tabs-pane-wrap{position:static}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tabs/tab-content/index.axml b/node_modules/mini-ali-ui/es/tabs/tab-content/index.axml
new file mode 100755
index 0000000..929cb68
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tabs/tab-content/index.axml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tabs/tab-content/index.js b/node_modules/mini-ali-ui/es/tabs/tab-content/index.js
new file mode 100755
index 0000000..e4a49f9
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tabs/tab-content/index.js
@@ -0,0 +1,6 @@
+Component({
+ props: {
+ tabId: '',
+ activeTab: ''
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tabs/tab-content/index.json b/node_modules/mini-ali-ui/es/tabs/tab-content/index.json
new file mode 100755
index 0000000..467ce29
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tabs/tab-content/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/node_modules/mini-ali-ui/es/tabs/util.sjs b/node_modules/mini-ali-ui/es/tabs/util.sjs
new file mode 100755
index 0000000..22999b0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tabs/util.sjs
@@ -0,0 +1,50 @@
+function toIntArray(v) {
+ const ret = [];
+ const version = v.split('.');
+
+ for (let i = 0; i < version.length; i++) {
+ ret.push(parseInt(version[i], 10));
+ }
+
+ return ret;
+}
+
+const calcScrollLeft = (windowWidth, tabWidth, current) => {
+ let scrollInit = current * windowWidth * tabWidth;
+
+ if (current <= 2) {
+ scrollInit = 0;
+ } else {
+ scrollInit = (current - 2) * windowWidth * tabWidth;
+ }
+
+ return scrollInit;
+};
+
+const compareVersion = (v) => {
+ const targetVersion = toIntArray('1.10.0');
+ const version = toIntArray(v);
+ let ret = 0;
+
+ for (let i = 0, n1, n2; i < version.length; i++) {
+ n1 = targetVersion[i];
+ n2 = version[i];
+
+ if (n1 > n2) {
+ ret = -1;
+ break
+ }
+
+ if (n1 < n2) {
+ ret = 1;
+ break;
+ }
+ }
+
+ return ret;
+}
+
+export default {
+ calcScrollLeft,
+ compareVersion,
+};
diff --git a/node_modules/mini-ali-ui/es/tag/index.acss b/node_modules/mini-ali-ui/es/tag/index.acss
new file mode 100755
index 0000000..a21cd35
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tag/index.acss
@@ -0,0 +1 @@
+.am-tag{display:inline-flex;align-items:center;border-radius:2px;border-radius:var(--am-tag-border-radius,2px);position:relative}.am-tag-with-icon.am-tag-sm{padding:0 3px}.am-tag-sm{font-size:11px;font-size:var(--am-tag-sm-font-size,11px);padding:0 2px}.am-tag-lg{font-size:12px;font-size:var(--am-tag-lg-font-size,12px);padding:2px 4px}.am-tag-bg-primary{background:#1677ff;background:var(--am-tag-bg-primary,#1677ff)}.am-tag-bg-warning{background:#ff8f1f;background:var(--am-tag-bg-warning,#ff8f1f)}.am-tag-bg-success{background:#00b578;background:var(--am-tag-bg-success,#00b578)}.am-tag-bg-danger{background:#ff6010;background:var(--am-tag-bg-danger,#ff6010)}.am-tag-ghost{background:#fff;background:var(--am-tag-ghost-bg,#fff)}.am-tag-ghost-primary{color:#1677ff;color:var(--am-tag-ghost-primary-color,#1677ff);border:1px solid #1677ff;border:1px solid var(--am-tag-ghost-primary,#1677ff)}.am-tag-ghost-warning{color:#ff8f1f;color:var(--am-tag-ghost-warning-color,#ff8f1f);border:1px solid #ff8f1f;border:1px solid var(--am-tag-ghost-warning,#ff8f1f)}.am-tag-ghost-success{color:#00b578;color:var(--am-tag-ghost-success,#00b578);border:1px solid #00b578;border:1px solid var(--am-tag-ghost-success,#00b578)}.am-tag-ghost-danger{color:#ff6010;color:var(--am-tag-ghost-danger,#ff6010);border:1px solid #ff6010;border:1px solid var(--am-tag-ghost-danger,#ff6010)}.am-tag-icon{overflow:hidden;margin-right:3px;line-height:1.5;line-height:var(--am-tag-line-height,1.5);background-position:center;background-repeat:no-repeat;background-size:100% auto}.am-tag-text{flex:1;display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5;line-height:var(--am-tag-line-height,1.5)}.am-tag-text-plain{color:#fff;color:var(--am-tag-text-color,#fff)}.am-tag-icon-primary{color:#1677ff;color:var(--am-tag-icon-font-primary,#1677ff);background:#e7f1ff;background:var(--am-tag-icon-bg-primary,#e7f1ff)}.am-tag-icon-warning{color:#ff8f1f;color:var(--am-tag-icon-font-warning,#ff8f1f);background:#ffefdf;background:var(--am-tag-icon-bg-warning,#ffefdf)}.am-tag-icon-danger{color:#ff6010;color:var(--am-tag-icon-font-danger,#ff6010);background:#ffece3;background:var(--am-tag-icon-bg-danger,#ffece3)}.am-tag-icon-success{color:#00b578;color:var(--am-tag-icon-font-success,#00b578);background:#d4fff1;background:var(--am-tag-icon-bg-success,#d4fff1)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tag/index.axml b/node_modules/mini-ali-ui/es/tag/index.axml
new file mode 100755
index 0000000..821642f
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tag/index.axml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/tag/index.js b/node_modules/mini-ali-ui/es/tag/index.js
new file mode 100755
index 0000000..9a7016b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tag/index.js
@@ -0,0 +1,31 @@
+Component({
+ props: {
+ type: 'primary',
+ iconType: '',
+ className: '',
+ size: 'lg'
+ },
+ data: {
+ bgClass: {
+ primary: 'am-tag-bg-primary',
+ warning: 'am-tag-bg-warning',
+ success: 'am-tag-bg-success',
+ danger: 'am-tag-bg-danger'
+ },
+ iconClass: {
+ primary: 'am-tag-icon-primary',
+ warning: 'am-tag-icon-warning',
+ success: 'am-tag-icon-success',
+ danger: 'am-tag-icon-danger'
+ },
+ ghostClass: {
+ primary: 'am-tag-ghost-primary',
+ warning: 'am-tag-ghost-warning',
+ success: 'am-tag-ghost-success',
+ danger: 'am-tag-ghost-danger'
+ }
+ },
+ didMount: function didMount() {},
+ didUpdate: function didUpdate() {},
+ didUnmount: function didUnmount() {}
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tag/index.json b/node_modules/mini-ali-ui/es/tag/index.json
new file mode 100755
index 0000000..717cce8
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tag/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/terms/index.acss b/node_modules/mini-ali-ui/es/terms/index.acss
new file mode 100755
index 0000000..4a07bdf
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/terms/index.acss
@@ -0,0 +1 @@
+.am-terms{display:flex;flex-direction:column;padding:4px;padding:var(--am-terms-padding,4px);width:100%;box-sizing:border-box}.am-terms .am-terms-header{display:flex;align-items:center;color:#333;color:var(--am-terms-content-color,#333);margin-bottom:20px;margin-bottom:var(--am-terms-content-margin,20px)}.am-terms .am-terms-header .am-checkbox{margin-right:8px;margin-right:var(--am-terms-checkbox-margin,8px)}.am-terms .am-terms-header .text{font-size:15px;font-size:var(--am-terms-content-font-size,15px);line-height:22px;line-height:var(--am-terms-content-line-height,22px);flex:1}.am-terms .am-terms-header .text .link{color:#1677ff;color:var(--am-terms-link-color,#1677ff);display:inline}.am-terms .am-terms-body{display:flex;flex-direction:column}.am-terms .am-terms-body .am-button{margin-bottom:12px;margin-bottom:var(--am-terms-button-margin,12px)}.am-terms .am-terms-footer{color:#333;color:var(--am-terms-desc-color,#333);font-size:11px;font-size:var(--am-terms-desc-font-size,11px);line-height:1.5;line-height:var(--am-terms-desc-line-height,1.5);margin-top:4px;margin-top:var(--am-terms-desc-margin,4px)}.am-terms .am-terms-footer .text .link{color:#1677ff;color:var(--am-terms-link-color,#1677ff);display:inline}.am-terms-fixed{position:fixed;z-index:2;bottom:0;left:0;right:0;background-color:#fff;background-color:var(--am-terms-background-color,#fff);padding:8px;padding:var(--am-terms-fixed-padding,8px);width:100%;box-sizing:border-box}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/terms/index.axml b/node_modules/mini-ali-ui/es/terms/index.axml
new file mode 100755
index 0000000..9027aa3
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/terms/index.axml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/terms/index.js b/node_modules/mini-ali-ui/es/terms/index.js
new file mode 100755
index 0000000..1c8e7a5
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/terms/index.js
@@ -0,0 +1,75 @@
+Component({
+ props: {
+ fixed: false,
+ related: true,
+ capsuleSize: 'large',
+ shape: 'default',
+ agreeBtn: null,
+ cancelBtn: null,
+ capsuleMinWidth: false,
+ hasDesc: false
+ },
+ data: {
+ showBtn: true,
+ status: 0,
+ agreeBtnAttr: {},
+ cancelBtnAttr: {}
+ },
+ didMount: function didMount() {
+ var _this$props = this.props,
+ agreeBtn = _this$props.agreeBtn,
+ cancelBtn = _this$props.cancelBtn,
+ related = _this$props.related;
+ var agreeBtnCfg = agreeBtn ? Object.assign({
+ title: '',
+ subtitle: '',
+ type: 'primary',
+ data: 1,
+ checked: false
+ }, agreeBtn) : {};
+ var cancelBtnCfg = cancelBtn ? Object.assign({
+ title: '',
+ subtitle: '',
+ type: 'default',
+ data: 2
+ }, cancelBtn) : {};
+
+ if (agreeBtnCfg.checked && related || !related) {
+ this.setData({
+ showBtn: false,
+ status: 1,
+ agreeBtnAttr: agreeBtnCfg,
+ cancelBtnAttr: cancelBtnCfg
+ });
+ } else {
+ this.setData({
+ showBtn: true,
+ status: 0,
+ agreeBtnAttr: agreeBtnCfg,
+ cancelBtnAttr: cancelBtnCfg
+ });
+ }
+ },
+ methods: {
+ onTap: function onTap(e) {
+ var onSelect = this.props.onSelect;
+ onSelect && onSelect(e);
+ },
+ onChange: function onChange(e) {
+ var related = this.props.related;
+ var isSeleted = e.detail.value;
+
+ if (related && isSeleted) {
+ this.setData({
+ showBtn: false,
+ status: 1
+ });
+ } else {
+ this.setData({
+ showBtn: true,
+ status: 0
+ });
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/terms/index.json b/node_modules/mini-ali-ui/es/terms/index.json
new file mode 100755
index 0000000..833ce0d
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/terms/index.json
@@ -0,0 +1,8 @@
+{
+ "component": true,
+ "usingComponents": {
+ "button": "../button/index",
+ "am-checkbox": "../am-checkbox/index",
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tips/tips-dialog/index.acss b/node_modules/mini-ali-ui/es/tips/tips-dialog/index.acss
new file mode 100755
index 0000000..f68e86c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tips/tips-dialog/index.acss
@@ -0,0 +1 @@
+.am-tips-dialog{position:relative;width:100%;padding:0 8px;padding:0 var(--am-tips-dialog-container-spacing,8px);box-sizing:border-box;font-size:15px;font-size:var(--am-tips-dialog-font-size,15px)}.am-tips-dialog .am-button{box-shadow:none}.am-tips-dialog-wrap{display:flex;align-items:center;background:rgba(0,0,0,.75);position:relative;box-shadow:0 4px 10px 0 rgba(51,51,51,.2);border-radius:8px;border-radius:var(--am-tips-dialog-border-radius,8px);padding:8px 12px;padding:var(--am-tips-dialog-v-spacing,8px) var(--am-tips-dialog-spacing,12px);height:100%}.am-tips-dialog-arrow{position:absolute;width:15px;height:8px}.am-tips-dialog-arrow-bottom-left{bottom:-8px;left:26px}.am-tips-dialog-arrow-bottom-right{bottom:-8px;right:26px}.am-tips-dialog-arrow-bottom-center{bottom:-8px;left:50%;margin-left:-8px}.am-tips-dialog-arrow-top-left{top:-8px;left:26px;transform:rotate(180deg)}.am-tips-dialog-arrow-top-right{top:-8px;right:26px;transform:rotate(180deg)}.am-tips-dialog-arrow-top-center{top:-8px;left:50%;margin-left:-8px;transform:rotate(180deg)}.am-tips-dialog-arrow-left{top:50%;left:-11px;margin-top:-4px;transform:rotate(90deg) translateY(6%)}.am-tips-dialog-arrow-right{top:50%;right:-11px;margin-top:-4px;transform:rotate(-90deg) translateY(6%)}.am-tips-dialog-wrap .am-tips-dialog-rectangle{padding:0 16px 0 6px}.am-tips-dialog-wrap::before .am-tips-dialog-rectangle{display:none}.am-tips-dialog-close{margin-left:12px;margin-left:var(--am-tips-dialog-h-spacing,12px);align-self:flex-start;height:22px;height:var(--am-tips-dialog-icon-size,22px);width:22px;width:var(--am-tips-dialog-icon-size,22px)}.am-tips-dialog-close:before{transform:rotate(45deg)}.am-tips-dialog-close:after{transform:rotate(-45deg)}.am-tips-dialog-close-container{margin-left:12px;margin-left:var(--am-tips-dialog-close-btn-spacing,12px);padding-top:6px;box-sizing:border-box;position:relative;height:100%;align-self:stretch}.am-tips-dialog-icon{background-color:#fff;background-color:var(--am-tips-dialog-icon-bg-color,#fff);border-radius:4px;border-radius:var(--am-tips-dialog-border-radiu,4px);margin-right:12px;margin-right:var(--am-tips-dialog-h-spacing,12px)}.am-tips-dialog-icon .a-image{height:36px;height:var(--am-tips-dialog-image-size,36px);width:36px;width:var(--am-tips-dialog-image-size,36px)}.am-tips-dialog-content{flex:1}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tips/tips-dialog/index.axml b/node_modules/mini-ali-ui/es/tips/tips-dialog/index.axml
new file mode 100755
index 0000000..af89a89
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tips/tips-dialog/index.axml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tips/tips-dialog/index.js b/node_modules/mini-ali-ui/es/tips/tips-dialog/index.js
new file mode 100755
index 0000000..1376c61
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tips/tips-dialog/index.js
@@ -0,0 +1,23 @@
+import fmtEvent from '../../_util/fmtEvent';
+Component({
+ props: {
+ show: true,
+ className: '',
+ type: 'dialog',
+ iconSize: 20,
+ arrowPosition: 'bottom-left'
+ },
+ data: {
+ arrowColor: '000'
+ },
+ methods: {
+ onCloseTap: function onCloseTap(e) {
+ var onCloseTap = this.props.onCloseTap;
+ var event = fmtEvent(this.props, e);
+
+ if (onCloseTap) {
+ onCloseTap(event);
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tips/tips-dialog/index.json b/node_modules/mini-ali-ui/es/tips/tips-dialog/index.json
new file mode 100755
index 0000000..fafc94d
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tips/tips-dialog/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tips/tips-plain/index.acss b/node_modules/mini-ali-ui/es/tips/tips-plain/index.acss
new file mode 100755
index 0000000..a59a8f4
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tips/tips-plain/index.acss
@@ -0,0 +1 @@
+.am-tips-plain-favorite{position:fixed;bottom:50px;left:50px;box-sizing:border-box;font-size:15px;font-size:var(--am-tips-plain-font-size,15px)}.am-tips-plain-favorite-wrap{position:relative;background:#333;background:var(--am-tips-plain-bg-color,#333);box-shadow:0 4px 10px 0 rgba(51,51,51,.2);border-radius:8px;border-radius:var(--am-tips-plain-border-radius,8px);color:#fff;color:var(--am-tips-plain-text-color,#fff);padding:6px 12px;padding:6px var(--am-tips-plain-padding,12px);min-height:10px}.am-tips-plain-favorite-content{line-height:1.5;line-height:var(--am-tips-plain-line-height,1.5);overflow:hidden}.am-tips-plain-favorite-action:active{background:#333;background:var(--am-tips-plain-bg-color,#333)}.am-tips-plain-favorite-wrap::before{content:'';position:absolute;bottom:-8px;left:50%;margin-left:-8px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:9px solid #333;border-top:9px solid var(--am-tips-plain-bg-color,#333)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tips/tips-plain/index.axml b/node_modules/mini-ali-ui/es/tips/tips-plain/index.axml
new file mode 100755
index 0000000..ca4e30e
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tips/tips-plain/index.axml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tips/tips-plain/index.js b/node_modules/mini-ali-ui/es/tips/tips-plain/index.js
new file mode 100755
index 0000000..d60d2e6
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tips/tips-plain/index.js
@@ -0,0 +1,44 @@
+import fmtEvent from '../../_util/fmtEvent';
+Component({
+ data: {
+ show: true
+ },
+ props: {
+ className: '',
+ time: 5000,
+ onClose: function onClose() {},
+ onTimeOut: function onTimeOut() {}
+ },
+ didMount: function didMount() {
+ var _this = this;
+
+ var time = this.props.time;
+ this._timer = setTimeout(function () {
+ _this.setData({
+ show: false
+ });
+
+ _this.onTimeOut();
+ }, time);
+ },
+ didUnmount: function didUnmount() {
+ clearTimeout(this._timer);
+ },
+ methods: {
+ onClose: function onClose(e) {
+ var event = fmtEvent(this.props, e);
+ this.setData({
+ show: false
+ });
+ clearTimeout(this._timer);
+ this.props.onClose(event);
+ },
+ onTimeOut: function onTimeOut(e) {
+ var event = fmtEvent(this.props, e);
+
+ if (this.props.onTimeOut && typeof this.props.onTimeOut === 'function') {
+ this.props.onTimeOut(event);
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/tips/tips-plain/index.json b/node_modules/mini-ali-ui/es/tips/tips-plain/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/tips/tips-plain/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/title/index.acss b/node_modules/mini-ali-ui/es/title/index.acss
new file mode 100755
index 0000000..a1d6539
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/title/index.acss
@@ -0,0 +1 @@
+.am-title{display:flex;align-items:center;padding:0 12px 12px;padding:0 var(--am-title-paddingLR,12px) var(--am-title-paddingB,12px);font-size:15px;font-size:var(--am-title-text-fontSize,15px);color:#333;color:var(--am-title-text-color,#333)}.am-title-line{position:relative;margin-bottom:12px;margin-bottom:var(--am-title-marginBottom,12px)}.am-title-line::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-title-icon{width:24px;width:var(--am-title-icon-width,24px);height:24px;height:var(--am-title-icon-height,24px);overflow:hidden;margin-right:8px;margin-right:var(--am-title-icon-marginRight,8px);background-position:center;background-repeat:no-repeat;background-size:100% auto}.am-title-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.am-title-operation{width:24px;width:var(--am-operation-icon-width,24px);height:24px;height:var(--am-operation-icon-height,24px);overflow:hidden;text-align:center;line-height:24px;line-height:var(--am-title-operation-lineHeight,24px);margin-left:8px;margin-left:var(--am-title-operation-marginLeft,8px)}.am-title-operation-icon{font-size:18px;font-size:var(--am-title-operation-icon-size,18px);color:#ccc;color:var(--am-title-operation-icon-color,#ccc)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/title/index.axml b/node_modules/mini-ali-ui/es/title/index.axml
new file mode 100755
index 0000000..35f3aed
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/title/index.axml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/mini-ali-ui/es/title/index.js b/node_modules/mini-ali-ui/es/title/index.js
new file mode 100755
index 0000000..0a1c39b
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/title/index.js
@@ -0,0 +1,30 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ // title component have boder-bottom line
+ hasLine: false,
+ // type: arrow、close、more、'';
+ type: '',
+ // if type="arrow", need to write path
+ iconURL: '',
+ onActionTap: function onActionTap() {},
+ // developer can use class for style
+ className: ''
+ },
+ data: {},
+ didMount: function didMount() {},
+ didUpdate: function didUpdate() {},
+ didUnmount: function didUnmount() {},
+ methods: {
+ onClick: function onClick(e) {
+ var _this$props = this.props,
+ type = _this$props.type,
+ onActionTap = _this$props.onActionTap;
+ var event = fmtEvent(this.props, e);
+
+ if ((type === 'arrow' || type === 'more' || type === 'close') && typeof onActionTap === 'function') {
+ onActionTap(event);
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/title/index.json b/node_modules/mini-ali-ui/es/title/index.json
new file mode 100755
index 0000000..717cce8
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/title/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/verify-code/index.acss b/node_modules/mini-ali-ui/es/verify-code/index.acss
new file mode 100755
index 0000000..9dd5519
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/verify-code/index.acss
@@ -0,0 +1 @@
+.am-verify-code-item{display:flex;align-items:center;background:#fff;background:var(--am-verify-code-item-background,#fff);padding-left:12px;padding-left:var(--am-verify-code-item-padding-left,12px)}.am-verify-code-item .a-input-content{padding-left:2px}.am-verify-code-line{position:relative;flex:1;display:flex;align-items:center;padding-right:12px;padding-right:var(--am-verify-code-line-padding-right,12px);min-height:48px;min-height:var(--am-verify-code-line-min-height,48px);overflow:hidden;font-size:17px;font-size:var(--am-verify-code-font-size,17px)}.am-verify-code-label{min-width:80px;min-width:var(--am-verify-code-label-min-width,80px);margin-right:2px;color:#333;color:var(--am-verify-code-item-label-color,#333)}.am-verify-code-content{flex:1;display:flex;color:#333;color:var(--am-verify-code-item-label-color,#333);text-align:left;padding:0}.am-verify-code-content .a-input-wrap{flex:1}.am-verify-code-clear{display:flex;height:22px;height:var(--am-verify-code-icon-size,22px);width:22px;width:var(--am-verify-code-icon-size,22px);justify-content:center;align-items:center;margin-right:12px;margin-right:var(--am-verify-code-line-padding-right,12px)}.am-verify-code-clear-icon{line-height:1;line-height:var(--am-verify-code-icon-line-height,1)}.am-verify-code-clear.show{visibility:visible}.am-verify-code-clear.hidden{visibility:hidden;pointer-events:none}.am-verify-code-line-bottom::after{content:'';position:absolute;background-color:#eee;display:block;top:auto;right:0;bottom:0;left:0;height:1px;transform:scaleY(.5)}.am-verify-code-item.last .am-verify-code-line-bottom::after{display:none}.am-verify-code-action{border-left-width:1px;border-left-width:var(--am-verify-code-action-border-left-width,1px);border-left-style:solid;border-left-color:#ccc;border-left-color:var(--am-verify-code-action-border-left-color,#ccc);padding-left:12px;padding-left:var(--am-verify-code-action-padding-left,12px)}.am-verify-code-action.active{color:#1677ff;color:var(--am-verify-code-action-active-color,#1677ff)}.am-verify-code-action.inactive{color:#999;color:var(--am-verify-code-action-inactive-color,#999)}.am-verify-code-placeholder-base{color:#ccc;color:var(--am-verify-code-item-placeholder-color,#ccc)}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/verify-code/index.axml b/node_modules/mini-ali-ui/es/verify-code/index.axml
new file mode 100755
index 0000000..2e4a3a2
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/verify-code/index.axml
@@ -0,0 +1,35 @@
+
+
+
+ {{label}}
+
+
+
+
+
+ {{
+ _actionActive ? (actedBefore ? '重发验证码' : '发送验证码') : `${_countDown}秒后重试`
+ }}
+
+
+
diff --git a/node_modules/mini-ali-ui/es/verify-code/index.js b/node_modules/mini-ali-ui/es/verify-code/index.js
new file mode 100755
index 0000000..10707fa
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/verify-code/index.js
@@ -0,0 +1,105 @@
+import fmtEvent from '../_util/fmtEvent';
+Component({
+ props: {
+ className: '',
+ labelCls: '',
+ label: '验证码',
+ inputCls: '',
+ last: false,
+ value: '',
+ name: '',
+ type: 'text',
+ password: false,
+ placeholder: '请输入验证码',
+ placeholderClass: '',
+ placeholderStyle: '',
+ disabled: false,
+ maxlength: 140,
+ focus: false,
+ clear: true,
+ // 默认有清除功能
+ syncInput: false,
+ enableNative: false,
+ // 兼容安卓input的输入bug
+ countDown: 60,
+ isInitialActive: true,
+ onInput: function onInput() {},
+ onConfirm: function onConfirm() {},
+ onFocus: function onFocus() {},
+ onBlur: function onBlur() {},
+ onClear: function onClear() {},
+ onSend: function onSend() {}
+ },
+ data: {
+ _focus: false,
+ _actionActive: true,
+ _countDown: 60,
+ resent: false
+ },
+ didMount: function didMount() {
+ this.setData({
+ _focus: this.props.focus,
+ _actionActive: this.props.isInitialActive,
+ _countDown: this.props.countDown,
+ actedBefore: false
+ });
+ },
+ didUnmount: function didUnmount() {
+ clearInterval(this._timeout);
+ },
+ methods: {
+ onBlur: function onBlur(e) {
+ this.setData({
+ _focus: false
+ });
+ var event = fmtEvent(this.props, e);
+ this.props.onBlur(event);
+ },
+ onConfirm: function onConfirm(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onConfirm(event);
+ },
+ onFocus: function onFocus(e) {
+ this.setData({
+ _focus: true
+ });
+ var event = fmtEvent(this.props, e);
+ this.props.onFocus(event);
+ },
+ onInput: function onInput(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onInput(event);
+ },
+ onClear: function onClear(e) {
+ var event = fmtEvent(this.props, e);
+ this.props.onClear(event);
+ },
+ onTapSend: function onTapSend(e) {
+ var _this = this;
+
+ this.setData({
+ _actionActive: false
+ });
+ this._timeout = setInterval(function () {
+ var subOne = _this.data._countDown - 1;
+
+ if (subOne <= 0) {
+ clearInterval(_this._timeout);
+
+ _this.setData({
+ _actionActive: true,
+ resend: true,
+ _countDown: _this.props.countDown,
+ actedBefore: true
+ });
+ } else {
+ _this.setData({
+ _countDown: subOne
+ });
+ }
+ }, 1000);
+ var event = fmtEvent(this.props, e);
+ this.props.onSend(event);
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/verify-code/index.json b/node_modules/mini-ali-ui/es/verify-code/index.json
new file mode 100755
index 0000000..c923371
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/verify-code/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "am-icon": "../am-icon/index"
+ }
+}
diff --git a/node_modules/mini-ali-ui/es/vtabs/index.acss b/node_modules/mini-ali-ui/es/vtabs/index.acss
new file mode 100755
index 0000000..b891116
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/vtabs/index.acss
@@ -0,0 +1 @@
+.am-vtabs{width:100vw;height:100vh;display:flex;flex-direction:row}.am-vtabs-bar{width:120px;overflow:hidden}.am-vtabs-bar-line{position:absolute;left:0;top:12px;bottom:12px;width:3px;overflow:hidden;font-size:0;border-radius:50vh}.am-vtabs-bar-line-radius{position:absolute;right:0;width:8px;height:8px;border-radius:50vh;overflow:hidden;font-size:0}.am-vtabs-bar-line-radius__top{top:-8px}.am-vtabs-bar-line-radius__bottom{bottom:-8px}.am-vtabs-bar-placehold{flex:1 1 0%}.am-vtabs-bar-content{display:flex;flex-direction:column;height:100%;width:120px}.am-vtabs-bar-tab{position:relative;box-sizing:border-box;width:120px;padding:12px 24px;text-align:center}.am-vtabs-bar-tab__hover{opacity:.6}.am-vtabs-bar-tab__active{font-size:15px}.am-vtabs-bar-tab__same{font-size:13px}.am-vtabs-bar-title{position:relative;display:inline-block}.am-vtabs-content-wrap{overflow:hidden;flex:1;height:100%;background-color:#fff}.am-vtabs-slides{height:100%}.am-vtabs-slides.animate{transition-duration:.3s}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/vtabs/index.axml b/node_modules/mini-ali-ui/es/vtabs/index.axml
new file mode 100755
index 0000000..d022a86
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/vtabs/index.axml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ {{item.title}}({{item.number}})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/vtabs/index.js b/node_modules/mini-ali-ui/es/vtabs/index.js
new file mode 100755
index 0000000..e1fb25f
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/vtabs/index.js
@@ -0,0 +1,162 @@
+import fmtUnit from '../_util/fmtUnit';
+Component({
+ data: {
+ tabTop: 0,
+ wrapScrollTop: 0,
+ besideRadius: fmtUnit('8px')
+ },
+ props: {
+ activeTab: 0,
+ className: '',
+ tabs: [],
+ animated: false,
+ swipeable: true,
+ tabBarActiveTextColor: '#1677FF',
+ tabBarInactiveTextColor: '#333333',
+ tabBarActiveBgColor: '#ffffff',
+ tabBarInactiveBgColor: '#f5f5f5',
+ tabBarlineColor: '#1677FF',
+ sameFontSize: true,
+ tabBarlineShow: true,
+ onTabClick: function onTabClick() {},
+ onScrollBar: function onScrollBar() {}
+ },
+ didMount: function didMount() {
+ this.isScrolling = false;
+ this.timerId = null;
+ this.calcHeight();
+ },
+ didUpdate: function didUpdate(prevProps) {
+ var activeTab = this.props.activeTab;
+
+ if (this.props.tabs.length !== prevProps.tabs.length || activeTab !== prevProps.activeTab) {
+ this.calcHeight();
+ }
+ },
+ didUnmount: function didUnmount() {
+ if (this.timerId) {
+ clearTimeout(this.timerId);
+ this.timerId = null;
+ }
+ },
+ methods: {
+ calcHeight: function calcHeight() {
+ var _this = this;
+
+ var _this$props = this.props,
+ tabs = _this$props.tabs,
+ activeTab = _this$props.activeTab;
+ this.anchorMap = {};
+ this.indexMap = {};
+ this.wrapHeight = 0;
+ this.scrollWrapHeight = 0;
+ my.createSelectorQuery().select(".am-vtabs-slides-" + this.$id).boundingClientRect().exec(function (ret) {
+ _this.wrapHeight = ret[0].height;
+ });
+ var cacheHeight = 0;
+
+ var _loop = function _loop(i) {
+ var anchor = tabs[i].anchor;
+ /* eslint-disable no-loop-func */
+
+ my.createSelectorQuery().select("#am-vtab-slide-" + anchor).boundingClientRect().exec(function (ret) {
+ _this.anchorMap[anchor] = cacheHeight;
+ _this.indexMap[i] = cacheHeight;
+
+ if (activeTab === i) {
+ _this.setData({
+ wrapScrollTop: _this.indexMap[i]
+ });
+ }
+
+ cacheHeight += ret[0].height;
+ _this.scrollWrapHeight = cacheHeight;
+ });
+ };
+
+ for (var i = 0; i < tabs.length; i++) {
+ _loop(i);
+ }
+ },
+ handleTabClick: function handleTabClick(e) {
+ var _e$target$dataset = e.target.dataset,
+ anchor = _e$target$dataset.anchor,
+ index = _e$target$dataset.index;
+
+ if (!this.isScrolling || !this.props.swipeable) {
+ if (this.props.activeTab !== index) {
+ this.props.onTabClick(index);
+ }
+
+ this.setData({
+ wrapScrollTop: this.anchorMap[anchor]
+ });
+ this.moveScrollBar(index);
+ }
+ },
+ moveScrollBar: function moveScrollBar(current) {
+ var tabTop;
+
+ if (current < 6) {
+ tabTop = 0;
+ } else {
+ tabTop = (current - 5) * 55;
+ }
+
+ if (this.props.activeTab !== current) {
+ if (this.props.onChange) {
+ this.props.onChange(current);
+ } else {
+ this.props.onScrollBar(current);
+ }
+ }
+
+ this.setData({
+ tabTop: tabTop,
+ current: current,
+ currentBefore: current - 1,
+ currentAfter: current + 1
+ });
+ },
+ onScroll: function onScroll(e) {
+ var _this2 = this;
+
+ var scrollTop = e.detail.scrollTop;
+ var keys = Object.keys(this.anchorMap);
+
+ if (this.timerId) {
+ clearTimeout(this.timerId);
+ this.timerId = null;
+ }
+
+ this.timerId = setTimeout(function () {
+ _this2.isScrolling = false;
+ }, 300);
+ var anchorLength = keys.length;
+
+ for (var i = 0; i < anchorLength; i++) {
+ if (i === anchorLength - 1) {
+ // 如果是最后一个只需满足scrollTop高于当前vtab-content的高度
+ if (scrollTop >= this.anchorMap[keys[i]]) {
+ this.moveScrollBar(i);
+ break;
+ }
+ }
+
+ if (scrollTop >= Math.floor(this.anchorMap[keys[i]]) && scrollTop < Math.floor(this.anchorMap[keys[i + 1]])) {
+ // 如果没个vtab-content高度小于scroll-view高度,到达底部后就不需要根据scrollTop再去判断左侧的选择项
+ if (scrollTop + this.wrapHeight < this.scrollWrapHeight) {
+ this.moveScrollBar(i);
+ }
+
+ break;
+ }
+ }
+ },
+ onWrapTouchMove: function onWrapTouchMove() {
+ if (this.props.swipeable) {
+ this.isScrolling = true;
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/vtabs/index.json b/node_modules/mini-ali-ui/es/vtabs/index.json
new file mode 100755
index 0000000..a303059
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/vtabs/index.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "badge": "../badge/index"
+ }
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/vtabs/vtab-content/index.axml b/node_modules/mini-ali-ui/es/vtabs/vtab-content/index.axml
new file mode 100755
index 0000000..02f912c
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/vtabs/vtab-content/index.axml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/vtabs/vtab-content/index.js b/node_modules/mini-ali-ui/es/vtabs/vtab-content/index.js
new file mode 100755
index 0000000..df2bc90
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/vtabs/vtab-content/index.js
@@ -0,0 +1 @@
+Component({});
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/es/vtabs/vtab-content/index.json b/node_modules/mini-ali-ui/es/vtabs/vtab-content/index.json
new file mode 100755
index 0000000..32640e0
--- /dev/null
+++ b/node_modules/mini-ali-ui/es/vtabs/vtab-content/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/node_modules/mini-ali-ui/package.json b/node_modules/mini-ali-ui/package.json
new file mode 100755
index 0000000..cfd716b
--- /dev/null
+++ b/node_modules/mini-ali-ui/package.json
@@ -0,0 +1,99 @@
+{
+ "_from": "mini-ali-ui",
+ "_id": "mini-ali-ui@1.0.11",
+ "_inBundle": false,
+ "_integrity": "sha512-8emm5iIhcic25lurah/4GVje3fpGl17wGJ9xHnQqsJF+vO9KBKPybHlPqfLJRKJdFpJrTF9c1UZuCyu41G2New==",
+ "_location": "/mini-ali-ui",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "tag",
+ "registry": true,
+ "raw": "mini-ali-ui",
+ "name": "mini-ali-ui",
+ "escapedName": "mini-ali-ui",
+ "rawSpec": "",
+ "saveSpec": null,
+ "fetchSpec": "latest"
+ },
+ "_requiredBy": [
+ "#USER",
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/mini-ali-ui/-/mini-ali-ui-1.0.11.tgz",
+ "_shasum": "ca3ab60c5edf0080fcfb3edaef34625ee22509e4",
+ "_spec": "mini-ali-ui",
+ "_where": "/Users/WebTmm/Documents/支付宝小程序/亿分期",
+ "bugs": {
+ "url": "https://github.com/Alibaba-mp/mini-ali-ui/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "小程序版AntUI",
+ "devDependencies": {
+ "@babel/core": "^7.6.4",
+ "@babel/plugin-syntax-dynamic-import": "^7.0.0",
+ "@babel/preset-env": "^7.6.3",
+ "@babel/preset-typescript": "^7.6.0",
+ "@typescript-eslint/parser": "^2.17.0",
+ "alipay-style": "^0.1.0",
+ "eslint": "^5.16.0",
+ "eslint-config-ali": "^3.1.0",
+ "eslint-plugin-import": "^2.11.0",
+ "eslint-plugin-typescript": "^0.14.0",
+ "gulp": "^4.0.0",
+ "gulp-babel": "^8.0.0",
+ "gulp-clean-css": "^4.0.0",
+ "gulp-if": "^2.0.2",
+ "gulp-inject-envs": "^1.1.1",
+ "gulp-less": "^4.0.1",
+ "gulp-rename": "^1.2.3",
+ "lint-staged": "^8.2.0",
+ "mini-types": "^0.0.1",
+ "pre-commit": "^1.2.2",
+ "stylelint": "^10.1.0",
+ "stylelint-config-standard": "^18.2.0",
+ "typescript": "^3.6.4"
+ },
+ "files": [
+ "es"
+ ],
+ "homepage": "https://github.com/Alibaba-mp/mini-ali-ui#readme",
+ "keywords": [
+ "antui",
+ "mini-program",
+ "mini-ali-ui",
+ "ali-ui"
+ ],
+ "license": "MIT",
+ "lint-staged": {
+ "*.ts": [
+ "eslint --ext .ts",
+ "git add"
+ ],
+ "*.js": [
+ "eslint",
+ "git add"
+ ],
+ "*.less": [
+ "stylelint --syntax less"
+ ]
+ },
+ "name": "mini-ali-ui",
+ "pre-commit": [
+ "lint-staged"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/Alibaba-mp/mini-ali-ui.git"
+ },
+ "scripts": {
+ "build": "yarn && NODE_ENV=production node scripts/compiler.js",
+ "build:rpx": "yarn && NODE_ENV=production node scripts/compiler.js --rpx",
+ "dev": "yarn && node scripts/compiler.js",
+ "dev:rpx": "yarn && node scripts/compiler.js --rpx",
+ "lint-staged": "lint-staged",
+ "pub": "npm run build && node scripts/pub.js",
+ "pub:rpx": "npm run build:rpx && node scripts/pub.js --rpx"
+ },
+ "version": "1.0.11"
+}
diff --git a/node_modules/mini-html-parser2/README.md b/node_modules/mini-html-parser2/README.md
new file mode 100644
index 0000000..53ac089
--- /dev/null
+++ b/node_modules/mini-html-parser2/README.md
@@ -0,0 +1,63 @@
+# mini-html-parser2
+
+## 安装
+
+```
+$ npm install mini-html-parser2 --save
+```
+
+## 使用
+
+```js
+// page.js
+const html = `
+
test
+
+
table test
+
+
+
+ | title |
+ title |
+
+
+
+
+ | yy |
+ xx |
+ xx |
+ xx |
+
+
+
+
+
`
+import parse from 'mini-html-parser2';
+
+Page({
+ data: {
+ nodes: [],
+ },
+ onLoad() {
+ parse(html, (err, nodes) => {
+ if (!err) {
+ this.setData({
+ nodes,
+ });
+ }
+ })
+ },
+})
+```
+
+```html
+
+
+```
+
+## 运行测试
+
+```
+$ npm run build
+$ npm test
+```
diff --git a/node_modules/mini-html-parser2/lib/Parser.d.ts b/node_modules/mini-html-parser2/lib/Parser.d.ts
new file mode 100644
index 0000000..c48c713
--- /dev/null
+++ b/node_modules/mini-html-parser2/lib/Parser.d.ts
@@ -0,0 +1,2 @@
+declare function Parser(cbs: any, options: any): void;
+export default Parser;
diff --git a/node_modules/mini-html-parser2/lib/Parser.js b/node_modules/mini-html-parser2/lib/Parser.js
new file mode 100644
index 0000000..b62a0e8
--- /dev/null
+++ b/node_modules/mini-html-parser2/lib/Parser.js
@@ -0,0 +1,298 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+var Tokenizer = require("./Tokenizer.js");
+/*
+ Options:
+
+ xmlMode: Disables the special behavior for script/style tags (false by default)
+ lowerCaseAttributeNames: call .toLowerCase for each attribute name (true if xmlMode is `false`)
+ lowerCaseTags: call .toLowerCase for each tag name (true if xmlMode is `false`)
+*/
+/*
+ Callbacks:
+
+ oncdataend,
+ oncdatastart,
+ onclosetag,
+ oncomment,
+ oncommentend,
+ onerror,
+ onopentag,
+ onprocessinginstruction,
+ onreset,
+ ontext
+*/
+var formTags = {
+ input: true,
+ option: true,
+ optgroup: true,
+ select: true,
+ button: true,
+ datalist: true,
+ textarea: true
+};
+var openImpliesClose = {
+ tr: { tr: true, th: true, td: true },
+ th: { th: true },
+ td: { thead: true, th: true, td: true },
+ body: { head: true, link: true, script: true },
+ li: { li: true },
+ p: { p: true },
+ h1: { p: true },
+ h2: { p: true },
+ h3: { p: true },
+ h4: { p: true },
+ h5: { p: true },
+ h6: { p: true },
+ select: formTags,
+ input: formTags,
+ output: formTags,
+ button: formTags,
+ datalist: formTags,
+ textarea: formTags,
+ option: { option: true },
+ optgroup: { optgroup: true }
+};
+var voidElements = {
+ __proto__: null,
+ area: true,
+ base: true,
+ basefont: true,
+ br: true,
+ col: true,
+ command: true,
+ embed: true,
+ frame: true,
+ hr: true,
+ img: true,
+ input: true,
+ isindex: true,
+ keygen: true,
+ link: true,
+ meta: true,
+ param: true,
+ source: true,
+ track: true,
+ wbr: true
+};
+var foreignContextElements = {
+ __proto__: null,
+ math: true,
+ svg: true
+};
+var htmlIntegrationElements = {
+ __proto__: null,
+ mi: true,
+ mo: true,
+ mn: true,
+ ms: true,
+ mtext: true,
+ "annotation-xml": true,
+ foreignObject: true,
+ desc: true,
+ title: true
+};
+var re_nameEnd = /\s|\//;
+function Parser(cbs, options) {
+ this._options = options || {};
+ this._cbs = cbs || {};
+ this._tagname = "";
+ this._attribname = "";
+ this._attribvalue = "";
+ this._attribs = null;
+ this._stack = [];
+ this._foreignContext = [];
+ this.startIndex = 0;
+ this.endIndex = null;
+ this._lowerCaseTagNames = "lowerCaseTags" in this._options ? !!this._options.lowerCaseTags : !this._options.xmlMode;
+ this._lowerCaseAttributeNames = "lowerCaseAttributeNames" in this._options ? !!this._options.lowerCaseAttributeNames : !this._options.xmlMode;
+ if (this._options.Tokenizer) {
+ Tokenizer = this._options.Tokenizer;
+ }
+ this._tokenizer = new Tokenizer(this._options, this);
+ if (this._cbs.onparserinit) this._cbs.onparserinit(this);
+}
+require("./inherits")(Parser, require("events").EventEmitter);
+Parser.prototype._updatePosition = function (initialOffset) {
+ if (this.endIndex === null) {
+ if (this._tokenizer._sectionStart <= initialOffset) {
+ this.startIndex = 0;
+ } else {
+ this.startIndex = this._tokenizer._sectionStart - initialOffset;
+ }
+ } else this.startIndex = this.endIndex + 1;
+ this.endIndex = this._tokenizer.getAbsoluteIndex();
+};
+//Tokenizer event handlers
+Parser.prototype.ontext = function (data) {
+ this._updatePosition(1);
+ this.endIndex--;
+ if (this._cbs.ontext) this._cbs.ontext(data);
+};
+Parser.prototype.onopentagname = function (name) {
+ if (this._lowerCaseTagNames) {
+ name = name.toLowerCase();
+ }
+ this._tagname = name;
+ if (!this._options.xmlMode && name in openImpliesClose) {
+ for (var el; (el = this._stack[this._stack.length - 1]) in openImpliesClose[name]; this.onclosetag(el)) {}
+ }
+ if (this._options.xmlMode || !(name in voidElements)) {
+ this._stack.push(name);
+ if (name in foreignContextElements) this._foreignContext.push(true);else if (name in htmlIntegrationElements) this._foreignContext.push(false);
+ }
+ if (this._cbs.onopentagname) this._cbs.onopentagname(name);
+ if (this._cbs.onopentag) this._attribs = {};
+};
+Parser.prototype.onopentagend = function () {
+ this._updatePosition(1);
+ if (this._attribs) {
+ if (this._cbs.onopentag) this._cbs.onopentag(this._tagname, this._attribs);
+ this._attribs = null;
+ }
+ if (!this._options.xmlMode && this._cbs.onclosetag && this._tagname in voidElements) {
+ this._cbs.onclosetag(this._tagname);
+ }
+ this._tagname = "";
+};
+Parser.prototype.onclosetag = function (name) {
+ this._updatePosition(1);
+ if (this._lowerCaseTagNames) {
+ name = name.toLowerCase();
+ }
+ if (name in foreignContextElements || name in htmlIntegrationElements) {
+ this._foreignContext.pop();
+ }
+ if (this._stack.length && (!(name in voidElements) || this._options.xmlMode)) {
+ var pos = this._stack.lastIndexOf(name);
+ if (pos !== -1) {
+ if (this._cbs.onclosetag) {
+ pos = this._stack.length - pos;
+ while (pos--) {
+ this._cbs.onclosetag(this._stack.pop());
+ }
+ } else this._stack.length = pos;
+ } else if (name === "p" && !this._options.xmlMode) {
+ this.onopentagname(name);
+ this._closeCurrentTag();
+ }
+ } else if (!this._options.xmlMode && (name === "br" || name === "p")) {
+ this.onopentagname(name);
+ this._closeCurrentTag();
+ }
+};
+Parser.prototype.onselfclosingtag = function () {
+ if (this._options.xmlMode || this._options.recognizeSelfClosing || this._foreignContext[this._foreignContext.length - 1]) {
+ this._closeCurrentTag();
+ } else {
+ this.onopentagend();
+ }
+};
+Parser.prototype._closeCurrentTag = function () {
+ var name = this._tagname;
+ this.onopentagend();
+ //self-closing tags will be on the top of the stack
+ //(cheaper check than in onclosetag)
+ if (this._stack[this._stack.length - 1] === name) {
+ if (this._cbs.onclosetag) {
+ this._cbs.onclosetag(name);
+ }
+ this._stack.pop();
+ }
+};
+Parser.prototype.onattribname = function (name) {
+ if (this._lowerCaseAttributeNames) {
+ name = name.toLowerCase();
+ }
+ this._attribname = name;
+};
+Parser.prototype.onattribdata = function (value) {
+ this._attribvalue += value;
+};
+Parser.prototype.onattribend = function () {
+ if (this._cbs.onattribute) this._cbs.onattribute(this._attribname, this._attribvalue);
+ if (this._attribs && !Object.prototype.hasOwnProperty.call(this._attribs, this._attribname)) {
+ this._attribs[this._attribname] = this._attribvalue;
+ }
+ this._attribname = "";
+ this._attribvalue = "";
+};
+Parser.prototype._getInstructionName = function (value) {
+ var idx = value.search(re_nameEnd),
+ name = idx < 0 ? value : value.substr(0, idx);
+ if (this._lowerCaseTagNames) {
+ name = name.toLowerCase();
+ }
+ return name;
+};
+Parser.prototype.ondeclaration = function (value) {
+ if (this._cbs.onprocessinginstruction) {
+ var name = this._getInstructionName(value);
+ this._cbs.onprocessinginstruction("!" + name, "!" + value);
+ }
+};
+Parser.prototype.onprocessinginstruction = function (value) {
+ if (this._cbs.onprocessinginstruction) {
+ var name = this._getInstructionName(value);
+ this._cbs.onprocessinginstruction("?" + name, "?" + value);
+ }
+};
+Parser.prototype.oncomment = function (value) {
+ this._updatePosition(4);
+ if (this._cbs.oncomment) this._cbs.oncomment(value);
+ if (this._cbs.oncommentend) this._cbs.oncommentend();
+};
+Parser.prototype.oncdata = function (value) {
+ this._updatePosition(1);
+ if (this._options.xmlMode || this._options.recognizeCDATA) {
+ if (this._cbs.oncdatastart) this._cbs.oncdatastart();
+ if (this._cbs.ontext) this._cbs.ontext(value);
+ if (this._cbs.oncdataend) this._cbs.oncdataend();
+ } else {
+ this.oncomment("[CDATA[" + value + "]]");
+ }
+};
+Parser.prototype.onerror = function (err) {
+ if (this._cbs.onerror) this._cbs.onerror(err);
+};
+Parser.prototype.onend = function () {
+ if (this._cbs.onclosetag) {
+ for (var i = this._stack.length; i > 0; this._cbs.onclosetag(this._stack[--i])) {}
+ }
+ if (this._cbs.onend) this._cbs.onend();
+};
+//Resets the parser to a blank state, ready to parse a new HTML document
+Parser.prototype.reset = function () {
+ if (this._cbs.onreset) this._cbs.onreset();
+ this._tokenizer.reset();
+ this._tagname = "";
+ this._attribname = "";
+ this._attribs = null;
+ this._stack = [];
+ if (this._cbs.onparserinit) this._cbs.onparserinit(this);
+};
+//Parses a complete HTML document and pushes it to the handler
+Parser.prototype.parseComplete = function (data) {
+ this.reset();
+ this.end(data);
+};
+Parser.prototype.write = function (chunk) {
+ this._tokenizer.write(chunk);
+};
+Parser.prototype.end = function (chunk) {
+ this._tokenizer.end(chunk);
+};
+Parser.prototype.pause = function () {
+ this._tokenizer.pause();
+};
+Parser.prototype.resume = function () {
+ this._tokenizer.resume();
+};
+//alias for backwards compat
+Parser.prototype.parseChunk = Parser.prototype.write;
+Parser.prototype.done = Parser.prototype.end;
+exports["default"] = Parser;
+module.exports = exports['default'];
\ No newline at end of file
diff --git a/node_modules/mini-html-parser2/lib/Tokenizer.d.ts b/node_modules/mini-html-parser2/lib/Tokenizer.d.ts
new file mode 100644
index 0000000..df542b6
--- /dev/null
+++ b/node_modules/mini-html-parser2/lib/Tokenizer.d.ts
@@ -0,0 +1,68 @@
+declare var decodeCodePoint: any;
+declare var entityMap: {};
+declare var legacyMap: any;
+declare var xmlMap: any;
+declare var i: number;
+declare var TEXT: number;
+declare var BEFORE_TAG_NAME: number;
+declare var IN_TAG_NAME: number;
+declare var IN_SELF_CLOSING_TAG: number;
+declare var BEFORE_CLOSING_TAG_NAME: number;
+declare var IN_CLOSING_TAG_NAME: number;
+declare var AFTER_CLOSING_TAG_NAME: number;
+declare var BEFORE_ATTRIBUTE_NAME: number;
+declare var IN_ATTRIBUTE_NAME: number;
+declare var AFTER_ATTRIBUTE_NAME: number;
+declare var BEFORE_ATTRIBUTE_VALUE: number;
+declare var IN_ATTRIBUTE_VALUE_DQ: number;
+declare var IN_ATTRIBUTE_VALUE_SQ: number;
+declare var IN_ATTRIBUTE_VALUE_NQ: number;
+declare var BEFORE_DECLARATION: number;
+declare var IN_DECLARATION: number;
+declare var IN_PROCESSING_INSTRUCTION: number;
+declare var BEFORE_COMMENT: number;
+declare var IN_COMMENT: number;
+declare var AFTER_COMMENT_1: number;
+declare var AFTER_COMMENT_2: number;
+declare var BEFORE_CDATA_1: number;
+declare var BEFORE_CDATA_2: number;
+declare var BEFORE_CDATA_3: number;
+declare var BEFORE_CDATA_4: number;
+declare var BEFORE_CDATA_5: number;
+declare var BEFORE_CDATA_6: number;
+declare var IN_CDATA: number;
+declare var AFTER_CDATA_1: number;
+declare var AFTER_CDATA_2: number;
+declare var BEFORE_SPECIAL: number;
+declare var BEFORE_SPECIAL_END: number;
+declare var BEFORE_SCRIPT_1: number;
+declare var BEFORE_SCRIPT_2: number;
+declare var BEFORE_SCRIPT_3: number;
+declare var BEFORE_SCRIPT_4: number;
+declare var BEFORE_SCRIPT_5: number;
+declare var AFTER_SCRIPT_1: number;
+declare var AFTER_SCRIPT_2: number;
+declare var AFTER_SCRIPT_3: number;
+declare var AFTER_SCRIPT_4: number;
+declare var AFTER_SCRIPT_5: number;
+declare var BEFORE_STYLE_1: number;
+declare var BEFORE_STYLE_2: number;
+declare var BEFORE_STYLE_3: number;
+declare var BEFORE_STYLE_4: number;
+declare var AFTER_STYLE_1: number;
+declare var AFTER_STYLE_2: number;
+declare var AFTER_STYLE_3: number;
+declare var AFTER_STYLE_4: number;
+declare var BEFORE_ENTITY: number;
+declare var BEFORE_NUMERIC_ENTITY: number;
+declare var IN_NAMED_ENTITY: number;
+declare var IN_NUMERIC_ENTITY: number;
+declare var IN_HEX_ENTITY: number;
+declare var j: number;
+declare var SPECIAL_NONE: number;
+declare var SPECIAL_SCRIPT: number;
+declare var SPECIAL_STYLE: number;
+declare function whitespace(c: any): boolean;
+declare function ifElseState(upper: any, SUCCESS: any, FAILURE: any): (c: any) => void;
+declare function consumeSpecialNameChar(upper: any, NEXT_STATE: any): (c: any) => void;
+declare function Tokenizer(options: any, cbs: any): void;
diff --git a/node_modules/mini-html-parser2/lib/Tokenizer.js b/node_modules/mini-html-parser2/lib/Tokenizer.js
new file mode 100644
index 0000000..4d9e2d8
--- /dev/null
+++ b/node_modules/mini-html-parser2/lib/Tokenizer.js
@@ -0,0 +1,769 @@
+"use strict";
+
+var decodeCodePoint = require("entities/lib/decode_codepoint.js");
+var entityMap = {};
+var legacyMap = require("entities/maps/legacy.json");
+var xmlMap = require("entities/maps/xml.json");
+var i = 0;
+var TEXT = i++;
+var BEFORE_TAG_NAME = i++; //after <
+var IN_TAG_NAME = i++;
+var IN_SELF_CLOSING_TAG = i++;
+var BEFORE_CLOSING_TAG_NAME = i++;
+var IN_CLOSING_TAG_NAME = i++;
+var AFTER_CLOSING_TAG_NAME = i++;
+//attributes
+var BEFORE_ATTRIBUTE_NAME = i++;
+var IN_ATTRIBUTE_NAME = i++;
+var AFTER_ATTRIBUTE_NAME = i++;
+var BEFORE_ATTRIBUTE_VALUE = i++;
+var IN_ATTRIBUTE_VALUE_DQ = i++; // "
+var IN_ATTRIBUTE_VALUE_SQ = i++; // '
+var IN_ATTRIBUTE_VALUE_NQ = i++;
+//declarations
+var BEFORE_DECLARATION = i++; // !
+var IN_DECLARATION = i++;
+//processing instructions
+var IN_PROCESSING_INSTRUCTION = i++; // ?
+//comments
+var BEFORE_COMMENT = i++;
+var IN_COMMENT = i++;
+var AFTER_COMMENT_1 = i++;
+var AFTER_COMMENT_2 = i++;
+//cdata
+var BEFORE_CDATA_1 = i++; // [
+var BEFORE_CDATA_2 = i++; // C
+var BEFORE_CDATA_3 = i++; // D
+var BEFORE_CDATA_4 = i++; // A
+var BEFORE_CDATA_5 = i++; // T
+var BEFORE_CDATA_6 = i++; // A
+var IN_CDATA = i++; // [
+var AFTER_CDATA_1 = i++; // ]
+var AFTER_CDATA_2 = i++; // ]
+//special tags
+var BEFORE_SPECIAL = i++; //S
+var BEFORE_SPECIAL_END = i++; //S
+var BEFORE_SCRIPT_1 = i++; //C
+var BEFORE_SCRIPT_2 = i++; //R
+var BEFORE_SCRIPT_3 = i++; //I
+var BEFORE_SCRIPT_4 = i++; //P
+var BEFORE_SCRIPT_5 = i++; //T
+var AFTER_SCRIPT_1 = i++; //C
+var AFTER_SCRIPT_2 = i++; //R
+var AFTER_SCRIPT_3 = i++; //I
+var AFTER_SCRIPT_4 = i++; //P
+var AFTER_SCRIPT_5 = i++; //T
+var BEFORE_STYLE_1 = i++; //T
+var BEFORE_STYLE_2 = i++; //Y
+var BEFORE_STYLE_3 = i++; //L
+var BEFORE_STYLE_4 = i++; //E
+var AFTER_STYLE_1 = i++; //T
+var AFTER_STYLE_2 = i++; //Y
+var AFTER_STYLE_3 = i++; //L
+var AFTER_STYLE_4 = i++; //E
+var BEFORE_ENTITY = i++; //&
+var BEFORE_NUMERIC_ENTITY = i++; //#
+var IN_NAMED_ENTITY = i++;
+var IN_NUMERIC_ENTITY = i++;
+var IN_HEX_ENTITY = i++; //X
+var j = 0;
+var SPECIAL_NONE = j++;
+var SPECIAL_SCRIPT = j++;
+var SPECIAL_STYLE = j++;
+function whitespace(c) {
+ return c === " " || c === "\n" || c === "\t" || c === "\f" || c === "\r";
+}
+function ifElseState(upper, SUCCESS, FAILURE) {
+ var lower = upper.toLowerCase();
+ if (upper === lower) {
+ return function (c) {
+ if (c === lower) {
+ this._state = SUCCESS;
+ } else {
+ this._state = FAILURE;
+ this._index--;
+ }
+ };
+ } else {
+ return function (c) {
+ if (c === lower || c === upper) {
+ this._state = SUCCESS;
+ } else {
+ this._state = FAILURE;
+ this._index--;
+ }
+ };
+ }
+}
+function consumeSpecialNameChar(upper, NEXT_STATE) {
+ var lower = upper.toLowerCase();
+ return function (c) {
+ if (c === lower || c === upper) {
+ this._state = NEXT_STATE;
+ } else {
+ this._state = IN_TAG_NAME;
+ this._index--; //consume the token again
+ }
+ };
+}
+function Tokenizer(options, cbs) {
+ this._state = TEXT;
+ this._buffer = "";
+ this._sectionStart = 0;
+ this._index = 0;
+ this._bufferOffset = 0; //chars removed from _buffer
+ this._baseState = TEXT;
+ this._special = SPECIAL_NONE;
+ this._cbs = cbs;
+ this._running = true;
+ this._ended = false;
+ this._xmlMode = !!(options && options.xmlMode);
+ this._decodeEntities = !!(options && options.decodeEntities);
+}
+Tokenizer.prototype._stateText = function (c) {
+ if (c === "<") {
+ if (this._index > this._sectionStart) {
+ this._cbs.ontext(this._getSection());
+ }
+ this._state = BEFORE_TAG_NAME;
+ this._sectionStart = this._index;
+ } else if (this._decodeEntities && this._special === SPECIAL_NONE && c === "&") {
+ if (this._index > this._sectionStart) {
+ this._cbs.ontext(this._getSection());
+ }
+ this._baseState = TEXT;
+ this._state = BEFORE_ENTITY;
+ this._sectionStart = this._index;
+ }
+};
+Tokenizer.prototype._stateBeforeTagName = function (c) {
+ if (c === "/") {
+ this._state = BEFORE_CLOSING_TAG_NAME;
+ } else if (c === "<") {
+ this._cbs.ontext(this._getSection());
+ this._sectionStart = this._index;
+ } else if (c === ">" || this._special !== SPECIAL_NONE || whitespace(c)) {
+ this._state = TEXT;
+ } else if (c === "!") {
+ this._state = BEFORE_DECLARATION;
+ this._sectionStart = this._index + 1;
+ } else if (c === "?") {
+ this._state = IN_PROCESSING_INSTRUCTION;
+ this._sectionStart = this._index + 1;
+ } else {
+ this._state = !this._xmlMode && (c === "s" || c === "S") ? BEFORE_SPECIAL : IN_TAG_NAME;
+ this._sectionStart = this._index;
+ }
+};
+Tokenizer.prototype._stateInTagName = function (c) {
+ if (c === "/" || c === ">" || whitespace(c)) {
+ this._emitToken("onopentagname");
+ this._state = BEFORE_ATTRIBUTE_NAME;
+ this._index--;
+ }
+};
+Tokenizer.prototype._stateBeforeCloseingTagName = function (c) {
+ if (whitespace(c)) {} else if (c === ">") {
+ this._state = TEXT;
+ } else if (this._special !== SPECIAL_NONE) {
+ if (c === "s" || c === "S") {
+ this._state = BEFORE_SPECIAL_END;
+ } else {
+ this._state = TEXT;
+ this._index--;
+ }
+ } else {
+ this._state = IN_CLOSING_TAG_NAME;
+ this._sectionStart = this._index;
+ }
+};
+Tokenizer.prototype._stateInCloseingTagName = function (c) {
+ if (c === ">" || whitespace(c)) {
+ this._emitToken("onclosetag");
+ this._state = AFTER_CLOSING_TAG_NAME;
+ this._index--;
+ }
+};
+Tokenizer.prototype._stateAfterCloseingTagName = function (c) {
+ //skip everything until ">"
+ if (c === ">") {
+ this._state = TEXT;
+ this._sectionStart = this._index + 1;
+ }
+};
+Tokenizer.prototype._stateBeforeAttributeName = function (c) {
+ if (c === ">") {
+ this._cbs.onopentagend();
+ this._state = TEXT;
+ this._sectionStart = this._index + 1;
+ } else if (c === "/") {
+ this._state = IN_SELF_CLOSING_TAG;
+ } else if (!whitespace(c)) {
+ this._state = IN_ATTRIBUTE_NAME;
+ this._sectionStart = this._index;
+ }
+};
+Tokenizer.prototype._stateInSelfClosingTag = function (c) {
+ if (c === ">") {
+ this._cbs.onselfclosingtag();
+ this._state = TEXT;
+ this._sectionStart = this._index + 1;
+ } else if (!whitespace(c)) {
+ this._state = BEFORE_ATTRIBUTE_NAME;
+ this._index--;
+ }
+};
+Tokenizer.prototype._stateInAttributeName = function (c) {
+ if (c === "=" || c === "/" || c === ">" || whitespace(c)) {
+ this._cbs.onattribname(this._getSection());
+ this._sectionStart = -1;
+ this._state = AFTER_ATTRIBUTE_NAME;
+ this._index--;
+ }
+};
+Tokenizer.prototype._stateAfterAttributeName = function (c) {
+ if (c === "=") {
+ this._state = BEFORE_ATTRIBUTE_VALUE;
+ } else if (c === "/" || c === ">") {
+ this._cbs.onattribend();
+ this._state = BEFORE_ATTRIBUTE_NAME;
+ this._index--;
+ } else if (!whitespace(c)) {
+ this._cbs.onattribend();
+ this._state = IN_ATTRIBUTE_NAME;
+ this._sectionStart = this._index;
+ }
+};
+Tokenizer.prototype._stateBeforeAttributeValue = function (c) {
+ if (c === '"') {
+ this._state = IN_ATTRIBUTE_VALUE_DQ;
+ this._sectionStart = this._index + 1;
+ } else if (c === "'") {
+ this._state = IN_ATTRIBUTE_VALUE_SQ;
+ this._sectionStart = this._index + 1;
+ } else if (!whitespace(c)) {
+ this._state = IN_ATTRIBUTE_VALUE_NQ;
+ this._sectionStart = this._index;
+ this._index--; //reconsume token
+ }
+};
+Tokenizer.prototype._stateInAttributeValueDoubleQuotes = function (c) {
+ if (c === '"') {
+ this._emitToken("onattribdata");
+ this._cbs.onattribend();
+ this._state = BEFORE_ATTRIBUTE_NAME;
+ } else if (this._decodeEntities && c === "&") {
+ this._emitToken("onattribdata");
+ this._baseState = this._state;
+ this._state = BEFORE_ENTITY;
+ this._sectionStart = this._index;
+ }
+};
+Tokenizer.prototype._stateInAttributeValueSingleQuotes = function (c) {
+ if (c === "'") {
+ this._emitToken("onattribdata");
+ this._cbs.onattribend();
+ this._state = BEFORE_ATTRIBUTE_NAME;
+ } else if (this._decodeEntities && c === "&") {
+ this._emitToken("onattribdata");
+ this._baseState = this._state;
+ this._state = BEFORE_ENTITY;
+ this._sectionStart = this._index;
+ }
+};
+Tokenizer.prototype._stateInAttributeValueNoQuotes = function (c) {
+ if (whitespace(c) || c === ">") {
+ this._emitToken("onattribdata");
+ this._cbs.onattribend();
+ this._state = BEFORE_ATTRIBUTE_NAME;
+ this._index--;
+ } else if (this._decodeEntities && c === "&") {
+ this._emitToken("onattribdata");
+ this._baseState = this._state;
+ this._state = BEFORE_ENTITY;
+ this._sectionStart = this._index;
+ }
+};
+Tokenizer.prototype._stateBeforeDeclaration = function (c) {
+ this._state = c === "[" ? BEFORE_CDATA_1 : c === "-" ? BEFORE_COMMENT : IN_DECLARATION;
+};
+Tokenizer.prototype._stateInDeclaration = function (c) {
+ if (c === ">") {
+ this._cbs.ondeclaration(this._getSection());
+ this._state = TEXT;
+ this._sectionStart = this._index + 1;
+ }
+};
+Tokenizer.prototype._stateInProcessingInstruction = function (c) {
+ if (c === ">") {
+ this._cbs.onprocessinginstruction(this._getSection());
+ this._state = TEXT;
+ this._sectionStart = this._index + 1;
+ }
+};
+Tokenizer.prototype._stateBeforeComment = function (c) {
+ if (c === "-") {
+ this._state = IN_COMMENT;
+ this._sectionStart = this._index + 1;
+ } else {
+ this._state = IN_DECLARATION;
+ }
+};
+Tokenizer.prototype._stateInComment = function (c) {
+ if (c === "-") this._state = AFTER_COMMENT_1;
+};
+Tokenizer.prototype._stateAfterComment1 = function (c) {
+ if (c === "-") {
+ this._state = AFTER_COMMENT_2;
+ } else {
+ this._state = IN_COMMENT;
+ }
+};
+Tokenizer.prototype._stateAfterComment2 = function (c) {
+ if (c === ">") {
+ //remove 2 trailing chars
+ this._cbs.oncomment(this._buffer.substring(this._sectionStart, this._index - 2));
+ this._state = TEXT;
+ this._sectionStart = this._index + 1;
+ } else if (c !== "-") {
+ this._state = IN_COMMENT;
+ }
+ // else: stay in AFTER_COMMENT_2 (`--->`)
+};
+Tokenizer.prototype._stateBeforeCdata1 = ifElseState("C", BEFORE_CDATA_2, IN_DECLARATION);
+Tokenizer.prototype._stateBeforeCdata2 = ifElseState("D", BEFORE_CDATA_3, IN_DECLARATION);
+Tokenizer.prototype._stateBeforeCdata3 = ifElseState("A", BEFORE_CDATA_4, IN_DECLARATION);
+Tokenizer.prototype._stateBeforeCdata4 = ifElseState("T", BEFORE_CDATA_5, IN_DECLARATION);
+Tokenizer.prototype._stateBeforeCdata5 = ifElseState("A", BEFORE_CDATA_6, IN_DECLARATION);
+Tokenizer.prototype._stateBeforeCdata6 = function (c) {
+ if (c === "[") {
+ this._state = IN_CDATA;
+ this._sectionStart = this._index + 1;
+ } else {
+ this._state = IN_DECLARATION;
+ this._index--;
+ }
+};
+Tokenizer.prototype._stateInCdata = function (c) {
+ if (c === "]") this._state = AFTER_CDATA_1;
+};
+Tokenizer.prototype._stateAfterCdata1 = function (c) {
+ if (c === "]") this._state = AFTER_CDATA_2;else this._state = IN_CDATA;
+};
+Tokenizer.prototype._stateAfterCdata2 = function (c) {
+ if (c === ">") {
+ //remove 2 trailing chars
+ this._cbs.oncdata(this._buffer.substring(this._sectionStart, this._index - 2));
+ this._state = TEXT;
+ this._sectionStart = this._index + 1;
+ } else if (c !== "]") {
+ this._state = IN_CDATA;
+ }
+ //else: stay in AFTER_CDATA_2 (`]]]>`)
+};
+Tokenizer.prototype._stateBeforeSpecial = function (c) {
+ if (c === "c" || c === "C") {
+ this._state = BEFORE_SCRIPT_1;
+ } else if (c === "t" || c === "T") {
+ this._state = BEFORE_STYLE_1;
+ } else {
+ this._state = IN_TAG_NAME;
+ this._index--; //consume the token again
+ }
+};
+Tokenizer.prototype._stateBeforeSpecialEnd = function (c) {
+ if (this._special === SPECIAL_SCRIPT && (c === "c" || c === "C")) {
+ this._state = AFTER_SCRIPT_1;
+ } else if (this._special === SPECIAL_STYLE && (c === "t" || c === "T")) {
+ this._state = AFTER_STYLE_1;
+ } else this._state = TEXT;
+};
+Tokenizer.prototype._stateBeforeScript1 = consumeSpecialNameChar("R", BEFORE_SCRIPT_2);
+Tokenizer.prototype._stateBeforeScript2 = consumeSpecialNameChar("I", BEFORE_SCRIPT_3);
+Tokenizer.prototype._stateBeforeScript3 = consumeSpecialNameChar("P", BEFORE_SCRIPT_4);
+Tokenizer.prototype._stateBeforeScript4 = consumeSpecialNameChar("T", BEFORE_SCRIPT_5);
+Tokenizer.prototype._stateBeforeScript5 = function (c) {
+ if (c === "/" || c === ">" || whitespace(c)) {
+ this._special = SPECIAL_SCRIPT;
+ }
+ this._state = IN_TAG_NAME;
+ this._index--; //consume the token again
+};
+Tokenizer.prototype._stateAfterScript1 = ifElseState("R", AFTER_SCRIPT_2, TEXT);
+Tokenizer.prototype._stateAfterScript2 = ifElseState("I", AFTER_SCRIPT_3, TEXT);
+Tokenizer.prototype._stateAfterScript3 = ifElseState("P", AFTER_SCRIPT_4, TEXT);
+Tokenizer.prototype._stateAfterScript4 = ifElseState("T", AFTER_SCRIPT_5, TEXT);
+Tokenizer.prototype._stateAfterScript5 = function (c) {
+ if (c === ">" || whitespace(c)) {
+ this._special = SPECIAL_NONE;
+ this._state = IN_CLOSING_TAG_NAME;
+ this._sectionStart = this._index - 6;
+ this._index--; //reconsume the token
+ } else this._state = TEXT;
+};
+Tokenizer.prototype._stateBeforeStyle1 = consumeSpecialNameChar("Y", BEFORE_STYLE_2);
+Tokenizer.prototype._stateBeforeStyle2 = consumeSpecialNameChar("L", BEFORE_STYLE_3);
+Tokenizer.prototype._stateBeforeStyle3 = consumeSpecialNameChar("E", BEFORE_STYLE_4);
+Tokenizer.prototype._stateBeforeStyle4 = function (c) {
+ if (c === "/" || c === ">" || whitespace(c)) {
+ this._special = SPECIAL_STYLE;
+ }
+ this._state = IN_TAG_NAME;
+ this._index--; //consume the token again
+};
+Tokenizer.prototype._stateAfterStyle1 = ifElseState("Y", AFTER_STYLE_2, TEXT);
+Tokenizer.prototype._stateAfterStyle2 = ifElseState("L", AFTER_STYLE_3, TEXT);
+Tokenizer.prototype._stateAfterStyle3 = ifElseState("E", AFTER_STYLE_4, TEXT);
+Tokenizer.prototype._stateAfterStyle4 = function (c) {
+ if (c === ">" || whitespace(c)) {
+ this._special = SPECIAL_NONE;
+ this._state = IN_CLOSING_TAG_NAME;
+ this._sectionStart = this._index - 5;
+ this._index--; //reconsume the token
+ } else this._state = TEXT;
+};
+Tokenizer.prototype._stateBeforeEntity = ifElseState("#", BEFORE_NUMERIC_ENTITY, IN_NAMED_ENTITY);
+Tokenizer.prototype._stateBeforeNumericEntity = ifElseState("X", IN_HEX_ENTITY, IN_NUMERIC_ENTITY);
+//for entities terminated with a semicolon
+Tokenizer.prototype._parseNamedEntityStrict = function () {
+ //offset = 1
+ if (this._sectionStart + 1 < this._index) {
+ var entity = this._buffer.substring(this._sectionStart + 1, this._index),
+ map = this._xmlMode ? xmlMap : entityMap;
+ if (map.hasOwnProperty(entity)) {
+ this._emitPartial(map[entity]);
+ this._sectionStart = this._index + 1;
+ }
+ }
+};
+//parses legacy entities (without trailing semicolon)
+Tokenizer.prototype._parseLegacyEntity = function () {
+ var start = this._sectionStart + 1,
+ limit = this._index - start;
+ if (limit > 6) limit = 6; //the max length of legacy entities is 6
+ while (limit >= 2) {
+ //the min length of legacy entities is 2
+ var entity = this._buffer.substr(start, limit);
+ if (legacyMap.hasOwnProperty(entity)) {
+ this._emitPartial(legacyMap[entity]);
+ this._sectionStart += limit + 1;
+ return;
+ } else {
+ limit--;
+ }
+ }
+};
+Tokenizer.prototype._stateInNamedEntity = function (c) {
+ if (c === ";") {
+ this._parseNamedEntityStrict();
+ if (this._sectionStart + 1 < this._index && !this._xmlMode) {
+ this._parseLegacyEntity();
+ }
+ this._state = this._baseState;
+ } else if ((c < "a" || c > "z") && (c < "A" || c > "Z") && (c < "0" || c > "9")) {
+ if (this._xmlMode) {} else if (this._sectionStart + 1 === this._index) {} else if (this._baseState !== TEXT) {
+ if (c !== "=") {
+ this._parseNamedEntityStrict();
+ }
+ } else {
+ this._parseLegacyEntity();
+ }
+ this._state = this._baseState;
+ this._index--;
+ }
+};
+Tokenizer.prototype._decodeNumericEntity = function (offset, base) {
+ var sectionStart = this._sectionStart + offset;
+ if (sectionStart !== this._index) {
+ //parse entity
+ var entity = this._buffer.substring(sectionStart, this._index);
+ var parsed = parseInt(entity, base);
+ this._emitPartial(decodeCodePoint(parsed));
+ this._sectionStart = this._index;
+ } else {
+ this._sectionStart--;
+ }
+ this._state = this._baseState;
+};
+Tokenizer.prototype._stateInNumericEntity = function (c) {
+ if (c === ";") {
+ this._decodeNumericEntity(2, 10);
+ this._sectionStart++;
+ } else if (c < "0" || c > "9") {
+ if (!this._xmlMode) {
+ this._decodeNumericEntity(2, 10);
+ } else {
+ this._state = this._baseState;
+ }
+ this._index--;
+ }
+};
+Tokenizer.prototype._stateInHexEntity = function (c) {
+ if (c === ";") {
+ this._decodeNumericEntity(3, 16);
+ this._sectionStart++;
+ } else if ((c < "a" || c > "f") && (c < "A" || c > "F") && (c < "0" || c > "9")) {
+ if (!this._xmlMode) {
+ this._decodeNumericEntity(3, 16);
+ } else {
+ this._state = this._baseState;
+ }
+ this._index--;
+ }
+};
+Tokenizer.prototype._cleanup = function () {
+ if (this._sectionStart < 0) {
+ this._buffer = "";
+ this._bufferOffset += this._index;
+ this._index = 0;
+ } else if (this._running) {
+ if (this._state === TEXT) {
+ if (this._sectionStart !== this._index) {
+ this._cbs.ontext(this._buffer.substr(this._sectionStart));
+ }
+ this._buffer = "";
+ this._bufferOffset += this._index;
+ this._index = 0;
+ } else if (this._sectionStart === this._index) {
+ //the section just started
+ this._buffer = "";
+ this._bufferOffset += this._index;
+ this._index = 0;
+ } else {
+ //remove everything unnecessary
+ this._buffer = this._buffer.substr(this._sectionStart);
+ this._index -= this._sectionStart;
+ this._bufferOffset += this._sectionStart;
+ }
+ this._sectionStart = 0;
+ }
+};
+//TODO make events conditional
+Tokenizer.prototype.write = function (chunk) {
+ if (this._ended) this._cbs.onerror(Error(".write() after done!"));
+ this._buffer += chunk;
+ this._parse();
+};
+Tokenizer.prototype._parse = function () {
+ while (this._index < this._buffer.length && this._running) {
+ var c = this._buffer.charAt(this._index);
+ if (this._state === TEXT) {
+ this._stateText(c);
+ } else if (this._state === BEFORE_TAG_NAME) {
+ this._stateBeforeTagName(c);
+ } else if (this._state === IN_TAG_NAME) {
+ this._stateInTagName(c);
+ } else if (this._state === BEFORE_CLOSING_TAG_NAME) {
+ this._stateBeforeCloseingTagName(c);
+ } else if (this._state === IN_CLOSING_TAG_NAME) {
+ this._stateInCloseingTagName(c);
+ } else if (this._state === AFTER_CLOSING_TAG_NAME) {
+ this._stateAfterCloseingTagName(c);
+ } else if (this._state === IN_SELF_CLOSING_TAG) {
+ this._stateInSelfClosingTag(c);
+ } else if (this._state === BEFORE_ATTRIBUTE_NAME) {
+ /*
+ * attributes
+ */
+ this._stateBeforeAttributeName(c);
+ } else if (this._state === IN_ATTRIBUTE_NAME) {
+ this._stateInAttributeName(c);
+ } else if (this._state === AFTER_ATTRIBUTE_NAME) {
+ this._stateAfterAttributeName(c);
+ } else if (this._state === BEFORE_ATTRIBUTE_VALUE) {
+ this._stateBeforeAttributeValue(c);
+ } else if (this._state === IN_ATTRIBUTE_VALUE_DQ) {
+ this._stateInAttributeValueDoubleQuotes(c);
+ } else if (this._state === IN_ATTRIBUTE_VALUE_SQ) {
+ this._stateInAttributeValueSingleQuotes(c);
+ } else if (this._state === IN_ATTRIBUTE_VALUE_NQ) {
+ this._stateInAttributeValueNoQuotes(c);
+ } else if (this._state === BEFORE_DECLARATION) {
+ /*
+ * declarations
+ */
+ this._stateBeforeDeclaration(c);
+ } else if (this._state === IN_DECLARATION) {
+ this._stateInDeclaration(c);
+ } else if (this._state === IN_PROCESSING_INSTRUCTION) {
+ /*
+ * processing instructions
+ */
+ this._stateInProcessingInstruction(c);
+ } else if (this._state === BEFORE_COMMENT) {
+ /*
+ * comments
+ */
+ this._stateBeforeComment(c);
+ } else if (this._state === IN_COMMENT) {
+ this._stateInComment(c);
+ } else if (this._state === AFTER_COMMENT_1) {
+ this._stateAfterComment1(c);
+ } else if (this._state === AFTER_COMMENT_2) {
+ this._stateAfterComment2(c);
+ } else if (this._state === BEFORE_CDATA_1) {
+ /*
+ * cdata
+ */
+ this._stateBeforeCdata1(c);
+ } else if (this._state === BEFORE_CDATA_2) {
+ this._stateBeforeCdata2(c);
+ } else if (this._state === BEFORE_CDATA_3) {
+ this._stateBeforeCdata3(c);
+ } else if (this._state === BEFORE_CDATA_4) {
+ this._stateBeforeCdata4(c);
+ } else if (this._state === BEFORE_CDATA_5) {
+ this._stateBeforeCdata5(c);
+ } else if (this._state === BEFORE_CDATA_6) {
+ this._stateBeforeCdata6(c);
+ } else if (this._state === IN_CDATA) {
+ this._stateInCdata(c);
+ } else if (this._state === AFTER_CDATA_1) {
+ this._stateAfterCdata1(c);
+ } else if (this._state === AFTER_CDATA_2) {
+ this._stateAfterCdata2(c);
+ } else if (this._state === BEFORE_SPECIAL) {
+ /*
+ * special tags
+ */
+ this._stateBeforeSpecial(c);
+ } else if (this._state === BEFORE_SPECIAL_END) {
+ this._stateBeforeSpecialEnd(c);
+ } else if (this._state === BEFORE_SCRIPT_1) {
+ /*
+ * script
+ */
+ this._stateBeforeScript1(c);
+ } else if (this._state === BEFORE_SCRIPT_2) {
+ this._stateBeforeScript2(c);
+ } else if (this._state === BEFORE_SCRIPT_3) {
+ this._stateBeforeScript3(c);
+ } else if (this._state === BEFORE_SCRIPT_4) {
+ this._stateBeforeScript4(c);
+ } else if (this._state === BEFORE_SCRIPT_5) {
+ this._stateBeforeScript5(c);
+ } else if (this._state === AFTER_SCRIPT_1) {
+ this._stateAfterScript1(c);
+ } else if (this._state === AFTER_SCRIPT_2) {
+ this._stateAfterScript2(c);
+ } else if (this._state === AFTER_SCRIPT_3) {
+ this._stateAfterScript3(c);
+ } else if (this._state === AFTER_SCRIPT_4) {
+ this._stateAfterScript4(c);
+ } else if (this._state === AFTER_SCRIPT_5) {
+ this._stateAfterScript5(c);
+ } else if (this._state === BEFORE_STYLE_1) {
+ /*
+ * style
+ */
+ this._stateBeforeStyle1(c);
+ } else if (this._state === BEFORE_STYLE_2) {
+ this._stateBeforeStyle2(c);
+ } else if (this._state === BEFORE_STYLE_3) {
+ this._stateBeforeStyle3(c);
+ } else if (this._state === BEFORE_STYLE_4) {
+ this._stateBeforeStyle4(c);
+ } else if (this._state === AFTER_STYLE_1) {
+ this._stateAfterStyle1(c);
+ } else if (this._state === AFTER_STYLE_2) {
+ this._stateAfterStyle2(c);
+ } else if (this._state === AFTER_STYLE_3) {
+ this._stateAfterStyle3(c);
+ } else if (this._state === AFTER_STYLE_4) {
+ this._stateAfterStyle4(c);
+ } else if (this._state === BEFORE_ENTITY) {
+ /*
+ * entities
+ */
+ this._stateBeforeEntity(c);
+ } else if (this._state === BEFORE_NUMERIC_ENTITY) {
+ this._stateBeforeNumericEntity(c);
+ } else if (this._state === IN_NAMED_ENTITY) {
+ this._stateInNamedEntity(c);
+ } else if (this._state === IN_NUMERIC_ENTITY) {
+ this._stateInNumericEntity(c);
+ } else if (this._state === IN_HEX_ENTITY) {
+ this._stateInHexEntity(c);
+ } else {
+ this._cbs.onerror(Error("unknown _state"), this._state);
+ }
+ this._index++;
+ }
+ this._cleanup();
+};
+Tokenizer.prototype.pause = function () {
+ this._running = false;
+};
+Tokenizer.prototype.resume = function () {
+ this._running = true;
+ if (this._index < this._buffer.length) {
+ this._parse();
+ }
+ if (this._ended) {
+ this._finish();
+ }
+};
+Tokenizer.prototype.end = function (chunk) {
+ if (this._ended) this._cbs.onerror(Error(".end() after done!"));
+ if (chunk) this.write(chunk);
+ this._ended = true;
+ if (this._running) this._finish();
+};
+Tokenizer.prototype._finish = function () {
+ //if there is remaining data, emit it in a reasonable way
+ if (this._sectionStart < this._index) {
+ this._handleTrailingData();
+ }
+ this._cbs.onend();
+};
+Tokenizer.prototype._handleTrailingData = function () {
+ var data = this._buffer.substr(this._sectionStart);
+ if (this._state === IN_CDATA || this._state === AFTER_CDATA_1 || this._state === AFTER_CDATA_2) {
+ this._cbs.oncdata(data);
+ } else if (this._state === IN_COMMENT || this._state === AFTER_COMMENT_1 || this._state === AFTER_COMMENT_2) {
+ this._cbs.oncomment(data);
+ } else if (this._state === IN_NAMED_ENTITY && !this._xmlMode) {
+ this._parseLegacyEntity();
+ if (this._sectionStart < this._index) {
+ this._state = this._baseState;
+ this._handleTrailingData();
+ }
+ } else if (this._state === IN_NUMERIC_ENTITY && !this._xmlMode) {
+ this._decodeNumericEntity(2, 10);
+ if (this._sectionStart < this._index) {
+ this._state = this._baseState;
+ this._handleTrailingData();
+ }
+ } else if (this._state === IN_HEX_ENTITY && !this._xmlMode) {
+ this._decodeNumericEntity(3, 16);
+ if (this._sectionStart < this._index) {
+ this._state = this._baseState;
+ this._handleTrailingData();
+ }
+ } else if (this._state !== IN_TAG_NAME && this._state !== BEFORE_ATTRIBUTE_NAME && this._state !== BEFORE_ATTRIBUTE_VALUE && this._state !== AFTER_ATTRIBUTE_NAME && this._state !== IN_ATTRIBUTE_NAME && this._state !== IN_ATTRIBUTE_VALUE_SQ && this._state !== IN_ATTRIBUTE_VALUE_DQ && this._state !== IN_ATTRIBUTE_VALUE_NQ && this._state !== IN_CLOSING_TAG_NAME) {
+ this._cbs.ontext(data);
+ }
+ //else, ignore remaining data
+ //TODO add a way to remove current tag
+};
+Tokenizer.prototype.reset = function () {
+ Tokenizer.call(this, { xmlMode: this._xmlMode, decodeEntities: this._decodeEntities }, this._cbs);
+};
+Tokenizer.prototype.getAbsoluteIndex = function () {
+ return this._bufferOffset + this._index;
+};
+Tokenizer.prototype._getSection = function () {
+ return this._buffer.substring(this._sectionStart, this._index);
+};
+Tokenizer.prototype._emitToken = function (name) {
+ this._cbs[name](this._getSection());
+ this._sectionStart = -1;
+};
+Tokenizer.prototype._emitPartial = function (value) {
+ if (this._baseState !== TEXT) {
+ this._cbs.onattribdata(value); //TODO implement the new event
+ } else {
+ this._cbs.ontext(value);
+ }
+};
+module.exports = Tokenizer;
\ No newline at end of file
diff --git a/node_modules/mini-html-parser2/lib/index.d.ts b/node_modules/mini-html-parser2/lib/index.d.ts
new file mode 100644
index 0000000..6400d60
--- /dev/null
+++ b/node_modules/mini-html-parser2/lib/index.d.ts
@@ -0,0 +1 @@
+export default function parse(html: any, done: any): void;
diff --git a/node_modules/mini-html-parser2/lib/index.js b/node_modules/mini-html-parser2/lib/index.js
new file mode 100644
index 0000000..9a39551
--- /dev/null
+++ b/node_modules/mini-html-parser2/lib/index.js
@@ -0,0 +1,54 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports['default'] = parse;
+
+var _domhandler = require('domhandler');
+
+var _domhandler2 = _interopRequireDefault(_domhandler);
+
+var _Parser = require('./Parser');
+
+var _Parser2 = _interopRequireDefault(_Parser);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function transformNode(node) {
+ if (['tag', 'text'].indexOf(node.type) === -1) {
+ throw new Error('not supported name ' + node.name + ' of type ' + node.type);
+ }
+ if (node.type === 'text') {
+ return {
+ type: node.type,
+ text: node.data
+ };
+ }
+ return {
+ name: node.name,
+ children: transform(node.children),
+ attrs: node.attribs
+ };
+}
+function transform(nodes) {
+ return nodes.map(transformNode);
+}
+function parse(html, done) {
+ var handler = new _domhandler2['default'](function (err, children) {
+ if (err) {
+ console.error(err);
+ done(err);
+ }
+ try {
+ done(null, transform(children));
+ } catch (e) {
+ console.error(e);
+ done(e);
+ }
+ }, {});
+ var parser = new _Parser2['default'](handler, { xmlMode: true });
+ parser.write(html);
+ parser.done();
+}
+module.exports = exports['default'];
\ No newline at end of file
diff --git a/node_modules/mini-html-parser2/lib/inherits.d.ts b/node_modules/mini-html-parser2/lib/inherits.d.ts
new file mode 100644
index 0000000..e69de29
diff --git a/node_modules/mini-html-parser2/lib/inherits.js b/node_modules/mini-html-parser2/lib/inherits.js
new file mode 100644
index 0000000..329181e
--- /dev/null
+++ b/node_modules/mini-html-parser2/lib/inherits.js
@@ -0,0 +1,25 @@
+'use strict';
+
+if (typeof Object.create === 'function') {
+ // implementation from standard node.js 'util' module
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor;
+ ctor.prototype = Object.create(superCtor.prototype, {
+ constructor: {
+ value: ctor,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ }
+ });
+ };
+} else {
+ // old school shim for old browsers
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor;
+ var TempCtor = function TempCtor() {};
+ TempCtor.prototype = superCtor.prototype;
+ ctor.prototype = new TempCtor();
+ ctor.prototype.constructor = ctor;
+ };
+}
\ No newline at end of file
diff --git a/node_modules/mini-html-parser2/package.json b/node_modules/mini-html-parser2/package.json
new file mode 100644
index 0000000..83b0e0e
--- /dev/null
+++ b/node_modules/mini-html-parser2/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "mini-html-parser2@^0.2.0",
+ "_id": "mini-html-parser2@0.2.0",
+ "_inBundle": false,
+ "_integrity": "sha512-SvDQmbQorG8LANarEnsuJBSrMwhHuXb4PK0oDix5ThqA5xNtgQjswxeJTqfP6+JEyQ5195Qlcpexej5zjSmLjA==",
+ "_location": "/mini-html-parser2",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "mini-html-parser2@^0.2.0",
+ "name": "mini-html-parser2",
+ "escapedName": "mini-html-parser2",
+ "rawSpec": "^0.2.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.2.0"
+ },
+ "_requiredBy": [
+ "#USER",
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/mini-html-parser2/-/mini-html-parser2-0.2.0.tgz",
+ "_shasum": "15de582fc10afd7dfed5407572b4c65c501bfba3",
+ "_spec": "mini-html-parser2@^0.2.0",
+ "_where": "/Users/WebTmm/Documents/支付宝小程序/亿分期(工作台)",
+ "author": {
+ "name": "issac.lj@alibaba-inc.com"
+ },
+ "bugs": {
+ "url": "https://github.com/ant-mini-program/mini-html-parser/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "domhandler": "^2.4.2",
+ "entities": "^1.1.1",
+ "events": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "小程序富文本",
+ "devDependencies": {
+ "@types/node": "^11.9.6",
+ "jest": "^23.6.0",
+ "rc-tools": "^8.1.5"
+ },
+ "files": [
+ "lib"
+ ],
+ "homepage": "https://github.com/ant-mini-program/mini-html-parser#readme",
+ "keywords": [
+ "rich-text",
+ "mini-program",
+ "html-parser"
+ ],
+ "main": "lib/index.js",
+ "name": "mini-html-parser2",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/ant-mini-program/mini-html-parser.git"
+ },
+ "scripts": {
+ "build": "rc-tools run compile",
+ "pub": "git push origin && npm run build && npm publish",
+ "test": "jest"
+ },
+ "version": "0.2.0"
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100755
index 0000000..b2c32b3
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,44 @@
+{
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
+ },
+ "events": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
+ "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg=="
+ },
+ "mini-ali-ui": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/mini-ali-ui/-/mini-ali-ui-1.0.11.tgz",
+ "integrity": "sha512-8emm5iIhcic25lurah/4GVje3fpGl17wGJ9xHnQqsJF+vO9KBKPybHlPqfLJRKJdFpJrTF9c1UZuCyu41G2New=="
+ },
+ "mini-html-parser2": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/mini-html-parser2/-/mini-html-parser2-0.2.0.tgz",
+ "integrity": "sha512-SvDQmbQorG8LANarEnsuJBSrMwhHuXb4PK0oDix5ThqA5xNtgQjswxeJTqfP6+JEyQ5195Qlcpexej5zjSmLjA==",
+ "requires": {
+ "domhandler": "^2.4.2",
+ "entities": "^1.1.1",
+ "events": "^3.0.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100755
index 0000000..a09ac21
--- /dev/null
+++ b/package.json
@@ -0,0 +1,6 @@
+{
+ "dependencies": {
+ "mini-ali-ui": "^1.0.11",
+ "mini-html-parser2": "^0.2.0"
+ }
+}
diff --git a/pages/add_user/add_user.acss b/pages/add_user/add_user.acss
new file mode 100755
index 0000000..c7d2615
--- /dev/null
+++ b/pages/add_user/add_user.acss
@@ -0,0 +1,62 @@
+
+/**
+ * Web唐明明
+ * 一个梦想做木雕手艺人的程序员
+ */
+
+page{
+ background: #fafafa;
+}
+
+.order-block{
+ background: white;
+ border-top: solid 20rpx #fafafa;
+}
+
+.order-item{
+ position: relative;
+ padding: 0 30rpx 0 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item::after{
+ content: " ";
+ background: #ddd;
+ position: absolute;
+ left: 30rpx;
+ height: 1rpx;
+ right: 0;
+ bottom: 0;
+ z-index: 1;
+}
+
+.order-item:last-child::after{
+ display: none;
+}
+
+.order-item-label{
+ position: absolute;
+ left: 0;
+ top: 0;
+ line-height: 85rpx;
+ padding: 0 30rpx;
+ width: 200rpx;
+ box-sizing: border-box;
+ text-align: left;
+}
+
+.order-item-input{
+ background: white;
+ display: block;
+ border: none;
+ padding: 0;
+ height: 85rpx;
+ font-size: 30rpx;
+}
+
+/* 分期按钮 */
+.order-btns{
+ padding: 30rpx;
+}
diff --git a/pages/add_user/add_user.axml b/pages/add_user/add_user.axml
new file mode 100755
index 0000000..e7c4a1b
--- /dev/null
+++ b/pages/add_user/add_user.axml
@@ -0,0 +1,20 @@
+
+
diff --git a/pages/add_user/add_user.js b/pages/add_user/add_user.js
new file mode 100755
index 0000000..b2617af
--- /dev/null
+++ b/pages/add_user/add_user.js
@@ -0,0 +1,52 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {},
+ onLoad() {},
+ addUser(e){
+ let inputValue = e.detail.value
+ if(inputValue.name != '' && inputValue.phone != '' && inputValue.password != ''){
+ my.showLoading();
+ api.request({
+ url : "users/createUser",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ data : {
+ phone : inputValue.phone,
+ name : inputValue.name,
+ password : inputValue.password
+ }
+ }).then(res=>{
+ my.alert({
+ content : res.data,
+ buttonText: '知道了',
+ success: () => {
+ my.navigateBack();
+ }
+ });
+ my.hideLoading();
+ }).catch(err=>{
+ my.showToast({
+ content: err.data.message
+ })
+ my.hideLoading();
+ })
+ }else if(inputValue.name == ''){
+ my.showToast({
+ content:"请输入店员姓名"
+ });
+ }else if(inputValue.phone == ''){
+ my.showToast({
+ content:"请输入店员手机号码"
+ });
+ }else if(inputValue.password == ''){
+ my.showToast({
+ content:"请输入店员登录密码"
+ });
+ }
+ }
+});
diff --git a/pages/add_user/add_user.json b/pages/add_user/add_user.json
new file mode 100755
index 0000000..1c066d3
--- /dev/null
+++ b/pages/add_user/add_user.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "添加店员"
+}
\ No newline at end of file
diff --git a/pages/changePwd/changePwd.acss b/pages/changePwd/changePwd.acss
new file mode 100755
index 0000000..c7d2615
--- /dev/null
+++ b/pages/changePwd/changePwd.acss
@@ -0,0 +1,62 @@
+
+/**
+ * Web唐明明
+ * 一个梦想做木雕手艺人的程序员
+ */
+
+page{
+ background: #fafafa;
+}
+
+.order-block{
+ background: white;
+ border-top: solid 20rpx #fafafa;
+}
+
+.order-item{
+ position: relative;
+ padding: 0 30rpx 0 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item::after{
+ content: " ";
+ background: #ddd;
+ position: absolute;
+ left: 30rpx;
+ height: 1rpx;
+ right: 0;
+ bottom: 0;
+ z-index: 1;
+}
+
+.order-item:last-child::after{
+ display: none;
+}
+
+.order-item-label{
+ position: absolute;
+ left: 0;
+ top: 0;
+ line-height: 85rpx;
+ padding: 0 30rpx;
+ width: 200rpx;
+ box-sizing: border-box;
+ text-align: left;
+}
+
+.order-item-input{
+ background: white;
+ display: block;
+ border: none;
+ padding: 0;
+ height: 85rpx;
+ font-size: 30rpx;
+}
+
+/* 分期按钮 */
+.order-btns{
+ padding: 30rpx;
+}
diff --git a/pages/changePwd/changePwd.axml b/pages/changePwd/changePwd.axml
new file mode 100755
index 0000000..c8d3742
--- /dev/null
+++ b/pages/changePwd/changePwd.axml
@@ -0,0 +1,20 @@
+
+
diff --git a/pages/changePwd/changePwd.js b/pages/changePwd/changePwd.js
new file mode 100755
index 0000000..ff2dd94
--- /dev/null
+++ b/pages/changePwd/changePwd.js
@@ -0,0 +1,55 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {
+ userInfo: ""
+ },
+ onLoad() {
+ this.setData({
+ userInfo: app.globalData.userInfo
+ })
+ },
+ // 修改密码
+ changePwd(e){
+ my.showLoading();
+ api.request({
+ url : "users/password",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ data : {
+ oldpassword : e.detail.value.old,
+ password : e.detail.value.password,
+ password_confirmation : e.detail.value.confirmation
+ }
+ }).then(res=>{
+ my.hideLoading();
+ // 存储全局信息
+ app.globalData.isUser = true
+ app.globalData.token = res.data.access_token
+ app.globalData.expires = Math.round(new Date() / 1000) + res.data.expires_in
+ // 缓存信息本地
+ my.setStorage({
+ key : "userToken",
+ data : {
+ token : res.data.access_token,
+ expires : Math.round(new Date() / 1000) + res.data.expires_in
+ }
+ })
+ my.alert({
+ content : "密码修改成功",
+ success: () => {
+ my.navigateBack();
+ }
+ });
+ }).catch(err=>{
+ my.showToast({
+ content: err.data.message
+ });
+ my.hideLoading();
+ })
+ }
+});
diff --git a/pages/changePwd/changePwd.json b/pages/changePwd/changePwd.json
new file mode 100755
index 0000000..7f383b7
--- /dev/null
+++ b/pages/changePwd/changePwd.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "修改密码"
+}
\ No newline at end of file
diff --git a/pages/enter/enter.acss b/pages/enter/enter.acss
new file mode 100755
index 0000000..c6373a6
--- /dev/null
+++ b/pages/enter/enter.acss
@@ -0,0 +1,93 @@
+
+.login-content{
+ background: url(../../lib/img/login_back.png) white no-repeat center bottom;
+ background-size: 100%;
+ padding-bottom: 14%;
+}
+
+/* 登录header */
+.login-header{
+ padding: 0 80rpx;
+ margin-bottom: 40rpx;
+ font-size: 45rpx;
+ font-weight: bold;
+}
+
+/* 登录表单 */
+.login-form{
+ padding: 0 80rpx;
+}
+
+.login-form-blcok{
+ border-bottom: solid 1rpx #ddd;
+ margin-bottom: 20rpx;
+ padding-left: 56rpx;
+ position: relative;
+}
+
+.login-form-code{
+ padding-right: 240rpx;
+}
+
+.login-form-code-btn{
+ position: absolute;
+ right: 0;
+ top: 0;
+ background: transparent;
+ color:#ff6600;
+ width: 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ border: none;
+ font-size: 30rpx;
+}
+
+.login-form-code-btn-hover{
+ color: #da5700;
+}
+
+.login-form-label{
+ position: absolute;
+ left: 0;
+ top: 24rpx;
+ z-index: 1;
+}
+
+.login-form-icon{
+ width: 36rpx;
+ height: 36rpx;
+}
+
+.login-form-input{
+ width: 100%;
+ padding: 0;
+ margin: 0;
+ border: none;
+ font-size: 30rpx;
+ height: 85rpx;
+ background: transparent;
+}
+
+.login-form-btn{
+ padding-top: 10rpx;
+}
+
+/* 入驻按钮 */
+
+.btn-enter{
+ background: white;
+ color: #ff6600;
+ border:solid 1rpx #ff6600;
+ box-sizing: border-box;
+}
+
+.hover-btn-enter{
+ background: #eee;
+}
+
+/* 找回密码 */
+.login-form-toll{
+ text-align: center;
+ padding: 50rpx 0;
+ color: #ff6600;
+}
diff --git a/pages/enter/enter.axml b/pages/enter/enter.axml
new file mode 100755
index 0000000..595784a
--- /dev/null
+++ b/pages/enter/enter.axml
@@ -0,0 +1,46 @@
+
+
+
+
+
diff --git a/pages/enter/enter.js b/pages/enter/enter.js
new file mode 100755
index 0000000..df08c51
--- /dev/null
+++ b/pages/enter/enter.js
@@ -0,0 +1,136 @@
+
+const api = require("../../api/api")
+
+Page({
+ data:{
+ tle : "",
+ codeBtnText : "获取验证码",
+ codeBtnStat : false
+ },
+ // 存储手机号码
+ telInput(e){
+ this.setData({
+ tle: e.detail.value
+ })
+ },
+
+ // 获取短信验证码
+ getCode(){
+ setTimeout(() => {
+ if(this.data.tle != ''){
+ my.showLoading();
+ api.request({
+ url : "sms",
+ method: "POST",
+ data : {
+ mobile : this.data.tle,
+ channel : "DEFAULT"
+ }
+ }).then(res=>{
+ // 获取倒计时
+ this.setData({
+ codeBtnStat: true,
+ codeBtnText: "重新获取60s"
+ })
+
+ let outTimeNumber = 60
+ let outTime = setInterval(()=>{
+ if(outTimeNumber >= 1){
+ outTimeNumber--
+ this.setData({
+ codeBtnText: "重新获取" + outTimeNumber + 's'
+ })
+ }else{
+ this.setData({
+ codeBtnStat: false,
+ codeBtnText: "获取验证码"
+ })
+ clearInterval(outTime)
+ }
+ },1000)
+ // 提示信息
+ my.showToast({
+ content: res.data
+ })
+ my.hideLoading();
+ }).catch(err=>{
+ my.showToast({
+ content: "短信发送失败,请稍候重试"
+ })
+ my.hideLoading();
+ })
+ }else{
+ my.showToast({
+ content: "手机号码不能为空"
+ });
+ }
+ }, 100)
+ },
+
+ // 入驻申请
+ enterForm(e){
+ let indexValue = e.detail.value
+
+ if(indexValue.mall != '' && indexValue.user != '' && indexValue.pss != '' && indexValue.affirmpss != '' && indexValue.alipay != '' && indexValue.channel != '' && indexValue.code != ''){
+ my.showLoading();
+ api.request({
+ url : "users/audits",
+ method: "POST",
+ data : {
+ name : indexValue.mall,
+ mobile : indexValue.user,
+ password : indexValue.pss,
+ password_confirmation : indexValue.affirmpss,
+ ali_account : indexValue.alipay,
+ channel : "DEFAULT",
+ code : indexValue.code
+ }
+ }).then(res=>{
+ my.alert({
+ content : res.data,
+ buttonText: '知道了',
+ success: () => {
+ my.navigateBack();
+ }
+ });
+ my.hideLoading
+ }).catch(err=>{
+ my.showToast({
+ type : "fail",
+ content: err.data.message
+ })
+ my.hideLoading();
+ })
+ }else{
+ if(indexValue.mall == ''){
+ my.showToast({
+ content: "商户名不能为空"
+ });
+ }else if(indexValue.user == ''){
+ my.showToast({
+ content: "手机号码不能为空"
+ });
+ }else if(indexValue.pss == ''){
+ my.showToast({
+ content: "请设置登录密码"
+ });
+ }else if(indexValue.affirmpss == ''){
+ my.showToast({
+ content: "请确认登录密码"
+ });
+ }else if(indexValue.alipay == ''){
+ my.showToast({
+ content: "支付宝账户不能为空"
+ });
+ }else if(indexValue.channel == ''){
+ my.showToast({
+ content: "渠道码不能为空"
+ });
+ }else if(indexValue.code == ''){
+ my.showToast({
+ content: "验证码不能为空"
+ });
+ }
+ }
+ }
+});
diff --git a/pages/enter/enter.json b/pages/enter/enter.json
new file mode 100755
index 0000000..dfafc9c
--- /dev/null
+++ b/pages/enter/enter.json
@@ -0,0 +1,4 @@
+{
+ "defaultTitle" : "商户入驻",
+ "allowsBounceVertical": "NO"
+}
\ No newline at end of file
diff --git a/pages/equity/equity.acss b/pages/equity/equity.acss
new file mode 100755
index 0000000..a6a9768
--- /dev/null
+++ b/pages/equity/equity.acss
@@ -0,0 +1,125 @@
+
+page{
+ background: #fafafa;
+}
+
+/* 可办理次数 */
+.welfare-header{
+ padding: 100rpx 30rpx;
+ text-align: center;
+ background: white;
+}
+
+.welfare-header-title{
+ color: gray;
+}
+
+.welfare-header-title text{
+ color: #318fef;
+ font-weight: bold;
+ padding: 0 10rpx;
+}
+
+.welfare-header-number{
+ font-size: 50rpx;
+ font-weight: bold;
+ color: #318fef;
+ padding: 20rpx 0;
+}
+
+/* 办理优惠信息 */
+.welfare-title{
+ padding: 20rpx 30rpx;
+ color: gray;
+}
+
+/* 优惠办理表单 */
+
+.form-block{
+ background: white;
+}
+
+.order-item{
+ position: relative;
+ padding: 0 30rpx 0 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item::after{
+ content: " ";
+ background: #ddd;
+ position: absolute;
+ left: 30rpx;
+ height: 1rpx;
+ right: 0;
+ bottom: 0;
+ z-index: 1;
+}
+
+.order-item:last-child::after{
+ display: none;
+}
+
+.order-item-label{
+ position: absolute;
+ left: 0;
+ top: 0;
+ line-height: 85rpx;
+ padding: 0 30rpx;
+ width: 200rpx;
+ box-sizing: border-box;
+ text-align: left;
+}
+
+.order-item-input{
+ background: white;
+ display: block;
+ border: none;
+ padding: 0;
+ height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item-picker{
+ width: 100%;
+}
+
+.order-item-picker-text{
+ padding-right: 85rpx;
+ position: relative;
+}
+
+.order-item-picker-icon{
+ width: 32rpx;
+ position: absolute;
+ right: 0;
+ top: 26rpx;
+}
+
+.order-item-code{
+ padding-right: 260rpx;
+}
+
+.order-item-code-btn{
+ position: absolute;
+ right: 30rpx;
+ top: 0;
+ width: 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ border: none;
+ background: transparent;
+ color: #318fef;
+ font-size: 30rpx;
+}
+
+.order-item-code-btn-hover{
+ color: #318fef;
+ background: transparent;
+}
+
+.order-btn{
+ padding: 30rpx;
+}
diff --git a/pages/equity/equity.axml b/pages/equity/equity.axml
new file mode 100755
index 0000000..5c778bd
--- /dev/null
+++ b/pages/equity/equity.axml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
diff --git a/pages/equity/equity.js b/pages/equity/equity.js
new file mode 100755
index 0000000..262c974
--- /dev/null
+++ b/pages/equity/equity.js
@@ -0,0 +1,150 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+var outTime
+
+Page({
+ data: {
+ comboArr : [],
+ comboTypeValue : "",
+ comboTypeText : "",
+ tle : "",
+ codeBtnText : "获取验证码",
+ codeBtnStat : false
+ },
+ // 生命周期函数 -- 页面加载
+ onLoad() {
+
+ },
+ // 生命周期函数 -- 页面显示
+ onShow(){
+ this.preferential()
+ },
+ // 获取优惠配置信息
+ preferential(){
+ api.request({
+ url : "goods/lists",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST"
+ }).then(res=>{
+ console.log(res.data)
+ this.setData({
+ comboArr : res.data
+ })
+ })
+ },
+ // 选择套餐类型
+ comboTypeChange(e){
+ console.log(e.detail)
+ let comboType = this.data.comboArr,
+ value = e.detail.value,
+ comboTypeName = comboType[value].title
+
+ this.setData({
+ comboTypeText : comboTypeName,
+ comboTypeValue : value
+ })
+ },
+ // 存储手机号码
+ telInput(e){
+ this.setData({
+ tle: e.detail.value
+ })
+ },
+ // 获取短信验证码
+ getCode(){
+ setTimeout(() => {
+ if(this.data.tle != ''){
+ my.showLoading();
+ api.request({
+ url : "unicom",
+ method: "POST",
+ data : {
+ mobile : this.data.tle,
+ channel : "DEFAULT"
+ }
+ }).then(res=>{
+ // 获取倒计时
+ this.setData({
+ codeBtnStat: true,
+ codeBtnText: "重新获取60s"
+ })
+
+ let outTimeNumber = 60
+ outTime = setInterval(()=>{
+ if(outTimeNumber >= 1){
+ outTimeNumber--
+ this.setData({
+ codeBtnText: "重新获取" + outTimeNumber + 's'
+ })
+ }else{
+ this.setData({
+ codeBtnStat: false,
+ codeBtnText: "获取验证码"
+ })
+ clearInterval(outTime)
+ }
+ },1000)
+ // 提示信息
+ my.showToast({
+ content: res.data
+ })
+ my.hideLoading();
+ }).catch(err=>{
+ console.log(err)
+ my.showToast({
+ content: err.data.message
+ })
+ my.hideLoading();
+ })
+ }else{
+ my.showToast({
+ content: "手机号码不能为空"
+ });
+ }
+ }, 100)
+ },
+ // 提交表单
+ welfareForm(e){
+ if(this.data.comboTypeText != ''){
+ my.showLoading()
+ // api
+ api.request({
+ url : "order/createNew/" + this.data.comboArr[this.data.comboTypeValue].param_id,
+ method : "POST",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ mobile : e.detail.value.tel,
+ code : e.detail.value.code,
+ channel : "DEFAULT"
+ }
+ }).then(res=>{
+ if(res.status == "SUCCESS" && res.data != ''){
+ my.redirectTo({
+ url: '../payCode/payCode?orderid=' + res.data
+ });
+ }
+ my.hideLoading()
+ }).catch(err=>{
+ my.showToast({
+ content: err.data.message
+ })
+ my.hideLoading()
+ })
+ }else{
+ my.showToast({
+ content: "请选择套餐类型"
+ })
+ }
+ },
+
+ // 退出页面
+ onUnload(){
+ clearInterval(outTime)
+ }
+})
diff --git a/pages/equity/equity.json b/pages/equity/equity.json
new file mode 100755
index 0000000..f22d472
--- /dev/null
+++ b/pages/equity/equity.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "办理权益包"
+}
\ No newline at end of file
diff --git a/pages/equity_list/equity_list.acss b/pages/equity_list/equity_list.acss
new file mode 100755
index 0000000..8bebaeb
--- /dev/null
+++ b/pages/equity_list/equity_list.acss
@@ -0,0 +1,321 @@
+
+.welfare-header{
+ padding: 30rpx;
+ background: #318fef;
+ color: white;
+}
+
+.welfare-flex{
+ display: flex;
+ flex-wrap: wrap;
+ margin: 0 -10rpx;
+}
+
+.welfare-item{
+ width: 50%;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+}
+
+.welfare-item-text{
+ color: white;
+ padding-bottom: 10rpx;
+}
+
+.welfare-item-icon{
+ background: white;
+ border-radius: 50%;
+ width: 38rpx;
+ height: 38rpx;
+ vertical-align: middle;
+ margin-right: 10rpx;
+}
+
+.welfare-item-number{
+ font-weight: bold;
+ font-size: 40rpx;
+}
+
+.welfare-stat{
+ display: flex;
+ background: white;
+ color: black;
+ margin-top: 30rpx;
+ border-radius: 6rpx;
+ padding: 20rpx;
+}
+
+.welfare-stat-item{
+ width: 27%;
+ padding: 0 10rpx;
+ border-right: solid 2rpx #c2c2c2;
+ text-align: center;
+}
+
+.welfare-stat-item:first-child{
+ width: 19%;
+ text-align: left;
+}
+
+.welfare-stat-item:last-child,
+.welfare-stat-item:first-child{
+ border-right: none;
+}
+
+.welfare-stat-text{
+ color: white;
+ font-size: 24rpx;
+}
+
+.welfare-stat-blue,
+.welfare-stat-orange,
+.welfare-stat-gray{
+ width: 130rpx;
+ line-height: 40rpx;
+ border-radius: 20rpx;
+ display: inline-block;
+}
+
+.welfare-stat-blue{
+ background: #318fef;
+}
+
+.welfare-stat-orange{
+ background: #ec712e;
+}
+
+.welfare-stat-gray{
+ background: #b5b5b5;
+}
+
+.welfare-stat-year{
+ line-height: 50rpx;
+}
+
+.welfare-stat-month{
+ line-height: 40rpx;
+ font-size: 32rpx;
+ font-weight: bold;
+}
+
+.welfare-stat-month image{
+ width: 15rpx;
+ margin-left: 5rpx;
+ vertical-align: middle;
+}
+
+.welfare-stat-year{
+ padding-top: 5rpx;
+ line-height: 40rpx;
+}
+
+.welfare-stat-number{
+ font-weight: bold;
+ font-size: 36rpx;
+ line-height: 50rpx;
+ padding-bottom: 6rpx;
+}
+
+/* 搜索框 */
+.welfare-search-form{
+ background: #85b9ef;
+ height: 70rpx;
+ border-radius: 40rpx;
+ margin-top: 30rpx;
+ display: block;
+ position: relative;
+}
+
+.welfare-search-input{
+ width: 100%;
+ padding: 0 100rpx;
+ margin: 0;
+ height: 70rpx;
+ line-height: 70rpx;
+ background: transparent;
+ font-size: 30rpx;
+ box-sizing: border-box;
+ color: white;
+}
+
+.welfare-search-class{
+ width: 36rpx;
+ position: absolute;
+ top: 17rpx;
+ left: 25rpx;
+}
+
+.welfare-search-btn{
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 80rpx;
+ text-align: center;
+ padding: 0;
+ margin: 0;
+ height: 70rpx;
+ border-radius: 0 40rpx 40rpx 0;
+ background: transparent;
+ border: none;
+}
+
+.welfare-search-btn image{
+ width: 36rpx;
+ vertical-align: top;
+ margin-top: 14rpx;
+ margin-right: 10rpx;
+}
+
+.welfare-search-btn-hover{
+ background: #cc520f;
+}
+
+/* 筛选 */
+.welfare-search-flex{
+ display: flex;
+ border:solid 2rpx white;
+ border-radius: 6rpx;
+ margin-top: 30rpx;
+}
+
+.welfare-search-item{
+ flex: 1;
+ text-align: center;
+ border-right: solid 2rpx white;
+ line-height: 60rpx;
+ font-size: 30rpx;
+}
+
+.welfare-search-item:last-child{
+ border-right: none;
+}
+
+.welfare-search-item.show{
+ background: white;
+ color: #318fef;
+}
+
+/* 列表 */
+
+.welfare-list,
+.welfare-list-null{
+ padding-bottom: 175rpx;
+}
+
+.welfare-list-item{
+ border-top: solid 20rpx #fafafa;
+ padding: 30rpx;
+}
+
+.welfare-list-name{
+ position: relative;
+ font-size: 30rpx;
+ font-weight: bold;
+ line-height: 50rpx;
+ padding-right: 230rpx;
+ padding-bottom: 20rpx;
+ border-bottom: solid 1rpx #ddd;
+}
+
+.welfare-list-stat{
+ position: absolute;
+ right: 0;
+ top: 0;
+ color: #ff6600;
+ width: 200rpx;
+ text-align: right;
+}
+
+.welfare-list-stat.gray{
+ color: gray;
+}
+
+.welfare-list-tag{
+ color: white;
+ background: #ff6600;
+ margin-right: 10rpx;
+ border-radius: 6rpx;
+ padding: 0 15rpx;
+ font-size: 28rpx;
+}
+
+.welfare-list-info{
+ padding-top: 20rpx;
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -20rpx;
+}
+
+.welfare-list-info-item{
+ width: 33.33%;
+ color: gray;
+ line-height: 50rpx;
+ font-size: 28rpx;
+ padding-right: 20rpx;
+ box-sizing: border-box;
+}
+
+.welfare-list-info-item image{
+ width: 32rpx;
+ vertical-align: middle;
+ margin-right: 8rpx;
+}
+
+.welfare-list-btns{
+ margin-top: 20rpx;
+ padding-top: 20rpx;
+ border-top: solid 1rpx #ddd;
+ text-align: right;
+}
+
+.welfare-list-btn{
+ display: inline-block;
+ background: #318fef;
+ color: white;
+ line-height: 70rpx;
+ height: 70rpx;
+ margin-left: 30rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+}
+
+.welfare-list-btn.remove{
+ border:solid 1rpx gray;
+ color: gray;
+ background: transparent;
+}
+
+/* footer */
+.welfare-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ background: white;
+ padding: 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.welfare-footer-nav{
+ text-align: center;
+ background: #318fef;
+}
+
+/* 空提示 */
+.welfare-list-null{
+ text-align: center;
+ color: gray;
+ padding: 200rpx 0;
+}
+
+.welfare-list-null-title{
+ font-weight: bold;
+ font-size: 30rpx;
+ color: black;
+ padding-bottom: 10rpx;
+}
+
+.welfare-list-null image{
+ width: 88rpx;
+ margin-bottom: 20rpx;
+}
diff --git a/pages/equity_list/equity_list.axml b/pages/equity_list/equity_list.axml
new file mode 100755
index 0000000..e0b7e95
--- /dev/null
+++ b/pages/equity_list/equity_list.axml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+ {{item.item.paramTitle}}
+ {{item.state_text}}
+
+
+ {{item.created_at || '-'}}
+ {{item.phone || '-'}}
+ {{item.amount || '0.00'}}
+ {{item.item.one || '0.00'}}
+ {{item.item.wo || '0.00'}}/期
+ {{item.item.wo_phase || '0'}}期
+
+
+ 取消订单
+ 立即支付
+
+
+
+ 加载中...
+ 没有更多数据了~
+
+
+
+
+
+ 当前暂无办理记录
+ 什么都还没有,赶快去添加吧
+
+
+
+
diff --git a/pages/equity_list/equity_list.js b/pages/equity_list/equity_list.js
new file mode 100755
index 0000000..ce73a85
--- /dev/null
+++ b/pages/equity_list/equity_list.js
@@ -0,0 +1,246 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {
+ listArr : [],
+ identity_id : "",
+ permissions : false,
+ year : "",
+ month : "",
+ searchIndex : 0,
+ typeArr : [
+ {id: "" , name:"全部"},
+ {id: "PAY" , name:"已支付"},
+ {id: "INIT" , name:"待支付"},
+ {id: "REFUND" , name:"已退款"},
+ {id: "COMPLETED" , name:"已完成"}
+ ],
+ typeIndex : 0,
+ num : "",
+ settleAmount: "",
+ settleMonth : "",
+ count : "",
+ endDate : "",
+ isNowMonth : false,
+ page : 1,
+ meta : {},
+ isLogin : false
+ },
+
+ // 页面加载
+ onLoad() {
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ identity_id: app.globalData.userInfo.identity_id,
+ permissions: app.globalData.userInfo.perferential,
+ year : year,
+ month : month,
+ endDate : year + "-" + month
+ })
+ },
+
+ // 页面显示
+ onShow(){
+ this.setData({
+ listArr: []
+ })
+ this.welfareList()
+ my.showLoading();
+ my.showNavigationBarLoading();
+ },
+
+ // 列表
+ welfareList(tel){
+ let url = "goods/orderlists",
+ dateYear = this.data.year + '-' + this.data.month
+
+ if(this.data.searchIndex == 1){
+ dateYear = "today"
+ } else if(this.data.searchIndex == 2){
+ dateYear = "yesterday"
+ }
+
+ api.request({
+ url : url,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ date : dateYear,
+ mobile : tel || "",
+ status : this.data.typeArr[this.data.typeIndex].id,
+ settle : "",
+ page : this.data.page
+ }
+ }).then(res=>{
+ let atArr = this.data.listArr,
+ newArr = []
+
+ newArr = atArr.concat(res.data)
+
+ this.setData({
+ listArr : newArr,
+ num : res.num,
+ settleAmount: res.settleAmount,
+ settleMonth : res.settleMonth,
+ count : res.count,
+ isNowMonth : res.isNowMonth
+ })
+ my.hideLoading();
+ my.hideNavigationBarLoading();
+ my.stopPullDownRefresh();
+ })
+ },
+
+ // 选择日期
+ selectTime(){
+ my.datePicker({
+ currentDate : this.data.year + "-" + this.data.month,
+ endDate : this.data.endDate,
+ format : "yyyy-MM",
+ success : res=>{
+ let dateString = String(res.date),
+ yearString = dateString.substring(0,4),
+ monthString = dateString.substring(5,7)
+
+ this.setData({
+ year : yearString,
+ month : monthString,
+ page : 1,
+ listArr: []
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ })
+ },
+
+ // 筛选日期
+ searchTab(e){
+ this.setData({
+ page : 1,
+ listArr : []
+ })
+
+ if(e.target.dataset.index != this.data.searchIndex){
+ this.setData({
+ searchIndex: e.target.dataset.index
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+
+ if(e.target.dataset.index == 0 && !this.data.isNowMonth){
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ year : year,
+ month : month
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+
+ // 类型筛选
+ screenClass(e){
+ this.setData({
+ typeIndex: e.detail.value,
+ page : 1,
+ listArr : []
+ })
+ this.welfareList()
+ my.showLoading();
+ },
+
+ // 搜索手机号码
+ searchForm(e){
+ this.setData({
+ page : 1,
+ listArr : []
+ })
+
+ let tel = e.detail.value.searchValue
+ this.welfareList(tel)
+ },
+
+ // 取消订单
+ reomveOrder(e){
+ console.log(e.currentTarget.dataset.id)
+ if(e.currentTarget.dataset.id){
+ my.showLoading()
+ api.request({
+ url : "order/orderdel",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ data : {
+ orderid : e.currentTarget.dataset.id
+ }
+ }).then(res=>{
+ my.showToast({
+ type : "none",
+ content : res.data
+ });
+ my.hideLoading()
+ this.setData({
+ listArr : []
+ })
+ this.welfareList()
+ my.showLoading();
+ })
+ }else{
+ my.showToast({
+ type : "none",
+ content : "订单id不存在"
+ });
+ }
+ },
+
+ // 分页
+ onReachBottom(){
+ let meta = this.data.meta,
+ atPage = this.data.page
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(meta.current_page < meta.last_page){
+ this.setData({
+ page: atPage + 1
+ })
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+
+ // 下拉刷新
+ onPullDownRefresh(){
+ this.setData({
+ listArr : []
+ })
+ this.welfareList()
+ }
+});
diff --git a/pages/equity_list/equity_list.json b/pages/equity_list/equity_list.json
new file mode 100755
index 0000000..3761085
--- /dev/null
+++ b/pages/equity_list/equity_list.json
@@ -0,0 +1,5 @@
+{
+ "defaultTitle" : "小额包记录",
+ "titleBarColor": "#318fef",
+ "pullRefresh": true
+}
\ No newline at end of file
diff --git a/pages/find/find.acss b/pages/find/find.acss
new file mode 100755
index 0000000..a422aaf
--- /dev/null
+++ b/pages/find/find.acss
@@ -0,0 +1,93 @@
+
+.login-content{
+ background: url(../../lib/img/login_back.png) white no-repeat center bottom;
+ background-size: 100%;
+ padding-bottom: 190rpx;
+}
+
+/* 登录header */
+.login-header{
+ padding: 0 80rpx;
+ margin-bottom: 40rpx;
+ font-size: 45rpx;
+ font-weight: bold;
+}
+
+/* 登录表单 */
+.login-form{
+ padding: 0 80rpx;
+}
+
+.login-form-blcok{
+ border-bottom: solid 1rpx #ddd;
+ margin-bottom: 30rpx;
+ padding-left: 56rpx;
+ position: relative;
+}
+
+.login-form-code{
+ padding-right: 240rpx;
+}
+
+.login-form-code-btn{
+ position: absolute;
+ right: 0;
+ top: 0;
+ background: transparent;
+ color:#ff6600;
+ width: 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ border: none;
+ font-size: 30rpx;
+}
+
+.login-form-code-btn-hover{
+ color: #da5700;
+}
+
+.login-form-label{
+ position: absolute;
+ left: 0;
+ top: 24rpx;
+ z-index: 1;
+}
+
+.login-form-icon{
+ width: 36rpx;
+ height: 36rpx;
+}
+
+.login-form-input{
+ width: 100%;
+ padding: 0;
+ margin: 0;
+ border: none;
+ font-size: 30rpx;
+ height: 85rpx;
+ background: transparent;
+}
+
+.login-form-btn{
+ padding-top: 10rpx;
+}
+
+/* 入驻按钮 */
+
+.btn-enter{
+ background: white;
+ color: #ff6600;
+ border:solid 1rpx #ff6600;
+ box-sizing: border-box;
+}
+
+.hover-btn-enter{
+ background: #eee;
+}
+
+/* 找回密码 */
+.login-form-toll{
+ text-align: center;
+ padding: 50rpx 0;
+ color: #ff6600;
+}
diff --git a/pages/find/find.axml b/pages/find/find.axml
new file mode 100755
index 0000000..5b6ed84
--- /dev/null
+++ b/pages/find/find.axml
@@ -0,0 +1,34 @@
+
+
+
+
+
diff --git a/pages/find/find.js b/pages/find/find.js
new file mode 100755
index 0000000..1563cd7
--- /dev/null
+++ b/pages/find/find.js
@@ -0,0 +1,104 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {
+ tle : "",
+ codeBtnText : "获取验证码",
+ codeBtnStat : false
+ },
+ onLoad() {},
+
+ // 手机号码
+ tel(e){
+ this.setData({
+ tle : e.detail.value
+ })
+ },
+
+ // 获取短信验证码
+ getCode(){
+ setTimeout(() => {
+ if(this.data.tle != ''){
+ my.showLoading();
+ api.request({
+ url : "sms",
+ method: "POST",
+ data : {
+ mobile : this.data.tle,
+ channel : "DEFAULT"
+ }
+ }).then(res=>{
+ // 获取倒计时
+ this.setData({
+ codeBtnStat: true,
+ codeBtnText: "重新获取60s"
+ })
+
+ let outTimeNumber = 60
+ let outTime = setInterval(()=>{
+ if(outTimeNumber >= 1){
+ outTimeNumber--
+ this.setData({
+ codeBtnText: "重新获取" + outTimeNumber + 's'
+ })
+ }else{
+ this.setData({
+ codeBtnStat: false,
+ codeBtnText: "获取验证码"
+ })
+ clearInterval(outTime)
+ }
+ },1000)
+ // 提示信息
+ my.showToast({
+ content: res.data
+ })
+ my.hideLoading();
+ }).catch(err=>{
+ my.showToast({
+ content: "短信发送失败,请稍候重试"
+ })
+ my.hideLoading();
+ })
+ }else{
+ my.showToast({
+ content: "手机号码不能为空"
+ });
+ }
+ }, 100)
+ },
+
+ // 找回密码
+ findForm(e){
+ my.showLoading()
+ // api
+ api.request({
+ url : "findpass",
+ method : "POST",
+ data : {
+ mobile : e.detail.value.tel,
+ code : e.detail.value.code,
+ channel : "DEFAULT",
+ password : e.detail.value.paw,
+ password_confirmation : e.detail.value.confirmPaw
+ }
+ }).then(res=>{
+ my.hideLoading()
+ my.alert({
+ content : res.data,
+ buttonText: '去登录',
+ success: () => {
+ my.navigateBack();
+ }
+ });
+ }).catch(err=>{
+ my.showToast({
+ type : 'none',
+ content: err.data.message
+ })
+ my.hideLoading()
+ })
+ }
+});
diff --git a/pages/find/find.json b/pages/find/find.json
new file mode 100755
index 0000000..67916cc
--- /dev/null
+++ b/pages/find/find.json
@@ -0,0 +1,4 @@
+{
+ "defaultTitle" : "找回密码",
+ "allowsBounceVertical": "NO"
+}
\ No newline at end of file
diff --git a/pages/gas/gas.acss b/pages/gas/gas.acss
new file mode 100755
index 0000000..6df537f
--- /dev/null
+++ b/pages/gas/gas.acss
@@ -0,0 +1,129 @@
+
+page{
+ background: #fafafa;
+}
+
+/* 可办理次数 */
+.welfare-header{
+ padding: 100rpx 30rpx;
+ text-align: center;
+ background: white;
+}
+
+.welfare-header-title{
+ color: gray;
+}
+
+.welfare-header-title text{
+ color: #318fef;
+ font-weight: bold;
+ padding: 0 10rpx;
+}
+
+.welfare-header-number{
+ font-size: 50rpx;
+ font-weight: bold;
+ color: #318fef;
+ padding: 20rpx 0;
+}
+
+/* 办理优惠信息 */
+.welfare-title{
+ padding: 20rpx 30rpx;
+ color: gray;
+}
+
+/* 优惠办理表单 */
+
+.form-block{
+ background: white;
+}
+
+.order-item{
+ position: relative;
+ padding: 0 30rpx 0 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item::after{
+ content: " ";
+ background: #ddd;
+ position: absolute;
+ left: 30rpx;
+ height: 1rpx;
+ right: 0;
+ bottom: 0;
+ z-index: 1;
+}
+
+.order-item:last-child::after{
+ display: none;
+}
+
+.order-item-label{
+ position: absolute;
+ left: 0;
+ top: 0;
+ line-height: 85rpx;
+ padding: 0 30rpx;
+ width: 200rpx;
+ box-sizing: border-box;
+ text-align: left;
+}
+
+.order-item-input{
+ background: white;
+ display: block;
+ border: none;
+ padding: 0;
+ height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item-picker{
+ width: 100%;
+}
+
+.order-item-picker-text{
+ padding-right: 85rpx;
+ position: relative;
+}
+
+.order-item-picker-icon{
+ width: 32rpx;
+ position: absolute;
+ right: 0;
+ top: 26rpx;
+}
+
+.order-item-code{
+ padding-right: 260rpx;
+}
+
+.order-item-code-btn{
+ position: absolute;
+ right: 30rpx;
+ top: 0;
+ width: 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ border: none;
+ background: transparent;
+ color: #ff1e00;
+ font-size: 30rpx;
+}
+
+.order-item-code-btn-hover{
+ color: #ff1e00;
+ background: transparent;
+}
+
+.order-btn{
+ padding: 30rpx;
+}
+
+.gas-btn{
+ background: #ff1e00;
+}
diff --git a/pages/gas/gas.axml b/pages/gas/gas.axml
new file mode 100755
index 0000000..5fad06b
--- /dev/null
+++ b/pages/gas/gas.axml
@@ -0,0 +1,32 @@
+
+
+
+
diff --git a/pages/gas/gas.js b/pages/gas/gas.js
new file mode 100755
index 0000000..93f07b4
--- /dev/null
+++ b/pages/gas/gas.js
@@ -0,0 +1,153 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+var outTime
+
+Page({
+ data: {
+ comboArr : [],
+ comboTypeValue : "",
+ comboTypeText : "",
+ tle : "",
+ codeBtnText : "获取验证码",
+ codeBtnStat : false,
+ is_code : 0
+ },
+ // 生命周期函数 -- 页面加载
+ onLoad() {
+
+ },
+ // 生命周期函数 -- 页面显示
+ onShow(){
+ this.preferential()
+ },
+ // 获取优惠配置信息
+ preferential(){
+ api.request({
+ url : "gas/init",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "GET"
+ }).then(res=>{
+ this.setData({
+ comboArr : res.data,
+ is_code : res.data[0].is_code
+ })
+ })
+ },
+ // 选择套餐类型
+ comboTypeChange(e){
+ let comboType = this.data.comboArr,
+ value = e.detail.value,
+ comboTypeName = comboType[value].title,
+ is_code = comboType[value].is_code
+
+ this.setData({
+ comboTypeText : comboTypeName,
+ comboTypeValue : value,
+ is_code : is_code
+ })
+ },
+ // 存储手机号码
+ telInput(e){
+ this.setData({
+ tle: e.detail.value
+ })
+ },
+ // 获取短信验证码
+ getCode(){
+ setTimeout(() => {
+ if(this.data.tle != ''){
+ my.showLoading();
+ api.request({
+ url : "unicom",
+ method: "POST",
+ data : {
+ mobile : this.data.tle,
+ channel : "DEFAULT"
+ }
+ }).then(res=>{
+ // 获取倒计时
+ this.setData({
+ codeBtnStat: true,
+ codeBtnText: "重新获取60s"
+ })
+
+ let outTimeNumber = 60
+ outTime = setInterval(()=>{
+ if(outTimeNumber >= 1){
+ outTimeNumber--
+ this.setData({
+ codeBtnText: "重新获取" + outTimeNumber + 's'
+ })
+ }else{
+ this.setData({
+ codeBtnStat: false,
+ codeBtnText: "获取验证码"
+ })
+ clearInterval(outTime)
+ }
+ },1000)
+ // 提示信息
+ my.showToast({
+ content: res.data
+ })
+ my.hideLoading();
+ }).catch(err=>{
+ console.log(err)
+ my.showToast({
+ content: err.data.message
+ })
+ my.hideLoading();
+ })
+ }else{
+ my.showToast({
+ content: "手机号码不能为空"
+ });
+ }
+ }, 100)
+ },
+ // 提交表单
+ welfareForm(e){
+ if(this.data.comboTypeText != ''){
+ my.showLoading()
+ api.request({
+ url : "gas/store",
+ method : "POST",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ assist_name : e.detail.value.assist,
+ gas_id : this.data.comboArr[this.data.comboTypeValue].id,
+ mobile : e.detail.value.tel,
+ code : e.detail.value.code || "",
+ channel : "DEFAULT"
+ }
+ }).then(res=>{
+ if(res.status == "SUCCESS" && res.data != ''){
+ my.redirectTo({
+ url: '../payCode/payCode?orderid=' + res.data.order_id + '&paytype=gasPay'
+ });
+ }
+ my.hideLoading()
+ }).catch(err=>{
+ my.showToast({
+ content: err.data.message
+ })
+ my.hideLoading()
+ })
+ }else{
+ my.showToast({
+ content: "请选择套餐类型"
+ })
+ }
+ },
+
+ // 退出页面
+ onUnload(){
+ clearInterval(outTime)
+ }
+})
diff --git a/pages/gas/gas.json b/pages/gas/gas.json
new file mode 100755
index 0000000..f22d472
--- /dev/null
+++ b/pages/gas/gas.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "办理权益包"
+}
\ No newline at end of file
diff --git a/pages/gas_list/gas_list.acss b/pages/gas_list/gas_list.acss
new file mode 100755
index 0000000..8759412
--- /dev/null
+++ b/pages/gas_list/gas_list.acss
@@ -0,0 +1,321 @@
+
+.welfare-header{
+ padding: 30rpx;
+ background: #ff1e00;
+ color: white;
+}
+
+.welfare-flex{
+ display: flex;
+ flex-wrap: wrap;
+ margin: 0 -10rpx;
+}
+
+.welfare-item{
+ width: 50%;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+}
+
+.welfare-item-text{
+ color: white;
+ padding-bottom: 10rpx;
+}
+
+.welfare-item-icon{
+ background: white;
+ border-radius: 50%;
+ width: 38rpx;
+ height: 38rpx;
+ vertical-align: middle;
+ margin-right: 10rpx;
+}
+
+.welfare-item-number{
+ font-weight: bold;
+ font-size: 40rpx;
+}
+
+.welfare-stat{
+ display: flex;
+ background: white;
+ color: black;
+ margin-top: 30rpx;
+ border-radius: 6rpx;
+ padding: 20rpx;
+}
+
+.welfare-stat-item{
+ width: 40%;
+ padding: 0 10rpx;
+ border-right: solid 2rpx #c2c2c2;
+ text-align: center;
+}
+
+.welfare-stat-item:first-child{
+ width: 20%;
+ text-align: left;
+}
+
+.welfare-stat-item:last-child,
+.welfare-stat-item:first-child{
+ border-right: none;
+}
+
+.welfare-stat-text{
+ color: white;
+ font-size: 24rpx;
+}
+
+.welfare-stat-blue,
+.welfare-stat-orange,
+.welfare-stat-gray{
+ line-height: 40rpx;
+ border-radius: 20rpx;
+ display: inline-block;
+ padding: 0 15rpx;
+}
+
+.welfare-stat-blue{
+ background: #318fef;
+}
+
+.welfare-stat-orange{
+ background: #ec712e;
+}
+
+.welfare-stat-gray{
+ background: #b5b5b5;
+}
+
+.welfare-stat-year{
+ line-height: 50rpx;
+}
+
+.welfare-stat-month{
+ line-height: 40rpx;
+ font-size: 32rpx;
+ font-weight: bold;
+}
+
+.welfare-stat-month image{
+ width: 15rpx;
+ margin-left: 5rpx;
+ vertical-align: middle;
+}
+
+.welfare-stat-year{
+ padding-top: 5rpx;
+ line-height: 40rpx;
+}
+
+.welfare-stat-number{
+ font-weight: bold;
+ font-size: 36rpx;
+ line-height: 50rpx;
+ padding-bottom: 6rpx;
+}
+
+/* 搜索框 */
+.welfare-search-form{
+ background: #ff513a;
+ height: 70rpx;
+ border-radius: 40rpx;
+ margin-top: 30rpx;
+ display: block;
+ position: relative;
+}
+
+.welfare-search-input{
+ width: 100%;
+ padding: 0 100rpx;
+ margin: 0;
+ height: 70rpx;
+ line-height: 70rpx;
+ background: transparent;
+ font-size: 30rpx;
+ box-sizing: border-box;
+ color: white;
+}
+
+.welfare-search-class{
+ width: 36rpx;
+ position: absolute;
+ top: 17rpx;
+ left: 25rpx;
+}
+
+.welfare-search-btn{
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 80rpx;
+ text-align: center;
+ padding: 0;
+ margin: 0;
+ height: 70rpx;
+ border-radius: 0 40rpx 40rpx 0;
+ background: transparent;
+ border: none;
+}
+
+.welfare-search-btn image{
+ width: 36rpx;
+ vertical-align: top;
+ margin-top: 14rpx;
+ margin-right: 10rpx;
+}
+
+.welfare-search-btn-hover{
+ background: #cc520f;
+}
+
+/* 筛选 */
+.welfare-search-flex{
+ display: flex;
+ border:solid 2rpx white;
+ border-radius: 6rpx;
+ margin-top: 30rpx;
+}
+
+.welfare-search-item{
+ flex: 1;
+ text-align: center;
+ border-right: solid 2rpx white;
+ line-height: 60rpx;
+ font-size: 30rpx;
+}
+
+.welfare-search-item:last-child{
+ border-right: none;
+}
+
+.welfare-search-item.show{
+ background: white;
+ color: #ff1e00;
+}
+
+/* 列表 */
+
+.welfare-list,
+.welfare-list-null{
+ padding-bottom: 175rpx;
+}
+
+.welfare-list-item{
+ border-top: solid 20rpx #fafafa;
+ padding: 30rpx;
+}
+
+.welfare-list-name{
+ position: relative;
+ font-size: 30rpx;
+ font-weight: bold;
+ line-height: 50rpx;
+ padding-right: 230rpx;
+ padding-bottom: 20rpx;
+ border-bottom: solid 1rpx #ddd;
+}
+
+.welfare-list-stat{
+ position: absolute;
+ right: 0;
+ top: 0;
+ color: #ff6600;
+ width: 200rpx;
+ text-align: right;
+}
+
+.welfare-list-stat.gray{
+ color: gray;
+}
+
+.welfare-list-tag{
+ color: white;
+ background: #ff6600;
+ margin-right: 10rpx;
+ border-radius: 6rpx;
+ padding: 0 15rpx;
+ font-size: 28rpx;
+}
+
+.welfare-list-info{
+ padding-top: 20rpx;
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -20rpx;
+}
+
+.welfare-list-info-item{
+ width: 50%;
+ color: gray;
+ line-height: 50rpx;
+ font-size: 28rpx;
+ padding-right: 20rpx;
+ box-sizing: border-box;
+}
+
+.welfare-list-info-item image{
+ width: 32rpx;
+ vertical-align: middle;
+ margin-right: 8rpx;
+}
+
+.welfare-list-btns{
+ margin-top: 20rpx;
+ padding-top: 20rpx;
+ border-top: solid 1rpx #ddd;
+ text-align: right;
+}
+
+.welfare-list-btn{
+ display: inline-block;
+ background: #ff1e00;
+ color: white;
+ line-height: 70rpx;
+ height: 70rpx;
+ margin-left: 30rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+}
+
+.welfare-list-btn.remove{
+ border:solid 1rpx gray;
+ color: gray;
+ background: transparent;
+}
+
+/* footer */
+.welfare-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ background: white;
+ padding: 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.welfare-footer-nav{
+ text-align: center;
+ background: #ff1e00;
+}
+
+/* 空提示 */
+.welfare-list-null{
+ text-align: center;
+ color: gray;
+ padding: 200rpx 0;
+}
+
+.welfare-list-null-title{
+ font-weight: bold;
+ font-size: 30rpx;
+ color: black;
+ padding-bottom: 10rpx;
+}
+
+.welfare-list-null image{
+ width: 88rpx;
+ margin-bottom: 20rpx;
+}
diff --git a/pages/gas_list/gas_list.axml b/pages/gas_list/gas_list.axml
new file mode 100755
index 0000000..a97a9ad
--- /dev/null
+++ b/pages/gas_list/gas_list.axml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+ {{item.order_id}}
+ {{item.status_text}}
+
+
+ {{item.gas_title || '-'}}
+ {{item.phone || '-'}}
+ {{item.assist_nickname || '-'}}
+ {{item.created_at || '-'}}
+
+
+ 取消订单
+ 立即支付
+
+
+ 申请退款
+
+
+
+ 加载中...
+ 没有更多数据了~
+
+
+
+
+
+ 当前暂无办理记录
+ 什么都还没有,赶快去添加吧
+
+
+
+
diff --git a/pages/gas_list/gas_list.js b/pages/gas_list/gas_list.js
new file mode 100755
index 0000000..bba7b57
--- /dev/null
+++ b/pages/gas_list/gas_list.js
@@ -0,0 +1,274 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {
+ listArr : [],
+ identity_id : "",
+ permissions : false,
+ year : "",
+ month : "",
+ searchIndex : 0,
+ typeArr : [
+ {id: "" , name:"全部"},
+ {id: "0" , name:"未支付"},
+ {id: "1" , name:"已支付"},
+ {id: "3" , name:"已结佣"},
+ {id: "4" , name:"已退款"},
+ {id: "6" , name:"申请退款"}
+ ],
+ typeIndex : 0,
+ all_count : "",
+ all_amount : "",
+ month_count : "",
+ month_amount: "",
+ endDate : "",
+ isNowMonth : false,
+ page : 1,
+ meta : {},
+ isLogin : false
+ },
+
+ // 页面加载
+ onLoad() {
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ identity_id: app.globalData.userInfo.identity_id,
+ permissions: app.globalData.userInfo.perferential,
+ year : year,
+ month : month,
+ endDate : year + "-" + month
+ })
+ },
+
+ // 页面显示
+ onShow(){
+ this.setData({
+ listArr: []
+ })
+ this.welfareList()
+ my.showLoading();
+ my.showNavigationBarLoading();
+ },
+
+ // 列表
+ welfareList(tel,type){
+ let url = "gas/lists",
+ dateYear = this.data.year + '-' + this.data.month
+
+ if(this.data.searchIndex == 1){
+ dateYear = "today"
+ } else if(this.data.searchIndex == 2){
+ dateYear = "yesterday"
+ }
+
+ api.request({
+ url : url,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ date : dateYear,
+ keyword : tel || "",
+ keytype : type,
+ status : this.data.typeArr[this.data.typeIndex].id,
+ settle : "",
+ page : this.data.page
+ }
+ }).then(res=>{
+ let atArr = this.data.listArr,
+ newArr = []
+
+ newArr = atArr.concat(res.data)
+
+ this.setData({
+ listArr : newArr,
+ all_count : res.all_count,
+ all_amount : res.all_amount,
+ month_count : res.month_count,
+ month_amount : res.month_amount,
+ isNowMonth : res.isNowMonth
+ })
+ my.hideLoading();
+ my.hideNavigationBarLoading();
+ my.stopPullDownRefresh();
+ })
+ },
+
+ // 选择日期
+ selectTime(){
+ my.datePicker({
+ currentDate : this.data.year + "-" + this.data.month,
+ endDate : this.data.endDate,
+ format : "yyyy-MM",
+ success : res=>{
+ let dateString = String(res.date),
+ yearString = dateString.substring(0,4),
+ monthString = dateString.substring(5,7)
+
+ this.setData({
+ year : yearString,
+ month : monthString,
+ page : 1,
+ listArr: []
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ })
+ },
+
+ // 筛选日期
+ searchTab(e){
+ this.setData({
+ page : 1,
+ listArr : []
+ })
+
+ if(e.target.dataset.index != this.data.searchIndex){
+ this.setData({
+ searchIndex: e.target.dataset.index
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+
+ if(e.target.dataset.index == 0 && !this.data.isNowMonth){
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ year : year,
+ month : month
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+
+ // 类型筛选
+ screenClass(e){
+ this.setData({
+ typeIndex: e.detail.value,
+ page : 1,
+ listArr : []
+ })
+ this.welfareList()
+ my.showLoading();
+ },
+
+ // 搜索手机号码
+ searchForm(e){
+ let tel = e.detail.value.searchValue,
+ type = ""
+
+ my.showActionSheet({
+ items : ["订单搜索","办理人搜索"],
+ success : res=>{
+ this.setData({
+ page : 1,
+ listArr : []
+ })
+ if(res.index == 0){
+ type = "mobile"
+ }else{
+ type = "nickname"
+ }
+ this.welfareList(tel,type)
+ }
+ });
+ },
+
+ // 取消、退款订单
+ reomveOrder(e){
+ if(e.currentTarget.dataset.id){
+
+ let url = "gas/" + e.currentTarget.dataset.id + "/chargeback",
+ text = "确认取消订单吗?"
+
+ if(e.currentTarget.dataset.type == "retreat"){
+ url = "gas/" + e.currentTarget.dataset.id + "/refund",
+ text = "确认申请退款吗?"
+ }
+
+ my.confirm({
+ title : "提示",
+ content : text,
+ success : res=>{
+ if(res.confirm){
+ my.showLoading()
+ api.request({
+ url : url,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST"
+ }).then(res=>{
+ my.showToast({
+ type : "none",
+ content : res.data
+ });
+ my.hideLoading()
+ this.setData({
+ listArr : []
+ })
+ this.welfareList()
+ my.showLoading();
+ })
+ }
+ }
+ })
+
+
+ }else{
+ my.showToast({
+ type : "none",
+ content : "订单id不存在"
+ });
+ }
+ },
+
+ // 分页
+ onReachBottom(){
+ let meta = this.data.meta,
+ atPage = this.data.page
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(meta.current_page < meta.last_page){
+ this.setData({
+ page: atPage + 1
+ })
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+
+ // 下拉刷新
+ onPullDownRefresh(){
+ this.setData({
+ listArr : []
+ })
+ this.welfareList()
+ }
+});
diff --git a/pages/gas_list/gas_list.json b/pages/gas_list/gas_list.json
new file mode 100755
index 0000000..95a48cf
--- /dev/null
+++ b/pages/gas_list/gas_list.json
@@ -0,0 +1,5 @@
+{
+ "defaultTitle" : "燃气冰激凌记录",
+ "titleBarColor": "#ff1e00",
+ "pullRefresh": true
+}
\ No newline at end of file
diff --git a/pages/index/index.acss b/pages/index/index.acss
new file mode 100755
index 0000000..890dc40
--- /dev/null
+++ b/pages/index/index.acss
@@ -0,0 +1,49 @@
+
+/* banner */
+.banner{
+ padding-top: 50%;
+ width: 100%;
+ background: #ddd;
+ position: relative;
+}
+
+.banner-swiper{
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ top: 0;
+ left: 0;
+}
+
+.banner-swiper-img{
+ width: 100%;
+ height: 100%;
+}
+
+/* 工作台 */
+
+.grid{
+ display: flex;
+ flex-wrap: wrap;
+ padding: 15rpx;
+}
+
+.grid-item{
+ text-align: center;
+ width: 33.33%;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.grid-icon{
+ background: #fafafa;
+ width: 68rpx;
+ height: 68rpx;
+ vertical-align: top;
+ margin-bottom: 15rpx;
+}
+
+.grid-title{
+ font-size: 28rpx;
+ font-weight: bold;
+}
diff --git a/pages/index/index.axml b/pages/index/index.axml
new file mode 100755
index 0000000..f829dcf
--- /dev/null
+++ b/pages/index/index.axml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{notice.title}}
+
+
+
+
+
+
+ 小额包
+
+
+
+ 冰激凌
+
+
+
+ 燃气冰激凌
+
+
+
+ 券码核销
+
+
+
+ 分期付款
+
+
+
diff --git a/pages/index/index.js b/pages/index/index.js
new file mode 100755
index 0000000..cf38e07
--- /dev/null
+++ b/pages/index/index.js
@@ -0,0 +1,53 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {
+ marqueeProps: {
+ loop: true,
+ leading: 500,
+ trailing: 800,
+ fps: 40
+ },
+ noticeMode : "link",
+ adverts : [],
+ notice : {},
+ permissions : {}
+ },
+ onLoad(){
+ my.showLoading();
+ this.getIndex()
+ },
+ onShow(){
+ if (my.canIUse('hideBackHome')) {
+ my.hideBackHome();
+ }
+ },
+ getIndex(){
+ api.request({
+ url : "works",
+ header: {
+ "Authorization" : app.globalData.token
+ },
+ method: "POST"
+ }).then(res => {
+ this.setData({
+ adverts : res.data.adverts,
+ notice : res.data.article,
+ permissions: res.data.permissions
+ })
+ my.hideLoading();
+ my.stopPullDownRefresh();
+ })
+ },
+ onNotice(){
+ my.navigateTo({
+ url: '../notice_date/notice_date?id=' + this.data.notice.id
+ });
+ },
+ // 下拉刷新
+ onPullDownRefresh(){
+ this.getIndex()
+ }
+});
diff --git a/pages/index/index.json b/pages/index/index.json
new file mode 100755
index 0000000..c7cb366
--- /dev/null
+++ b/pages/index/index.json
@@ -0,0 +1,8 @@
+{
+ "usingComponents": {
+ "notice": "mini-ali-ui/es/notice/index"
+ },
+ "defaultTitle" : " ",
+ "transparentTitle" : "auto",
+ "pullRefresh": true
+}
\ No newline at end of file
diff --git a/pages/login/login.acss b/pages/login/login.acss
new file mode 100755
index 0000000..e9fa7e8
--- /dev/null
+++ b/pages/login/login.acss
@@ -0,0 +1,73 @@
+
+.login-content{
+ background: url(../../lib/img/login_back.png) white no-repeat center bottom;
+ background-size: 100%;
+ padding-bottom: 190rpx;
+}
+
+/* 登录header */
+.login-header{
+ padding: 0 80rpx;
+ margin-bottom: 40rpx;
+ font-size: 45rpx;
+ font-weight: bold;
+}
+
+/* 登录表单 */
+.login-form{
+ padding: 0 80rpx;
+}
+
+.login-form-blcok{
+ border-bottom: solid 1rpx #ddd;
+ margin-bottom: 30rpx;
+ padding-left: 56rpx;
+ position: relative;
+}
+
+.login-form-label{
+ position: absolute;
+ left: 0;
+ top: 24rpx;
+ z-index: 1;
+}
+
+.login-form-icon{
+ width: 36rpx;
+ height: 36rpx;
+}
+
+.login-form-input{
+ width: 100%;
+ padding: 0;
+ margin: 0;
+ border: none;
+ font-size: 30rpx;
+ height: 85rpx;
+ background: transparent;
+}
+
+.login-form-btn{
+ padding-top: 10rpx;
+}
+
+/* 入驻按钮 */
+
+.btn-enter{
+ background: white;
+ color: #ff6600;
+ border:solid 2rpx #ff6600;
+ box-sizing: border-box;
+ margin-top: 30rpx;
+}
+
+.hover-btn-enter{
+ background: #eee;
+}
+
+/* 找回密码 */
+.login-form-toll{
+ text-align: center;
+ padding: 50rpx 0;
+ color: #ff6600;
+}
diff --git a/pages/login/login.axml b/pages/login/login.axml
new file mode 100755
index 0000000..4325c54
--- /dev/null
+++ b/pages/login/login.axml
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/pages/login/login.js b/pages/login/login.js
new file mode 100755
index 0000000..cb20301
--- /dev/null
+++ b/pages/login/login.js
@@ -0,0 +1,73 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {},
+ onLoad() {},
+
+ // 隐藏返回首页按钮
+ onReady() {
+ if (my.canIUse('hideBackHome')) {
+ my.hideBackHome();
+ }
+ },
+
+ // 登录
+ subLogin(e){
+ let phone = e.detail.value.phone,
+ pass = e.detail.value.pass
+ if(phone != "" && pass != ""){
+ my.showLoading();
+ api.request({
+ url : "login",
+ method: "POST",
+ data : {
+ username: phone,
+ password: pass
+ }
+ }).then(res => {
+ // 存储全局信息
+ app.globalData.isUser = true
+ app.globalData.token = res.data.access_token
+ app.globalData.expires = Math.round(new Date() / 1000) + res.data.expires_in
+ // 缓存信息本地
+ my.setStorage({
+ key : "userToken",
+ data : {
+ token : res.data.access_token,
+ expires : Math.round(new Date() / 1000) + res.data.expires_in
+ }
+ })
+ // 获取用户信息
+ api.userinfo(res.data.access_token).then(()=>{
+ my.hideLoading();
+ my.switchTab({
+ url: "../index/index"
+ })
+ })
+ }).catch(err => {
+ my.showToast({
+ type : "fail",
+ content: err.data.message
+ })
+ my.hideLoading();
+ })
+ }else if(phone == ""){
+ my.showToast({
+ content:"请输入账户名"
+ });
+ }else if(pass == ""){
+ my.showToast({
+ content:"请输入登录密码"
+ });
+ }
+ },
+
+ // 入驻商户
+ oepnEnter(){
+ my.navigateTo({
+ url: '../enter/enter'
+ });
+ }
+});
diff --git a/pages/login/login.json b/pages/login/login.json
new file mode 100755
index 0000000..f5e4db0
--- /dev/null
+++ b/pages/login/login.json
@@ -0,0 +1,4 @@
+{
+ "defaultTitle" : "登录",
+ "allowsBounceVertical": "NO"
+}
\ No newline at end of file
diff --git a/pages/logs/logs.acss b/pages/logs/logs.acss
new file mode 100755
index 0000000..82ec05c
--- /dev/null
+++ b/pages/logs/logs.acss
@@ -0,0 +1,55 @@
+
+page{
+ background: #fafafa;
+}
+
+.logs-item{
+ padding: 20rpx 30rpx;
+ background: white;
+ position: relative;
+}
+
+.logs-item::before{
+ content: " ";
+ height: 1rpx;
+ left: 30rpx;
+ right: 0;
+ bottom: 0;
+ background: #ddd;
+}
+
+.logs-title{
+ position: relative;
+ font-weight: bold;
+ font-size: 30rpx;
+ padding-right: 170rpx;
+ line-height: 60rpx;
+}
+
+.logs-title text{
+ color: red;
+}
+
+.logs-state{
+ width: 150rpx;
+ position: absolute;
+ right: 0;
+ top:0;
+ line-height: 60rpx;
+ text-align: right;
+ color: #ff6600;
+}
+
+.logs-time,
+.logs-info{
+ color: gray;
+ line-height: 50rpx;
+ font-size: 28rpx;
+}
+
+/* 页面空 */
+.logs-null{
+ text-align: center;
+ color: gray;
+ font-size: 28rpx;
+}
diff --git a/pages/logs/logs.axml b/pages/logs/logs.axml
new file mode 100755
index 0000000..224941c
--- /dev/null
+++ b/pages/logs/logs.axml
@@ -0,0 +1,17 @@
+
+
+
+
+ 提现金额:{{item.price}}
+ {{item.status_text}}
+
+ {{item.name}}-{{item.mobile}}
+ 2020-01-05 20:20:00
+
+
+
+ 加载中...
+ 没有更多数据了~
+
+
+暂无提现记录
diff --git a/pages/logs/logs.js b/pages/logs/logs.js
new file mode 100755
index 0000000..d72aeca
--- /dev/null
+++ b/pages/logs/logs.js
@@ -0,0 +1,66 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {
+ logs : [],
+ page : {},
+ isLogin : false
+ },
+ onLoad() {
+ this.getLogs()
+ },
+
+ // 体现记录
+ getLogs(){
+ my.showLoading()
+ api.request({
+ url : "withdrawallogs",
+ header : {
+ "Authorization": app.globalData.token
+ }
+ }).then(res=>{
+ console.log(res)
+ this.setData({
+ logs : res.data.data,
+ page : res.data.page
+ })
+ my.hideLoading()
+ my.stopPullDownRefresh();
+ })
+ },
+
+ // 分页
+ onReachBottom(){
+ let atPage = this.data.page,
+ pageNub = this.data.page.current
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(atPage.has_more){
+ pageNub++
+ api.request({
+ url : "withdrawallogs",
+ header : {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ page: pageNub
+ }
+ }).then(res=>{
+ this.setData({
+ logs : res.data.data,
+ page : res.data.page
+ })
+ my.hideLoading()
+ })
+ }
+ },
+ // 下拉刷新
+ onPullDownRefresh(){
+ this.getLogs()
+ }
+});
diff --git a/pages/logs/logs.json b/pages/logs/logs.json
new file mode 100755
index 0000000..6f48033
--- /dev/null
+++ b/pages/logs/logs.json
@@ -0,0 +1,4 @@
+{
+ "defaultTitle" : "提现记录",
+ "pullRefresh": true
+}
\ No newline at end of file
diff --git a/pages/notice_date/notice_date.acss b/pages/notice_date/notice_date.acss
new file mode 100755
index 0000000..9460e17
--- /dev/null
+++ b/pages/notice_date/notice_date.acss
@@ -0,0 +1,17 @@
+
+.notice-title{
+ padding: 30rpx 30rpx 0 30rpx;
+ font-size: 40rpx;
+ font-weight: bold;
+ text-align: center;
+}
+
+.notice-content{
+ background: white;
+ padding: 0 30rpx;
+}
+
+.notice-content-richtext{
+ margin: 0;
+ padding: 0;
+}
diff --git a/pages/notice_date/notice_date.axml b/pages/notice_date/notice_date.axml
new file mode 100755
index 0000000..7fe2331
--- /dev/null
+++ b/pages/notice_date/notice_date.axml
@@ -0,0 +1,5 @@
+
+{{notice.title}}
+
+
+
diff --git a/pages/notice_date/notice_date.js b/pages/notice_date/notice_date.js
new file mode 100755
index 0000000..b919e58
--- /dev/null
+++ b/pages/notice_date/notice_date.js
@@ -0,0 +1,43 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+import parse from 'mini-html-parser2';
+
+Page({
+ data: {
+ id: "",
+ notice: {},
+ content: []
+ },
+ onLoad(e) {
+ this.setData({
+ id: e.id
+ })
+ my.showLoading();
+ this.getNotice()
+ },
+ getNotice() {
+ api.request({
+ url: "articles/" + this.data.id,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST"
+ }).then(res => {
+ this.setData({
+ notice : res.data
+ })
+
+ let html = res.data.content.replace(/\
{
+ if (!err) {
+ this.setData({
+ content : nodes
+ });
+ }
+ })
+ my.hideLoading();
+ })
+ }
+});
diff --git a/pages/notice_date/notice_date.json b/pages/notice_date/notice_date.json
new file mode 100755
index 0000000..42dfd07
--- /dev/null
+++ b/pages/notice_date/notice_date.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "通知公告"
+}
\ No newline at end of file
diff --git a/pages/nuclear/nuclear.acss b/pages/nuclear/nuclear.acss
new file mode 100755
index 0000000..53e1f32
--- /dev/null
+++ b/pages/nuclear/nuclear.acss
@@ -0,0 +1,371 @@
+
+.welfare-header{
+ padding: 30rpx;
+ background: #ed6e3a;
+ color: white;
+}
+
+.welfare-flex{
+ display: flex;
+ flex-wrap: wrap;
+ margin: 0 -10rpx;
+}
+
+.welfare-item{
+ width: 50%;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+}
+
+.welfare-item-text{
+ color: #ffbb99;
+ padding-bottom: 10rpx;
+}
+
+.welfare-item-icon{
+ background: white;
+ border-radius: 50%;
+ width: 38rpx;
+ height: 38rpx;
+ vertical-align: middle;
+ margin-right: 10rpx;
+}
+
+.welfare-item-number{
+ font-weight: bold;
+ font-size: 40rpx;
+}
+
+.welfare-stat{
+ display: flex;
+ background: white;
+ color: black;
+ border-radius: 6rpx;
+ padding: 20rpx;
+}
+
+.welfare-stat-item{
+ width: 40%;
+ padding: 0 10rpx;
+ border-right: solid 2rpx #c2c2c2;
+ text-align: center;
+}
+
+.welfare-stat-item:first-child{
+ width: 20%;
+ text-align: left;
+}
+
+.welfare-stat-item:last-child,
+.welfare-stat-item:first-child{
+ border-right: none;
+}
+
+.welfare-stat-text{
+ color: white;
+ font-size: 24rpx;
+}
+
+.welfare-stat-blue,
+.welfare-stat-orange,
+.welfare-stat-gray{
+ width: 130rpx;
+ line-height: 40rpx;
+ border-radius: 20rpx;
+ display: inline-block;
+}
+
+.welfare-stat-blue{
+ background: #318fef;
+}
+
+.welfare-stat-orange{
+ background: #ec712e;
+}
+
+.welfare-stat-gray{
+ background: #b5b5b5;
+}
+
+.welfare-stat-year{
+ line-height: 50rpx;
+}
+
+.welfare-stat-month{
+ line-height: 40rpx;
+ font-size: 32rpx;
+ font-weight: bold;
+}
+
+.welfare-stat-month image{
+ width: 15rpx;
+ margin-left: 5rpx;
+ vertical-align: middle;
+}
+
+.welfare-stat-year{
+ padding-top: 5rpx;
+ line-height: 40rpx;
+}
+
+.welfare-stat-number{
+ font-weight: bold;
+ font-size: 36rpx;
+ line-height: 50rpx;
+ padding-bottom: 6rpx;
+}
+
+/* 搜索框 */
+.welfare-search-form{
+ background: #f08d58;
+ height: 70rpx;
+ border-radius: 40rpx;
+ margin-top: 30rpx;
+ display: block;
+ position: relative;
+}
+
+.welfare-search-input{
+ width: 100%;
+ padding: 0 100rpx;
+ margin: 0;
+ height: 70rpx;
+ line-height: 70rpx;
+ background: transparent;
+ font-size: 30rpx;
+ box-sizing: border-box;
+ color: white;
+}
+
+.welfare-search-class{
+ width: 36rpx;
+ position: absolute;
+ top: 17rpx;
+ left: 25rpx;
+}
+
+.welfare-search-btn{
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 80rpx;
+ text-align: center;
+ padding: 0;
+ margin: 0;
+ height: 70rpx;
+ border-radius: 0 40rpx 40rpx 0;
+ background: transparent;
+ border: none;
+}
+
+.welfare-search-btn image{
+ width: 36rpx;
+ vertical-align: top;
+ margin-top: 14rpx;
+ margin-right: 10rpx;
+}
+
+.welfare-search-btn-hover{
+ background: #cc520f;
+}
+
+/* 筛选 */
+.welfare-search-flex{
+ display: flex;
+ border:solid 2rpx white;
+ border-radius: 6rpx;
+ margin-top: 30rpx;
+}
+
+.welfare-search-item{
+ flex: 1;
+ text-align: center;
+ border-right: solid 2rpx white;
+ line-height: 60rpx;
+ font-size: 30rpx;
+}
+
+.welfare-search-item:last-child{
+ border-right: none;
+}
+
+.welfare-search-item.show{
+ background: white;
+ color: #f08d58;
+}
+
+/* 列表 */
+
+.welfare-list,
+.welfare-list-null{
+ padding-bottom: 175rpx;
+}
+
+.welfare-list-item{
+ border-top: solid 20rpx #fafafa;
+ padding: 30rpx;
+}
+
+.welfare-list-name{
+ position: relative;
+ font-size: 30rpx;
+ font-weight: bold;
+ line-height: 50rpx;
+ padding-right: 230rpx;
+ padding-bottom: 20rpx;
+ border-bottom: solid 1rpx #ddd;
+}
+
+.welfare-list-stat{
+ position: absolute;
+ right: 0;
+ top: 0;
+ color: #ff6600;
+ width: 200rpx;
+ text-align: right;
+}
+
+.welfare-list-stat.green{
+ color: #00b578;
+}
+
+.welfare-list-tag{
+ color: white;
+ background: #ed6e3a;
+ margin-right: 10rpx;
+ border-radius: 6rpx;
+ padding: 0 15rpx;
+ font-size: 28rpx;
+}
+
+.welfare-list-info{
+ padding-top: 20rpx;
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -20rpx;
+}
+
+.welfare-list-info-item{
+ position: relative;
+ width: 100%;
+ color: gray;
+ line-height: 50rpx;
+ font-size: 28rpx;
+ padding-right: 20rpx;
+ padding-left: 50rpx;
+ min-height: 50%;
+ box-sizing: border-box;
+}
+
+.welfare-list-info-item-50{
+ width: 50%;
+}
+
+.welfare-list-info-item image{
+ position: absolute;
+ top: 9rpx;
+ left: 0;
+ width: 32rpx;
+ vertical-align: middle;
+ margin-right: 8rpx;
+}
+
+/* footer */
+.welfare-footer{
+ position: fixed;
+ display: flex;
+ bottom: 0;
+ left: 0;
+ background: white;
+ padding: 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+ justify-content: space-between;
+}
+
+.welfare-footer-nav{
+ width: calc(50% - 15rpx);
+ text-align: center;
+ background: #cf371f;
+}
+
+.welfare-footer-nav:last-child{
+ background: #ed6e3a;
+}
+
+/* 空提示 */
+.welfare-list-null{
+ text-align: center;
+ color: gray;
+ padding: 200rpx 0;
+}
+
+.welfare-list-null-title{
+ font-weight: bold;
+ font-size: 30rpx;
+ color: black;
+ padding-bottom: 10rpx;
+}
+
+.welfare-list-null image{
+ width: 88rpx;
+ margin-bottom: 20rpx;
+}
+
+/* 价格弹出 */
+.price-lay{
+ background: rgba(0, 0, 0, .5);
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-pack: center;
+ position: fixed;
+ left: 0;
+ top: 0;
+ height: 100vh;
+ width: 100vw;
+ z-index: 99;
+}
+
+.price-lay-form{
+ background: white;
+ padding: 30rpx;
+ width: 80vw;
+ margin: 0 10vw;
+ border-radius: 10rpx;
+ box-sizing: border-box;
+}
+
+.price-lay-title{
+ font-weight: bold;
+ font-size: 36rpx;
+ line-height: 70rpx;
+ text-align: center;
+}
+
+.price-lay-input{
+ background: #fafafa;
+ height: 90rpx;
+ border-radius: 10rpx;
+ margin: 30rpx 0;
+ text-align: center;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.price-lay-btn{
+ background: #ed6e3a;
+ border: none;
+ font-size: 32rpx;
+ color: white;
+ height: 90rpx;
+ line-height: 90rpx;
+ padding: 0;
+ font-weight: bold;
+}
+
+.price-lay-remove{
+ margin-top: 30rpx;
+ line-height: 80rpx;
+ color: gray;
+ text-align: center;
+}
diff --git a/pages/nuclear/nuclear.axml b/pages/nuclear/nuclear.axml
new file mode 100755
index 0000000..9a72971
--- /dev/null
+++ b/pages/nuclear/nuclear.axml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+ {{item.nickname}}
+ {{item.status_text}}
+
+
+
+ {{item.name || "-"}}
+
+
+ {{item.no}}
+
+
+ {{item.remark}}
+
+
+ 满减券
+
+
+ 实物券
+
+
+ {{item.created_at || '-'}}
+
+
+
+
+ 加载中...
+ 没有更多数据了~
+
+
+
+
+ 当前暂无核销记录
+ 什么都还没有~
+
+
\ No newline at end of file
diff --git a/pages/nuclear/nuclear.js b/pages/nuclear/nuclear.js
new file mode 100755
index 0000000..4cd2d88
--- /dev/null
+++ b/pages/nuclear/nuclear.js
@@ -0,0 +1,300 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {
+ listArr : [],
+ identity_id : "",
+ permissions : false,
+ year : "",
+ month : "",
+ searchIndex : 0,
+ typeArr : [
+ {id: "" , name:"全部"},
+ {id: 1 , name:"核销成功"},
+ {id: 2 , name:"核销失败"}
+ ],
+ typeIndex : 0,
+ all_count : '',
+ today_count : '',
+ endDate : '',
+ isNowMonth : false,
+ page : 1,
+ meta : {},
+ isLogin : false,
+ isLay : false,
+ type : "", //券类型 1满减 2实物
+ },
+
+ // 页面加载
+ onLoad() {
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ identity_id: app.globalData.userInfo.identity_id,
+ permissions: app.globalData.userInfo.perferential,
+ year : year,
+ month : month,
+ endDate : year + "-" + month
+ })
+ },
+
+ // 页面显示
+ onShow(){
+ this.setData({
+ listArr: []
+ })
+ this.welfareList()
+ my.showLoading();
+ my.showNavigationBarLoading();
+ },
+
+ // 列表
+ welfareList(tel){
+ let url = "coupon/lists",
+ dateYear = this.data.year + '-' + this.data.month
+
+ if(this.data.searchIndex == 1){
+ dateYear = "today"
+ } else if(this.data.searchIndex == 2){
+ dateYear = "yesterday"
+ }
+
+ api.request({
+ url : url,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ data : {
+ date : dateYear,
+ mobile : tel || "",
+ status : this.data.typeArr[this.data.typeIndex].id,
+ settle : "",
+ page : this.data.page
+ }
+ }).then(res=>{
+ let atArr = this.data.listArr,
+ newArr = []
+
+ newArr = atArr.concat(res.data.lists.data)
+
+ this.setData({
+ listArr : newArr,
+ all_count : res.data.all_count,
+ today_count : res.data.today_count,
+ isNowMonth : res.data.isNowMonth,
+ page : res.data.lists.page
+ })
+ my.hideLoading();
+ my.stopPullDownRefresh();
+ my.hideNavigationBarLoading();
+ })
+ },
+
+ // 选择日期
+ selectTime(){
+ my.datePicker({
+ currentDate : this.data.year + "-" + this.data.month,
+ endDate : this.data.endDate,
+ format : "yyyy-MM",
+ success : res=>{
+ let dateString = String(res.date),
+ yearString = dateString.substring(0,4),
+ monthString = dateString.substring(5,7)
+
+ this.setData({
+ year : yearString,
+ month : monthString,
+ page : 1,
+ listArr: []
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ })
+ },
+
+ // 筛选日期
+ searchTab(e){
+ this.setData({
+ page : 1,
+ listArr : []
+ })
+
+ if(e.target.dataset.index != this.data.searchIndex){
+ this.setData({
+ searchIndex: e.target.dataset.index
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+
+ if(e.target.dataset.index == 0 && !this.data.isNowMonth){
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ year : year,
+ month : month
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+
+ // 类型筛选
+ screenClass(e){
+ this.setData({
+ typeIndex: e.detail.value,
+ page : 1,
+ listArr : []
+ })
+ this.welfareList()
+ my.showLoading();
+ },
+
+ // 搜索手机号码
+ searchForm(e){
+ this.setData({
+ page : 1,
+ listArr : []
+ })
+
+ let tel = e.detail.value.searchValue
+ this.welfareList(tel)
+ },
+
+ // 分页
+ onReachBottom(){
+ let meta = this.data.meta,
+ atPage = this.data.page
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(meta.current_page < meta.last_page){
+ this.setData({
+ page: atPage + 1
+ })
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+ // 下拉刷新
+ onPullDownRefresh(){
+ this.setData({
+ listArr : []
+ })
+ this.welfareList()
+ },
+ //弹出价格
+ onLay(){
+ this.setData({
+ isLay: !this.data.isLay
+ })
+ },
+
+ //扫码选项
+ onMelt(e){
+ my.showActionSheet({
+ items : ["实物券核销","满减券核销"],
+ success : res=>{
+ if(e.currentTarget.dataset.type == "nav"){
+ if(res.index == 0 || res.index == 1){
+ my.navigateTo({
+ url: '../nuclear_code/nuclear_code?type=' + res.index
+ });
+ }
+ }else{
+ if(res.index == 0){
+ this.qrcodeScan("", "entity")
+ this.type = 2
+ }else if(res.index == 1){
+ this.onLay()
+ this.type = 1
+ }
+ }
+ }
+ });
+ },
+
+ //扫码核销
+ qrcodeScan(e, type){
+ let price = e.detail ? e.detail.value.price : 0
+ if(price == "" && type != "entity"){
+ my.showToast({
+ type : "none",
+ content : "请输入消费金额~"
+ })
+ return
+ }
+
+ my.scan({
+ scanType : "qrCode",
+ hideAlbum : true,
+ success : res=>{
+ let code_no = res.code
+ if(code_no){
+ my.showLoading({
+ content: "加载中"
+ })
+ api.request({
+ url : "coupon/scan",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ data : {
+ no : code_no,
+ total : price,
+ type : this.type, //1满减 2实物
+ }
+ }).then(res=>{
+ my.hideLoading()
+
+ console.log(res)
+ my.alert({
+ title : "提示",
+ content : res.data,
+ success : res=>{
+ my.showLoading()
+ console.log(res)
+ this.setData({
+ page: 1,
+ listArr: []
+ })
+ this.welfareList()
+ }
+ })
+ }).catch(err=>{
+ my.hideLoading()
+ my.showToast({
+ type : "fail",
+ content : err.data.message
+ })
+ })
+ }
+ }
+ });
+ if(this.data.isLay) this.onLay()
+ }
+});
diff --git a/pages/nuclear/nuclear.json b/pages/nuclear/nuclear.json
new file mode 100755
index 0000000..2672930
--- /dev/null
+++ b/pages/nuclear/nuclear.json
@@ -0,0 +1,5 @@
+{
+ "defaultTitle" : "平安核销券",
+ "titleBarColor": "#ed6e3a",
+ "pullRefresh": true
+}
\ No newline at end of file
diff --git a/pages/nuclear_code/nuclear_code.acss b/pages/nuclear_code/nuclear_code.acss
new file mode 100755
index 0000000..d616b39
--- /dev/null
+++ b/pages/nuclear_code/nuclear_code.acss
@@ -0,0 +1,30 @@
+
+.nuclear-tiet{
+ color: gray;
+ padding: 30rpx 30rpx 20rpx 30rpx;
+ font-size: 28rpx;
+}
+
+.nuclear-btns{
+ padding: 30rpx;
+}
+
+.nuclear-btn{
+ background: #ed6e3a;
+}
+
+.nuclear-input{
+ padding: 0 30rpx;
+}
+
+.nuclear-input input{
+ height: 90rpx;
+ line-height: 90rpx;
+ width: 100%;
+ font-size: 32rpx;
+}
+
+.nuclear-input:nth-child(odd) input{
+ border-bottom: solid 1rpx #ddd;
+}
+
diff --git a/pages/nuclear_code/nuclear_code.axml b/pages/nuclear_code/nuclear_code.axml
new file mode 100755
index 0000000..2c10547
--- /dev/null
+++ b/pages/nuclear_code/nuclear_code.axml
@@ -0,0 +1,13 @@
+
+
+
\ No newline at end of file
diff --git a/pages/nuclear_code/nuclear_code.js b/pages/nuclear_code/nuclear_code.js
new file mode 100755
index 0000000..1bf4b61
--- /dev/null
+++ b/pages/nuclear_code/nuclear_code.js
@@ -0,0 +1,63 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {
+ codeType: ""
+ },
+ onLoad(e) {
+ this.setData({
+ codeType: e.type || ""
+ })
+ },
+ //核销
+ qrcodeScan(e){
+ if(this.data.codeType == 1){
+ if(e.detail.value.price == "" || e.detail.value.no == ""){
+ my.showToast({
+ type : "none",
+ content : "消费金额与优惠券码不能为空~"
+ })
+ return
+ }
+ }else if(this.data.codeType == 0 && e.detail.value.no == ""){
+ my.showToast({
+ type : "none",
+ content : "优惠券码不能为空~"
+ })
+ return
+ }
+ my.showLoading({
+ content: "加载中"
+ })
+
+ api.request({
+ url : "coupon/scan",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ data : {
+ no : e.detail.value.no,
+ total : e.detail.value.price || 0,
+ type : this.data.codeType == 0 ? 2 : 1 //1满减 2实物
+ }
+ }).then(res=>{
+ my.hideLoading()
+ my.alert({
+ title : "提示",
+ content : res.data,
+ success : res=>{
+ my.navigateBack();
+ }
+ })
+ }).catch(err=>{
+ my.hideLoading()
+ my.showToast({
+ type : "fail",
+ content : err.data.message
+ })
+ })
+ }
+});
diff --git a/pages/nuclear_code/nuclear_code.json b/pages/nuclear_code/nuclear_code.json
new file mode 100755
index 0000000..f695417
--- /dev/null
+++ b/pages/nuclear_code/nuclear_code.json
@@ -0,0 +1,4 @@
+{
+ "defaultTitle" : "平安券串码",
+ "titleBarColor": "#ed6e3a"
+}
\ No newline at end of file
diff --git a/pages/order/order.acss b/pages/order/order.acss
new file mode 100755
index 0000000..e2d4640
--- /dev/null
+++ b/pages/order/order.acss
@@ -0,0 +1,88 @@
+
+page{
+ background: #fafafa;
+ box-sizing: border-box;
+}
+
+.order-item{
+ border-top: solid 20rpx #fafafa;
+ padding: 30rpx;
+ background: white;
+}
+
+.order-item-header{
+ position: relative;
+ padding-bottom: 30rpx;
+ display: flex;
+ color: gray;
+ line-height: 50rpx;
+}
+
+.order-item-state{
+ position: absolute;
+ right: 0;
+ top: 0;
+ color: #ff6600;
+}
+
+/* 内容 */
+.order-item-content{
+ position: relative;
+ min-height: 148rpx;
+ padding-left: 168rpx;
+ padding-right: 180rpx;
+}
+
+.order-item-cover{
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 148rpx;
+ width: 148rpx;
+ border:solid 1rpx #ddd;
+}
+
+.order-item-text-title{
+ font-weight: bold;
+ padding-bottom: 20rpx;
+ font-size: 32rpx;
+}
+
+.order-item-text-info,
+.order-item-text-time{
+ color: gray;
+}
+
+.order-item-text-time{
+ padding-top: 20rpx;
+}
+
+.order-item-text-price{
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 160rpx;
+ text-align: right;
+ color: gray;
+ font-weight: bold;
+ font-size: 32rpx;
+}
+
+.order-item-footer{
+ text-align: right;
+ padding-top: 30rpx;
+}
+
+.order-item-btn{
+ display: inline-block;
+ color: #ff6600;
+ border:solid 1rpx #ddd;
+ height: 60rpx;
+ line-height: 56rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+}
+
+.order-item-btn-hover{
+ background: rgba(0, 0, 0, .05)
+}
diff --git a/pages/order/order.axml b/pages/order/order.axml
new file mode 100755
index 0000000..0158592
--- /dev/null
+++ b/pages/order/order.axml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ {{item.item.title}}
+ {{item.item.paramTitle}}
+ {{item.created_at}}
+ ¥{{item.item.price}}
+
+
+
+
+
+ 加载中...
+ 没有更多数据了~
+
diff --git a/pages/order/order.js b/pages/order/order.js
new file mode 100755
index 0000000..be451d7
--- /dev/null
+++ b/pages/order/order.js
@@ -0,0 +1,71 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {
+ orderArr : [],
+ identity_id : "",
+ page : 1,
+ meta : {},
+ isLogin : false
+ },
+ onLoad() {
+ this.setData({
+ identity_id: app.globalData.userInfo.identity_id
+ })
+ my.showLoading();
+ },
+
+ onShow(){
+ this.order()
+ my.showNavigationBarLoading();
+ },
+
+ order(){
+ let url = "order/lists"
+
+ if(this.data.identity_id == 2){
+ url = "order/stores"
+ }
+
+ api.request({
+ url : url,
+ header : {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ page: this.data.page
+ }
+ }).then(res => {
+ let atArr = this.data.orderArr,
+ newArr = []
+
+ newArr = atArr.concat(res.data)
+
+ this.setData({
+ orderArr: newArr,
+ meta : res.meta,
+ isLogin : false
+ })
+ my.hideNavigationBarLoading();
+ my.hideLoading();
+ })
+ },
+ // 分页
+ onReachBottom(){
+ let meta = this.data.meta,
+ atPage = this.data.page
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(meta.current_page < meta.last_page){
+ this.setData({
+ page: atPage + 1
+ })
+ this.order()
+ }
+ }
+});
diff --git a/pages/order/order.json b/pages/order/order.json
new file mode 100755
index 0000000..502c4f4
--- /dev/null
+++ b/pages/order/order.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle": "我的订单"
+}
\ No newline at end of file
diff --git a/pages/payCode/payCode.acss b/pages/payCode/payCode.acss
new file mode 100755
index 0000000..966dbc8
--- /dev/null
+++ b/pages/payCode/payCode.acss
@@ -0,0 +1,49 @@
+
+.pack-code{
+ text-align: center;
+ background: #ed6a2d url(../../lib/img/code_back.png) no-repeat;
+ background-size: 100%;
+}
+
+.code{
+ background: white;
+ margin: 0 50rpx;
+ border-radius: 10rpx;
+}
+
+.price-installment{
+ position: relative;
+ border-top: dashed 1rpx #eee;
+ padding: 50rpx 30rpx;
+ color: gray;
+}
+
+.price-installment::before,
+.price-installment::after{
+ content: " ";
+ position: absolute;
+ top: -12rpx;
+ height: 25rpx;
+ width: 25rpx;
+ background: #ed6a2d;
+ border-radius: 50%;
+}
+
+.price-installment::before{
+ left: -13rpx;
+}
+
+.price-installment::after{
+ right: -13rpx;
+}
+
+.code-img{
+ padding: 30rpx;
+}
+
+.code-price{
+ padding: 30rpx 0;
+ font-size: 45rpx;
+ color: #ed6a2d;
+ font-weight: bold;
+}
diff --git a/pages/payCode/payCode.axml b/pages/payCode/payCode.axml
new file mode 100755
index 0000000..c608692
--- /dev/null
+++ b/pages/payCode/payCode.axml
@@ -0,0 +1,9 @@
+
+
+
+
+ ¥{{total}}
+
+ 请使用支付宝扫码支付
+
+
\ No newline at end of file
diff --git a/pages/payCode/payCode.js b/pages/payCode/payCode.js
new file mode 100755
index 0000000..76b5770
--- /dev/null
+++ b/pages/payCode/payCode.js
@@ -0,0 +1,101 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {
+ codeBase : "",
+ atOrderId: "",
+ phase : "0.00",
+ total : "0.00",
+ every : "0.00",
+ type : ""
+ },
+ onLoad(e) {
+ my.showLoading();
+ if(e.orderid){
+ this.setData({
+ atOrderId: e.orderid,
+ type : e.paytype || ""
+ })
+ }
+
+ let url = "pay/order"
+
+ if(e.paytype == "gasPay"){
+ url = "gas/pay"
+ }else if(e.paytype == "installment"){
+ url = "installment/pay"
+ }else if(e.paytype == "icePay"){
+ url = "preferential/payment"
+ }
+
+ api.request({
+ url : url,
+ header : {
+ "Authorization": app.globalData.token
+ },
+ method : 'POST',
+ data : {
+ orderid : e.orderid
+ }
+ }).then(res=>{
+ let every = res.data.total / res.data.phase
+
+ this.setData({
+ codeBase: "data:image/png;base64," + res.data.qr_base,
+ phase : res.data.phase,
+ total : res.data.total,
+ every : every.toFixed(2)
+ })
+
+ // 打开Socket
+ this.openSocket()
+ my.hideLoading();
+ }).catch(err=>{
+ my.showToast({
+ content: err.data.message
+ })
+ my.hideLoading
+ })
+ },
+
+ // Socket
+ openSocket(){
+ my.connectSocket({
+ url : 'wss://www.ysd-bs.com/wss'
+ })
+
+ my.onSocketOpen(res=> {
+ console.log("建立链接")
+ });
+
+ my.onSocketError(res=>{
+ my.showToast({
+ content: "连接服务器失败"
+ });
+ });
+
+ my.onSocketMessage(res=> {
+ let dataType = JSON.parse(res.data)
+
+ if(dataType.type == 'connect'){
+ let dataInfo = JSON.stringify({'type':'BIND','data':{'user_id': app.globalData.userInfo.user_id}})
+ my.sendSocketMessage({
+ data : dataInfo
+ });
+ }else if(dataType.type == 'paysuccess'){
+ if(dataType.order_id == this.data.atOrderId){
+ my.redirectTo({
+ url: "../results/results"
+ })
+ }
+ }
+ })
+ },
+
+ // 离开页面
+ onUnload(){
+ my.closeSocket()
+ }
+});
diff --git a/pages/payCode/payCode.json b/pages/payCode/payCode.json
new file mode 100755
index 0000000..ec6edcf
--- /dev/null
+++ b/pages/payCode/payCode.json
@@ -0,0 +1,5 @@
+{
+ "defaultTitle" : "支付码",
+ "transparentTitle": "always",
+ "titleBarColor": "#ec6a2c"
+}
\ No newline at end of file
diff --git a/pages/refund/refund.acss b/pages/refund/refund.acss
new file mode 100755
index 0000000..0ca6f13
--- /dev/null
+++ b/pages/refund/refund.acss
@@ -0,0 +1,49 @@
+
+page{
+ background: #fafafa;
+}
+
+.form{
+ background: white;
+ display: block;
+ padding: 30rpx;
+ margin-top: 20rpx;
+}
+
+.form-title{
+ padding-bottom: 30rpx;
+ font-size: 30rpx;
+}
+
+.form-textarea{
+ padding-left: 0;
+ padding-right: 0;
+ font-size: 30rpx;
+ height: 300rpx;
+}
+
+/* 退款商品 */
+
+.refund-title{
+ margin-top: 30rpx;
+ padding: 0 30rpx 0 230rpx;
+ text-align: right;
+ position: relative;
+ height: 90rpx;
+ line-height: 90rpx;
+ color: gray;
+ font-size: 30rpx;
+ background: white;
+}
+
+.refund-title-label{
+ text-align: left;
+ position: absolute;
+ left: 30rpx;
+ top: 0;
+ line-height: 90rpx;
+ height: 90rpx;
+ color: black;
+}
+
+
diff --git a/pages/refund/refund.axml b/pages/refund/refund.axml
new file mode 100755
index 0000000..cd1a468
--- /dev/null
+++ b/pages/refund/refund.axml
@@ -0,0 +1,12 @@
+
+
+
+ {{refundName}}
+
+
+
+
diff --git a/pages/refund/refund.js b/pages/refund/refund.js
new file mode 100755
index 0000000..1d2a2ad
--- /dev/null
+++ b/pages/refund/refund.js
@@ -0,0 +1,47 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {
+ orderId : "",
+ refundName: ""
+ },
+ onLoad(e) {
+ this.setData({
+ orderId : e.id,
+ refundName: e.name
+ })
+ },
+ refundForm(e){
+ my.showLoading();
+ api.request({
+ url : "refund/order",
+ header : {
+ "Authorization": app.globalData.token
+ },
+ method : "POST",
+ data : {
+ order_id: this.data.orderId,
+ remark : e.detail.value.refund
+ }
+ }).then(res => {
+ my.alert({
+ title : "提示",
+ content : res.data,
+ success : ()=>{
+ my.navigateBack({
+ delta: 1
+ });
+ }
+ });
+ my.hideLoading();
+ }).catch(err=>{
+ my.showToast({
+ content: err.data.message,
+ type : 'none'
+ });
+ my.hideLoading();
+ })
+ }
+});
diff --git a/pages/refund/refund.json b/pages/refund/refund.json
new file mode 100755
index 0000000..e87365c
--- /dev/null
+++ b/pages/refund/refund.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle": "申请退款"
+}
\ No newline at end of file
diff --git a/pages/refund_record/refund_record.acss b/pages/refund_record/refund_record.acss
new file mode 100755
index 0000000..981c934
--- /dev/null
+++ b/pages/refund_record/refund_record.acss
@@ -0,0 +1,62 @@
+
+page{
+ background: #fafafa;
+}
+
+.order-item{
+ border-top: solid 20rpx #fafafa;
+ padding: 30rpx;
+ background: white;
+}
+
+/* 内容 */
+.order-item-content{
+ position: relative;
+ min-height: 148rpx;
+ padding-left: 168rpx;
+ padding-right: 200rpx;
+}
+
+.order-item-cover{
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 148rpx;
+ width: 148rpx;
+ border:solid 1rpx #ddd;
+}
+
+.order-item-text-title{
+ font-weight: bold;
+ padding-bottom: 20rpx;
+ font-size: 32rpx;
+}
+
+.order-item-text-info,
+.order-item-text-time{
+ color: gray;
+}
+
+.order-item-text-time{
+ padding-top: 20rpx;
+}
+
+.order-item-text-price{
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 180rpx;
+ text-align: right;
+ color: #ff6600;
+ font-weight: bold;
+ font-size: 32rpx;
+}
+
+/* 退款金额 */
+.order-item-refund-info{
+ background: #fafafa;
+ margin-top: 30rpx;
+ line-height: 70rpx;
+ padding: 0 30rpx;
+ color: gray;
+}
diff --git a/pages/refund_record/refund_record.axml b/pages/refund_record/refund_record.axml
new file mode 100755
index 0000000..02f803a
--- /dev/null
+++ b/pages/refund_record/refund_record.axml
@@ -0,0 +1,15 @@
+
+
+
+ {{item.orders.item.title}}
+ 退款原因:{{item.remark}}
+ {{item.created_at}}
+ {{item.status_text}}
+
+ 退款成功,退款金额¥{{item.orders.amount}}
+
+
+
+ 加载中...
+ 没有更多数据了~
+
diff --git a/pages/refund_record/refund_record.js b/pages/refund_record/refund_record.js
new file mode 100755
index 0000000..a11df00
--- /dev/null
+++ b/pages/refund_record/refund_record.js
@@ -0,0 +1,62 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {
+ orderArr : [],
+ page : 1,
+ meta : {},
+ isLogin : false
+ },
+ onLoad() {
+ my.showLoading();
+ },
+
+ onShow(){
+ this.order()
+ my.showNavigationBarLoading();
+ },
+
+ order(){
+ api.request({
+ url : "refund/lists",
+ header : {
+ "Authorization": app.globalData.token
+ },
+ method : "POST",
+ data : {
+ page: this.data.page
+ }
+ }).then(res => {
+ let atArr = this.data.orderArr,
+ newArr = []
+
+ newArr = atArr.concat(res.data)
+
+ this.setData({
+ orderArr: newArr,
+ meta : res.meta,
+ isLogin : false
+ })
+ my.hideNavigationBarLoading();
+ my.hideLoading();
+ })
+ },
+ // 分页
+ onReachBottom(){
+ let meta = this.data.meta,
+ atPage = this.data.page
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(meta.current_page < meta.last_page){
+ this.setData({
+ page: atPage + 1
+ })
+ this.order()
+ }
+ }
+});
diff --git a/pages/refund_record/refund_record.json b/pages/refund_record/refund_record.json
new file mode 100755
index 0000000..3e46174
--- /dev/null
+++ b/pages/refund_record/refund_record.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle": "退款记录"
+}
\ No newline at end of file
diff --git a/pages/results/results.acss b/pages/results/results.acss
new file mode 100755
index 0000000..5cf108d
--- /dev/null
+++ b/pages/results/results.acss
@@ -0,0 +1,28 @@
+
+.pay-results{
+ text-align: center;
+ background: white;
+ z-index: 1;
+}
+
+.pay-results-title{
+ font-size: 40rpx;
+ font-weight: bold;
+ margin-top: 60rpx;
+}
+
+.pay-results-btns{
+ padding: 30rpx;
+ margin-top: 200rpx;
+}
+
+.pay-results-btns button {
+ background: #fe8647;
+ border-radius: 10rpx;
+ width: 100%;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 32rpx;
+ border: none;
+ color: white;
+}
diff --git a/pages/results/results.axml b/pages/results/results.axml
new file mode 100755
index 0000000..3365676
--- /dev/null
+++ b/pages/results/results.axml
@@ -0,0 +1,7 @@
+
+
+ 支付成功
+
+
+
+
\ No newline at end of file
diff --git a/pages/results/results.js b/pages/results/results.js
new file mode 100755
index 0000000..b449e1b
--- /dev/null
+++ b/pages/results/results.js
@@ -0,0 +1,8 @@
+Page({
+ data: {},
+ onLoad() {},
+ // 后退
+ navigateBack(){
+ my.navigateBack()
+ }
+});
diff --git a/pages/results/results.json b/pages/results/results.json
new file mode 100755
index 0000000..ba02803
--- /dev/null
+++ b/pages/results/results.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "支付结果"
+}
\ No newline at end of file
diff --git a/pages/set/set.acss b/pages/set/set.acss
new file mode 100755
index 0000000..83bfddd
--- /dev/null
+++ b/pages/set/set.acss
@@ -0,0 +1,40 @@
+
+page{
+ background: #fafafa;
+}
+
+.set-blcok{
+ border-top: solid 20rpx #fafafa;
+ background: white;
+}
+
+.set-btn{
+ height: 90rpx;
+ line-height: 90rpx;
+ position: relative;
+ padding: 0 30rpx;
+ font-size: 30rpx;
+}
+
+.set-btn-arrows{
+ position: absolute;
+ right: 30rpx;
+ top: calc(50% - 16rpx);
+ width: 32rpx;
+ height: 32rpx;
+}
+
+.set-btn::before{
+ position: absolute;
+ content: " ";
+ left: 30rpx;
+ bottom: 0;
+ right: 0;
+ height: 1rpx;
+ background: #ddd;
+}
+
+
+.set-btn:last-child::before{
+ display: none;
+}
diff --git a/pages/set/set.axml b/pages/set/set.axml
new file mode 100755
index 0000000..4a406e6
--- /dev/null
+++ b/pages/set/set.axml
@@ -0,0 +1,11 @@
+
+
+
+ 修改密码
+
+
+
+ 退出登录
+
+
+
diff --git a/pages/set/set.js b/pages/set/set.js
new file mode 100755
index 0000000..c2a1e9c
--- /dev/null
+++ b/pages/set/set.js
@@ -0,0 +1,18 @@
+Page({
+ outLogin(){
+ my.showLoading({
+ content: "退出登录"
+ });
+ my.removeStorage({
+ key : 'userToken',
+ success : (res)=> {
+ if(res.success){
+ my.reLaunch({
+ url: "../login/login"
+ })
+ }
+ my.hideLoading();
+ }
+ })
+ }
+});
diff --git a/pages/set/set.json b/pages/set/set.json
new file mode 100755
index 0000000..2a32559
--- /dev/null
+++ b/pages/set/set.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle": "设置"
+}
\ No newline at end of file
diff --git a/pages/set_meal/set_meal.acss b/pages/set_meal/set_meal.acss
new file mode 100755
index 0000000..b2ad461
--- /dev/null
+++ b/pages/set_meal/set_meal.acss
@@ -0,0 +1,93 @@
+
+/* banner */
+.banner{
+ padding-top: 50%;
+ width: 100%;
+ background: #ddd;
+ position: relative;
+}
+
+.banner-swiper{
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ top: 0;
+ left: 0;
+}
+
+.banner-swiper-img{
+ width: 100%;
+ height: 100%;
+}
+
+/* 列表 */
+.meal-title{
+ padding: 30rpx;
+ font-size: 36rpx;
+ font-weight: bold;
+}
+
+.meal-list{
+ padding: 25rpx 30rpx 25rpx 198rpx;
+ position: relative;
+ min-height: 148rpx;
+}
+
+.meal-list::before{
+ position: absolute;
+ content: " ";
+ height: 1rpx;
+ left: 30rpx;
+ right: 30rpx;
+ bottom: 0;
+ background: #ddd;
+}
+
+.meal-list:last-child::before{
+ display: none;
+}
+
+.meal-list-hover{
+ background: rgba(0, 0, 0, .05)
+}
+
+.meal-list-cover{
+ position: absolute;
+ left: 30rpx;
+ top: 20rpx;
+ width: 148rpx;
+ height: 148rpx;
+ background: #ddd;
+}
+
+.meal-list-title{
+ font-weight: bold;
+ font-size: 32rpx;
+}
+
+.meal-list-desc{
+ color: gray;
+}
+
+.meal-list-picer{
+ font-weight: bold;
+ font-size: 34rpx;
+ color: #ff6600;
+ padding: 15rpx 0;
+}
+
+.meal-list-picer text{
+ font-size: 28rpx;
+}
+
+.meal-list-tab{
+ margin-left: -10rpx;
+}
+
+.meal-list-tab text{
+ margin-left: 10rpx;
+ color: gray;
+ border:solid 1rpx #ddd;
+ font-size: 26rpx;
+ padding: 0 10rpx;
+}
diff --git a/pages/set_meal/set_meal.axml b/pages/set_meal/set_meal.axml
new file mode 100755
index 0000000..c9e472a
--- /dev/null
+++ b/pages/set_meal/set_meal.axml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+套餐资费
+
+
+
+ {{item.title}}
+ {{item.price}}元
+
+ {{item.tc}}套餐
+ {{item.phase}}期
+
+
+
+
+
+ 加载中...
+ 没有更多数据了~
+
diff --git a/pages/set_meal/set_meal.js b/pages/set_meal/set_meal.js
new file mode 100755
index 0000000..4a2c3b7
--- /dev/null
+++ b/pages/set_meal/set_meal.js
@@ -0,0 +1,62 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {
+ mealArr: [],
+ page : 1,
+ meta : {},
+ isLogin: false
+ },
+ onLoad() {
+ my.showLoading();
+ this.getList()
+ },
+ // 隐藏返回首页按钮
+ onReady() {
+ if (my.canIUse('hideBackHome')) {
+ my.hideBackHome();
+ }
+ },
+ getList(){
+ api.request({
+ url : "goods/lists",
+ method : "POST",
+ header : {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ page: this.data.page
+ }
+ }).then(res=>{
+ let atArr = this.data.mealArr,
+ newArr = []
+
+ newArr = atArr.concat(res.data)
+
+ this.setData({
+ mealArr : newArr,
+ meta : res.meta,
+ isLogin : false
+ })
+ my.hideLoading()
+ })
+ },
+ // 分页
+ onReachBottom(){
+ let meta = this.data.meta,
+ atPage = this.data.page
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(meta.current_page < meta.last_page){
+ this.setData({
+ page: atPage + 1
+ })
+ this.getList()
+ }
+ }
+});
diff --git a/pages/set_meal/set_meal.json b/pages/set_meal/set_meal.json
new file mode 100755
index 0000000..b32d74b
--- /dev/null
+++ b/pages/set_meal/set_meal.json
@@ -0,0 +1,4 @@
+{
+ "defaultTitle" : " ",
+ "transparentTitle" : "auto"
+}
\ No newline at end of file
diff --git a/pages/shop_user/shop_user.acss b/pages/shop_user/shop_user.acss
new file mode 100755
index 0000000..f945504
--- /dev/null
+++ b/pages/shop_user/shop_user.acss
@@ -0,0 +1,83 @@
+
+page{
+ background: #fafafa;
+}
+
+.shop-user-header{
+ background: white;
+ padding: 10rpx 30rpx;
+ display: flex;
+ justify-content: space-between;
+ line-height: 90rpx;
+ color: gray;
+}
+
+.shop-user-header-add{
+ color: black;
+ font-size: 30rpx;
+ color: #ff6600;
+ padding: 0 20rpx;
+}
+
+.shop-user-header-add image{
+ width: 36rpx;
+ height: 36rpx;
+ vertical-align: middle;
+ margin-right: 5rpx;
+ margin-bottom: 3rpx;
+}
+
+/* 列表 */
+.shop-user-list{
+ background: white;
+ margin-top: 20rpx;
+}
+
+.shop-user-item{
+ position: relative;
+ padding: 25rpx 180rpx 25rpx 30rpx;
+}
+
+.shop-user-item::before{
+ position: absolute;
+ left: 30rpx;
+ right: 0;
+ bottom: 0;
+ height: 1rpx;
+ content: " ";
+ background: #ddd;
+}
+
+.shop-user-item:last-child::before{
+ display: none;
+}
+
+.shop-user-name{
+ font-weight: bold;
+ font-size: 32rpx;
+}
+
+.shop-user-phone{
+ color: gray;
+ padding-top: 10rpx;
+}
+
+.shop-user-btn{
+ position: absolute;
+ right: 30rpx;
+ top: calc(50% - 30rpx);
+ height: 60rpx;
+ line-height: 60rpx;
+ border:solid 2rpx #ff6600;
+ width: 120rpx;
+ box-sizing: border-box;
+ text-align: center;
+ color: #ff6600;
+}
+
+/* 暂无店员 */
+.shop-user-null{
+ text-align: center;
+ padding-top: 40vh;
+ color: gray;
+}
diff --git a/pages/shop_user/shop_user.axml b/pages/shop_user/shop_user.axml
new file mode 100755
index 0000000..6e7d7b6
--- /dev/null
+++ b/pages/shop_user/shop_user.axml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ {{item.nickname}}
+ {{item.username}}
+ 删除
+
+
+
+暂无店员
+
+
+ 加载中...
+ 没有更多数据了~
+
+
+
diff --git a/pages/shop_user/shop_user.js b/pages/shop_user/shop_user.js
new file mode 100755
index 0000000..2a7b544
--- /dev/null
+++ b/pages/shop_user/shop_user.js
@@ -0,0 +1,111 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {
+ page : 1,
+ userList: [],
+ count : 0,
+ meta : {},
+ isLogin : false
+ },
+ onLoad() {
+ my.showLoading();
+ },
+ // 页面显示
+ onShow() {
+ my.showNavigationBarLoading();
+ this.setData({
+ userList: []
+ })
+ this.getShopuser()
+ },
+ // 店员列表
+ getShopuser(){
+ api.request({
+ url : "users/userList",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ page: this.data.page
+ }
+ }).then(res=>{
+
+ let atArr = this.data.userList,
+ newArr = []
+
+ newArr = atArr.concat(res.data)
+
+ this.setData({
+ userList: newArr,
+ meta : res.meta,
+ count : res.count,
+ isLogin : false
+ })
+ my.hideLoading();
+ my.hideNavigationBarLoading();
+ })
+ },
+
+ // 删除店员
+ removeUser(e){
+ let userList = this.data.userList,
+ userId = e.target.dataset.id,
+ userNmae = e.target.dataset.name
+
+ my.confirm({
+ title : '删除提示',
+ content : '确定删除员工"' + userNmae + '"吗?',
+ confirmButtonText: '删除',
+ cancelButtonText : '取消',
+ success : (result) => {
+ if(result.confirm){
+ my.showLoading()
+ this.setData({
+ userList: []
+ })
+ api.request({
+ url : "users/userDel",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ data : {
+ user_id: userId
+ }
+ }).then(res=>{
+ my.showToast({
+ content: res.data,
+ type : "success"
+ });
+ this.getShopuser()
+ }).catch(err=>{
+ my.showToast({
+ content: "删除失败,请稍后重试",
+ type : "none"
+ });
+ my.hideLoading()
+ })
+ }
+ },
+ })
+ },
+ // 分页
+ onReachBottom(){
+ let meta = this.data.meta,
+ atPage = this.data.page
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(meta.current_page < meta.last_page){
+ this.setData({
+ page: atPage + 1
+ })
+ this.getShopuser()
+ }
+ }
+});
diff --git a/pages/shop_user/shop_user.json b/pages/shop_user/shop_user.json
new file mode 100755
index 0000000..56a4b00
--- /dev/null
+++ b/pages/shop_user/shop_user.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "店员管理"
+}
\ No newline at end of file
diff --git a/pages/stages_form/stages_form.acss b/pages/stages_form/stages_form.acss
new file mode 100644
index 0000000..af754bf
--- /dev/null
+++ b/pages/stages_form/stages_form.acss
@@ -0,0 +1,123 @@
+
+page{
+ background: #fafafa;
+}
+
+/* 可办理次数 */
+.welfare-header{
+ padding: 100rpx 30rpx;
+ text-align: center;
+ background: white;
+}
+
+.welfare-header-title{
+ color: gray;
+}
+
+.welfare-header-title text{
+ color: #318fef;
+ font-weight: bold;
+ padding: 0 10rpx;
+}
+
+.welfare-header-number{
+ font-size: 50rpx;
+ font-weight: bold;
+ color: #318fef;
+ padding: 20rpx 0;
+}
+
+/* 办理优惠信息 */
+.welfare-title{
+ padding: 20rpx 30rpx;
+ color: gray;
+}
+
+/* 优惠办理表单 */
+
+.form-block{
+ background: white;
+}
+
+.order-item{
+ position: relative;
+ padding: 0 30rpx 0 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item::after{
+ content: " ";
+ background: #ddd;
+ position: absolute;
+ left: 30rpx;
+ height: 1rpx;
+ right: 0;
+ bottom: 0;
+ z-index: 1;
+}
+
+.order-item:last-child::after{
+ display: none;
+}
+
+.order-item-label{
+ position: absolute;
+ left: 0;
+ top: 0;
+ line-height: 85rpx;
+ padding: 0 30rpx;
+ width: 200rpx;
+ box-sizing: border-box;
+ text-align: left;
+}
+
+.order-item-input{
+ background: white;
+ display: block;
+ border: none;
+ padding: 0;
+ height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item-picker{
+ width: 100%;
+}
+
+.order-item-picker-text{
+ padding-right: 85rpx;
+ position: relative;
+}
+
+.order-item-picker-icon{
+ width: 32rpx;
+ position: absolute;
+ right: 0;
+ top: 26rpx;
+}
+
+.order-item-code{
+ padding-right: 260rpx;
+}
+
+.order-btn{
+ padding: 30rpx;
+}
+
+.stagers-form-btn{
+ background: #4a9d64;
+ border-color: #4a9d64;
+}
+
+/* 收款说明 */
+.remark{
+ padding: 0 30rpx 30rpx 30rpx;
+}
+
+.remark-title{
+ font-weight: bold;
+ font-size: 30rpx;
+ line-height: 70rpx;
+}
diff --git a/pages/stages_form/stages_form.axml b/pages/stages_form/stages_form.axml
new file mode 100644
index 0000000..68955cf
--- /dev/null
+++ b/pages/stages_form/stages_form.axml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
diff --git a/pages/stages_form/stages_form.js b/pages/stages_form/stages_form.js
new file mode 100644
index 0000000..d19ee18
--- /dev/null
+++ b/pages/stages_form/stages_form.js
@@ -0,0 +1,140 @@
+
+import parse from 'mini-html-parser2';
+
+const api = require("../../api/api"),
+ app = getApp()
+
+var outTime
+
+Page({
+ data: {
+ comboArr : [],
+ comboTypeValue : "",
+ comboTypeText : "",
+ periodsArr : [3,6,12],
+ periodsValue : "",
+ periodsText : "",
+ remarkTitle : "",
+ remarkContent : []
+ },
+ // 生命周期函数 -- 页面加载
+ onLoad() {
+
+ },
+ // 生命周期函数 -- 页面显示
+ onShow(){
+ this.preferential()
+ },
+ // 获取优惠配置信息
+ preferential(){
+ api.request({
+ url : "installment/user",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST"
+ }).then(res=>{
+ let commboArr = res.data.data
+ commboArr.push({
+ title: "其他金额"
+ })
+ this.setData({
+ comboArr : commboArr,
+ remarkTitle : res.data.article.title
+ })
+
+ let content = res.data.article.content.replace(/\
{
+ if(!err){
+ this.setData({
+ remarkContent : nodes
+ })
+ }
+ })
+ })
+ },
+ // 选择分期金额类型
+ comboTypeChange(e){
+ let comboType = this.data.comboArr,
+ value = e.detail.value,
+ comboTypeName = comboType[value].title
+
+ this.setData({
+ comboTypeText : comboTypeName,
+ comboTypeValue : value,
+ periodsValue : "",
+ periodsText : ""
+ })
+ },
+ // 选择分期数
+ periodsChange(e){
+ let periodsArr = this.data.periodsArr,
+ value = e.detail.value,
+ periodsName = periodsArr[value]
+
+ this.setData({
+ periodsText : periodsName,
+ periodsValue : value
+ })
+ },
+ // 提交表单
+ welfareForm(e){
+ if(this.data.comboTypeText != ''){
+
+ if(e.detail.value.price == ""){
+ my.showToast({
+ content: "输入分期总金额"
+ })
+ return
+ }
+
+ if(this.data.comboTypeText == "其他金额"){
+ if(this.data.periodsText == ""){
+ my.showToast({
+ content: "请选择分期期数"
+ })
+ return
+ }
+ }
+
+ my.showLoading()
+ // api
+ api.request({
+ url : "installment/audit",
+ method : "POST",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ installment_id : this.data.comboArr[this.data.comboTypeValue].id || "", //收款id
+ mobile : e.detail.value.tel || "", //办理手机号码
+ amount : e.detail.value.price || "", //总金额
+ nper : this.data.periodsText || "", //期数
+ channel : "DEFAULT"
+ }
+ }).then(res=>{
+ if(res.status == "SUCCESS" && res.data != ''){
+ my.redirectTo({
+ url: '../payCode/payCode?paytype=installment&orderid=' + res.data
+ });
+ }
+ my.hideLoading()
+ }).catch(err=>{
+ my.showToast({
+ content: err.data.message
+ })
+ my.hideLoading()
+ })
+ }else{
+ my.showToast({
+ content: "请选择分期金额"
+ })
+ }
+ },
+
+ // 退出页面
+ onUnload(){
+ clearInterval(outTime)
+ }
+})
diff --git a/pages/stages_form/stages_form.json b/pages/stages_form/stages_form.json
new file mode 100644
index 0000000..352ab7e
--- /dev/null
+++ b/pages/stages_form/stages_form.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "办理分期付款"
+}
\ No newline at end of file
diff --git a/pages/stages_pay/stages_pay.acss b/pages/stages_pay/stages_pay.acss
new file mode 100755
index 0000000..c4e9375
--- /dev/null
+++ b/pages/stages_pay/stages_pay.acss
@@ -0,0 +1,321 @@
+
+.welfare-header{
+ padding: 30rpx;
+ background: #4a9d64;
+ color: white;
+}
+
+.welfare-flex{
+ display: flex;
+ flex-wrap: wrap;
+ margin: 0 -10rpx;
+}
+
+.welfare-item{
+ width: 50%;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+}
+
+.welfare-item-text{
+ color: white;
+ padding-bottom: 10rpx;
+}
+
+.welfare-item-icon{
+ background: white;
+ border-radius: 50%;
+ width: 38rpx;
+ height: 38rpx;
+ vertical-align: middle;
+ margin-right: 10rpx;
+}
+
+.welfare-item-number{
+ font-weight: bold;
+ font-size: 40rpx;
+}
+
+.welfare-stat{
+ display: flex;
+ background: white;
+ color: black;
+ margin-top: 30rpx;
+ border-radius: 6rpx;
+ padding: 20rpx;
+}
+
+.welfare-stat-item{
+ width: 40%;
+ padding: 0 10rpx;
+ border-right: solid 2rpx #c2c2c2;
+ text-align: center;
+}
+
+.welfare-stat-item:first-child{
+ width: 20%;
+ text-align: left;
+}
+
+.welfare-stat-item:last-child,
+.welfare-stat-item:first-child{
+ border-right: none;
+}
+
+.welfare-stat-text{
+ color: white;
+ font-size: 24rpx;
+}
+
+.welfare-stat-blue,
+.welfare-stat-orange,
+.welfare-stat-gray{
+ width: 130rpx;
+ line-height: 40rpx;
+ border-radius: 20rpx;
+ display: inline-block;
+}
+
+.welfare-stat-blue{
+ background: #4a9d64;
+}
+
+.welfare-stat-orange{
+ background: #ec712e;
+}
+
+.welfare-stat-gray{
+ background: #b5b5b5;
+}
+
+.welfare-stat-year{
+ line-height: 50rpx;
+}
+
+.welfare-stat-month{
+ line-height: 40rpx;
+ font-size: 32rpx;
+ font-weight: bold;
+}
+
+.welfare-stat-month image{
+ width: 15rpx;
+ margin-left: 5rpx;
+ vertical-align: middle;
+}
+
+.welfare-stat-year{
+ padding-top: 5rpx;
+ line-height: 40rpx;
+}
+
+.welfare-stat-number{
+ font-weight: bold;
+ font-size: 36rpx;
+ line-height: 50rpx;
+ padding-bottom: 6rpx;
+}
+
+/* 搜索框 */
+.welfare-search-form{
+ background: #83b793;
+ height: 70rpx;
+ border-radius: 40rpx;
+ margin-top: 30rpx;
+ display: block;
+ position: relative;
+}
+
+.welfare-search-input{
+ width: 100%;
+ padding: 0 100rpx;
+ margin: 0;
+ height: 70rpx;
+ line-height: 70rpx;
+ background: transparent;
+ font-size: 30rpx;
+ box-sizing: border-box;
+ color: white;
+}
+
+.welfare-search-class{
+ width: 36rpx;
+ position: absolute;
+ top: 17rpx;
+ left: 25rpx;
+}
+
+.welfare-search-btn{
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 80rpx;
+ text-align: center;
+ padding: 0;
+ margin: 0;
+ height: 70rpx;
+ border-radius: 0 40rpx 40rpx 0;
+ background: transparent;
+ border: none;
+}
+
+.welfare-search-btn image{
+ width: 36rpx;
+ vertical-align: top;
+ margin-top: 14rpx;
+ margin-right: 10rpx;
+}
+
+.welfare-search-btn-hover{
+ background: #cc520f;
+}
+
+/* 筛选 */
+.welfare-search-flex{
+ display: flex;
+ border:solid 2rpx white;
+ border-radius: 6rpx;
+ margin-top: 30rpx;
+}
+
+.welfare-search-item{
+ flex: 1;
+ text-align: center;
+ border-right: solid 2rpx white;
+ line-height: 60rpx;
+ font-size: 30rpx;
+}
+
+.welfare-search-item:last-child{
+ border-right: none;
+}
+
+.welfare-search-item.show{
+ background: white;
+ color: #4a9d64;
+}
+
+/* 列表 */
+
+.welfare-list,
+.welfare-list-null{
+ padding-bottom: 175rpx;
+}
+
+.welfare-list-item{
+ border-top: solid 20rpx #fafafa;
+ padding: 30rpx;
+}
+
+.welfare-list-name{
+ position: relative;
+ font-size: 30rpx;
+ font-weight: bold;
+ line-height: 50rpx;
+ padding-right: 230rpx;
+ padding-bottom: 20rpx;
+ border-bottom: solid 1rpx #ddd;
+}
+
+.welfare-list-stat{
+ position: absolute;
+ right: 0;
+ top: 0;
+ color: #ff6600;
+ width: 200rpx;
+ text-align: right;
+}
+
+.welfare-list-stat.gray{
+ color: gray;
+}
+
+.welfare-list-tag{
+ color: white;
+ background: #ff6600;
+ margin-right: 10rpx;
+ border-radius: 6rpx;
+ padding: 0 15rpx;
+ font-size: 28rpx;
+}
+
+.welfare-list-info{
+ padding-top: 20rpx;
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -20rpx;
+}
+
+.welfare-list-info-item{
+ width: 50%;
+ color: gray;
+ line-height: 50rpx;
+ font-size: 28rpx;
+ padding-right: 20rpx;
+ box-sizing: border-box;
+}
+
+.welfare-list-info-item image{
+ width: 32rpx;
+ vertical-align: middle;
+ margin-right: 8rpx;
+}
+
+.welfare-list-btns{
+ margin-top: 20rpx;
+ padding-top: 20rpx;
+ border-top: solid 1rpx #ddd;
+ text-align: right;
+}
+
+.welfare-list-btn{
+ display: inline-block;
+ background: #4a9d64;
+ color: white;
+ line-height: 70rpx;
+ height: 70rpx;
+ margin-left: 30rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+}
+
+.welfare-list-btn.remove{
+ border:solid 1rpx gray;
+ color: gray;
+ background: transparent;
+}
+
+/* footer */
+.welfare-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ background: white;
+ padding: 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.welfare-footer-nav{
+ text-align: center;
+ background: #4a9d64;
+}
+
+/* 空提示 */
+.welfare-list-null{
+ text-align: center;
+ color: gray;
+ padding: 200rpx 0;
+}
+
+.welfare-list-null-title{
+ font-weight: bold;
+ font-size: 30rpx;
+ color: black;
+ padding-bottom: 10rpx;
+}
+
+.welfare-list-null image{
+ width: 88rpx;
+ margin-bottom: 20rpx;
+}
diff --git a/pages/stages_pay/stages_pay.axml b/pages/stages_pay/stages_pay.axml
new file mode 100755
index 0000000..6e733e6
--- /dev/null
+++ b/pages/stages_pay/stages_pay.axml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+ {{item.order_id || '-'}}
+ {{item.status_text}}
+
+
+ {{item.price || '0.00'}}
+ {{item.nper || '0'}}期
+ {{item.nickname || '-'}}
+ {{item.mobile || '-'}}
+ {{item.created_at || '-'}}
+
+
+
+
+ {{item.silver == 0 ? '-': item.silver }}
+
+
+
+ 取消订单
+ 立即支付
+
+
+
+ 加载中...
+ 没有更多数据了~
+
+
+
+
+
+ 当前暂无分期记录
+ 什么都还没有,赶快去添加吧
+
+
+
+
diff --git a/pages/stages_pay/stages_pay.js b/pages/stages_pay/stages_pay.js
new file mode 100755
index 0000000..be46667
--- /dev/null
+++ b/pages/stages_pay/stages_pay.js
@@ -0,0 +1,240 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {
+ listArr : [],
+ identity_id : "",
+ permissions : false,
+ year : "",
+ month : "",
+ searchIndex : 0,
+ typeArr : [
+ {id: "" , name:"全部"},
+ {id: "0" , name:"未支付"},
+ {id: "1" , name:"已支付"}
+ ],
+ typeIndex : 0,
+ num : "",
+ settleAmount: "",
+ settleMonth : "",
+ atNum : "",
+ atAmount : "",
+ endDate : "",
+ isNowMonth : false,
+ page : 1,
+ meta : {},
+ isLogin : false
+ },
+
+ // 页面加载
+ onLoad() {
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ identity_id: app.globalData.userInfo.identity_id,
+ permissions: app.globalData.userInfo.perferential,
+ year : year,
+ month : month,
+ endDate : year + "-" + month
+ })
+ },
+
+ // 页面显示
+ onShow(){
+ this.setData({
+ listArr: []
+ })
+ this.welfareList()
+ my.showLoading();
+ my.showNavigationBarLoading();
+ },
+
+ // 列表
+ welfareList(tel){
+ let url = "installment/lists",
+ dateYear = this.data.year + '-' + this.data.month
+
+ if(this.data.searchIndex == 1){
+ dateYear = "today"
+ } else if(this.data.searchIndex == 2){
+ dateYear = "yesterday"
+ }
+
+ api.request({
+ url : url,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ date : dateYear,
+ mobile : tel || "",
+ status : this.data.typeArr[this.data.typeIndex].id,
+ page : this.data.page
+ }
+ }).then(res=>{
+ let atArr = this.data.listArr,
+ newArr = []
+
+ newArr = atArr.concat(res.data)
+
+ this.setData({
+ listArr : newArr,
+ num : res.all_count,
+ settleAmount: res.all_amount,
+ atNum : res.month_count,
+ atAmount : res.month_amount,
+ isNowMonth : res.isNowMonth
+ })
+ my.hideLoading();
+ my.hideNavigationBarLoading();
+ my.stopPullDownRefresh();
+ })
+ },
+
+ // 选择日期
+ selectTime(){
+ my.datePicker({
+ currentDate : this.data.year + "-" + this.data.month,
+ endDate : this.data.endDate,
+ format : "yyyy-MM",
+ success : res=>{
+ let dateString = String(res.date),
+ yearString = dateString.substring(0,4),
+ monthString = dateString.substring(5,7)
+
+ this.setData({
+ year : yearString,
+ month : monthString,
+ page : 1,
+ listArr: []
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ })
+ },
+
+ // 筛选日期
+ searchTab(e){
+ this.setData({
+ page : 1,
+ listArr : []
+ })
+
+ if(e.target.dataset.index != this.data.searchIndex){
+ this.setData({
+ searchIndex: e.target.dataset.index
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+
+ if(e.target.dataset.index == 0 && !this.data.isNowMonth){
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ year : year,
+ month : month
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+
+ // 类型筛选
+ screenClass(e){
+ this.setData({
+ typeIndex: e.detail.value,
+ page : 1,
+ listArr : []
+ })
+ this.welfareList()
+ my.showLoading();
+ },
+
+ // 搜索手机号码
+ searchForm(e){
+ this.setData({
+ page : 1,
+ listArr : []
+ })
+
+ let tel = e.detail.value.searchValue
+ this.welfareList(tel)
+ },
+
+ // 分页
+ onReachBottom(){
+ let meta = this.data.meta,
+ atPage = this.data.page
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(meta.current_page < meta.last_page){
+ this.setData({
+ page: atPage + 1
+ })
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+
+ // 下拉刷新
+ onPullDownRefresh(){
+ this.setData({
+ listArr : []
+ })
+ this.welfareList()
+ },
+
+ // 取消订单
+ reomveOrder(e){
+ if(e.currentTarget.dataset.id){
+ my.showLoading()
+ api.request({
+ url : "installment/"+ e.currentTarget.dataset.id +"/cancel",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ }).then(res=>{
+ my.showToast({
+ type : "none",
+ content : res.data
+ });
+ my.hideLoading()
+ this.setData({
+ listArr : []
+ })
+ this.welfareList()
+ my.showLoading();
+ })
+ }else{
+ my.showToast({
+ type : "none",
+ content : "订单id不存在"
+ });
+ }
+ },
+});
diff --git a/pages/stages_pay/stages_pay.json b/pages/stages_pay/stages_pay.json
new file mode 100755
index 0000000..5061d99
--- /dev/null
+++ b/pages/stages_pay/stages_pay.json
@@ -0,0 +1,5 @@
+{
+ "defaultTitle" : "分期付款",
+ "titleBarColor": "#4a9d64",
+ "pullRefresh": true
+}
\ No newline at end of file
diff --git a/pages/star_card/star_card.axml b/pages/star_card/star_card.axml
new file mode 100755
index 0000000..012fc47
--- /dev/null
+++ b/pages/star_card/star_card.axml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/pages/star_card/star_card.js b/pages/star_card/star_card.js
new file mode 100755
index 0000000..cb73536
--- /dev/null
+++ b/pages/star_card/star_card.js
@@ -0,0 +1,4 @@
+Page({
+ data: {},
+ onLoad() {},
+});
diff --git a/pages/star_card/star_card.json b/pages/star_card/star_card.json
new file mode 100755
index 0000000..f0ed118
--- /dev/null
+++ b/pages/star_card/star_card.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "星卡"
+}
\ No newline at end of file
diff --git a/pages/sub_order/sub_order.acss b/pages/sub_order/sub_order.acss
new file mode 100755
index 0000000..7034909
--- /dev/null
+++ b/pages/sub_order/sub_order.acss
@@ -0,0 +1,118 @@
+
+/**
+ * Web唐明明
+ * 一个梦想做木雕手艺人的程序员
+ */
+
+page{
+ background: #fafafa;
+}
+
+.order-title{
+ padding: 20rpx 30rpx;
+ color: gray;
+}
+
+.order-block{
+ background: white;
+}
+
+.order-item{
+ position: relative;
+ padding: 0 30rpx 0 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item::after{
+ content: " ";
+ background: #ddd;
+ position: absolute;
+ left: 30rpx;
+ height: 1rpx;
+ right: 0;
+ bottom: 0;
+ z-index: 1;
+}
+
+.order-item:last-child::after{
+ display: none;
+}
+
+.order-item-label{
+ position: absolute;
+ left: 0;
+ top: 0;
+ line-height: 85rpx;
+ padding: 0 30rpx;
+ width: 200rpx;
+ box-sizing: border-box;
+ text-align: left;
+}
+
+.order-item-text{
+ width: 100%;
+ text-align: right;
+}
+
+.order-item-picker{
+ display: block;
+}
+
+.order-item-picker-text{
+ text-align: right;
+}
+
+.order-item-picker-icon{
+ width: 36rpx;
+ height: 36rpx;
+ vertical-align: middle;
+ margin-bottom: 4rpx;
+}
+
+.order-item-input{
+ background: white;
+ display: block;
+ border: none;
+ padding: 0;
+ height: 85rpx;
+ font-size: 30rpx;
+}
+
+/* 预测还款表格 */
+.order-block-header,
+.order-block-table{
+ padding: 0 30rpx;
+ display: flex;
+ text-align: center;
+}
+
+.order-block-header{
+ padding-bottom: 40rpx;
+}
+
+.order-block-table{
+ line-height: 70rpx;
+ padding-top: 20rpx;
+}
+
+.order-block-header-item,
+.order-block-table-item{
+ text-align: center;
+ width: 33.333%;
+}
+
+.order-block-header-item{
+ color: gray;
+}
+
+.order-block-table-item{
+ font-weight: bold;
+ font-size: 32rpx;
+}
+
+/* 分期按钮 */
+.order-btns{
+ padding: 30rpx;
+}
diff --git a/pages/sub_order/sub_order.axml b/pages/sub_order/sub_order.axml
new file mode 100755
index 0000000..cd17f3b
--- /dev/null
+++ b/pages/sub_order/sub_order.axml
@@ -0,0 +1,58 @@
+
+
diff --git a/pages/sub_order/sub_order.js b/pages/sub_order/sub_order.js
new file mode 100755
index 0000000..14ef743
--- /dev/null
+++ b/pages/sub_order/sub_order.js
@@ -0,0 +1,82 @@
+
+/**
+ * Web唐明明
+ * 一个梦想做木雕手艺人的程序员
+ */
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data:{
+ orderDeta : {},
+ stages : [],
+ stagesIndex : 0
+ },
+ // 页面加载
+ onLoad(query) {
+ // 页面加载
+ this.setData({
+ id: query.id
+ })
+ // 获取信息
+ this.getOrder()
+ },
+ // 选择分期数
+ changeStages(e){
+ if(e.detail.value != this.data.stagesIndex){
+ this.setData({
+ stagesIndex: e.detail.value
+ })
+ }
+ },
+
+ // 获取信息
+ getOrder(){
+ my.showLoading();
+ api.request({
+ url : "goods/" + this.data.id,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST"
+ }).then(res=>{
+ this.setData({
+ orderDeta: res.data,
+ stages : res.data.params
+ })
+ my.hideLoading();
+ })
+ },
+
+ // 提交订单
+ subOrder(e){
+ my.showLoading();
+ api.request({
+ url : "order/create/" + this.data.stages[e.detail.value.stages].id,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ data : {
+ name : e.detail.value.name,
+ phone : e.detail.value.phone,
+ idcard : e.detail.value.idcard
+ }
+ }).then(res=>{
+ if(res.status == "SUCCESS" && res.data.orderid != ''){
+ my.navigateTo({
+ url: '../payCode/payCode?orderid=' + res.data.orderid
+ });
+ }
+ my.hideLoading();
+ }).catch(err=>{
+ console.log(err.data.message)
+ my.showToast({
+ type : 'none',
+ content: err.data.message
+ });
+ my.hideLoading()
+ })
+ }
+});
diff --git a/pages/sub_order/sub_order.json b/pages/sub_order/sub_order.json
new file mode 100755
index 0000000..5e2e523
--- /dev/null
+++ b/pages/sub_order/sub_order.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "订单信息"
+}
\ No newline at end of file
diff --git a/pages/user/user.acss b/pages/user/user.acss
new file mode 100755
index 0000000..a0bd3e7
--- /dev/null
+++ b/pages/user/user.acss
@@ -0,0 +1,78 @@
+
+.user-info{
+ background: white;
+ padding: 90rpx 50rpx;
+ position: relative;
+ border-bottom: solid 20rpx #fafafa;
+}
+
+.user-info-name{
+ font-size: 38rpx;
+ font-weight: bold;
+}
+
+.user-info-identity{
+ padding-top: 15rpx;
+}
+
+.user-info-identity text{
+ display: inline-block;
+ background: #ff6600;
+ color: white;
+ height: 32rpx;
+ line-height: 32rpx;
+ padding: 0 20rpx;
+ border-radius: 16px;
+ font-size: 24rpx;
+}
+
+.user-info-shop{
+ padding-top: 15rpx;
+ color: gray;
+ font-size: 26rpx;
+}
+
+.user-info-cover{
+ position: absolute;
+ right: 50rpx;
+ top: calc(50% - 54rpx);
+ width: 88rpx;
+ height: 88rpx;
+ background: #fafafa;
+ border:solid 10rpx #fafafa;
+ border-radius: 50%;
+}
+
+/* 按钮 */
+.user-btn{
+ padding: 0 30rpx;
+ height: 90rpx;
+ line-height: 90rpx;
+ position: relative;
+ font-size: 30rpx;
+}
+
+.user-btn-text{
+ position: absolute;
+ right: 64rpx;
+ top: 0;
+ width: 350rpx;
+ font-size: 28rpx;
+ color: gray;
+ text-align: right;
+}
+
+.user-btn-icon{
+ width: 34rpx;
+ height: 34rpx;
+ vertical-align: middle;
+ margin: 0 15rpx 5rpx 0;
+}
+
+.user-btn-arrows{
+ position: absolute;
+ right: 30rpx;
+ top: calc(50% - 17rpx);
+ width: 34rpx;
+ height: 34rpx;
+}
diff --git a/pages/user/user.axml b/pages/user/user.axml
new file mode 100755
index 0000000..ff08d17
--- /dev/null
+++ b/pages/user/user.axml
@@ -0,0 +1,43 @@
+
+
+ {{userInfo.nickname}}
+ {{userInfo.organization}}
+
+ {{userInfo.identity_text}}
+
+
+
+
+
+
+
+ 我的账户
+
+
+
+
+ 渠道冰激凌工号
+ {{userInfo.gas_number}}
+
+
+
+
+
+ 店员管理
+
+
+
+
+ 设置
+
+
+
diff --git a/pages/user/user.js b/pages/user/user.js
new file mode 100755
index 0000000..57f916a
--- /dev/null
+++ b/pages/user/user.js
@@ -0,0 +1,24 @@
+
+const app = getApp()
+
+Page({
+ data: {
+ userInfo: {}
+ },
+ onLoad() {
+ this.setData({
+ userInfo: app.globalData.userInfo
+ })
+ },
+ copyNumber(){
+ my.setClipboard({
+ text : this.data.userInfo.gas_number,
+ success : res=>{
+ my.showToast({
+ content: "渠道工号已复制",
+ type : "none"
+ });
+ }
+ })
+ }
+});
diff --git a/pages/user/user.json b/pages/user/user.json
new file mode 100755
index 0000000..d1c2c92
--- /dev/null
+++ b/pages/user/user.json
@@ -0,0 +1,4 @@
+{
+ "defaultTitle" : "我的",
+ "titleBarColor": "#ffffff"
+}
\ No newline at end of file
diff --git a/pages/wallet/wallet.acss b/pages/wallet/wallet.acss
new file mode 100755
index 0000000..e22f3f4
--- /dev/null
+++ b/pages/wallet/wallet.acss
@@ -0,0 +1,126 @@
+.wallet-balance{
+ padding: 50rpx 30rpx 100rpx 30rpx;
+ text-align: center;
+ background: #ff6600;
+ color: white;
+}
+
+.wallet-balance-number{
+ font-weight: bold;
+ font-size: 70rpx;
+}
+
+.wallet-balance-text{
+ padding-top: 15rpx;
+}
+
+.wallet{
+ background: white;
+ margin: -50rpx 30rpx 30rpx 30rpx;
+ border-radius: 10rpx;
+ box-shadow: 0 0 5rpx 5rpx rgba(0, 0, 0, .05);
+}
+
+.wallet-info{
+ display: flex;
+ padding: 50rpx 0;
+}
+
+.wallet-info-item{
+ text-align: center;
+ width: 50%;
+ box-sizing: border-box;
+ padding: 0 20rpx;
+}
+
+.wallet-info-item:first-child{
+ border-right: solid 1rpx #ddd;
+}
+
+.wallet-info-title{
+ font-size: 28rpx;
+ color: gray;
+}
+
+.wallet-info-title image{
+ width: 32rpx;
+ height: 32rpx;
+ vertical-align: middle;
+}
+
+.wallet-info-number{
+ font-size: 32rpx;
+ padding-top: 10rpx;
+ font-weight: bold;
+}
+
+.wallet-info-btn{
+ font-size: 32rpx;
+ font-weight: bold;
+ line-height: 90rpx;
+ text-align: center;
+ color: #ff6600;
+ border-top: solid 1rpx #ddd;
+}
+
+/* 充值记录 */
+.wallet-title{
+ background: #fafafa;
+ padding: 20rpx 30rpx;
+ color: gray;
+ font-size: 28rpx;
+}
+
+.wallet-item{
+ padding: 20rpx 230rpx 20rpx 30rpx;
+ position: relative;
+}
+
+.wallet-item::before{
+ position: absolute;
+ left: 30rpx;
+ bottom: 0;
+ right: 0;
+ content: " ";
+ background: #ddd;
+ height: 1rpx;
+}
+
+.wallet-item-title{
+ line-height: 50rpx;
+ font-weight: bold;
+ font-size: 30rpx;
+}
+
+.wallet-item-title text{
+ margin-right: 15rpx;
+ color: #ff6600;
+}
+
+.wallet-item-time{
+ color: gray;
+ font-size: 26rpx;
+ line-height: 30rpx;
+}
+
+.wallet-item-price{
+ position: absolute;
+ top: 20rpx;
+ right: 30rpx;
+ line-height: 80rpx;
+ text-align: right;
+ font-size: 34rpx;
+ color: red;
+ font-weight: bold;
+}
+
+.wallet-item-price.remove{
+ color: green;
+}
+
+/* 账户空 */
+.logs-null{
+ text-align: center;
+ color: gray;
+ line-height: 30vh;
+}
diff --git a/pages/wallet/wallet.axml b/pages/wallet/wallet.axml
new file mode 100755
index 0000000..7ec9f62
--- /dev/null
+++ b/pages/wallet/wallet.axml
@@ -0,0 +1,35 @@
+
+ {{account.balance || "0.00"}}
+ 账户余额
+
+
+
+
+ 累计收益(元)
+ {{account.all_in || "0.00"}}
+
+
+ 已提现(元)
+ {{account.withdrawal || "0.00"}}
+
+
+
+ 申请提现
+
+
+
+
+ 账户记录
+
+ ({{item.frozen_text}}){{item.remark}}
+ {{item.created_at}}
+ {{item.variable}}
+
+
+
+ 加载中...
+ 没有更多数据了~
+
+
+
+暂无账户记录
diff --git a/pages/wallet/wallet.js b/pages/wallet/wallet.js
new file mode 100755
index 0000000..08d1786
--- /dev/null
+++ b/pages/wallet/wallet.js
@@ -0,0 +1,65 @@
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ data: {
+ account : {},
+ logs : [],
+ page : {},
+ isLogin: false
+ },
+ // 生命周期函数--页面加载中
+ onLoad() {
+
+ },
+ // 生命周期函数--页面加载中
+ onShow() {
+ this.logs()
+ },
+ // 账户记录
+ logs(){
+ my.showLoading()
+ api.request({
+ url : "account",
+ header : {
+ "Authorization": app.globalData.token
+ }
+ }).then(res=>{
+ this.setData({
+ account: res.data.account,
+ logs : res.data.data,
+ page : res.data.page
+ })
+ my.hideLoading()
+ })
+ },
+ // 分页
+ onReachBottom(){
+ let atPage = this.data.page,
+ pageNub = this.data.page.current
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(atPage.has_more){
+ pageNub++
+ api.request({
+ url : "account",
+ header : {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ page: pageNub
+ }
+ }).then(res=>{
+ this.setData({
+ account: res.data.account,
+ logs : res.data.data,
+ page : res.data.page
+ })
+ my.hideLoading()
+ })
+ }
+ }
+});
diff --git a/pages/wallet/wallet.json b/pages/wallet/wallet.json
new file mode 100755
index 0000000..b3c558b
--- /dev/null
+++ b/pages/wallet/wallet.json
@@ -0,0 +1,4 @@
+{
+ "defaultTitle" : "我的账户",
+ "titleBarColor": "#ff6600"
+}
\ No newline at end of file
diff --git a/pages/wallet_extract/wallet_extract.acss b/pages/wallet_extract/wallet_extract.acss
new file mode 100755
index 0000000..01c7f74
--- /dev/null
+++ b/pages/wallet_extract/wallet_extract.acss
@@ -0,0 +1,55 @@
+
+page{
+ background: #fafafa;
+}
+
+.form{
+ background: white;
+ display: block;
+}
+
+.form-inputs{
+ padding: 0 30rpx 0 230rpx;
+ position: relative;
+}
+
+.form-inputs::before{
+ content: " ";
+ position: absolute;
+ left: 30rpx;
+ bottom: 0;
+ right: 0;
+ background: #ddd;
+}
+
+.form-title{
+ position: absolute;
+ left: 30rpx;
+ top: 0;
+ width: 180rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+}
+
+.form-input{
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ width: 100%;
+}
+
+.form-btn{
+ padding: 30rpx;
+}
+
+/* 支付宝信息 */
+.alipay{
+ text-align: center;
+ line-height: 90rpx;
+ margin: 0 30rpx;
+ color: #ff6600;
+ border:solid 2rpx #ff6600;
+ box-sizing: border-box;
+ font-weight: bold;
+ font-size: 32rpx;
+}
diff --git a/pages/wallet_extract/wallet_extract.axml b/pages/wallet_extract/wallet_extract.axml
new file mode 100755
index 0000000..c4b6b87
--- /dev/null
+++ b/pages/wallet_extract/wallet_extract.axml
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git a/pages/wallet_extract/wallet_extract.js b/pages/wallet_extract/wallet_extract.js
new file mode 100755
index 0000000..f30d902
--- /dev/null
+++ b/pages/wallet_extract/wallet_extract.js
@@ -0,0 +1,80 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+
+Page({
+ data: {
+ alNmae: "",
+ alPaye: "",
+ isVal : false
+ },
+ onLoad() {
+
+ },
+ extract(e){
+ my.showLoading()
+ api.request({
+ url : "withdrawal",
+ header : {
+ "Authorization": app.globalData.token
+ },
+ method : "POST",
+ data : {
+ price : e.detail.value.price,
+ name : e.detail.value.name,
+ mobile: e.detail.value.mobile
+ }
+ }).then(res=>{
+ my.alert({
+ title : '提示',
+ content : res.data,
+ success : res => {
+ my.navigateBack();
+ }
+ });
+ my.hideLoading();
+ }).catch(err=>{
+ my.showToast({
+ type : "none",
+ content: err.data.message
+ })
+ my.hideLoading();
+ })
+ },
+
+ /**
+ * 读取上一次支付宝信息
+ */
+ aliPayInfo(){
+ if(!this.data.isVal){
+ this.setData({
+ isVal: true
+ })
+ my.showLoading()
+ api.request({
+ url : "withdrawal/info",
+ header : {
+ "Authorization": app.globalData.token
+ },
+ method : "POST"
+ }).then(res=>{
+ this.setData({
+ alPaye: res.data.mobile,
+ alNmae: res.data.name
+ })
+ my.hideLoading();
+ }).catch(err=>{
+ my.showToast({
+ type : "none",
+ content: err.data.message
+ })
+ my.hideLoading();
+ })
+ }else{
+ this.setData({
+ isVal: false
+ })
+ }
+ }
+});
diff --git a/pages/wallet_extract/wallet_extract.json b/pages/wallet_extract/wallet_extract.json
new file mode 100755
index 0000000..400e7a5
--- /dev/null
+++ b/pages/wallet_extract/wallet_extract.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "申请提现"
+}
\ No newline at end of file
diff --git a/pages/welcome/welcome.acss b/pages/welcome/welcome.acss
new file mode 100755
index 0000000..a14e419
--- /dev/null
+++ b/pages/welcome/welcome.acss
@@ -0,0 +1,9 @@
+
+.pages-null{
+ text-align: center;
+ height: 100vh;
+ width: 100vw;
+ background: white;
+ color: gray;
+ font-size: 28rpx;
+}
diff --git a/pages/welcome/welcome.axml b/pages/welcome/welcome.axml
new file mode 100755
index 0000000..ba7e723
--- /dev/null
+++ b/pages/welcome/welcome.axml
@@ -0,0 +1 @@
+加载中...
\ No newline at end of file
diff --git a/pages/welcome/welcome.js b/pages/welcome/welcome.js
new file mode 100755
index 0000000..29ee14b
--- /dev/null
+++ b/pages/welcome/welcome.js
@@ -0,0 +1,46 @@
+
+const api = require("../../api/api")
+const app = getApp()
+
+Page({
+ onLoad() {
+ let userToken = my.getStorageSync({key:"userToken"}).data || null,
+ atTime = Math.round(new Date() / 1000)
+
+ if(userToken != null){
+ if(atTime < userToken.expires){
+ // 获取最新的用户信息
+ my.showLoading();
+ api.userinfo(userToken.token).then(res=>{
+ my.switchTab({
+ url: '../index/index'
+ });
+ my.hideLoading();
+ })
+ }else{
+ my.alert({
+ title : '温馨提示',
+ content : '登录已过期,请重新登录',
+ buttonText: '去登录',
+ success: () => {
+ console.log("去登陆")
+ my.showLoading();
+ my.removeStorage({
+ key : 'userToken',
+ success : (res)=> {
+ my.reLaunch({
+ url: "../login/login"
+ })
+ my.hideLoading();
+ }
+ });
+ }
+ });
+ }
+ }else{
+ my.reLaunch({
+ url: "../login/login"
+ })
+ }
+ }
+});
diff --git a/pages/welcome/welcome.json b/pages/welcome/welcome.json
new file mode 100755
index 0000000..9e26dfe
--- /dev/null
+++ b/pages/welcome/welcome.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/pages/welfare/welfare.acss b/pages/welfare/welfare.acss
new file mode 100755
index 0000000..2bd1df1
--- /dev/null
+++ b/pages/welfare/welfare.acss
@@ -0,0 +1,125 @@
+
+page{
+ background: #fafafa;
+}
+
+/* 可办理次数 */
+.welfare-header{
+ padding: 100rpx 30rpx;
+ text-align: center;
+ background: white;
+}
+
+.welfare-header-title{
+ color: gray;
+}
+
+.welfare-header-title text{
+ color: #ff6600;
+ font-weight: bold;
+ padding: 0 10rpx;
+}
+
+.welfare-header-number{
+ font-size: 50rpx;
+ font-weight: bold;
+ color: #ff6600;
+ padding: 20rpx 0;
+}
+
+/* 办理优惠信息 */
+.welfare-title{
+ padding: 20rpx 30rpx;
+ color: gray;
+}
+
+/* 优惠办理表单 */
+
+.form-block{
+ background: white;
+}
+
+.order-item{
+ position: relative;
+ padding: 0 30rpx 0 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item::after{
+ content: " ";
+ background: #ddd;
+ position: absolute;
+ left: 30rpx;
+ height: 1rpx;
+ right: 0;
+ bottom: 0;
+ z-index: 1;
+}
+
+.order-item:last-child::after{
+ display: none;
+}
+
+.order-item-label{
+ position: absolute;
+ left: 0;
+ top: 0;
+ line-height: 85rpx;
+ padding: 0 30rpx;
+ width: 200rpx;
+ box-sizing: border-box;
+ text-align: left;
+}
+
+.order-item-input{
+ background: white;
+ display: block;
+ border: none;
+ padding: 0;
+ height: 85rpx;
+ font-size: 30rpx;
+}
+
+.order-item-picker{
+ width: 100%;
+}
+
+.order-item-picker-text{
+ padding-right: 85rpx;
+ position: relative;
+}
+
+.order-item-picker-icon{
+ width: 32rpx;
+ position: absolute;
+ right: 0;
+ top: 26rpx;
+}
+
+.order-item-code{
+ padding-right: 260rpx;
+}
+
+.order-item-code-btn{
+ position: absolute;
+ right: 30rpx;
+ top: 0;
+ width: 200rpx;
+ height: 85rpx;
+ line-height: 85rpx;
+ border: none;
+ background: transparent;
+ color: #ff6600;
+ font-size: 30rpx;
+}
+
+.order-item-code-btn-hover{
+ color: #da5700;
+ background: transparent;
+}
+
+.order-btn{
+ padding: 30rpx;
+}
diff --git a/pages/welfare/welfare.axml b/pages/welfare/welfare.axml
new file mode 100755
index 0000000..9a330f0
--- /dev/null
+++ b/pages/welfare/welfare.axml
@@ -0,0 +1,51 @@
+
+
+
+办理优惠
+
+
diff --git a/pages/welfare/welfare.js b/pages/welfare/welfare.js
new file mode 100755
index 0000000..d198b06
--- /dev/null
+++ b/pages/welfare/welfare.js
@@ -0,0 +1,169 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+var outTime
+
+Page({
+ data: {
+ perferentialConfig : {},
+ perferentialType : {},
+ comboType : [],
+ comboTypeValue : "",
+ comboTypeText : "",
+ comboNmae : [],
+ comboNmaeValue : 0,
+ tle : "",
+ codeBtnText : "获取验证码",
+ codeBtnStat : false
+ },
+ // 生命周期函数 -- 页面加载
+ onLoad() {
+
+ },
+ // 生命周期函数 -- 页面显示
+ onShow(){
+ this.preferential()
+ },
+ // 获取优惠配置信息
+ preferential(){
+ api.request({
+ url : "preferential/user",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST"
+ }).then(res=>{
+ console.log(res)
+ let combo_type = []
+ for(let i in res.data.perferential_type){
+ combo_type.push(i)
+ }
+
+ this.setData({
+ perferentialConfig: res.data.perferential_config,
+ perferentialType : res.data.perferential_type,
+ comboType : combo_type
+ })
+ })
+ },
+ // 选择套餐类型
+ comboTypeChange(e){
+ let comboType = this.data.comboType,
+ value = e.detail.value,
+ perferentialType = this.data.perferentialType,
+ comboTypeName = comboType[value]
+
+ this.setData({
+ comboTypeValue : value,
+ comboTypeText : comboTypeName,
+ comboNmae : perferentialType[comboTypeName],
+ comboNmaeValue : 0
+ })
+ },
+ // 选择套餐名称
+ comboNmaeChange(e){
+ this.setData({
+ comboNmaeValue: e.detail.value
+ })
+ },
+ // 存储手机号码
+ telInput(e){
+ this.setData({
+ tle: e.detail.value
+ })
+ },
+ // 获取短信验证码
+ getCode(){
+ setTimeout(() => {
+ if(this.data.tle != ''){
+ my.showLoading();
+ api.request({
+ url : "sms",
+ method: "POST",
+ data : {
+ mobile : this.data.tle,
+ channel : "DEFAULT"
+ }
+ }).then(res=>{
+ // 获取倒计时
+ this.setData({
+ codeBtnStat: true,
+ codeBtnText: "重新获取60s"
+ })
+
+ let outTimeNumber = 60
+ outTime = setInterval(()=>{
+ if(outTimeNumber >= 1){
+ outTimeNumber--
+ this.setData({
+ codeBtnText: "重新获取" + outTimeNumber + 's'
+ })
+ }else{
+ this.setData({
+ codeBtnStat: false,
+ codeBtnText: "获取验证码"
+ })
+ clearInterval(outTime)
+ }
+ },1000)
+ // 提示信息
+ my.showToast({
+ content: res.data
+ })
+ my.hideLoading();
+ }).catch(err=>{
+ my.showToast({
+ content: err.data.message
+ })
+ my.hideLoading();
+ })
+ }else{
+ my.showToast({
+ content: "手机号码不能为空"
+ });
+ }
+ }, 100)
+ },
+ // 提交表单
+ welfareForm(e){
+ if(this.data.comboTypeText != ''){
+ my.showLoading()
+ // api
+ api.request({
+ url : "preferential/audit",
+ method : "POST",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ data : {
+ perferential_id : this.data.comboNmae[this.data.comboNmaeValue].id,
+ mobile : e.detail.value.tel,
+ code : e.detail.value.code,
+ phone : e.detail.value.phone,
+ description : e.detail.value.description,
+ channel : "DEFAULT"
+ }
+ }).then(res=>{
+ my.navigateTo({
+ url: '../payCode/payCode?orderid=' + res.data + '&paytype=icePay'
+ });
+ my.hideLoading()
+ }).catch(err=>{
+ my.showToast({
+ content: err.data.message
+ })
+ my.hideLoading()
+ })
+ }else{
+ my.showToast({
+ content: "请选择套餐类型"
+ })
+ }
+ },
+
+ // 退出页面
+ onUnload(){
+ clearInterval(outTime)
+ }
+})
diff --git a/pages/welfare/welfare.json b/pages/welfare/welfare.json
new file mode 100755
index 0000000..95291e6
--- /dev/null
+++ b/pages/welfare/welfare.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "办理冰激凌"
+}
\ No newline at end of file
diff --git a/pages/welfare_deta/welfare_deta.acss b/pages/welfare_deta/welfare_deta.acss
new file mode 100755
index 0000000..86baaa1
--- /dev/null
+++ b/pages/welfare_deta/welfare_deta.acss
@@ -0,0 +1,96 @@
+
+.deta-block{
+ border-top: solid 20rpx #fafafa;
+ padding: 30rpx;
+}
+
+.deta-no{
+ position: relative;
+ padding-right: 260rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ padding-bottom: 20rpx;
+ border-bottom: solid 1rpx #fafafa;
+ color: gray;
+}
+
+.deta-status{
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 230rpx;
+ text-align: right;
+ height: 50rpx;
+ line-height: 50rpx;
+ color: #ff6600;
+ font-weight: bold;
+}
+
+.deta-info{
+ padding-top: 20rpx;
+}
+
+.deta-info-name{
+ font-weight: bold;
+ height: 50rpx;
+ line-height: 50rpx;
+ font-size: 30rpx;
+ padding-bottom: 20rpx;
+}
+
+.deta-info-type{
+ background: #ff6600;
+ color: white;
+ padding: 0 15rpx;
+ border-radius: 4rpx;
+ margin-right: 15rpx;
+ font-size: 28rpx;
+}
+
+.deta-info-text{
+ line-height: 50rpx;
+ color: gray;
+}
+
+.deta-title{
+ font-weight: bold;
+ font-size: 30rpx;
+ padding-bottom: 30rpx;
+ border-bottom: solid 1rpx #fafafa;
+}
+
+.deta-title image{
+ width: 32rpx;
+ vertical-align: middle;
+ margin-right: 10rpx;
+ margin-bottom: 4rpx;
+}
+
+.deta-flex{
+ padding-top: 20rpx;
+ display: flex;
+ margin: 0 -8rpx;
+}
+
+.deta-flex-item{
+ text-align: center;
+ width: 33.33%;
+ padding: 0 8rpx;
+}
+
+.deta-flex-item,
+.deta-flex-50{
+ width: 50%;
+}
+
+.deta-flex-item-title{
+ color: gray;
+ font-size: 26rpx;
+ padding-top: 5rpx;
+}
+
+.deta-flex-item-text{
+ font-weight: bold;
+ font-size: 30rpx;
+ line-height: 60rpx;
+}
diff --git a/pages/welfare_deta/welfare_deta.axml b/pages/welfare_deta/welfare_deta.axml
new file mode 100755
index 0000000..ed698ed
--- /dev/null
+++ b/pages/welfare_deta/welfare_deta.axml
@@ -0,0 +1,71 @@
+
+
+
+ {{deta.no || '-'}}
+ {{deta.status_text || '-'}}
+
+
+
+ {{deta.type}}
+ {{deta.name}}
+
+ 提交时间:{{deta.created_at || '-'}}
+ 用户手机:{{deta.mobile || '-'}}
+ 办理佣金:{{deta.bonus || '-'}}
+ 结算状态:{{deta.settle_status_text || '-'}}
+ 结算时间:{{deta.actual_at || '-'}}
+
+
+
+
+
+ 分期购物券
+
+
+ {{deta.installments.installment_price || '0.00'}}
+ 总金额
+
+
+ {{deta.installments.installment_phase || '0'}}
+ 分期数
+
+
+ {{deta.installments.current || '0'}}
+ 已发放
+
+
+
+
+
+
+ 话费充值券
+
+
+ {{deta.phones.phone || '0.00'}}
+ 金额
+
+
+ {{deta.phones.status_text || '-'}}
+ 状态
+
+
+
+
+
+
+ 直接消费券
+
+
+ {{deta.straights.straight || '0.00'}}
+ 总金额
+
+
+ {{deta.straights.straight_max || '0'}}
+ 发券数
+
+
+ {{deta.straights.straight_success || '0' }}/{{deta.straights.straight_error || '0' }}
+ 成功/失败
+
+
+
diff --git a/pages/welfare_deta/welfare_deta.js b/pages/welfare_deta/welfare_deta.js
new file mode 100755
index 0000000..d4b4f83
--- /dev/null
+++ b/pages/welfare_deta/welfare_deta.js
@@ -0,0 +1,32 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {
+ id : '',
+ deta : {}
+ },
+ onLoad(e) {
+ my.showLoading();
+ this.setData({
+ id: e.id
+ })
+ this.getDeta()
+ },
+ // 获取优惠详情
+ getDeta(){
+ api.request({
+ url : "preferential/" + this.data.id + "/info",
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST"
+ }).then(res=>{
+ this.setData({
+ deta: res.data
+ })
+ my.hideLoading()
+ })
+ }
+});
diff --git a/pages/welfare_deta/welfare_deta.json b/pages/welfare_deta/welfare_deta.json
new file mode 100755
index 0000000..9c907da
--- /dev/null
+++ b/pages/welfare_deta/welfare_deta.json
@@ -0,0 +1,3 @@
+{
+ "defaultTitle" : "优惠详情"
+}
\ No newline at end of file
diff --git a/pages/welfare_list/welfare_list.acss b/pages/welfare_list/welfare_list.acss
new file mode 100755
index 0000000..4365d2d
--- /dev/null
+++ b/pages/welfare_list/welfare_list.acss
@@ -0,0 +1,321 @@
+
+.welfare-header{
+ padding: 30rpx;
+ background: #ff6600;
+ color: white;
+}
+
+.welfare-flex{
+ display: flex;
+ flex-wrap: wrap;
+ margin: 0 -10rpx;
+}
+
+.welfare-item{
+ width: 50%;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+}
+
+.welfare-item-text{
+ color: #ffbb99;
+ padding-bottom: 10rpx;
+}
+
+.welfare-item-icon{
+ background: white;
+ border-radius: 50%;
+ width: 38rpx;
+ height: 38rpx;
+ vertical-align: middle;
+ margin-right: 10rpx;
+}
+
+.welfare-item-number{
+ font-weight: bold;
+ font-size: 40rpx;
+}
+
+.welfare-stat{
+ display: flex;
+ background: white;
+ color: black;
+ margin-top: 30rpx;
+ border-radius: 6rpx;
+ padding: 20rpx;
+}
+
+.welfare-stat-item{
+ width: 27%;
+ padding: 0 10rpx;
+ border-right: solid 2rpx #c2c2c2;
+ text-align: center;
+}
+
+.welfare-stat-item:first-child{
+ width: 19%;
+ text-align: left;
+}
+
+.welfare-stat-item:last-child,
+.welfare-stat-item:first-child{
+ border-right: none;
+}
+
+.welfare-stat-text{
+ color: white;
+ font-size: 24rpx;
+}
+
+.welfare-stat-blue,
+.welfare-stat-orange,
+.welfare-stat-gray{
+ width: 130rpx;
+ line-height: 40rpx;
+ border-radius: 20rpx;
+ display: inline-block;
+}
+
+.welfare-stat-blue{
+ background: #318fef;
+}
+
+.welfare-stat-orange{
+ background: #ec712e;
+}
+
+.welfare-stat-gray{
+ background: #b5b5b5;
+}
+
+.welfare-stat-year{
+ line-height: 50rpx;
+}
+
+.welfare-stat-month{
+ line-height: 40rpx;
+ font-size: 32rpx;
+ font-weight: bold;
+}
+
+.welfare-stat-month image{
+ width: 15rpx;
+ margin-left: 5rpx;
+ vertical-align: middle;
+}
+
+.welfare-stat-year{
+ padding-top: 5rpx;
+ line-height: 40rpx;
+}
+
+.welfare-stat-number{
+ font-weight: bold;
+ font-size: 36rpx;
+ line-height: 50rpx;
+ padding-bottom: 6rpx;
+}
+
+/* 搜索框 */
+.welfare-search-form{
+ background: #f08d58;
+ height: 70rpx;
+ border-radius: 40rpx;
+ margin-top: 30rpx;
+ display: block;
+ position: relative;
+}
+
+.welfare-search-input{
+ width: 100%;
+ padding: 0 100rpx;
+ margin: 0;
+ height: 70rpx;
+ line-height: 70rpx;
+ background: transparent;
+ font-size: 30rpx;
+ box-sizing: border-box;
+ color: white;
+}
+
+.welfare-search-class{
+ width: 36rpx;
+ position: absolute;
+ top: 17rpx;
+ left: 25rpx;
+}
+
+.welfare-search-btn{
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 80rpx;
+ text-align: center;
+ padding: 0;
+ margin: 0;
+ height: 70rpx;
+ border-radius: 0 40rpx 40rpx 0;
+ background: transparent;
+ border: none;
+}
+
+.welfare-search-btn image{
+ width: 36rpx;
+ vertical-align: top;
+ margin-top: 14rpx;
+ margin-right: 10rpx;
+}
+
+.welfare-search-btn-hover{
+ background: #cc520f;
+}
+
+/* 筛选 */
+.welfare-search-flex{
+ display: flex;
+ border:solid 2rpx white;
+ border-radius: 6rpx;
+ margin-top: 30rpx;
+}
+
+.welfare-search-item{
+ flex: 1;
+ text-align: center;
+ border-right: solid 2rpx white;
+ line-height: 60rpx;
+ font-size: 30rpx;
+}
+
+.welfare-search-item:last-child{
+ border-right: none;
+}
+
+.welfare-search-item.show{
+ background: white;
+ color: #f08d58;
+}
+
+/* 列表 */
+
+.welfare-list,
+.welfare-list-null{
+ padding-bottom: 175rpx;
+}
+
+.welfare-list-item{
+ border-top: solid 20rpx #fafafa;
+ padding: 30rpx;
+}
+
+.welfare-list-name{
+ position: relative;
+ font-size: 30rpx;
+ font-weight: bold;
+ line-height: 50rpx;
+ padding-right: 230rpx;
+ padding-bottom: 20rpx;
+ border-bottom: solid 1rpx #ddd;
+}
+
+.welfare-list-stat{
+ position: absolute;
+ right: 0;
+ top: 0;
+ color: #ff6600;
+ width: 200rpx;
+ text-align: right;
+}
+
+.welfare-list-tag{
+ color: white;
+ background: #ff6600;
+ margin-right: 10rpx;
+ border-radius: 6rpx;
+ padding: 0 15rpx;
+ font-size: 28rpx;
+ display: inline-block;
+}
+
+.welfare-list-tag.blue{
+ background: #318fef;
+}
+
+.welfare-list-info{
+ padding-top: 20rpx;
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -20rpx;
+}
+
+.welfare-list-info-item{
+ width: 33.33%;
+ color: gray;
+ line-height: 50rpx;
+ font-size: 28rpx;
+ padding-right: 20rpx;
+ box-sizing: border-box;
+}
+
+.welfare-list-info-item image{
+ width: 32rpx;
+ vertical-align: middle;
+ margin-right: 8rpx;
+}
+
+.welfare-list-btns{
+ margin-top: 20rpx;
+ padding-top: 20rpx;
+ border-top: solid 1rpx #ddd;
+ text-align: right;
+}
+
+.welfare-list-btn{
+ display: inline-block;
+ background: #ff6600;
+ color: white;
+ line-height: 70rpx;
+ height: 70rpx;
+ margin-left: 30rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+}
+
+.welfare-list-btn.remove{
+ border:solid 1rpx gray;
+ color: gray;
+ background: transparent;
+}
+
+/* footer */
+.welfare-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ background: white;
+ padding: 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.welfare-footer-nav{
+ text-align: center;
+}
+
+/* 空提示 */
+.welfare-list-null{
+ text-align: center;
+ color: gray;
+ padding: 200rpx 0;
+}
+
+.welfare-list-null-title{
+ font-weight: bold;
+ font-size: 30rpx;
+ color: black;
+ padding-bottom: 10rpx;
+}
+
+.welfare-list-null image{
+ width: 88rpx;
+ margin-bottom: 20rpx;
+}
diff --git a/pages/welfare_list/welfare_list.axml b/pages/welfare_list/welfare_list.axml
new file mode 100755
index 0000000..fa0a46b
--- /dev/null
+++ b/pages/welfare_list/welfare_list.axml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+ {{item.type}}{{item.name}}
+ {{item.status_text}}
+
+
+ {{item.created_at || '-'}}
+ {{item.cardnumber || '0'}}
+ {{item.cardprice || '0.00'}}
+ {{item.mobile || '-'}}
+ {{item.phone}}
+
+
+
+
+ {{item.silver == 0 ? '-': item.silver }}
+
+
+
+ 取消订单
+ 立即支付
+
+
+ 失败原因
+
+
+
+ 加载中...
+ 没有更多数据了~
+
+
+
+
+
+ 当前暂无办理记录
+ 什么都还没有,赶快去添加吧
+
+
+
+
+
+
diff --git a/pages/welfare_list/welfare_list.js b/pages/welfare_list/welfare_list.js
new file mode 100755
index 0000000..f031eb5
--- /dev/null
+++ b/pages/welfare_list/welfare_list.js
@@ -0,0 +1,263 @@
+
+const api = require("../../api/api"),
+ app = getApp()
+
+Page({
+ data: {
+ listArr : [],
+ identity_id : "",
+ permissions : false,
+ year : "",
+ month : "",
+ searchIndex : 0,
+ typeArr : [
+ {id: "" , name:"全部"},
+ {id: 0 , name:"待支付"},
+ {id: 1 , name:"待受理"},
+ {id: 2 , name:"已受理"},
+ {id: 3 , name:"已发券"},
+ {id: 4 , name:"办理失败"}
+ ],
+ typeIndex : 0,
+ num : "",
+ settleAmount: "",
+ settleMonth : "",
+ g4 : "",
+ g5 : "",
+ endDate : "",
+ isNowMonth : false,
+ page : 1,
+ meta : {},
+ isLogin : false
+ },
+
+ // 页面加载
+ onLoad() {
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ identity_id: app.globalData.userInfo.identity_id,
+ permissions: app.globalData.userInfo.perferential,
+ year : year,
+ month : month,
+ endDate : year + "-" + month
+ })
+ },
+
+ // 页面显示
+ onShow(){
+ this.setData({
+ listArr: []
+ })
+ this.welfareList()
+ my.showLoading();
+ my.showNavigationBarLoading();
+ },
+
+ // 列表
+ welfareList(tel){
+ let url = "preferential/lists",
+ dateYear = this.data.year + '-' + this.data.month
+
+ if(this.data.searchIndex == 1){
+ dateYear = "today"
+ } else if(this.data.searchIndex == 2){
+ dateYear = "yesterday"
+ }
+
+ api.request({
+ url : url,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ method: "POST",
+ data : {
+ date : dateYear,
+ mobile : tel || "",
+ status : this.data.typeArr[this.data.typeIndex].id,
+ settle : "",
+ page : this.data.page
+ }
+ }).then(res=>{
+ let atArr = this.data.listArr,
+ newArr = []
+
+ newArr = atArr.concat(res.data)
+
+ this.setData({
+ listArr : newArr,
+ num : res.num,
+ settleAmount: res.settleAmount,
+ settleMonth : res.settleMonth,
+ g4 : res.g4,
+ g5 : res.g5,
+ isNowMonth : res.isNowMonth
+ })
+ my.hideLoading();
+ my.hideNavigationBarLoading();
+ my.stopPullDownRefresh();
+ })
+ },
+
+ // 选择日期
+ selectTime(){
+ my.datePicker({
+ currentDate : this.data.year + "-" + this.data.month,
+ endDate : this.data.endDate,
+ format : "yyyy-MM",
+ success : res=>{
+ let dateString = String(res.date),
+ yearString = dateString.substring(0,4),
+ monthString = dateString.substring(5,7)
+
+ this.setData({
+ year : yearString,
+ month : monthString,
+ page : 1,
+ listArr : []
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ })
+ },
+
+ // 筛选日期
+ searchTab(e){
+ if(e.target.dataset.index != this.data.searchIndex){
+ this.setData({
+ searchIndex : e.target.dataset.index,
+ page : 1,
+ listArr : []
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+
+ if(e.target.dataset.index == 0 && !this.data.isNowMonth){
+ const date = new Date()
+
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1
+
+ if(month < 10){
+ month = '0' + month
+ }
+
+ this.setData({
+ year : year,
+ month : month
+ })
+
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+
+ // 类型筛选
+ screenClass(e){
+ this.setData({
+ typeIndex: e.detail.value,
+ page : 1,
+ listArr : []
+ })
+ this.welfareList()
+ my.showLoading();
+ },
+
+ // 搜索手机号码
+ searchForm(e){
+ this.setData({
+ page : 1,
+ listArr : []
+ })
+
+ let tel = e.detail.value.searchValue
+ this.welfareList(tel)
+ },
+
+ // 分页
+ onReachBottom(){
+ let meta = this.data.meta,
+ atPage = this.data.page
+
+ this.setData({
+ isLogin: true
+ })
+
+ if(meta.current_page < meta.last_page){
+ this.setData({
+ page: atPage + 1
+ })
+ this.welfareList()
+ my.showLoading();
+ }
+ },
+
+ //提示信息
+ errToast(e){
+ my.alert({
+ title : "失败原因",
+ content : e.currentTarget.dataset.remark
+ })
+ },
+
+ //取消订单
+ reomveOrder(e){
+ if(e.currentTarget.dataset.id){
+ let url = "preferential/" + e.currentTarget.dataset.id + "/cancel",
+ text = "确认取消订单吗?"
+
+ my.confirm({
+ title : "提示",
+ content : text,
+ success : res=>{
+ if(res.confirm){
+ my.showLoading()
+ api.request({
+ url : url,
+ header: {
+ "Authorization": app.globalData.token
+ },
+ }).then(res=>{
+ my.showToast({
+ type : "none",
+ content : res.data
+ });
+ my.hideLoading()
+ this.setData({
+ listArr : []
+ })
+ this.welfareList()
+ my.showLoading();
+ })
+ }
+ }
+ })
+
+
+ }else{
+ my.showToast({
+ type : "none",
+ content : "订单id不存在"
+ });
+ }
+ },
+
+ // 下拉刷新
+ onPullDownRefresh(){
+ this.setData({
+ listArr : []
+ })
+ this.welfareList()
+ }
+});
diff --git a/pages/welfare_list/welfare_list.json b/pages/welfare_list/welfare_list.json
new file mode 100755
index 0000000..2d1a61f
--- /dev/null
+++ b/pages/welfare_list/welfare_list.json
@@ -0,0 +1,5 @@
+{
+ "defaultTitle" : "冰激凌记录",
+ "titleBarColor": "#ff6600",
+ "pullRefresh": true
+}
\ No newline at end of file
diff --git a/snapshot.png b/snapshot.png
new file mode 100755
index 0000000..3a78436
Binary files /dev/null and b/snapshot.png differ