Browse Source

Initial commit

吴洪双 6 years ago
parent
commit
2d69502dcd
100 changed files with 11445 additions and 0 deletions
  1. BIN
      .DS_Store
  2. 17 0
      App.vue
  3. 3 0
      assets/scripts/date-fns.js
  4. 137 0
      assets/scripts/lodash.js
  5. 683 0
      assets/scripts/md5.js
  6. 20 0
      common/NavFuncs.js
  7. 3512 0
      components/u-charts/u-charts.js
  8. 6 0
      configs/constant.js
  9. 25 0
      configs/env.js
  10. 120 0
      configs/http.js
  11. 8 0
      configs/whitelist.js
  12. 23 0
      main.js
  13. 113 0
      manifest.json
  14. 17 0
      mixins/scss/mixins.scss
  15. 17 0
      mixins/vue/QuestionComponentMixin.js
  16. 52 0
      pages.json
  17. 120 0
      pages/Charts/column.vue
  18. 85 0
      pages/Login/Login.vue
  19. 30 0
      pages/User/user.vue
  20. BIN
      static/backgrounds/login_bg.png
  21. BIN
      static/icons/logo.png
  22. BIN
      static/img/home.png
  23. BIN
      static/img/homeHL.png
  24. BIN
      static/img/user.png
  25. BIN
      static/img/userHL.png
  26. 53 0
      store/index.js
  27. 30 0
      store/modules/chart.js
  28. 76 0
      uni.scss
  29. 4 0
      unpackage/dist/build/.tmp/app-plus/app.js
  30. 32 0
      unpackage/dist/build/.tmp/app-plus/app.json
  31. 1 0
      unpackage/dist/build/.tmp/app-plus/app.wxss
  32. 1 0
      unpackage/dist/build/.tmp/app-plus/common/main.js
  33. 17 0
      unpackage/dist/build/.tmp/app-plus/common/main.wxss
  34. 1 0
      unpackage/dist/build/.tmp/app-plus/common/runtime.js
  35. 36 0
      unpackage/dist/build/.tmp/app-plus/common/vendor.js
  36. 10 0
      unpackage/dist/build/.tmp/app-plus/components/paper/FillBlank.js
  37. 6 0
      unpackage/dist/build/.tmp/app-plus/components/paper/FillBlank.json
  38. 1 0
      unpackage/dist/build/.tmp/app-plus/components/paper/FillBlank.wxml
  39. 34 0
      unpackage/dist/build/.tmp/app-plus/components/paper/FillBlank.wxss
  40. 10 0
      unpackage/dist/build/.tmp/app-plus/components/paper/MultiAnswersChoise.js
  41. 6 0
      unpackage/dist/build/.tmp/app-plus/components/paper/MultiAnswersChoise.json
  42. 1 0
      unpackage/dist/build/.tmp/app-plus/components/paper/MultiAnswersChoise.wxml
  43. 50 0
      unpackage/dist/build/.tmp/app-plus/components/paper/MultiAnswersChoise.wxss
  44. 10 0
      unpackage/dist/build/.tmp/app-plus/components/paper/PaperListItem.js
  45. 4 0
      unpackage/dist/build/.tmp/app-plus/components/paper/PaperListItem.json
  46. 1 0
      unpackage/dist/build/.tmp/app-plus/components/paper/PaperListItem.wxml
  47. 76 0
      unpackage/dist/build/.tmp/app-plus/components/paper/PaperListItem.wxss
  48. 10 0
      unpackage/dist/build/.tmp/app-plus/components/paper/QandA.js
  49. 6 0
      unpackage/dist/build/.tmp/app-plus/components/paper/QandA.json
  50. 1 0
      unpackage/dist/build/.tmp/app-plus/components/paper/QandA.wxml
  51. 33 0
      unpackage/dist/build/.tmp/app-plus/components/paper/QandA.wxss
  52. 10 0
      unpackage/dist/build/.tmp/app-plus/components/paper/QuestionTitle.js
  53. 4 0
      unpackage/dist/build/.tmp/app-plus/components/paper/QuestionTitle.json
  54. 1 0
      unpackage/dist/build/.tmp/app-plus/components/paper/QuestionTitle.wxml
  55. 10 0
      unpackage/dist/build/.tmp/app-plus/components/paper/SingleAnswerChoise.js
  56. 6 0
      unpackage/dist/build/.tmp/app-plus/components/paper/SingleAnswerChoise.json
  57. 1 0
      unpackage/dist/build/.tmp/app-plus/components/paper/SingleAnswerChoise.wxml
  58. 50 0
      unpackage/dist/build/.tmp/app-plus/components/paper/SingleAnswerChoise.wxss
  59. 10 0
      unpackage/dist/build/.tmp/app-plus/components/paper/TrueFalse.js
  60. 6 0
      unpackage/dist/build/.tmp/app-plus/components/paper/TrueFalse.json
  61. 1 0
      unpackage/dist/build/.tmp/app-plus/components/paper/TrueFalse.wxml
  62. 50 0
      unpackage/dist/build/.tmp/app-plus/components/paper/TrueFalse.wxss
  63. 94 0
      unpackage/dist/build/.tmp/app-plus/manifest.json
  64. 1 0
      unpackage/dist/build/.tmp/app-plus/pages/Login/Login.js
  65. 5 0
      unpackage/dist/build/.tmp/app-plus/pages/Login/Login.json
  66. 1 0
      unpackage/dist/build/.tmp/app-plus/pages/Login/Login.wxml
  67. 73 0
      unpackage/dist/build/.tmp/app-plus/pages/Login/Login.wxss
  68. 1 0
      unpackage/dist/build/.tmp/app-plus/pages/Paper/Paper.js
  69. 9 0
      unpackage/dist/build/.tmp/app-plus/pages/Paper/Paper.json
  70. 1 0
      unpackage/dist/build/.tmp/app-plus/pages/Paper/Paper.wxml
  71. 39 0
      unpackage/dist/build/.tmp/app-plus/pages/Paper/Paper.wxss
  72. 1 0
      unpackage/dist/build/.tmp/app-plus/pages/PaperList/PaperList.js
  73. 8 0
      unpackage/dist/build/.tmp/app-plus/pages/PaperList/PaperList.json
  74. 1 0
      unpackage/dist/build/.tmp/app-plus/pages/PaperList/PaperList.wxml
  75. BIN
      unpackage/dist/build/.tmp/app-plus/static/backgrounds/login_bg.png
  76. BIN
      unpackage/dist/build/.tmp/app-plus/static/icons/logo.png
  77. 673 0
      unpackage/dist/build/app-plus/__uniappchooselocation.html
  78. 9 0
      unpackage/dist/build/app-plus/__uniappes6.js
  79. BIN
      unpackage/dist/build/app-plus/__uniappmarker@3x.png
  80. 284 0
      unpackage/dist/build/app-plus/__uniappopenlocation.html
  81. 10 0
      unpackage/dist/build/app-plus/__uniapppicker.html
  82. 146 0
      unpackage/dist/build/app-plus/__uniappscan.html
  83. BIN
      unpackage/dist/build/app-plus/__uniappsuccess.png
  84. 19 0
      unpackage/dist/build/app-plus/__uniapptabbar.html
  85. 58 0
      unpackage/dist/build/app-plus/__uniappview.html
  86. 1 0
      unpackage/dist/build/app-plus/app-config.js
  87. 2395 0
      unpackage/dist/build/app-plus/app-service.js
  88. 1754 0
      unpackage/dist/build/app-plus/app-view.js
  89. 94 0
      unpackage/dist/build/app-plus/manifest.json
  90. 2 0
      unpackage/dist/build/app-plus/pages/Login/Login.js
  91. 2 0
      unpackage/dist/build/app-plus/pages/Paper/Paper.js
  92. 1 0
      unpackage/dist/build/app-plus/pages/PaperList/PaperList.js
  93. BIN
      unpackage/dist/build/app-plus/static/backgrounds/login_bg.png
  94. BIN
      unpackage/dist/build/app-plus/static/icons/logo.png
  95. 4 0
      unpackage/dist/dev/.tmp/app-plus/app.js
  96. 32 0
      unpackage/dist/dev/.tmp/app-plus/app.json
  97. 1 0
      unpackage/dist/dev/.tmp/app-plus/app.wxss
  98. 62 0
      unpackage/dist/dev/.tmp/app-plus/common/main.js
  99. 17 0
      unpackage/dist/dev/.tmp/app-plus/common/main.wxss
  100. 0 0
      unpackage/dist/dev/.tmp/app-plus/common/runtime.js

BIN
.DS_Store


+ 17 - 0
App.vue

@@ -0,0 +1,17 @@
+<script>
+	export default {
+		// onLaunch: function() {
+		// 	console.log('App Launch');
+		// },
+		// onShow: function() {
+		// 	console.log('App Show');
+		// },
+		// onHide: function() {
+		// 	console.log('App Hide');
+		// }
+	}
+</script>
+
+<style>
+	/*每个页面公共css */
+</style>

File diff suppressed because it is too large
+ 3 - 0
assets/scripts/date-fns.js


File diff suppressed because it is too large
+ 137 - 0
assets/scripts/lodash.js


+ 683 - 0
assets/scripts/md5.js

@@ -0,0 +1,683 @@
+/**
+ * [js-md5]{@link https://github.com/emn178/js-md5}
+ *
+ * @namespace md5
+ * @version 0.7.3
+ * @author Chen, Yi-Cyuan [emn178@gmail.com]
+ * @copyright Chen, Yi-Cyuan 2014-2017
+ * @license MIT
+ */
+(function () {
+  'use strict';
+
+  var ERROR = 'input is invalid type';
+  var WINDOW = typeof window === 'object';
+  var root = WINDOW ? window : {};
+  if (root.JS_MD5_NO_WINDOW) {
+    WINDOW = false;
+  }
+  var WEB_WORKER = !WINDOW && typeof self === 'object';
+  var NODE_JS = !root.JS_MD5_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;
+  if (NODE_JS) {
+    root = global;
+  } else if (WEB_WORKER) {
+    root = self;
+  }
+  var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && typeof module === 'object' && module.exports;
+  var AMD = typeof define === 'function' && define.amd;
+  var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';
+  var HEX_CHARS = '0123456789abcdef'.split('');
+  var EXTRA = [128, 32768, 8388608, -2147483648];
+  var SHIFT = [0, 8, 16, 24];
+  var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64'];
+  var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
+
+  var blocks = [], buffer8;
+  if (ARRAY_BUFFER) {
+    var buffer = new ArrayBuffer(68);
+    buffer8 = new Uint8Array(buffer);
+    blocks = new Uint32Array(buffer);
+  }
+
+  if (root.JS_MD5_NO_NODE_JS || !Array.isArray) {
+    Array.isArray = function (obj) {
+      return Object.prototype.toString.call(obj) === '[object Array]';
+    };
+  }
+
+  if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {
+    ArrayBuffer.isView = function (obj) {
+      return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;
+    };
+  }
+
+  /**
+   * @method hex
+   * @memberof md5
+   * @description Output hash as hex string
+   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+   * @returns {String} Hex string
+   * @example
+   * md5.hex('The quick brown fox jumps over the lazy dog');
+   * // equal to
+   * md5('The quick brown fox jumps over the lazy dog');
+   */
+  /**
+   * @method digest
+   * @memberof md5
+   * @description Output hash as bytes array
+   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+   * @returns {Array} Bytes array
+   * @example
+   * md5.digest('The quick brown fox jumps over the lazy dog');
+   */
+  /**
+   * @method array
+   * @memberof md5
+   * @description Output hash as bytes array
+   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+   * @returns {Array} Bytes array
+   * @example
+   * md5.array('The quick brown fox jumps over the lazy dog');
+   */
+  /**
+   * @method arrayBuffer
+   * @memberof md5
+   * @description Output hash as ArrayBuffer
+   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+   * @returns {ArrayBuffer} ArrayBuffer
+   * @example
+   * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');
+   */
+  /**
+   * @method buffer
+   * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
+   * @memberof md5
+   * @description Output hash as ArrayBuffer
+   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+   * @returns {ArrayBuffer} ArrayBuffer
+   * @example
+   * md5.buffer('The quick brown fox jumps over the lazy dog');
+   */
+  /**
+   * @method base64
+   * @memberof md5
+   * @description Output hash as base64 string
+   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+   * @returns {String} base64 string
+   * @example
+   * md5.base64('The quick brown fox jumps over the lazy dog');
+   */
+  var createOutputMethod = function (outputType) {
+    return function (message) {
+      return new Md5(true).update(message)[outputType]();
+    };
+  };
+
+  /**
+   * @method create
+   * @memberof md5
+   * @description Create Md5 object
+   * @returns {Md5} Md5 object.
+   * @example
+   * var hash = md5.create();
+   */
+  /**
+   * @method update
+   * @memberof md5
+   * @description Create and update Md5 object
+   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+   * @returns {Md5} Md5 object.
+   * @example
+   * var hash = md5.update('The quick brown fox jumps over the lazy dog');
+   * // equal to
+   * var hash = md5.create();
+   * hash.update('The quick brown fox jumps over the lazy dog');
+   */
+  var createMethod = function () {
+    var method = createOutputMethod('hex');
+    if (NODE_JS) {
+      method = nodeWrap(method);
+    }
+    method.create = function () {
+      return new Md5();
+    };
+    method.update = function (message) {
+      return method.create().update(message);
+    };
+    for (var i = 0; i < OUTPUT_TYPES.length; ++i) {
+      var type = OUTPUT_TYPES[i];
+      method[type] = createOutputMethod(type);
+    }
+    return method;
+  };
+
+  var nodeWrap = function (method) {
+    var crypto = eval("require('crypto')");
+    var Buffer = eval("require('buffer').Buffer");
+    var nodeMethod = function (message) {
+      if (typeof message === 'string') {
+        return crypto.createHash('md5').update(message, 'utf8').digest('hex');
+      } else {
+        if (message === null || message === undefined) {
+          throw ERROR;
+        } else if (message.constructor === ArrayBuffer) {
+          message = new Uint8Array(message);
+        }
+      }
+      if (Array.isArray(message) || ArrayBuffer.isView(message) ||
+        message.constructor === Buffer) {
+        return crypto.createHash('md5').update(new Buffer(message)).digest('hex');
+      } else {
+        return method(message);
+      }
+    };
+    return nodeMethod;
+  };
+
+  /**
+   * Md5 class
+   * @class Md5
+   * @description This is internal class.
+   * @see {@link md5.create}
+   */
+  function Md5(sharedMemory) {
+    if (sharedMemory) {
+      blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =
+      blocks[4] = blocks[5] = blocks[6] = blocks[7] =
+      blocks[8] = blocks[9] = blocks[10] = blocks[11] =
+      blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
+      this.blocks = blocks;
+      this.buffer8 = buffer8;
+    } else {
+      if (ARRAY_BUFFER) {
+        var buffer = new ArrayBuffer(68);
+        this.buffer8 = new Uint8Array(buffer);
+        this.blocks = new Uint32Array(buffer);
+      } else {
+        this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+      }
+    }
+    this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;
+    this.finalized = this.hashed = false;
+    this.first = true;
+  }
+
+  /**
+   * @method update
+   * @memberof Md5
+   * @instance
+   * @description Update hash
+   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+   * @returns {Md5} Md5 object.
+   * @see {@link md5.update}
+   */
+  Md5.prototype.update = function (message) {
+    if (this.finalized) {
+      return;
+    }
+
+    var notString, type = typeof message;
+    if (type !== 'string') {
+      if (type === 'object') {
+        if (message === null) {
+          throw ERROR;
+        } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {
+          message = new Uint8Array(message);
+        } else if (!Array.isArray(message)) {
+          if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {
+            throw ERROR;
+          }
+        }
+      } else {
+        throw ERROR;
+      }
+      notString = true;
+    }
+    var code, index = 0, i, length = message.length, blocks = this.blocks;
+    var buffer8 = this.buffer8;
+
+    while (index < length) {
+      if (this.hashed) {
+        this.hashed = false;
+        blocks[0] = blocks[16];
+        blocks[16] = blocks[1] = blocks[2] = blocks[3] =
+        blocks[4] = blocks[5] = blocks[6] = blocks[7] =
+        blocks[8] = blocks[9] = blocks[10] = blocks[11] =
+        blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
+      }
+
+      if (notString) {
+        if (ARRAY_BUFFER) {
+          for (i = this.start; index < length && i < 64; ++index) {
+            buffer8[i++] = message[index];
+          }
+        } else {
+          for (i = this.start; index < length && i < 64; ++index) {
+            blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];
+          }
+        }
+      } else {
+        if (ARRAY_BUFFER) {
+          for (i = this.start; index < length && i < 64; ++index) {
+            code = message.charCodeAt(index);
+            if (code < 0x80) {
+              buffer8[i++] = code;
+            } else if (code < 0x800) {
+              buffer8[i++] = 0xc0 | (code >> 6);
+              buffer8[i++] = 0x80 | (code & 0x3f);
+            } else if (code < 0xd800 || code >= 0xe000) {
+              buffer8[i++] = 0xe0 | (code >> 12);
+              buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);
+              buffer8[i++] = 0x80 | (code & 0x3f);
+            } else {
+              code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));
+              buffer8[i++] = 0xf0 | (code >> 18);
+              buffer8[i++] = 0x80 | ((code >> 12) & 0x3f);
+              buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);
+              buffer8[i++] = 0x80 | (code & 0x3f);
+            }
+          }
+        } else {
+          for (i = this.start; index < length && i < 64; ++index) {
+            code = message.charCodeAt(index);
+            if (code < 0x80) {
+              blocks[i >> 2] |= code << SHIFT[i++ & 3];
+            } else if (code < 0x800) {
+              blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];
+              blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
+            } else if (code < 0xd800 || code >= 0xe000) {
+              blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];
+              blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];
+              blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
+            } else {
+              code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));
+              blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];
+              blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];
+              blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];
+              blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
+            }
+          }
+        }
+      }
+      this.lastByteIndex = i;
+      this.bytes += i - this.start;
+      if (i >= 64) {
+        this.start = i - 64;
+        this.hash();
+        this.hashed = true;
+      } else {
+        this.start = i;
+      }
+    }
+    if (this.bytes > 4294967295) {
+      this.hBytes += this.bytes / 4294967296 << 0;
+      this.bytes = this.bytes % 4294967296;
+    }
+    return this;
+  };
+
+  Md5.prototype.finalize = function () {
+    if (this.finalized) {
+      return;
+    }
+    this.finalized = true;
+    var blocks = this.blocks, i = this.lastByteIndex;
+    blocks[i >> 2] |= EXTRA[i & 3];
+    if (i >= 56) {
+      if (!this.hashed) {
+        this.hash();
+      }
+      blocks[0] = blocks[16];
+      blocks[16] = blocks[1] = blocks[2] = blocks[3] =
+      blocks[4] = blocks[5] = blocks[6] = blocks[7] =
+      blocks[8] = blocks[9] = blocks[10] = blocks[11] =
+      blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
+    }
+    blocks[14] = this.bytes << 3;
+    blocks[15] = this.hBytes << 3 | this.bytes >>> 29;
+    this.hash();
+  };
+
+  Md5.prototype.hash = function () {
+    var a, b, c, d, bc, da, blocks = this.blocks;
+
+    if (this.first) {
+      a = blocks[0] - 680876937;
+      a = (a << 7 | a >>> 25) - 271733879 << 0;
+      d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;
+      d = (d << 12 | d >>> 20) + a << 0;
+      c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375;
+      c = (c << 17 | c >>> 15) + d << 0;
+      b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209;
+      b = (b << 22 | b >>> 10) + c << 0;
+    } else {
+      a = this.h0;
+      b = this.h1;
+      c = this.h2;
+      d = this.h3;
+      a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936;
+      a = (a << 7 | a >>> 25) + b << 0;
+      d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586;
+      d = (d << 12 | d >>> 20) + a << 0;
+      c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819;
+      c = (c << 17 | c >>> 15) + d << 0;
+      b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330;
+      b = (b << 22 | b >>> 10) + c << 0;
+    }
+
+    a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897;
+    a = (a << 7 | a >>> 25) + b << 0;
+    d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426;
+    d = (d << 12 | d >>> 20) + a << 0;
+    c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341;
+    c = (c << 17 | c >>> 15) + d << 0;
+    b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983;
+    b = (b << 22 | b >>> 10) + c << 0;
+    a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416;
+    a = (a << 7 | a >>> 25) + b << 0;
+    d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417;
+    d = (d << 12 | d >>> 20) + a << 0;
+    c += (b ^ (d & (a ^ b))) + blocks[10] - 42063;
+    c = (c << 17 | c >>> 15) + d << 0;
+    b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162;
+    b = (b << 22 | b >>> 10) + c << 0;
+    a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682;
+    a = (a << 7 | a >>> 25) + b << 0;
+    d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101;
+    d = (d << 12 | d >>> 20) + a << 0;
+    c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290;
+    c = (c << 17 | c >>> 15) + d << 0;
+    b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329;
+    b = (b << 22 | b >>> 10) + c << 0;
+    a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510;
+    a = (a << 5 | a >>> 27) + b << 0;
+    d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632;
+    d = (d << 9 | d >>> 23) + a << 0;
+    c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713;
+    c = (c << 14 | c >>> 18) + d << 0;
+    b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302;
+    b = (b << 20 | b >>> 12) + c << 0;
+    a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691;
+    a = (a << 5 | a >>> 27) + b << 0;
+    d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083;
+    d = (d << 9 | d >>> 23) + a << 0;
+    c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335;
+    c = (c << 14 | c >>> 18) + d << 0;
+    b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848;
+    b = (b << 20 | b >>> 12) + c << 0;
+    a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438;
+    a = (a << 5 | a >>> 27) + b << 0;
+    d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690;
+    d = (d << 9 | d >>> 23) + a << 0;
+    c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961;
+    c = (c << 14 | c >>> 18) + d << 0;
+    b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501;
+    b = (b << 20 | b >>> 12) + c << 0;
+    a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467;
+    a = (a << 5 | a >>> 27) + b << 0;
+    d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784;
+    d = (d << 9 | d >>> 23) + a << 0;
+    c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473;
+    c = (c << 14 | c >>> 18) + d << 0;
+    b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734;
+    b = (b << 20 | b >>> 12) + c << 0;
+    bc = b ^ c;
+    a += (bc ^ d) + blocks[5] - 378558;
+    a = (a << 4 | a >>> 28) + b << 0;
+    d += (bc ^ a) + blocks[8] - 2022574463;
+    d = (d << 11 | d >>> 21) + a << 0;
+    da = d ^ a;
+    c += (da ^ b) + blocks[11] + 1839030562;
+    c = (c << 16 | c >>> 16) + d << 0;
+    b += (da ^ c) + blocks[14] - 35309556;
+    b = (b << 23 | b >>> 9) + c << 0;
+    bc = b ^ c;
+    a += (bc ^ d) + blocks[1] - 1530992060;
+    a = (a << 4 | a >>> 28) + b << 0;
+    d += (bc ^ a) + blocks[4] + 1272893353;
+    d = (d << 11 | d >>> 21) + a << 0;
+    da = d ^ a;
+    c += (da ^ b) + blocks[7] - 155497632;
+    c = (c << 16 | c >>> 16) + d << 0;
+    b += (da ^ c) + blocks[10] - 1094730640;
+    b = (b << 23 | b >>> 9) + c << 0;
+    bc = b ^ c;
+    a += (bc ^ d) + blocks[13] + 681279174;
+    a = (a << 4 | a >>> 28) + b << 0;
+    d += (bc ^ a) + blocks[0] - 358537222;
+    d = (d << 11 | d >>> 21) + a << 0;
+    da = d ^ a;
+    c += (da ^ b) + blocks[3] - 722521979;
+    c = (c << 16 | c >>> 16) + d << 0;
+    b += (da ^ c) + blocks[6] + 76029189;
+    b = (b << 23 | b >>> 9) + c << 0;
+    bc = b ^ c;
+    a += (bc ^ d) + blocks[9] - 640364487;
+    a = (a << 4 | a >>> 28) + b << 0;
+    d += (bc ^ a) + blocks[12] - 421815835;
+    d = (d << 11 | d >>> 21) + a << 0;
+    da = d ^ a;
+    c += (da ^ b) + blocks[15] + 530742520;
+    c = (c << 16 | c >>> 16) + d << 0;
+    b += (da ^ c) + blocks[2] - 995338651;
+    b = (b << 23 | b >>> 9) + c << 0;
+    a += (c ^ (b | ~d)) + blocks[0] - 198630844;
+    a = (a << 6 | a >>> 26) + b << 0;
+    d += (b ^ (a | ~c)) + blocks[7] + 1126891415;
+    d = (d << 10 | d >>> 22) + a << 0;
+    c += (a ^ (d | ~b)) + blocks[14] - 1416354905;
+    c = (c << 15 | c >>> 17) + d << 0;
+    b += (d ^ (c | ~a)) + blocks[5] - 57434055;
+    b = (b << 21 | b >>> 11) + c << 0;
+    a += (c ^ (b | ~d)) + blocks[12] + 1700485571;
+    a = (a << 6 | a >>> 26) + b << 0;
+    d += (b ^ (a | ~c)) + blocks[3] - 1894986606;
+    d = (d << 10 | d >>> 22) + a << 0;
+    c += (a ^ (d | ~b)) + blocks[10] - 1051523;
+    c = (c << 15 | c >>> 17) + d << 0;
+    b += (d ^ (c | ~a)) + blocks[1] - 2054922799;
+    b = (b << 21 | b >>> 11) + c << 0;
+    a += (c ^ (b | ~d)) + blocks[8] + 1873313359;
+    a = (a << 6 | a >>> 26) + b << 0;
+    d += (b ^ (a | ~c)) + blocks[15] - 30611744;
+    d = (d << 10 | d >>> 22) + a << 0;
+    c += (a ^ (d | ~b)) + blocks[6] - 1560198380;
+    c = (c << 15 | c >>> 17) + d << 0;
+    b += (d ^ (c | ~a)) + blocks[13] + 1309151649;
+    b = (b << 21 | b >>> 11) + c << 0;
+    a += (c ^ (b | ~d)) + blocks[4] - 145523070;
+    a = (a << 6 | a >>> 26) + b << 0;
+    d += (b ^ (a | ~c)) + blocks[11] - 1120210379;
+    d = (d << 10 | d >>> 22) + a << 0;
+    c += (a ^ (d | ~b)) + blocks[2] + 718787259;
+    c = (c << 15 | c >>> 17) + d << 0;
+    b += (d ^ (c | ~a)) + blocks[9] - 343485551;
+    b = (b << 21 | b >>> 11) + c << 0;
+
+    if (this.first) {
+      this.h0 = a + 1732584193 << 0;
+      this.h1 = b - 271733879 << 0;
+      this.h2 = c - 1732584194 << 0;
+      this.h3 = d + 271733878 << 0;
+      this.first = false;
+    } else {
+      this.h0 = this.h0 + a << 0;
+      this.h1 = this.h1 + b << 0;
+      this.h2 = this.h2 + c << 0;
+      this.h3 = this.h3 + d << 0;
+    }
+  };
+
+  /**
+   * @method hex
+   * @memberof Md5
+   * @instance
+   * @description Output hash as hex string
+   * @returns {String} Hex string
+   * @see {@link md5.hex}
+   * @example
+   * hash.hex();
+   */
+  Md5.prototype.hex = function () {
+    this.finalize();
+
+    var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;
+
+    return HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +
+      HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +
+      HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +
+      HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +
+      HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +
+      HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +
+      HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +
+      HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +
+      HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +
+      HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +
+      HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +
+      HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +
+      HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +
+      HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +
+      HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +
+      HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F];
+  };
+
+  /**
+   * @method toString
+   * @memberof Md5
+   * @instance
+   * @description Output hash as hex string
+   * @returns {String} Hex string
+   * @see {@link md5.hex}
+   * @example
+   * hash.toString();
+   */
+  Md5.prototype.toString = Md5.prototype.hex;
+
+  /**
+   * @method digest
+   * @memberof Md5
+   * @instance
+   * @description Output hash as bytes array
+   * @returns {Array} Bytes array
+   * @see {@link md5.digest}
+   * @example
+   * hash.digest();
+   */
+  Md5.prototype.digest = function () {
+    this.finalize();
+
+    var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;
+    return [
+      h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 24) & 0xFF,
+      h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 24) & 0xFF,
+      h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 24) & 0xFF,
+      h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 24) & 0xFF
+    ];
+  };
+
+  /**
+   * @method array
+   * @memberof Md5
+   * @instance
+   * @description Output hash as bytes array
+   * @returns {Array} Bytes array
+   * @see {@link md5.array}
+   * @example
+   * hash.array();
+   */
+  Md5.prototype.array = Md5.prototype.digest;
+
+  /**
+   * @method arrayBuffer
+   * @memberof Md5
+   * @instance
+   * @description Output hash as ArrayBuffer
+   * @returns {ArrayBuffer} ArrayBuffer
+   * @see {@link md5.arrayBuffer}
+   * @example
+   * hash.arrayBuffer();
+   */
+  Md5.prototype.arrayBuffer = function () {
+    this.finalize();
+
+    var buffer = new ArrayBuffer(16);
+    var blocks = new Uint32Array(buffer);
+    blocks[0] = this.h0;
+    blocks[1] = this.h1;
+    blocks[2] = this.h2;
+    blocks[3] = this.h3;
+    return buffer;
+  };
+
+  /**
+   * @method buffer
+   * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
+   * @memberof Md5
+   * @instance
+   * @description Output hash as ArrayBuffer
+   * @returns {ArrayBuffer} ArrayBuffer
+   * @see {@link md5.buffer}
+   * @example
+   * hash.buffer();
+   */
+  Md5.prototype.buffer = Md5.prototype.arrayBuffer;
+
+  /**
+   * @method base64
+   * @memberof Md5
+   * @instance
+   * @description Output hash as base64 string
+   * @returns {String} base64 string
+   * @see {@link md5.base64}
+   * @example
+   * hash.base64();
+   */
+  Md5.prototype.base64 = function () {
+    var v1, v2, v3, base64Str = '', bytes = this.array();
+    for (var i = 0; i < 15;) {
+      v1 = bytes[i++];
+      v2 = bytes[i++];
+      v3 = bytes[i++];
+      base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +
+        BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] +
+        BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] +
+        BASE64_ENCODE_CHAR[v3 & 63];
+    }
+    v1 = bytes[i];
+    base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +
+      BASE64_ENCODE_CHAR[(v1 << 4) & 63] +
+      '==';
+    return base64Str;
+  };
+
+  var exports = createMethod();
+
+  if (COMMON_JS) {
+    module.exports = exports;
+  } else {
+    /**
+     * @method md5
+     * @description Md5 hash function, export to global in browsers.
+     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+     * @returns {String} md5 hashes
+     * @example
+     * md5(''); // d41d8cd98f00b204e9800998ecf8427e
+     * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6
+     * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0
+     *
+     * // It also supports UTF-8 encoding
+     * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07
+     *
+     * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`
+     * md5([]); // d41d8cd98f00b204e9800998ecf8427e
+     * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e
+     */
+    root.md5 = exports;
+    if (AMD) {
+      define(function () {
+        return exports;
+      });
+    }
+  }
+})();

+ 20 - 0
common/NavFuncs.js

@@ -0,0 +1,20 @@
+
+function redirectToLogin() {
+	redirectTo('/pages/Login/Login');
+}
+
+function redirectTo(url) {
+	uni.redirectTo({
+		url
+	});
+}
+
+function goBack() {
+	uni.navigateBack();
+}
+
+export {
+	redirectToLogin,
+	redirectTo,
+	goBack
+};

File diff suppressed because it is too large
+ 3512 - 0
components/u-charts/u-charts.js


+ 6 - 0
configs/constant.js

@@ -0,0 +1,6 @@
+// 常量, 一些key什么的
+
+export default {
+	// 登录后后台返回的TOKEN在storage中的key
+	TOKEN: 'TOKEN_STORAGE_KEY',
+}

+ 25 - 0
configs/env.js

@@ -0,0 +1,25 @@
+let configs = {
+	baseUrl: 'localhost',
+	isProduction: false,
+	apis: {
+		// sz: '/SHENZEE-SERVER',
+		sz: '',
+	}
+};
+
+if (process.env.NODE_ENV === 'development') {
+	// 测试环境
+	configs = Object.assign(configs, {
+		baseUrl: 'http://127.0.0.1:8090',
+	});
+}
+
+if (process.env.NODE_ENV === 'production') {
+    // 生产环境
+	configs = Object.assign(configs, {
+		baseUrl: 'https://xxx/',
+		// isProduction: true,
+	});
+}
+
+export default configs;

+ 120 - 0
configs/http.js

@@ -0,0 +1,120 @@
+import configs from '@/configs/env';
+import { tokenList } from '@/configs/whitelist';
+import Constants from '@/configs/constant';
+import Http from '@/utils/Http/Http';
+import MD5 from '@/assets/scripts/md5';
+import store from '@/store';
+
+import { redirectToLogin } from '@/common/NavFuncs';
+
+// TOKEN request拦截器
+const add_token_to_request_interceptor = function (res) {
+	const url = `${res.baseUrl}${res.url}`.replace(configs.baseUrl, '');
+	let inWhitelist = false;
+	for (let whiteUrl of tokenList) {
+		if (url.indexOf(whiteUrl) > -1) {
+			inWhitelist = true;
+			return res;
+		}
+	}
+	// in white list
+	if (inWhitelist) {
+		return res;
+	}
+	// not in white list
+	// const token = uni.getStorageSync(Constants.TOKEN);
+	const token = store.state.token;
+	// console.log(`token: `, token);
+    if (!token) {
+        redirectToLogin();
+		throw new Error('请登录');
+    }
+	const header = res.header || {};
+	res.header = { 'Authorization': `Bearer ${token}`, ...header };
+	return res;
+}
+
+// params加密拦截器
+const params_encryption_request_interceptor = function (res) {
+	const url = `${res.baseUrl}${res.url}`.replace(configs.baseUrl, '');
+	const { data } = res;
+	const keys = [], values = [];
+	if (data) {
+		for (let key of Object.keys(data)) {
+			keys.push(key);
+		}
+		keys.sort();
+		keys.forEach(key => {
+			let value = data[key];
+			if (typeof value === 'string'
+				|| typeof value === 'number') {
+				// do nothing
+			} else if (typeof value === 'boolean') {
+				value = `${value}`;
+			} else {
+				value = '';
+			}
+			values.push(value);
+		});
+	}
+	const encryptList = [url, keys, values];
+	const VALIDATE = MD5(JSON.stringify(encryptList));
+	// console.log(`encrypt=${JSON.stringify(encryptList)}, MD5=${VALIDATE}`);
+	const header = res.header || {};
+	res.header = { VALIDATE, 'ifLogResponse': '1', ...header };
+	return res;
+}
+
+// 基础响应成功拦截器
+const base_res_resolve_interceptor = function (res) {
+	console.log(`http ok: `);
+    if (res.data && !res.data.code) {
+        if (res.data && res.data.message) {
+    		uni.showToast({
+    			title: res.data.message,
+				icon:'none',
+    			position:'bottom'
+    		});
+        }
+        return Promise.reject(res)
+    }
+    return res.data;
+}
+// 基础响应拒绝拦截器
+const base_res_reject_interceptor = function (err) {
+	console.log(`http error: `);
+    if (err.data && err.data.message) {
+        uni.showToast({
+			title: err.data.message,
+			icon: 'none',
+			position:'bottom'
+		});
+    } else {
+		let errMsg = err.message || '系统错误';
+		if (err && err.errMsg) {
+			if (err.errMsg.indexOf('fail timeout') > -1) {
+				errMsg = '连接超时';
+			} else if (err.errMsg === 'request:fail') {
+				errMsg = '网络连接失败';
+			}
+		}
+        uni.showToast({
+			title: errMsg,
+			icon: 'none',
+			position:'bottom'
+		});
+    }
+    return Promise.reject(err)
+}
+
+const apis = Object.keys(configs.apis).reduce((res, key) => {
+	res[key] = new Http({
+		baseUrl: `${configs.baseUrl}${configs.apis[key]}`
+	});
+	//res[key].interceptors.request.add(add_token_to_request_interceptor);
+	//res[key].interceptors.request.add(params_encryption_request_interceptor);
+	res[key].interceptors.response.add(base_res_resolve_interceptor, base_res_reject_interceptor);
+	return res;
+}, {});
+
+export default apis;

+ 8 - 0
configs/whitelist.js

@@ -0,0 +1,8 @@
+const tokenList = [
+	'User/HrPotUser/userAppLogin',
+	'User/HrPotUser/userLogin'
+];
+
+export {
+	tokenList,
+};

+ 23 - 0
main.js

@@ -0,0 +1,23 @@
+import Vue from 'vue'
+import App from './App'
+import apis from './configs/http';
+import store from './store';
+import env from '@/configs/env';
+
+
+
+Vue.config.productionTip = !!env.isProduction;
+
+App.mpType = 'app'
+
+Vue.prototype.$store = store;
+
+const app = new Vue({
+	store,
+	...App,
+});
+app.$mount();
+
+Object.keys(apis).forEach(key => {
+	Vue.prototype[`$${key}`] = apis[key];
+});

+ 113 - 0
manifest.json

@@ -0,0 +1,113 @@
+{
+    "name" : "润银小测",
+    "appid" : "__UNI__C9DE28D",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        /* 不显示软键盘上的导航条 */
+        "softinput" : {
+            "navBar" : "none"
+        },
+        "usingComponents" : true,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {},
+            "icons" : {
+                "android" : {
+                    "hdpi" : "unpackage/res/icons/72x72.png",
+                    "xhdpi" : "unpackage/res/icons/96x96.png",
+                    "xxhdpi" : "unpackage/res/icons/144x144.png",
+                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
+                },
+                "ios" : {
+                    "appstore" : "unpackage/res/icons/1024x1024.png",
+                    "ipad" : {
+                        "app" : "unpackage/res/icons/76x76.png",
+                        "app@2x" : "unpackage/res/icons/152x152.png",
+                        "notification" : "unpackage/res/icons/20x20.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "proapp@2x" : "unpackage/res/icons/167x167.png",
+                        "settings" : "unpackage/res/icons/29x29.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "spotlight" : "unpackage/res/icons/40x40.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
+                    },
+                    "iphone" : {
+                        "app@2x" : "unpackage/res/icons/120x120.png",
+                        "app@3x" : "unpackage/res/icons/180x180.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "notification@3x" : "unpackage/res/icons/60x60.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "settings@3x" : "unpackage/res/icons/87x87.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
+                    }
+                }
+            }
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "h5" : {
+        "title" : "润银小测",
+        "domain" : "localhost"
+    }
+}

+ 17 - 0
mixins/scss/mixins.scss

@@ -0,0 +1,17 @@
+
+@mixin question-option {
+	.option-group {
+		@include option-area;
+		.option {
+			display: flex;
+			flex-flow: row nowrap;
+			justify-content: flex-start;
+			align-items: center;
+			padding: 10upx 0;
+		}
+	}
+}
+
+@mixin option-area {
+	padding: 5upx 20upx;
+}

+ 17 - 0
mixins/vue/QuestionComponentMixin.js

@@ -0,0 +1,17 @@
+
+export default {
+	data() {
+		return {
+			color: '#f4ae1b'
+		}
+	},
+	props: ['value'],
+	methods: {
+		getOptionValue(index) {
+			return String.fromCharCode(65 + index);
+		},
+		updateValue: function(value) {
+			this.$emit('input', value);
+		}
+	}
+}

+ 52 - 0
pages.json

@@ -0,0 +1,52 @@
+{
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+            "path" : "pages/Login/Login",
+            "style" : {
+				"navigationStyle": "custom",
+				"disableScroll": true
+			}
+        },
+		{
+		    "path" : "pages/Charts/column",
+		    "style" : {
+				"navigationBarTitleText":"统计图表"
+				// "disableScroll": true,
+				// "enablePullDownRefresh": true
+			}
+		},
+		{
+		    "path" : "pages/User/user",
+		    "style" : {
+				"navigationBarTitleText":"我的"
+			}
+		}
+    ],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8",
+		"animationType":"slide-in-right",
+		"animationDuration":200
+	},
+	"tabBar": {
+		"color": "#7A7E83",
+		"selectedColor": "#007AFF",
+		"borderStyle": "black",
+		"backgroundColor": "#F8F8F8",
+		"list": [{
+				"pagePath": "pages/Charts/column",
+				"iconPath": "static/img/home.png",
+				"selectedIconPath": "static/img/homeHL.png",
+				"text": "首页"
+			},
+			{
+				"pagePath": "pages/User/user",
+				"iconPath": "static/img/user.png",
+				"selectedIconPath": "static/img/userHL.png",
+				"text": "我的"
+			}
+		]
+	}
+}

+ 120 - 0
pages/Charts/column.vue

@@ -0,0 +1,120 @@
+<template>
+	<view class="qiun-columns">
+		<view class="qiun-bg-white qiun-title-bar qiun-common-mt" >
+			<view class="qiun-title-dot-light">基本柱状图</view>
+		</view>
+		<view class="qiun-charts" style="background-color: #E5FDC3;">
+			<!--#ifdef MP-ALIPAY -->
+			<canvas canvas-id="canvasColumn" id="canvasColumn" class="charts" style="background-color: #E5FDC3;" :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
+			<!--#endif-->
+			<!--#ifndef MP-ALIPAY -->
+			<canvas canvas-id="canvasColumn" id="canvasColumn" class="charts" style="background-color: #E5FDC3;"></canvas>
+			<!--#endif-->
+		</view>
+	</view>
+</template>
+
+<script>
+	import { mapState, mapActions, mapMutations } from 'vuex';
+	import uCharts from '@/components/u-charts/u-charts.js';
+	var _self;
+	var canvaColumn=null;
+	/*下面是服务器返回的数据格式*/
+	
+   /* var Data={
+   	Column:{categories:['2012', '2013', '2014', '2015', '2016', '2017'],
+	series:[
+		{
+		name: '成交量1',
+		data:[15, {value:20,color:'#f04864'},45, 37, 43, 34],
+		},
+		{
+		name: '成交量2',
+		data:[30, {value:40,color:'#facc14'}, 25, 14, 34, 18],
+		}]}
+	} */
+	export default {
+		data() {
+			return {
+				cWidth:'',
+				cHeight:'',
+				pixelRatio:1,
+				serverData:'',
+			}
+		},
+		computed: {
+			...mapState(['loginUser']),
+			...mapState('chart',['column']),
+		},
+		onLoad() {
+			console.log(this.loginUser)
+			
+			_self = this;
+			this.cWidth=uni.upx2px(750);
+			this.cHeight=uni.upx2px(500);
+			// this.showColumn("canvasColumn",Data.Column);
+			this.getProductSaleMonth(this.loginUser['id'])
+					.then(_ => [uni.stopPullDownRefresh(),this.showColumn("canvasColumn",this.column)], _ => void uni.stopPullDownRefresh());
+		},
+		methods: {
+			...mapActions('chart', ['getProductSaleMonth']),
+			showColumn(canvasId,chartData){
+				canvaColumn=new uCharts({
+					$this:_self,
+					canvasId: canvasId,
+					enableScroll:true,
+					type: 'column',
+					legend:true,
+					fontSize:11,
+					background:'#E5FDC3',
+					pixelRatio:_self.pixelRatio,
+					animation: true,
+					categories: chartData.categories,
+					series: chartData.series,
+					xAxis: {
+						scrollShow:true,
+						itemCount:8,
+						disableGrid:true,
+					},
+					yAxis: {
+						//disabled:true
+					},
+					dataLabel: true,
+					width: _self.cWidth*_self.pixelRatio,
+					height: _self.cHeight*_self.pixelRatio,
+					extra: {
+						column: {
+						  // width: _self.cWidth*_self.pixelRatio*0.45/chartData.categories.length
+						  width:30
+						}
+					  }
+				});
+			},
+			touchColumn(e){
+				canvaColumn.showToolTip(e, {
+					format: function (item, category) {
+						if(typeof item.data === 'object'){
+							return category + ' ' + item.name + ':' + item.data.value 
+						}else{
+							return category + ' ' + item.name + ':' + item.data 
+						}
+					}
+				});
+			},
+		}
+	}
+</script>
+
+<style>
+page{background:#F2F2F2;width: 750upx;overflow-x: hidden;}
+.qiun-padding{padding:2%; width:96%;}
+.qiun-wrap{display:flex; flex-wrap:wrap;}
+.qiun-rows{display:flex; flex-direction:row !important;}
+.qiun-columns{display:flex; flex-direction:column !important;}
+.qiun-common-mt{margin-top:10upx;}
+.qiun-bg-white{background:#FFFFFF;}
+.qiun-title-bar{width:96%; padding:10upx 2%; flex-wrap:nowrap;}
+.qiun-title-dot-light{border-left: 10upx solid #0ea391; padding-left: 10upx; font-size: 32upx;color: #000000}
+.qiun-charts{width: 750upx; height:500upx;background-color: #FFFFFF;}
+.charts{width: 750upx; height:500upx;background-color: #FFFFFF;}
+</style>

+ 85 - 0
pages/Login/Login.vue

@@ -0,0 +1,85 @@
+<template>
+	<view class="content">
+		<image class="logo" src="/static/icons/logo.png"></image>
+		<view class="title">
+			管理后台
+		</view>
+		<form @submit="loginSubmit">
+			<view class="section">
+				<input class="input-account" name="username" placeholder="请输入用户名" />
+			</view>
+			<view class="section">
+				<input class="input-pwd" password name="password" placeholder="请输入密码" />
+			</view>
+			<view class="btn-area">
+				<button type="primary" formType="submit" :loading="isLoading">{{loginBtnLabel}}</button>
+			</view>
+		</form>
+	</view>
+</template>
+
+<script>
+	import { mapState } from 'vuex';
+	export default {
+		computed: {
+			...mapState(['isLoading']),
+			loginBtnLabel() {
+				return this.isLoading ? '' : '登录';
+			}
+		},
+		methods: {
+			loginSubmit(event) {
+				uni.hideKeyboard();
+				const { value: loginForm } = event.detail;
+				this.$store.dispatch('login', loginForm)
+					.then(_ => {
+						// uni.redirectTo({
+						// 	url: '/pages/Charts/column',
+						// });
+						uni.reLaunch({
+						    url: '/pages/Charts/column',
+						});
+					});
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		padding: 200upx 0 0 0;
+		background-image: url('~@/static/backgrounds/login_bg.png');
+		background-repeat: no-repeat;
+		background-size: 100% 100%;
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		.content {
+			padding: 0 20upx;
+			display: flex;
+			flex-flow: column nowrap;
+			align-items: center;
+			.logo {
+				width: 100upx;
+				height: 100upx;
+				text-align: center;
+				margin: 50upx;
+			}
+			form {
+				width: calc(100% - 100upx);
+				padding: 50upx;
+				.section {
+					margin: 50upx 0;
+				}
+				.btn-area {
+					margin-top: 100upx;
+					button {
+						background-color: $uni-color-primary;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 30 - 0
pages/User/user.vue

@@ -0,0 +1,30 @@
+<template>
+    <view class="content">
+        <view class="btn-row">
+            <button type="default" @tap="bindLogout">退出登录</button>
+        </view>
+    </view>
+</template>
+
+<script>
+    import {
+        mapState,
+        mapMutations
+    } from 'vuex'
+
+    export default {
+        computed: {
+        },
+        methods: {
+            bindLogout() {
+				uni.reLaunch({
+					url: '/pages/Login/Login',
+				});
+            }
+        }
+    }
+</script>
+
+<style>
+
+</style>

BIN
static/backgrounds/login_bg.png


BIN
static/icons/logo.png


BIN
static/img/home.png


BIN
static/img/homeHL.png


BIN
static/img/user.png


BIN
static/img/userHL.png


+ 53 - 0
store/index.js

@@ -0,0 +1,53 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+
+import MD5 from '@/assets/scripts/md5';
+import configs from '@/configs/env';
+import apis from '@/configs/http';
+import chart from '@/store/modules/chart';
+
+Vue.use(Vuex);
+
+const store = new Vuex.Store({
+	strict: !configs.isProduction,
+	modules: {
+		chart
+	},
+	state: {
+		loginUser: {},
+		token: '',
+		isLoading: false,
+	},
+	mutations: {
+		setLoginUser(state, loginUser) {
+			state.loginUser = loginUser;
+		},
+		setToken(state, token) {
+			state.token = token;
+		},
+		setLoading(state, flag) {
+			state.isLoading = flag;
+		},
+	},
+	actions: {
+		login({ commit }, { username, password }) {
+			commit('setLoading', true);
+			console.log(`login actions: `, arguments);
+			const encryptPwd = MD5(password);
+			const data = { username, password: encryptPwd };
+			return apis.sz.post('/TAdmin/userLogin', data)
+				.then(res => {
+					// const { token, userObj } = res.data;
+					const userObj = res.data;
+					commit('setLoading', false);
+					commit('setLoginUser', userObj);
+					// commit('setToken', token);
+				}, _ => {
+					commit('setLoading', false);
+					return Promise.reject();
+				});
+		}
+	}
+});
+
+export default store;

+ 30 - 0
store/modules/chart.js

@@ -0,0 +1,30 @@
+import apis from '@/configs/http';
+import { redirectToLogin, redirectTo } from '@/common/NavFuncs';
+
+export default {
+	namespaced: true,
+	state: {
+		column: null
+	},
+	mutations: {
+		setColumn(state, column) {
+			state.column = column;
+		}
+	},
+	getters: {
+		getColumn(state) {
+			return state.column
+		}
+	},
+	actions: {
+		getProductSaleMonth({ commit },userId) {
+			console.log('userId:'+userId);
+			return apis.sz.get('/TOrder/getProductSaleMonth?userId='+userId)
+				.then(res => {
+					const { data } = res;
+					commit('setColumn', data);
+				});
+		}
+	}
+}
+

+ 76 - 0
uni.scss

@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #f4ae1b;
+$uni-color-success: #4cd964;
+$uni-color-warning: #ff9966;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:24upx;
+$uni-font-size-base:28upx;
+$uni-font-size-lg:32upx;
+
+/* 图片尺寸 */
+$uni-img-size-sm:40upx;
+$uni-img-size-base:52upx;
+$uni-img-size-lg:80upx;
+
+/* Border Radius */
+$uni-border-radius-sm: 4upx;
+$uni-border-radius-base: 6upx;
+$uni-border-radius-lg: 12upx;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 10px;
+$uni-spacing-row-base: 20upx;
+$uni-spacing-row-lg: 30upx;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 8upx;
+$uni-spacing-col-base: 16upx;
+$uni-spacing-col-lg: 24upx;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:40upx;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:36upx;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:30upx;

+ 4 - 0
unpackage/dist/build/.tmp/app-plus/app.js

@@ -0,0 +1,4 @@
+
+require('./common/runtime.js')
+require('./common/vendor.js')
+require('./common/main.js')

+ 32 - 0
unpackage/dist/build/.tmp/app-plus/app.json

@@ -0,0 +1,32 @@
+{
+  "pages": [
+    "pages/Login/Login",
+    "pages/PaperList/PaperList",
+    "pages/Paper/Paper"
+  ],
+  "subPackages": [],
+  "window": {
+    "navigationBarTextStyle": "black",
+    "navigationBarTitleText": "",
+    "navigationBarBackgroundColor": "#F8F8F8",
+    "backgroundColor": "#F8F8F8",
+    "animationType": "slide-in-right",
+    "animationDuration": 200
+  },
+  "nvueCompiler": "weex",
+  "splashscreen": {
+    "alwaysShowBeforeRender": true,
+    "autoclose": false
+  },
+  "appname": "润银小测",
+  "compilerVersion": "2.1.1",
+  "usingComponents": {
+    "paper-list-item": "/components/paper/PaperListItem",
+    "question-title": "/components/paper/QuestionTitle",
+    "single-answer-choise": "/components/paper/SingleAnswerChoise",
+    "multi-answers-choise": "/components/paper/MultiAnswersChoise",
+    "fill-blank": "/components/paper/FillBlank",
+    "true-false": "/components/paper/TrueFalse",
+    "qand-a": "/components/paper/QandA"
+  }
+}

+ 1 - 0
unpackage/dist/build/.tmp/app-plus/app.wxss

@@ -0,0 +1 @@
+@import './common/main.wxss';

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/.tmp/app-plus/common/main.js


+ 17 - 0
unpackage/dist/build/.tmp/app-plus/common/main.wxss

@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*每个页面公共css */
+

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/.tmp/app-plus/common/runtime.js


File diff suppressed because it is too large
+ 36 - 0
unpackage/dist/build/.tmp/app-plus/common/vendor.js


File diff suppressed because it is too large
+ 10 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/FillBlank.js


+ 6 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/FillBlank.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "question-title": "/components/paper/QuestionTitle"
+  },
+  "component": true
+}

+ 1 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/FillBlank.wxml

@@ -0,0 +1 @@
+<view><question-title vue-id="1" num="{{num}}" title="{{question.question.questionTitle}}" bind:__l="__l"></question-title><view class="fill-blank"><block wx:for="{{question.blankCount}}" wx:for-item="index" wx:for-index="__i0__" wx:key="*this"><input type="text" placeholder="请填写内容" data-event-opts="{{[['input',[['fillInAnswer',['$0','$event'],[[['question.blankCount','',__i0__]]]]]]]}}" bindinput="__e"/></block></view></view>

+ 34 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/FillBlank.wxss

@@ -0,0 +1,34 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.fill-blank {
+  padding: 5rpx 20rpx;
+}
+.fill-blank input {
+    border: 1px solid #c8c7cc;
+    margin: 10rpx 0;
+}
+

File diff suppressed because it is too large
+ 10 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/MultiAnswersChoise.js


+ 6 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/MultiAnswersChoise.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "question-title": "/components/paper/QuestionTitle"
+  },
+  "component": true
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/MultiAnswersChoise.wxml


+ 50 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/MultiAnswersChoise.wxss

@@ -0,0 +1,50 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.option-group {
+  padding: 5rpx 20rpx;
+}
+.option-group .option {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    -webkit-flex-flow: row nowrap;
+        -ms-flex-flow: row nowrap;
+            flex-flow: row nowrap;
+    -webkit-box-pack: start;
+    -webkit-justify-content: flex-start;
+        -ms-flex-pack: start;
+            justify-content: flex-start;
+    -webkit-box-align: center;
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center;
+    padding: 10rpx 0;
+}
+

File diff suppressed because it is too large
+ 10 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/PaperListItem.js


+ 4 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/PaperListItem.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/PaperListItem.wxml

@@ -0,0 +1 @@
+<view data-event-opts="{{[['tap',[['$emit',['click']]]]]}}" class="item-content" bindtap="__e"><view class="content-wrapper"><view class="paper-name">{{''+(paper.paperName||'')+''}}</view><view class="paper-desc">{{''+(paper.paperDescription||'')+''}}</view><view class="total-score">{{'总分: '+(paper.totalScore||'-')+''}}</view></view></view>

+ 76 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/PaperListItem.wxss

@@ -0,0 +1,76 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.item-content {
+  padding: 20rpx;
+}
+.item-content .content-wrapper {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    -webkit-flex-flow: column nowrap;
+        -ms-flex-flow: column nowrap;
+            flex-flow: column nowrap;
+    -webkit-box-align: start;
+    -webkit-align-items: flex-start;
+        -ms-flex-align: start;
+            align-items: flex-start;
+    -webkit-box-pack: stretch;
+    -webkit-justify-content: stretch;
+        -ms-flex-pack: stretch;
+            justify-content: stretch;
+    border: 1px solid #c8c7cc;
+    border-radius: 10rpx;
+    background-color: #f8f8f8;
+}
+.item-content .content-wrapper:active {
+      background-color: #f1f1f1;
+}
+.item-content .content-wrapper .paper-name {
+      color: #333;
+      position: relative;
+      padding: 10rpx;
+}
+.item-content .content-wrapper .paper-name::after {
+        content: ' ';
+        border-bottom: 1px solid #c0c0c0;
+        position: absolute;
+        bottom: 0rpx;
+        left: 0rpx;
+        width: 100%;
+}
+.item-content .content-wrapper .paper-desc {
+      color: #999;
+      font-size: 24rpx;
+}
+.item-content .content-wrapper .total-score {
+      margin-top: 10rpx;
+      font-size: 32rpx;
+}
+

File diff suppressed because it is too large
+ 10 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/QandA.js


+ 6 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/QandA.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "question-title": "/components/paper/QuestionTitle"
+  },
+  "component": true
+}

+ 1 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/QandA.wxml

@@ -0,0 +1 @@
+<view><question-title vue-id="1" num="{{num}}" title="{{question.question.questionTitle}}" bind:__l="__l"></question-title><view class="answer-area"><textarea placeholder="请输入答案" data-event-opts="{{[['input',[['answerChanged',['$event']]]]]}}" bindinput="__e"></textarea></view></view>

+ 33 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/QandA.wxss

@@ -0,0 +1,33 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.answer-area {
+  padding: 5rpx 20rpx;
+}
+.answer-area textarea {
+    border: 1px solid #c8c7cc;
+}
+

File diff suppressed because it is too large
+ 10 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/QuestionTitle.js


+ 4 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/QuestionTitle.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/QuestionTitle.wxml

@@ -0,0 +1 @@
+<view>{{num+". "+title}}</view>

File diff suppressed because it is too large
+ 10 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/SingleAnswerChoise.js


+ 6 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/SingleAnswerChoise.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "question-title": "/components/paper/QuestionTitle"
+  },
+  "component": true
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/SingleAnswerChoise.wxml


+ 50 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/SingleAnswerChoise.wxss

@@ -0,0 +1,50 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.option-group {
+  padding: 5rpx 20rpx;
+}
+.option-group .option {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    -webkit-flex-flow: row nowrap;
+        -ms-flex-flow: row nowrap;
+            flex-flow: row nowrap;
+    -webkit-box-pack: start;
+    -webkit-justify-content: flex-start;
+        -ms-flex-pack: start;
+            justify-content: flex-start;
+    -webkit-box-align: center;
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center;
+    padding: 10rpx 0;
+}
+

File diff suppressed because it is too large
+ 10 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/TrueFalse.js


+ 6 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/TrueFalse.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "question-title": "/components/paper/QuestionTitle"
+  },
+  "component": true
+}

+ 1 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/TrueFalse.wxml

@@ -0,0 +1 @@
+<view><question-title vue-id="1" num="{{num}}" title="{{question.question.questionTitle}}" bind:__l="__l"></question-title><view class="option-group"><radio-group data-event-opts="{{[['change',[['trueFalseChanged',['$event']]]]]}}" bindchange="__e"><label class="option"><view><radio value="是" color="{{color}}"></radio></view><view>是</view></label><label class="option"><view><radio value="否" color="{{color}}"></radio></view><view>否</view></label></radio-group></view></view>

+ 50 - 0
unpackage/dist/build/.tmp/app-plus/components/paper/TrueFalse.wxss

@@ -0,0 +1,50 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.option-group {
+  padding: 5rpx 20rpx;
+}
+.option-group .option {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    -webkit-flex-flow: row nowrap;
+        -ms-flex-flow: row nowrap;
+            flex-flow: row nowrap;
+    -webkit-box-pack: start;
+    -webkit-justify-content: flex-start;
+        -ms-flex-pack: start;
+            justify-content: flex-start;
+    -webkit-box-align: center;
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center;
+    padding: 10rpx 0;
+}
+

+ 94 - 0
unpackage/dist/build/.tmp/app-plus/manifest.json

@@ -0,0 +1,94 @@
+{
+  "@platforms": [
+    "android",
+    "iPhone",
+    "iPad"
+  ],
+  "id": "__UNI__C9DE28D",
+  "name": "润银小测",
+  "version": {
+    "name": "1.0.0",
+    "code": "100"
+  },
+  "description": "",
+  "launch_path": "__uniappview.html",
+  "developer": {
+    "name": "",
+    "email": "",
+    "url": ""
+  },
+  "permissions": {
+    "UniNView": {
+      "description": "UniNView原生渲染"
+    }
+  },
+  "plus": {
+    "useragent": {
+      "value": "uni-app appservice",
+      "concatenate": true
+    },
+    "splashscreen": {
+      "target": "id:1",
+      "autoclose": true,
+      "waiting": true,
+      "delay": 0
+    },
+    "popGesture": "close",
+    "launchwebview": {
+      "render": "always",
+      "id": "1",
+      "kernel": "WKWebview"
+    },
+    "statusbar": {
+      "immersed": "supportedDevice",
+      "style": "dark",
+      "background": "#F8F8F8"
+    },
+    "softinput": {
+      "navBar": "none"
+    },
+    "usingComponents": true,
+    "distribute": {
+      "google": {
+        "permissions": [
+          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+          "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+          "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+          "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+          "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+          "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+          "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+          "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+          "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+          "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+          "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+          "<uses-feature android:name=\"android.hardware.camera\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+          "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+        ]
+      },
+      "apple": {},
+      "plugins": {
+        "audio": {
+          "mp3": {
+            "description": "Android平台录音支持MP3格式文件"
+          }
+        }
+      }
+    },
+    "allowsInlineMediaPlayback": true,
+    "uni-app": {
+      "compilerVersion": "2.1.1",
+      "control": "v8",
+      "nvueCompiler": "weex"
+    }
+  }
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/.tmp/app-plus/pages/Login/Login.js


+ 5 - 0
unpackage/dist/build/.tmp/app-plus/pages/Login/Login.json

@@ -0,0 +1,5 @@
+{
+  "navigationStyle": "custom",
+  "disableScroll": true,
+  "usingComponents": {}
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/.tmp/app-plus/pages/Login/Login.wxml


File diff suppressed because it is too large
+ 73 - 0
unpackage/dist/build/.tmp/app-plus/pages/Login/Login.wxss


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/.tmp/app-plus/pages/Paper/Paper.js


+ 9 - 0
unpackage/dist/build/.tmp/app-plus/pages/Paper/Paper.json

@@ -0,0 +1,9 @@
+{
+  "usingComponents": {
+    "single-answer-choise": "/components/paper/SingleAnswerChoise",
+    "multi-answers-choise": "/components/paper/MultiAnswersChoise",
+    "fill-blank": "/components/paper/FillBlank",
+    "true-false": "/components/paper/TrueFalse",
+    "qand-a": "/components/paper/QandA"
+  }
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/.tmp/app-plus/pages/Paper/Paper.wxml


+ 39 - 0
unpackage/dist/build/.tmp/app-plus/pages/Paper/Paper.wxss

@@ -0,0 +1,39 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.odd {
+  background-color: #f8f8f8;
+}
+.event {
+  background-color: white;
+}
+.submit {
+  padding: 20rpx 30rpx;
+}
+button {
+  background-color: #f4ae1b !important;
+}
+

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/.tmp/app-plus/pages/PaperList/PaperList.js


+ 8 - 0
unpackage/dist/build/.tmp/app-plus/pages/PaperList/PaperList.json

@@ -0,0 +1,8 @@
+{
+  "navigationBarTitleText": "待考试卷",
+  "disableScroll": true,
+  "enablePullDownRefresh": true,
+  "usingComponents": {
+    "paper-list-item": "/components/paper/PaperListItem"
+  }
+}

+ 1 - 0
unpackage/dist/build/.tmp/app-plus/pages/PaperList/PaperList.wxml

@@ -0,0 +1 @@
+<view><block wx:for="{{papers}}" wx:for-item="paper" wx:for-index="__i0__" wx:key="paperId"><paper-list-item vue-id="{{'1-'+__i0__}}" paper="{{paper}}" data-event-opts="{{[['^click',[['onPaperClicked',['$0'],[[['papers','paperId',paper.paperId]]]]]]]}}" bind:click="__e" bind:__l="__l"></paper-list-item></block></view>

BIN
unpackage/dist/build/.tmp/app-plus/static/backgrounds/login_bg.png


BIN
unpackage/dist/build/.tmp/app-plus/static/icons/logo.png


File diff suppressed because it is too large
+ 673 - 0
unpackage/dist/build/app-plus/__uniappchooselocation.html


File diff suppressed because it is too large
+ 9 - 0
unpackage/dist/build/app-plus/__uniappes6.js


BIN
unpackage/dist/build/app-plus/__uniappmarker@3x.png


File diff suppressed because it is too large
+ 284 - 0
unpackage/dist/build/app-plus/__uniappopenlocation.html


File diff suppressed because it is too large
+ 10 - 0
unpackage/dist/build/app-plus/__uniapppicker.html


File diff suppressed because it is too large
+ 146 - 0
unpackage/dist/build/app-plus/__uniappscan.html


BIN
unpackage/dist/build/app-plus/__uniappsuccess.png


+ 19 - 0
unpackage/dist/build/app-plus/__uniapptabbar.html

@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+    <head>
+        <meta charset="UTF-8" />
+        <title>TabBar</title>
+
+        <script>
+            document.addEventListener('plusready', function() {
+                window.UniLaunchWebviewReady = function(isWebviewReady){
+                  plus.webview.postMessageToUniNView({type: 'UniWebviewReady-' + plus.webview.currentWebview().id}, '__uniapp__service');
+                }
+                UniLaunchWebviewReady(true);
+            })
+        </script>
+    </head>
+    <body>
+    </body>
+
+</html>

File diff suppressed because it is too large
+ 58 - 0
unpackage/dist/build/app-plus/__uniappview.html


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/app-plus/app-config.js


File diff suppressed because it is too large
+ 2395 - 0
unpackage/dist/build/app-plus/app-service.js


File diff suppressed because it is too large
+ 1754 - 0
unpackage/dist/build/app-plus/app-view.js


+ 94 - 0
unpackage/dist/build/app-plus/manifest.json

@@ -0,0 +1,94 @@
+{
+  "@platforms": [
+    "android",
+    "iPhone",
+    "iPad"
+  ],
+  "id": "__UNI__C9DE28D",
+  "name": "润银小测",
+  "version": {
+    "name": "1.0.0",
+    "code": "100"
+  },
+  "description": "",
+  "launch_path": "__uniappview.html",
+  "developer": {
+    "name": "",
+    "email": "",
+    "url": ""
+  },
+  "permissions": {
+    "UniNView": {
+      "description": "UniNView原生渲染"
+    }
+  },
+  "plus": {
+    "useragent": {
+      "value": "uni-app appservice",
+      "concatenate": true
+    },
+    "splashscreen": {
+      "target": "id:1",
+      "autoclose": true,
+      "waiting": true,
+      "delay": 0
+    },
+    "popGesture": "close",
+    "launchwebview": {
+      "render": "always",
+      "id": "1",
+      "kernel": "WKWebview"
+    },
+    "statusbar": {
+      "immersed": "supportedDevice",
+      "style": "dark",
+      "background": "#F8F8F8"
+    },
+    "softinput": {
+      "navBar": "none"
+    },
+    "usingComponents": true,
+    "distribute": {
+      "google": {
+        "permissions": [
+          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+          "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+          "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+          "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+          "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+          "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+          "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+          "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+          "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+          "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+          "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+          "<uses-feature android:name=\"android.hardware.camera\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+          "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+        ]
+      },
+      "apple": {},
+      "plugins": {
+        "audio": {
+          "mp3": {
+            "description": "Android平台录音支持MP3格式文件"
+          }
+        }
+      }
+    },
+    "allowsInlineMediaPlayback": true,
+    "uni-app": {
+      "compilerVersion": "2.1.1",
+      "control": "v8",
+      "nvueCompiler": "weex"
+    }
+  }
+}

File diff suppressed because it is too large
+ 2 - 0
unpackage/dist/build/app-plus/pages/Login/Login.js


+ 2 - 0
unpackage/dist/build/app-plus/pages/Paper/Paper.js

@@ -0,0 +1,2 @@
+setCssToHead(["@charset \x22UTF-8\x22;\n.",[1],"odd { background-color: #f8f8f8; }\n.",[1],"event { background-color: white; }\n.",[1],"submit { padding: ",[0,20]," ",[0,30],"; }\nwx-button { background-color: #f4ae1b !important; }\n",],undefined,{path:"./pages/Paper/Paper.wxss"})();
+document.dispatchEvent(new CustomEvent("generateFuncReady", { detail: { generateFunc: $gwx('./pages/Paper/Paper.wxml') } }));

+ 1 - 0
unpackage/dist/build/app-plus/pages/PaperList/PaperList.js

@@ -0,0 +1 @@
+document.dispatchEvent(new CustomEvent("generateFuncReady", { detail: { generateFunc: $gwx('./pages/PaperList/PaperList.wxml') } }));

BIN
unpackage/dist/build/app-plus/static/backgrounds/login_bg.png


BIN
unpackage/dist/build/app-plus/static/icons/logo.png


+ 4 - 0
unpackage/dist/dev/.tmp/app-plus/app.js

@@ -0,0 +1,4 @@
+
+require('./common/runtime.js')
+require('./common/vendor.js')
+require('./common/main.js')

+ 32 - 0
unpackage/dist/dev/.tmp/app-plus/app.json

@@ -0,0 +1,32 @@
+{
+  "pages": [
+    "pages/Login/Login",
+    "pages/PaperList/PaperList",
+    "pages/Paper/Paper"
+  ],
+  "subPackages": [],
+  "window": {
+    "navigationBarTextStyle": "black",
+    "navigationBarTitleText": "",
+    "navigationBarBackgroundColor": "#F8F8F8",
+    "backgroundColor": "#F8F8F8",
+    "animationType": "slide-in-right",
+    "animationDuration": 200
+  },
+  "nvueCompiler": "weex",
+  "splashscreen": {
+    "alwaysShowBeforeRender": true,
+    "autoclose": false
+  },
+  "appname": "润银小测",
+  "compilerVersion": "2.1.1",
+  "usingComponents": {
+    "paper-list-item": "/components/paper/PaperListItem",
+    "question-title": "/components/paper/QuestionTitle",
+    "single-answer-choise": "/components/paper/SingleAnswerChoise",
+    "multi-answers-choise": "/components/paper/MultiAnswersChoise",
+    "fill-blank": "/components/paper/FillBlank",
+    "true-false": "/components/paper/TrueFalse",
+    "qand-a": "/components/paper/QandA"
+  }
+}

+ 1 - 0
unpackage/dist/dev/.tmp/app-plus/app.wxss

@@ -0,0 +1 @@
+@import './common/main.wxss';

File diff suppressed because it is too large
+ 62 - 0
unpackage/dist/dev/.tmp/app-plus/common/main.js


+ 17 - 0
unpackage/dist/dev/.tmp/app-plus/common/main.wxss

@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*每个页面公共css */
+

+ 0 - 0
unpackage/dist/dev/.tmp/app-plus/common/runtime.js


Some files were not shown because too many files changed in this diff