liyongli 3 anos atrás
pai
commit
e895205339
70 arquivos alterados com 0 adições e 6969 exclusões
  1. 0 218
      miniprogram/miniprogram_npm/@miniprogram-component-plus/col/index.js
  2. 0 4
      miniprogram/miniprogram_npm/@miniprogram-component-plus/col/index.json
  3. 0 3
      miniprogram/miniprogram_npm/@miniprogram-component-plus/col/index.wxml
  4. 0 0
      miniprogram/miniprogram_npm/@miniprogram-component-plus/col/index.wxss
  5. BIN
      miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/icon_emotion_del.png
  6. 0 95
      miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/index.js
  7. 0 5
      miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/index.json
  8. 0 30
      miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/index.wxml
  9. 0 0
      miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/index.wxss
  10. 0 249
      miniprogram/miniprogram_npm/@miniprogram-component-plus/index-list/index.js
  11. 0 4
      miniprogram/miniprogram_npm/@miniprogram-component-plus/index-list/index.json
  12. 0 45
      miniprogram/miniprogram_npm/@miniprogram-component-plus/index-list/index.wxml
  13. 0 1
      miniprogram/miniprogram_npm/@miniprogram-component-plus/index-list/index.wxss
  14. 0 113
      miniprogram/miniprogram_npm/@miniprogram-component-plus/row/index.js
  15. 0 4
      miniprogram/miniprogram_npm/@miniprogram-component-plus/row/index.json
  16. 0 3
      miniprogram/miniprogram_npm/@miniprogram-component-plus/row/index.wxml
  17. 0 1
      miniprogram/miniprogram_npm/@miniprogram-component-plus/row/index.wxss
  18. 0 166
      miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.js
  19. 0 4
      miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.json
  20. 0 22
      miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.wxml
  21. 0 11
      miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.wxs
  22. 0 1
      miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.wxss
  23. 0 286
      miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.js
  24. 0 4
      miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.json
  25. 0 7
      miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.wxml
  26. 0 20
      miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.wxs
  27. 0 1
      miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.wxss
  28. 0 148
      miniprogram/miniprogram_npm/@miniprogram-component-plus/tabs/index.js
  29. 0 4
      miniprogram/miniprogram_npm/@miniprogram-component-plus/tabs/index.json
  30. 0 20
      miniprogram/miniprogram_npm/@miniprogram-component-plus/tabs/index.wxml
  31. 0 1
      miniprogram/miniprogram_npm/@miniprogram-component-plus/tabs/index.wxss
  32. 0 254
      miniprogram/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.js
  33. 0 4
      miniprogram/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.json
  34. 0 37
      miniprogram/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.wxml
  35. 0 1
      miniprogram/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.wxss
  36. 0 127
      miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs-content/index.js
  37. 0 4
      miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs-content/index.json
  38. 0 3
      miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs-content/index.wxml
  39. 0 1
      miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs-content/index.wxss
  40. 0 202
      miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs/index.js
  41. 0 4
      miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs/index.json
  42. 0 38
      miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs/index.wxml
  43. 0 1
      miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs/index.wxss
  44. 0 348
      miniprogram/miniprogram_npm/eventemitter3/index.js
  45. 0 0
      miniprogram/miniprogram_npm/eventemitter3/index.js.map
  46. 0 1368
      miniprogram/miniprogram_npm/miniprogram-barrage/index.js
  47. 0 4
      miniprogram/miniprogram_npm/miniprogram-barrage/index.json
  48. 0 39
      miniprogram/miniprogram_npm/miniprogram-barrage/index.wxml
  49. 0 61
      miniprogram/miniprogram_npm/miniprogram-barrage/index.wxss
  50. 0 67
      miniprogram/miniprogram_npm/miniprogram-barrage/utils.js
  51. 0 45
      miniprogram/miniprogram_npm/miniprogram-recycle-view/index.d.ts
  52. 0 851
      miniprogram/miniprogram_npm/miniprogram-recycle-view/index.js
  53. 0 126
      miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-item.js
  54. 0 4
      miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-item.json
  55. 0 4
      miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml
  56. 0 7
      miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss
  57. 0 925
      miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-view.js
  58. 0 4
      miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-view.json
  59. 0 21
      miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml
  60. 0 5
      miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss
  61. 0 7
      miniprogram/miniprogram_npm/widget-ui/index.js
  62. 0 0
      miniprogram/miniprogram_npm/widget-ui/index.js.map
  63. 0 779
      miniprogram/miniprogram_npm/wxml-to-canvas/index.js
  64. 0 4
      miniprogram/miniprogram_npm/wxml-to-canvas/index.json
  65. 0 2
      miniprogram/miniprogram_npm/wxml-to-canvas/index.wxml
  66. 0 0
      miniprogram/miniprogram_npm/wxml-to-canvas/index.wxss
  67. 0 57
      miniprogram/miniprogram_npm/wxml-to-canvas/utils.js
  68. 0 13
      miniprogram/package.json
  69. 0 3
      miniprogram/packageAPI/pages/api/subscribe-message/subscribe-message.json
  70. 0 79
      miniprogram/packageAPI/pages/framework/two-way-bindings/two-way-bindings.js

+ 0 - 218
miniprogram/miniprogram_npm/@miniprogram-component-plus/col/index.js

@@ -1,218 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 12);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 12:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-Component({
-    properties: {
-        span: {
-            type: Number,
-            value: 24
-        },
-        offset: {
-            type: Number,
-            value: 0
-        },
-        push: {
-            type: Number,
-            value: -1
-        },
-        pull: {
-            type: Number,
-            value: -1
-        },
-        xs: {
-            type: Number,
-            optionalTypes: [Object],
-            value: -1
-        },
-        sm: {
-            type: Number,
-            optionalTypes: [Object],
-            value: -1
-        },
-        md: {
-            type: Number,
-            optionalTypes: [Object],
-            value: -1
-        },
-        lg: {
-            type: Number,
-            optionalTypes: [Object],
-            value: -1
-        },
-        xl: {
-            type: Number,
-            optionalTypes: [Object],
-            value: -1
-        }
-    },
-    data: {
-        classList: ['weui-col'],
-        gutter: 0,
-        paddingLeft: 0,
-        paddingRight: 0
-    },
-    relations: {
-        "../row/index": {
-            type: 'parent',
-            linked: function linked(target) {
-                this.data.gutter = Number(target.data.gutter);
-                this.updateGutter();
-            },
-            linkChanged: function linkChanged(target) {
-                this.data.gutter = Number(target.data.gutter);
-                this.updateGutter();
-            }
-        }
-    },
-    attached: function attached() {
-        this.updateCol();
-    },
-
-    methods: {
-        updateCol: function updateCol() {
-            var classList = ['weui-col'];
-            var paddingLeft = void 0,
-                paddingRight = 0;
-            classList.push('weui-col-' + this.data.span);
-            classList.push('weui-col-offset-' + this.data.offset);
-            if (this.data.gutter) {
-                paddingLeft = this.data.gutter / 2 + 'px';
-                paddingRight = paddingLeft;
-            }
-            if (this.data.push !== -1) {
-                this.data.push && classList.push('weui-col-push-' + this.data.push);
-            }
-            if (this.data.pull !== -1) {
-                this.data.pull && classList.push('weui-col-pull-' + this.data.pull);
-            }
-            this.screenSizeSet('xs', classList);
-            this.screenSizeSet('sm', classList);
-            this.screenSizeSet('md', classList);
-            this.screenSizeSet('lg', classList);
-            this.screenSizeSet('xl', classList);
-            return this.setData({
-                classList: classList
-            });
-        },
-        updateGutter: function updateGutter() {
-            var paddingLeft = void 0,
-                paddingRight = 0;
-            if (this.data.gutter) {
-                paddingLeft = this.data.gutter / 2 + 'px';
-                paddingRight = paddingLeft;
-            }
-            this.setData({
-                paddingLeft: paddingLeft,
-                paddingRight: paddingRight
-            });
-        },
-        screenSizeSet: function screenSizeSet(screen, classList) {
-            if (typeof this.data[screen] === 'number' && this.data[screen] !== -1) {
-                classList.push('weui-col-' + screen + '-' + this.data[screen]);
-            } else if (_typeof(this.data[screen]) === 'object') {
-                typeof this.data[screen].offset === 'number' && classList.push('weui-col-' + screen + '-offset-' + this.data[screen].offset);
-                typeof this.data[screen].push === 'number' && classList.push('weui-col-' + screen + '-push-' + this.data[screen].push);
-                typeof this.data[screen].pull === 'number' && classList.push('weui-col-' + screen + '-pull-' + this.data[screen].pull);
-                typeof this.data[screen].span === 'number' && classList.push('weui-col-' + screen + '-' + this.data[screen].span);
-            }
-        }
-    }
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/@miniprogram-component-plus/col/index.json

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

+ 0 - 3
miniprogram/miniprogram_npm/@miniprogram-component-plus/col/index.wxml

@@ -1,3 +0,0 @@
-<view class="{{classList}}" style="padding-left:{{paddingLeft}};padding-right:{{paddingRight}}">
-    <slot></slot>
-</view>

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
miniprogram/miniprogram_npm/@miniprogram-component-plus/col/index.wxss


BIN
miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/icon_emotion_del.png


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 95
miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/index.js


+ 0 - 5
miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/index.json

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

+ 0 - 30
miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/index.wxml

@@ -1,30 +0,0 @@
-<!--components/emoji/emoji.wxml-->
-<view class="weui-emoji_area" style="height: {{height}}px; background-color: {{backgroundColor}}">
-  <view 
-    class="weui-emotion_list {{hasSafeBottom ? 'weui-emoji_area__has-safe-bottom' : ''}}"
-    style="padding-left: {{padding}}px; padding-right: {{padding}}px;"
-  >
-    <view hidden="{{!showHistory || history.length === 0}}">
-      <view class="weui-emotion_head">最近使用</view>
-      <block wx:for="{{history}}" wx:key="*this">
-        <view class="weui-emotion_item" data-idx="{{item}}" bindtap="insertEmoji" style="margin-right: {{(index + 1) % perLine ? extraPadding : 0}}px">
-          <view class="weui-icon_emotion {{emotions[item].style}}" style="background-image: url({{source}});"></view>
-        </view>
-      </block>
-    </view>
-    <!-- 图片32px,每个宽度40px -->
-    <view class="weui-emotion_head" style="margin-top: 8px;">所有表情</view>
-    <block wx:for="{{emotions}}" wx:key="*this">
-      <view class="weui-emotion_item" data-idx="{{index}}" bindtap="insertEmoji" style="padding-right: {{(index + 1) % perLine ? extraPadding : 0}}px">
-        <view class="weui-icon_emotion {{item.style}}" style="background-image: url({{source}});"></view>
-      </view>
-    </block>
-  </view>
-  <!--操作-->
-  <view class="weui-emoji__operation">
-    <view class="weui-emoji__operation__delete" bindtap="deleteEmoji" wx:if="{{showDel}}">
-      <image src="./icon_emotion_del.png" class="weui-emotion_del_btn"></image>
-    </view>
-    <view class="weui-emoji__operation__send" bindtap="send" wx:if="{{showSend}}">发送</view>
-  </view>
-</view>

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
miniprogram/miniprogram_npm/@miniprogram-component-plus/emoji/index.wxss


+ 0 - 249
miniprogram/miniprogram_npm/@miniprogram-component-plus/index-list/index.js

@@ -1,249 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 4);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 4:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var throttle = function throttle(func, wait, options) {
-    var context = void 0;
-    var args = void 0;
-    var result = void 0;
-    var timeout = null;
-    var previous = 0;
-    if (!options) options = {};
-    var later = function later() {
-        previous = options.leading === false ? 0 : Date.now();
-        timeout = null;
-        result = func.apply(context, args);
-        if (!timeout) context = args = null;
-    };
-    return function () {
-        var now = Date.now();
-        if (!previous && options.leading === false) previous = now;
-        var remaining = wait - (now - previous);
-        context = this;
-        args = arguments;
-        if (remaining <= 0 || remaining > wait) {
-            clearTimeout(timeout);
-            timeout = null;
-            previous = now;
-            result = func.apply(context, args);
-            if (!timeout) context = args = null;
-        } else if (!timeout && options.trailing !== false) {
-            timeout = setTimeout(later, remaining);
-        }
-        return result;
-    };
-};
-Component({
-    options: {
-        addGlobalClass: true,
-        pureDataPattern: /^_/
-    },
-    properties: {
-        list: {
-            type: Array,
-            value: [],
-            observer: function observer(newVal) {
-                var _this = this;
-
-                if (newVal.length === 0) return;
-                var data = this.data;
-                var alphabet = data.list.map(function (item) {
-                    return item.alpha;
-                });
-                this.setData({
-                    alphabet: alphabet,
-                    current: alphabet[0]
-                }, function () {
-                    _this.computedSize();
-                });
-            }
-        },
-        vibrated: {
-            type: Boolean,
-            value: true
-        }
-    },
-    data: {
-        windowHeight: 612,
-        current: 'A',
-        intoView: '',
-        touching: false,
-        alphabet: [],
-        _tops: [],
-        _anchorItemH: 0,
-        _anchorItemW: 0,
-        _anchorTop: 0,
-        _listUpperBound: 0
-    },
-    lifetimes: {
-        created: function created() {},
-        attached: function attached() {
-            this.__scrollTo = throttle(this._scrollTo, 100, {});
-            this.__onScroll = throttle(this._onScroll, 100, {});
-
-            var _wx$getSystemInfoSync = wx.getSystemInfoSync(),
-                windowHeight = _wx$getSystemInfoSync.windowHeight;
-
-            this.setData({ windowHeight: windowHeight });
-        }
-    },
-    methods: {
-        choose: function choose(e) {
-            var item = e.target.dataset.item;
-            this.triggerEvent('choose', { item: item });
-        },
-        scrollTo: function scrollTo(e) {
-            this.__scrollTo(e);
-        },
-        _scrollTo: function _scrollTo(e) {
-            var data = this.data;
-            var clientY = e.changedTouches[0].clientY;
-            var index = Math.floor((clientY - data._anchorTop) / data._anchorItemH);
-            var current = data.alphabet[index];
-            this.setData({ current: current, intoView: current, touching: true });
-            if (data.vibrated) wx.vibrateShort();
-        },
-        computedSize: function computedSize() {
-            var data = this.data;
-            var query = this.createSelectorQuery();
-            query.selectAll('.index_list_item').boundingClientRect(function (rects) {
-                var result = rects;
-                data._tops = result.map(function (item) {
-                    return item.top;
-                });
-            }).exec();
-            query.select('.anchor-list').boundingClientRect(function (rect) {
-                data._anchorItemH = rect.height / data.alphabet.length;
-                data._anchorItemW = rect.width;
-                data._anchorTop = rect.top;
-            }).exec();
-            query.select('.page-select-index').boundingClientRect(function (rect) {
-                data._listUpperBound = rect.top;
-            });
-        },
-        removeTouching: function removeTouching() {
-            var _this2 = this;
-
-            setTimeout(function () {
-                _this2.setData({ touching: false });
-            }, 150);
-        },
-        onScroll: function onScroll(e) {
-            this.__onScroll(e);
-        },
-        _onScroll: function _onScroll(e) {
-            var data = this.data;
-            var _tops = data._tops,
-                alphabet = data.alphabet;
-
-            var scrollTop = e.detail.scrollTop;
-            var current = '';
-            if (scrollTop < _tops[0]) {
-                current = alphabet[0];
-            } else {
-                for (var i = 0, len = _tops.length; i < len - 1; i++) {
-                    if (scrollTop >= _tops[i] && scrollTop < _tops[i + 1]) {
-                        current = alphabet[i];
-                    }
-                }
-            }
-            if (!current) current = alphabet[alphabet.length - 1];
-            this.setData({ current: current });
-        }
-    }
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/@miniprogram-component-plus/index-list/index.json

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

+ 0 - 45
miniprogram/miniprogram_npm/@miniprogram-component-plus/index-list/index.wxml

@@ -1,45 +0,0 @@
-<scroll-view 
-  class="page page-select-index" 
-  style="height: {{windowHeight}}px;" 
-  enable-back-to-top 
-  scroll-into-view="{{intoView}}" 
-  scroll-y 
-  bindscroll="onScroll"
->
-  <view>
-    <slot></slot>
-  </view>
-  <view class="index_list_item" wx:for="{{list}}" wx:key="alpha" id="{{item.alpha}}">
-    <view class="index-group__title font-size-26 tips-color">{{item.alpha}}</view>
-    <view class="index-group__content">
-      <view class="index-group__list">
-        <block wx:for="{{item.subItems}}" wx:for-item="subItem" wx:key="name">
-          <view 
-            class="index-group__item thin-border-bottom" 
-            hover-class="bg-highlight" 
-            data-item="{{subItem}}"
-            bindtap="choose">
-              {{subItem.name}}
-          </view>
-        </block>
-      </view>
-    </view>
-  </view>
-</scroll-view>
-<view 
-  class="anchor-bar__wrp wx-flex" 
-  catchtouchstart='scrollTo' 
-  catchtouchmove='scrollTo' 
-  catchtouchend='removeTouching'
->
-  <view class="anchor-bar wx-flex__item">
-    <view class="anchor-list">
-      <block wx:for="{{alphabet}}" wx:key="*this" wx:for-item="alpha">
-        <view class="anchor-item {{current == alpha ? ( touching ? 'selected tapped' : 'selected' ): ''}}" data-alpha="{{alpha}}">
-          <view class="anchor-item__inner">{{alpha}}</view>
-          <view class="anchor-item__pop">{{alpha}}</view>
-        </view>
-      </block>
-    </view>
-  </view>
-</view>

+ 0 - 1
miniprogram/miniprogram_npm/@miniprogram-component-plus/index-list/index.wxss

@@ -1 +0,0 @@
-.wx-flex{display:flex;align-items:center}.wx-flex__item{flex:1}.thin-border-bottom{position:relative}.thin-border-bottom:after{content:"";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid #EAEAEA;color:#e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5);z-index:2}.index-group__title{padding:24rpx 24rpx 12rpx}.index-group__content{font-size:0}.index-group__item{padding:30rpx 24rpx;font-size:30rpx}.index-group__item.thin-border-bottom:after{left:24rpx}.anchor-bar__wrp{position:fixed;top:0;bottom:0;right:0;width:60rpx;z-index:999}.anchor-item{font-size:0;text-align:center;position:relative}.anchor-item__inner{line-height:28rpx;height:28rpx;width:28rpx;border-radius:50%;display:inline-block;font-size:20rpx;margin:2rpx 0;font-weight:500}.tapped .anchor-item__pop{display:block}.anchor-item__pop{position:absolute;font-size:64rpx;width:100rpx;height:100rpx;line-height:100rpx;color:#fff;background-color:#C9C9C9;border-radius:50%;right:80rpx;top:50%;transform:translateY(-50%);display:none}.anchor-item__pop:after{content:"";display:block;position:absolute;width:0;height:0;left:80rpx;border:40rpx solid;border-color:transparent transparent transparent #C9C9C9;top:50%;transform:translateY(-50%)}.anchor-item.selected .anchor-item__inner{color:#fff;background-color:#1aad19}

+ 0 - 113
miniprogram/miniprogram_npm/@miniprogram-component-plus/row/index.js

@@ -1,113 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 13);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 13:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Component({
-    properties: {},
-    relations: {
-        "../col/index": {
-            type: 'child'
-        }
-    },
-    data: {
-        classStyle: ""
-    },
-    attached: function attached() {},
-
-    methods: {}
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/@miniprogram-component-plus/row/index.json

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

+ 0 - 3
miniprogram/miniprogram_npm/@miniprogram-component-plus/row/index.wxml

@@ -1,3 +0,0 @@
-<span class="weui-row-before"></span>
-<slot></slot>
-<span class="weui-row-after"></span>

+ 0 - 1
miniprogram/miniprogram_npm/@miniprogram-component-plus/row/index.wxss

@@ -1 +0,0 @@
-:host{position:relative;box-sizing:border-box;width:100%}.weui-row-before{display:table}.weui-row-after{display:table;clear:both;content:""}

+ 0 - 166
miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.js

@@ -1,166 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 10);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 10:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Component({
-    options: {
-        addGlobalClass: true
-    },
-    properties: {
-        space: {
-            type: String,
-            value: ''
-        },
-        decode: {
-            type: Boolean,
-            value: false
-        },
-        placement: {
-            type: String,
-            value: 'top'
-        },
-        showCopyBtn: {
-            type: Boolean,
-            value: false
-        },
-        value: {
-            type: String,
-            value: ''
-        },
-        zIndex: {
-            type: Number,
-            value: 99
-        },
-        activeBgColor: {
-            type: String,
-            value: '#DEDEDE'
-        },
-        onDocumentTap: {
-            type: Object,
-            value: {}
-        }
-    },
-    observers: {
-        onDocumentTap: function onDocumentTap() {
-            this.setData({
-                showToolTip: false
-            });
-        }
-    },
-    data: {
-        showToolTip: false
-    },
-    methods: {
-        handleLongPress: function handleLongPress() {
-            if (!this.data.showCopyBtn) return;
-            this.setData({
-                showToolTip: true
-            });
-        },
-        handleCopy: function handleCopy() {
-            this.setData({
-                showToolTip: false
-            });
-            wx.setClipboardData({
-                data: this.data.value
-            });
-            this.triggerEvent('copy', {});
-        },
-        stopPropagation: function stopPropagation(e) {}
-    }
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.json

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

+ 0 - 22
miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.wxml

@@ -1,22 +0,0 @@
-<wxs src="./index.wxs" module="computed" />
-
-<view 
-  class="weui-select-text" 
-  style="{{computed.containerStyle({showToolTip, showCopyBtn, activeBgColor})}}"
-  catch:tap="stopPropagation"
->
-  <text 
-    selectable="{{!showCopyBtn}}" 
-    space="{{space}}" 
-    decode="{{decode}}" 
-    catch:longpress="handleLongPress"
-  >{{value}}</text>
-  <view 
-    wx:if="{{showToolTip}}"
-    class="weui-tooltip weui-tooltip__{{placement}}"
-    style="z-index: {{zIndex}};"
-    catch:tap="handleCopy"
-  >
-    复制
-  </view>
-</view>

+ 0 - 11
miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.wxs

@@ -1,11 +0,0 @@
-/* eslint-disable */
-function containerStyle(data) {
-  if (data.showToolTip && data.showCopyBtn) {
-    return 'background-color: ' + data.activeBgColor
-  }
-  return ''
-}
-
-module.exports = {
-  containerStyle: containerStyle
-}

+ 0 - 1
miniprogram/miniprogram_npm/@miniprogram-component-plus/select-text/index.wxss

@@ -1 +0,0 @@
-.weui-select-text{display:inline;position:relative}.weui-tooltip{box-sizing:border-box;width:60px;background-color:#000000;color:#ffffff;text-align:center;padding:5px 0;border-radius:6px;position:absolute;font-size:14px}.weui-tooltip__top{left:50%;top:0;transform:translate(-50%, -100%);margin-top:-10px}.weui-tooltip__top::after{content:" ";position:absolute;top:100%;left:50%;transform:translate(-50%, 0);border-width:5px;border-style:solid;border-color:black transparent transparent transparent}.weui-tooltip__bottom{left:50%;top:100%;transform:translate(-50%, 0);margin-top:10px}.weui-tooltip__bottom::after{content:" ";position:absolute;top:0;left:50%;transform:translate(-50%, -100%);border-width:5px;border-style:solid;border-color:transparent transparent black transparent}.weui-tooltip__left{left:0;top:50%;transform:translate(-100%, -50%);margin-left:-10px}.weui-tooltip__left::after{content:" ";position:absolute;top:50%;left:100%;transform:translate(0, -50%);border-width:5px;border-style:solid;border-color:transparent transparent transparent black}.weui-tooltip__right{left:100%;top:50%;transform:translate(0, -50%);margin-left:10px}.weui-tooltip__right::after{content:" ";position:absolute;top:50%;left:0;transform:translate(-100%, -50%);border-width:5px;border-style:solid;border-color:transparent black transparent transparent}

+ 0 - 286
miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.js

@@ -1,286 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 8);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 8:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var selectQuery = __webpack_require__(9);
-var target = '.weui-sticky';
-Component({
-    options: {
-        addGlobalClass: true,
-        pureDataPattern: /^_/,
-        multipleSlots: true
-    },
-    behaviors: [selectQuery],
-    properties: {
-        offsetTop: {
-            type: Number,
-            value: 0
-        },
-        zIndex: {
-            type: Number,
-            value: 99
-        },
-        disabled: {
-            type: Boolean,
-            value: false
-        },
-        container: {
-            type: null
-        }
-    },
-    data: {
-        fixed: false,
-        height: 0,
-        _attached: false,
-        _containerHeight: 0
-    },
-    observers: {
-        disabled: function disabled(newVal) {
-            if (!this._attached) return;
-            newVal ? this.disconnectObserver() : this.initObserver();
-        },
-        container: function container(newVal) {
-            if (typeof newVal !== 'function' || !this.data.height) return;
-            this.observerContainer();
-        }
-    },
-    lifetimes: {
-        attached: function attached() {
-            this.data._attached = true;
-            if (!this.data.disabled) this.initObserver();
-        },
-        detached: function detached() {
-            this.data._attached = false;
-            this.disconnectObserver();
-        }
-    },
-    methods: {
-        getContainerRect: function getContainerRect() {
-            var nodesRef = this.data.container();
-            return new Promise(function (resolve) {
-                return nodesRef.boundingClientRect(resolve).exec();
-            });
-        },
-        initObserver: function initObserver() {
-            var _this = this;
-
-            this.disconnectObserver();
-            this.getRect(target).then(function (rect) {
-                _this.setData({
-                    height: rect.height
-                });
-                _this.observerContent();
-                _this.observerContainer();
-            });
-        },
-        disconnectObserver: function disconnectObserver(observerName) {
-            if (observerName) {
-                var observer = this[observerName];
-                observer && observer.disconnect();
-            } else {
-                this.contentObserver && this.contentObserver.disconnect();
-                this.containerObserver && this.containerObserver.disconnect();
-            }
-        },
-        observerContent: function observerContent() {
-            var _this2 = this;
-
-            var offsetTop = this.data.offsetTop;
-
-            this.disconnectObserver('contentObserver');
-            var contentObserver = this.createIntersectionObserver({
-                thresholds: [1],
-                initialRatio: 1
-            });
-            contentObserver.relativeToViewport({
-                top: -offsetTop
-            });
-            contentObserver.observe(target, function (res) {
-                if (_this2.data.disabled) return;
-                _this2.setFixed(res.boundingClientRect.top);
-            });
-            this.contentObserver = contentObserver;
-        },
-        observerContainer: function observerContainer() {
-            var _this3 = this;
-
-            var _data = this.data,
-                container = _data.container,
-                height = _data.height,
-                offsetTop = _data.offsetTop;
-
-            if (typeof container !== 'function') return;
-            this.disconnectObserver('containerObserver');
-            this.getContainerRect().then(function (rect) {
-                _this3.getRect(target).then(function (contentRect) {
-                    var _contentTop = contentRect.top;
-                    var _containerTop = rect.top;
-                    var _containerHeight = rect.height;
-                    var _relativeTop = _contentTop - _containerTop;
-                    var containerObserver = _this3.createIntersectionObserver({
-                        thresholds: [1],
-                        initialRatio: 1
-                    });
-                    containerObserver.relativeToViewport({
-                        top: _containerHeight - height - offsetTop - _relativeTop
-                    });
-                    containerObserver.observe(target, function (res) {
-                        if (_this3.data.disabled) return;
-                        _this3.setFixed(res.boundingClientRect.top);
-                    });
-                    _this3.data._relativeTop = _relativeTop;
-                    _this3.data._containerHeight = _containerHeight;
-                    _this3.containerObserver = containerObserver;
-                });
-            });
-        },
-        setFixed: function setFixed(top) {
-            var _data2 = this.data,
-                height = _data2.height,
-                _containerHeight = _data2._containerHeight,
-                _relativeTop = _data2._relativeTop,
-                offsetTop = _data2.offsetTop;
-
-            var fixed = _containerHeight && height ? top >= height + offsetTop + _relativeTop - _containerHeight && top < offsetTop : top < offsetTop;
-            this.triggerEvent('scroll', {
-                scrollTop: top,
-                isFixed: fixed
-            });
-            this.setData({ fixed: fixed });
-        }
-    }
-});
-
-/***/ }),
-
-/***/ 9:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = Behavior({
-  methods: {
-    getRect: function getRect(selector) {
-      var _this = this;
-
-      return new Promise(function (resolve, reject) {
-        _this.createSelectorQuery().select(selector).boundingClientRect(function (rect) {
-          if (rect) {
-            resolve(rect);
-          } else {
-            reject(new Error("can not find selector: " + selector));
-          }
-        }).exec();
-      });
-    },
-    getAllRects: function getAllRects(selector) {
-      var _this2 = this;
-
-      return new Promise(function (resolve, reject) {
-        _this2.createSelectorQuery().selectAll(selector).boundingClientRect(function (rects) {
-          if (rects && rects.lenght > 0) {
-            resolve(rects);
-          } else {
-            reject(new Error("can not find selector: " + selector));
-          }
-        }).exec();
-      });
-    }
-  }
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.json

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

+ 0 - 7
miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.wxml

@@ -1,7 +0,0 @@
-<wxs src="./index.wxs" module="computed" />
-
-<view class="weui-sticky" style="{{computed.containerStyle({fixed, height, zIndex})}}">
-  <view class="{{fixed ? 'weui-sticky__fixed' : ''}}" style="{{computed.wrapStyle({fixed, offsetTop})}}">
-    <slot ></slot>
-  </view>
-</view>

+ 0 - 20
miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.wxs

@@ -1,20 +0,0 @@
-
-/* eslint-disable */
-function wrapStyle(data) {
-  if (data.fixed) {
-    return 'top: ' + data.offsetTop + 'px;'
-  }
-  return ''
-}
-
-function containerStyle(data) {
-  if (data.fixed) {
-    return 'height: ' + data.height + 'px; z-index: ' + data.zIndex + ';'
-  }
-  return ''
-}
-
-module.exports = {
-  wrapStyle: wrapStyle,
-  containerStyle: containerStyle
-}

+ 0 - 1
miniprogram/miniprogram_npm/@miniprogram-component-plus/sticky/index.wxss

@@ -1 +0,0 @@
-.weui-sticky{position:relative}.weui-sticky__fixed{position:fixed;left:0;top:0}

+ 0 - 148
miniprogram/miniprogram_npm/@miniprogram-component-plus/tabs/index.js

@@ -1,148 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 5);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 5:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Component({
-    options: {
-        addGlobalClass: true,
-        pureDataPattern: /^_/,
-        multipleSlots: true
-    },
-    properties: {
-        tabs: { type: Array, value: [] },
-        tabClass: { type: String, value: '' },
-        swiperClass: { type: String, value: '' },
-        activeClass: { type: String, value: '' },
-        tabUnderlineColor: { type: String, value: '#07c160' },
-        tabActiveTextColor: { type: String, value: '#000000' },
-        tabInactiveTextColor: { type: String, value: '#000000' },
-        tabBackgroundColor: { type: String, value: '#ffffff' },
-        activeTab: { type: Number, value: 0 },
-        swipeable: { type: Boolean, value: true },
-        animation: { type: Boolean, value: true },
-        duration: { type: Number, value: 500 }
-    },
-    data: {
-        currentView: 0
-    },
-    observers: {
-        activeTab: function activeTab(_activeTab) {
-            var len = this.data.tabs.length;
-            if (len === 0) return;
-            var currentView = _activeTab - 1;
-            if (currentView < 0) currentView = 0;
-            if (currentView > len - 1) currentView = len - 1;
-            this.setData({ currentView: currentView });
-        }
-    },
-    lifetimes: {
-        created: function created() {}
-    },
-    methods: {
-        handleTabClick: function handleTabClick(e) {
-            var index = e.currentTarget.dataset.index;
-            this.setData({ activeTab: index });
-            this.triggerEvent('tabclick', { index: index });
-        },
-        handleSwiperChange: function handleSwiperChange(e) {
-            var index = e.detail.current;
-            this.setData({ activeTab: index });
-            this.triggerEvent('change', { index: index });
-        }
-    }
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/@miniprogram-component-plus/tabs/index.json

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

+ 0 - 20
miniprogram/miniprogram_npm/@miniprogram-component-plus/tabs/index.wxml

@@ -1,20 +0,0 @@
-<view class="weui-tabs">
-  <view class="weui-tabs-bar__wrp">
-    <scroll-view scroll-x scroll-into-view="item_{{currentView}}" scroll-with-animation="{{animation}}">
-      <view class="weui-tabs-bar__content">
-        <block wx:for="{{tabs}}" wx:key="title">
-          <view id="item_{{index}}" class="weui-tabs-bar__item" style="background-color: {{tabBackgroundColor}}; color: {{activeTab === index ? tabActiveTextColor : tabInactiveTextColor}};" bindtap="handleTabClick" data-index="{{index}}">
-            <view class="weui-tabs-bar__title {{tabClass}} {{activeTab === index ? activeClass : ''}}" style="border-bottom-color: {{activeTab === index ? tabUnderlineColor : 'transparent'}}">
-              <text class="">{{item.title}}</text>
-            </view>
-          </view>
-        </block>
-      </view>
-    </scroll-view>
-  </view>
-  <swiper class="{{swiperClass}}" current="{{activeTab}}" duration="{{duration}}" bindchange="handleSwiperChange">
-    <swiper-item wx:for="{{tabs}}" wx:key="title">
-      <slot name="tab-content-{{index}}"></slot>
-    </swiper-item>
-  </swiper>
-</view>

+ 0 - 1
miniprogram/miniprogram_npm/@miniprogram-component-plus/tabs/index.wxss

@@ -1 +0,0 @@
-.weui-tabs{width:100%}.weui-tabs-bar__wrp{width:100%;background:#fff}.weui-tabs-bar__content{width:100%;white-space:nowrap}.weui-tabs-bar__item{display:inline-block}.weui-tabs-bar__title{display:inline-block;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:transparent}

+ 0 - 254
miniprogram/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.js

@@ -1,254 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Component({
-    options: {
-        addGlobalClass: true,
-        pureDataPattern: /^_/
-    },
-    properties: {
-        duration: {
-            type: Number,
-            value: 500
-        },
-        easingFunction: {
-            type: String,
-            value: 'default'
-        },
-        loop: {
-            type: Boolean,
-            value: true
-        },
-        videoList: {
-            type: Array,
-            value: [],
-            observer: function observer() {
-                var newVal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-
-                this._videoListChanged(newVal);
-            }
-        }
-    },
-    data: {
-        nextQueue: [],
-        prevQueue: [],
-        curQueue: [],
-        circular: false,
-        _last: 1,
-        _change: -1,
-        _invalidUp: 0,
-        _invalidDown: 0,
-        _videoContexts: []
-    },
-    lifetimes: {
-        attached: function attached() {
-            this.data._videoContexts = [wx.createVideoContext('video_0', this), wx.createVideoContext('video_1', this), wx.createVideoContext('video_2', this)];
-        }
-    },
-    methods: {
-        _videoListChanged: function _videoListChanged(newVal) {
-            var _this = this;
-
-            var data = this.data;
-            newVal.forEach(function (item) {
-                data.nextQueue.push(item);
-            });
-            if (data.curQueue.length === 0) {
-                this.setData({
-                    curQueue: data.nextQueue.splice(0, 3)
-                }, function () {
-                    _this.playCurrent(1);
-                });
-            }
-        },
-        animationfinish: function animationfinish(e) {
-            var _data = this.data,
-                _last = _data._last,
-                _change = _data._change,
-                curQueue = _data.curQueue,
-                prevQueue = _data.prevQueue,
-                nextQueue = _data.nextQueue;
-
-            var current = e.detail.current;
-            var diff = current - _last;
-            if (diff === 0) return;
-            this.data._last = current;
-            this.playCurrent(current);
-            this.triggerEvent('change', { activeId: curQueue[current].id });
-            var direction = diff === 1 || diff === -2 ? 'up' : 'down';
-            if (direction === 'up') {
-                if (this.data._invalidDown === 0) {
-                    var change = (_change + 1) % 3;
-                    var add = nextQueue.shift();
-                    var remove = curQueue[change];
-                    if (add) {
-                        prevQueue.push(remove);
-                        curQueue[change] = add;
-                        this.data._change = change;
-                    } else {
-                        this.data._invalidUp += 1;
-                    }
-                } else {
-                    this.data._invalidDown -= 1;
-                }
-            }
-            if (direction === 'down') {
-                if (this.data._invalidUp === 0) {
-                    var _change2 = _change;
-                    var _remove = curQueue[_change2];
-                    var _add = prevQueue.pop();
-                    if (_add) {
-                        curQueue[_change2] = _add;
-                        nextQueue.unshift(_remove);
-                        this.data._change = (_change2 - 1 + 3) % 3;
-                    } else {
-                        this.data._invalidDown += 1;
-                    }
-                } else {
-                    this.data._invalidUp -= 1;
-                }
-            }
-            var circular = true;
-            if (nextQueue.length === 0 && current !== 0) {
-                circular = false;
-            }
-            if (prevQueue.length === 0 && current !== 2) {
-                circular = false;
-            }
-            this.setData({
-                curQueue: curQueue,
-                circular: circular
-            });
-        },
-        playCurrent: function playCurrent(current) {
-            this.data._videoContexts.forEach(function (ctx, index) {
-                index !== current ? ctx.pause() : ctx.play();
-            });
-        },
-        onPlay: function onPlay(e) {
-            this.trigger(e, 'play');
-        },
-        onPause: function onPause(e) {
-            this.trigger(e, 'pause');
-        },
-        onEnded: function onEnded(e) {
-            this.trigger(e, 'ended');
-        },
-        onError: function onError(e) {
-            this.trigger(e, 'error');
-        },
-        onTimeUpdate: function onTimeUpdate(e) {
-            this.trigger(e, 'timeupdate');
-        },
-        onWaiting: function onWaiting(e) {
-            this.trigger(e, 'wait');
-        },
-        onProgress: function onProgress(e) {
-            this.trigger(e, 'progress');
-        },
-        onLoadedMetaData: function onLoadedMetaData(e) {
-            this.trigger(e, 'loadedmetadata');
-        },
-        trigger: function trigger(e, type) {
-            var ext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
-            var detail = e.detail;
-            var activeId = e.target.dataset.id;
-            this.triggerEvent(type, Object.assign(Object.assign(Object.assign({}, detail), { activeId: activeId }), ext));
-        }
-    }
-});
-
-/***/ })
-/******/ ]);

+ 0 - 4
miniprogram/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.json

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

+ 0 - 37
miniprogram/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.wxml

@@ -1,37 +0,0 @@
-<view class="container">
-  <swiper 
-    class="video-swiper" 
-    circular="{{circular}}" 
-    easing-function="{{easingFunction}}" 
-    vertical 
-    current="1"
-    duration="{{duration}}" 
-    bindanimationfinish="animationfinish">
-    <!-- curQueue 循环会导致video重新插入,objectFit 不可变更 -->
-    <swiper-item wx:for="{{curQueue}}" wx:key="*this">
-      <video 
-        id="video_{{index}}" 
-        class="video_item" 
-        loop="{{loop}}" 
-        enable-play-gesture 
-        enable-progress-gesture 
-        show-center-play-btn="{{false}}"
-        controls="{{false}}"
-        src="{{item.url}}" 
-        data-id="{{item.id}}"
-        object-fit="{{item.objectFit || 'cover'}}"
-        data-index="{{index}}"
-        bindplay="onPlay"
-        bindpause="onPause"
-        bindended="onEnded"
-        binderror="onError"
-        bindtimeupdate="onTimeUpdate"
-        bindwaiting="onWaiting"
-        bindprogress="onProgress"
-        bindloadedmetadata="onLoadedMetaData"
-      >
-      </video>
-    </swiper-item>
-  </swiper>
-</view>
-

+ 0 - 1
miniprogram/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.wxss

@@ -1 +0,0 @@
-.container{width:100%;height:100%}.video-swiper{width:100%;height:100%}.video_item{height:100%;width:100%}

+ 0 - 127
miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs-content/index.js

@@ -1,127 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 7);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 7:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Component({
-    options: {
-        addGlobalClass: true,
-        multipleSlots: true
-    },
-    properties: {
-        tabIndex: {
-            type: Number,
-            value: 0
-        }
-    },
-    relations: {
-        '../vtabs/index': {
-            type: 'parent'
-        }
-    },
-    lifetimes: {
-        attached: function attached() {}
-    },
-    methods: {
-        calcHeight: function calcHeight(callback) {
-            var query = this.createSelectorQuery();
-            query.select('.weui-vtabs-content__item').boundingClientRect(function (rect) {
-                callback && callback(rect);
-            }).exec();
-        }
-    }
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs-content/index.json

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

+ 0 - 3
miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs-content/index.wxml

@@ -1,3 +0,0 @@
-<view class="weui-vtabs-content__item" id="weui-vtabs-content__{{tabIndex}}">
-  <slot ></slot>
-</view>

+ 0 - 1
miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs-content/index.wxss

@@ -1 +0,0 @@
-.weui-tabs-content__item{width:100%;height:100%}

+ 0 - 202
miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs/index.js

@@ -1,202 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 6);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 6:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Component({
-    options: {
-        addGlobalClass: true,
-        pureDataPattern: /^_/,
-        multipleSlots: true
-    },
-    properties: {
-        vtabs: { type: Array, value: [] },
-        tabBarClass: { type: String, value: '' },
-        activeClass: { type: String, value: '' },
-        tabLineColor: { type: String, value: '#ff0000' },
-        tabInactiveTextColor: { type: String, value: '#000000' },
-        tabActiveTextColor: { type: String, value: '#ff0000' },
-        tabInactiveBgColor: { type: String, value: '#eeeeee' },
-        tabActiveBgColor: { type: String, value: '#ffffff' },
-        activeTab: { type: Number, value: 0 },
-        animation: { type: Boolean, value: true }
-    },
-    data: {
-        currentView: 0,
-        contentScrollTop: 0,
-        _heightRecords: [],
-        _contentHeight: {}
-    },
-    observers: {
-        activeTab: function activeTab(_activeTab) {
-            this.scrollTabBar(_activeTab);
-        }
-    },
-    relations: {
-        '../vtabs-content/index': {
-            type: 'child',
-            linked: function linked(target) {
-                var _this = this;
-
-                target.calcHeight(function (rect) {
-                    _this.data._contentHeight[target.data.tabIndex] = rect.height;
-                    if (_this._calcHeightTimer) {
-                        clearTimeout(_this._calcHeightTimer);
-                    }
-                    _this._calcHeightTimer = setTimeout(function () {
-                        _this.calcHeight();
-                    }, 100);
-                });
-            },
-            unlinked: function unlinked(target) {
-                delete this.data._contentHeight[target.data.tabIndex];
-            }
-        }
-    },
-    lifetimes: {
-        attached: function attached() {}
-    },
-    methods: {
-        calcHeight: function calcHeight() {
-            var length = this.data.vtabs.length;
-            var _contentHeight = this.data._contentHeight;
-            var _heightRecords = [];
-            var temp = 0;
-            for (var i = 0; i < length; i++) {
-                _heightRecords[i] = temp + (_contentHeight[i] || 0);
-                temp = _heightRecords[i];
-            }
-            this.data._heightRecords = _heightRecords;
-        },
-        scrollTabBar: function scrollTabBar(index) {
-            var len = this.data.vtabs.length;
-            if (len === 0) return;
-            var currentView = index < 6 ? 0 : index - 5;
-            if (currentView >= len) currentView = len - 1;
-            this.setData({ currentView: currentView });
-        },
-        handleTabClick: function handleTabClick(e) {
-            var _heightRecords = this.data._heightRecords;
-            var index = e.currentTarget.dataset.index;
-            var contentScrollTop = _heightRecords[index - 1] || 0;
-            this.triggerEvent('tabclick', { index: index });
-            this.setData({
-                activeTab: index,
-                contentScrollTop: contentScrollTop
-            });
-        },
-        handleContentScroll: function handleContentScroll(e) {
-            var _heightRecords = this.data._heightRecords;
-            if (_heightRecords.length === 0) return;
-            var length = this.data.vtabs.length;
-            var scrollTop = e.detail.scrollTop;
-            var index = 0;
-            if (scrollTop >= _heightRecords[0]) {
-                for (var i = 1; i < length; i++) {
-                    if (scrollTop >= _heightRecords[i - 1] && scrollTop < _heightRecords[i]) {
-                        index = i;
-                        break;
-                    }
-                }
-            }
-            if (index !== this.data.activeTab) {
-                this.triggerEvent('change', { index: index });
-                this.setData({ activeTab: index });
-            }
-        }
-    }
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs/index.json

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

+ 0 - 38
miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs/index.wxml

@@ -1,38 +0,0 @@
-<view class="weui-vtabs">
-  <view class="weui-vtabs-bar__wrp {{tabBarClass}}">
-    <scroll-view 
-      scroll-y
-      class="weui-vtabs-bar__scrollview"
-      scroll-into-view="weui-vtabs-item__{{currentView}}"
-    >
-      <view class="weui-vtabs-bar__content">
-        <block wx:for="{{vtabs}}" wx:key="title">
-          <view 
-            id="weui-vtabs-item__{{index}}"
-            class="weui-vtabs-bar__item"
-            data-index="{{index}}"
-            style="background-color: {{activeTab === index ? tabActiveBgColor : tabInactiveBgColor}}; color: {{activeTab === index ? tabActiveTextColor : tabInactiveTextColor}}; border-left-color: {{activeTab === index ? tabLineColor : tabInactiveBgColor}}"
-            bindtap="handleTabClick"
-          >
-            <view class="weui-vtabs-bar__title {{activeTab === index ? activeClass : ''}}">
-              <text class="">{{item.title}}</text>
-            </view>
-          </view>
-        </block>
-      </view>
-    </scroll-view>
-  </view>
-  <view class="weui-vtabs-content__wrp">
-    <scroll-view 
-      scroll-y
-      class="weui-vtabs-content__scrollview" 
-      scroll-top="{{contentScrollTop}}"
-      scroll-with-animation="{{animation}}"
-      bindscroll="handleContentScroll"
-    >
-      <view class="weui-vtabs-content">
-        <slot ></slot>
-      </view>
-    </scroll-view>
-  </view>
-</view>

+ 0 - 1
miniprogram/miniprogram_npm/@miniprogram-component-plus/vtabs/index.wxss

@@ -1 +0,0 @@
-.weui-vtabs{width:100%;height:100%;display:flex}.weui-vtabs-bar__wrp{width:110px;height:100%}.weui-vtabs-bar__scrollview{height:100%}.weui-vtabs-bar__content{width:110px;height:100%}.weui-vtabs-bar__item{display:inline-block;width:110px;height:55px;border-left:4px solid transparent}.weui-vtabs-bar__title{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:14px;white-space:nowrap;overflow:hidden}.weui-vtabs-content__wrp{overflow:hidden;flex:1;height:100%}.weui-vtabs-content__scrollview{height:100%}.weui-vtabs-content{height:100%}

+ 0 - 348
miniprogram/miniprogram_npm/eventemitter3/index.js

@@ -1,348 +0,0 @@
-module.exports = (function() {
-var __MODS__ = {};
-var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; };
-var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; };
-var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } };
-var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; };
-__DEFINE__(1603952260665, function(require, module, exports) {
-
-
-var has = Object.prototype.hasOwnProperty
-  , prefix = '~';
-
-/**
- * Constructor to create a storage for our `EE` objects.
- * An `Events` instance is a plain object whose properties are event names.
- *
- * @constructor
- * @private
- */
-function Events() {}
-
-//
-// We try to not inherit from `Object.prototype`. In some engines creating an
-// instance in this way is faster than calling `Object.create(null)` directly.
-// If `Object.create(null)` is not supported we prefix the event names with a
-// character to make sure that the built-in object properties are not
-// overridden or used as an attack vector.
-//
-if (Object.create) {
-  Events.prototype = Object.create(null);
-
-  //
-  // This hack is needed because the `__proto__` property is still inherited in
-  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
-  //
-  if (!new Events().__proto__) prefix = false;
-}
-
-/**
- * Representation of a single event listener.
- *
- * @param {Function} fn The listener function.
- * @param {*} context The context to invoke the listener with.
- * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
- * @constructor
- * @private
- */
-function EE(fn, context, once) {
-  this.fn = fn;
-  this.context = context;
-  this.once = once || false;
-}
-
-/**
- * Add a listener for a given event.
- *
- * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
- * @param {(String|Symbol)} event The event name.
- * @param {Function} fn The listener function.
- * @param {*} context The context to invoke the listener with.
- * @param {Boolean} once Specify if the listener is a one-time listener.
- * @returns {EventEmitter}
- * @private
- */
-function addListener(emitter, event, fn, context, once) {
-  if (typeof fn !== 'function') {
-    throw new TypeError('The listener must be a function');
-  }
-
-  var listener = new EE(fn, context || emitter, once)
-    , evt = prefix ? prefix + event : event;
-
-  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
-  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
-  else emitter._events[evt] = [emitter._events[evt], listener];
-
-  return emitter;
-}
-
-/**
- * Clear event by name.
- *
- * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
- * @param {(String|Symbol)} evt The Event name.
- * @private
- */
-function clearEvent(emitter, evt) {
-  if (--emitter._eventsCount === 0) emitter._events = new Events();
-  else delete emitter._events[evt];
-}
-
-/**
- * Minimal `EventEmitter` interface that is molded against the Node.js
- * `EventEmitter` interface.
- *
- * @constructor
- * @public
- */
-function EventEmitter() {
-  this._events = new Events();
-  this._eventsCount = 0;
-}
-
-/**
- * Return an array listing the events for which the emitter has registered
- * listeners.
- *
- * @returns {Array}
- * @public
- */
-EventEmitter.prototype.eventNames = function eventNames() {
-  var names = []
-    , events
-    , name;
-
-  if (this._eventsCount === 0) return names;
-
-  for (name in (events = this._events)) {
-    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
-  }
-
-  if (Object.getOwnPropertySymbols) {
-    return names.concat(Object.getOwnPropertySymbols(events));
-  }
-
-  return names;
-};
-
-/**
- * Return the listeners registered for a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @returns {Array} The registered listeners.
- * @public
- */
-EventEmitter.prototype.listeners = function listeners(event) {
-  var evt = prefix ? prefix + event : event
-    , handlers = this._events[evt];
-
-  if (!handlers) return [];
-  if (handlers.fn) return [handlers.fn];
-
-  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
-    ee[i] = handlers[i].fn;
-  }
-
-  return ee;
-};
-
-/**
- * Return the number of listeners listening to a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @returns {Number} The number of listeners.
- * @public
- */
-EventEmitter.prototype.listenerCount = function listenerCount(event) {
-  var evt = prefix ? prefix + event : event
-    , listeners = this._events[evt];
-
-  if (!listeners) return 0;
-  if (listeners.fn) return 1;
-  return listeners.length;
-};
-
-/**
- * Calls each of the listeners registered for a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @returns {Boolean} `true` if the event had listeners, else `false`.
- * @public
- */
-EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
-  var evt = prefix ? prefix + event : event;
-
-  if (!this._events[evt]) return false;
-
-  var listeners = this._events[evt]
-    , len = arguments.length
-    , args
-    , i;
-
-  if (listeners.fn) {
-    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
-
-    switch (len) {
-      case 1: return listeners.fn.call(listeners.context), true;
-      case 2: return listeners.fn.call(listeners.context, a1), true;
-      case 3: return listeners.fn.call(listeners.context, a1, a2), true;
-      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
-      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
-      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
-    }
-
-    for (i = 1, args = new Array(len -1); i < len; i++) {
-      args[i - 1] = arguments[i];
-    }
-
-    listeners.fn.apply(listeners.context, args);
-  } else {
-    var length = listeners.length
-      , j;
-
-    for (i = 0; i < length; i++) {
-      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
-
-      switch (len) {
-        case 1: listeners[i].fn.call(listeners[i].context); break;
-        case 2: listeners[i].fn.call(listeners[i].context, a1); break;
-        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
-        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
-        default:
-          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
-            args[j - 1] = arguments[j];
-          }
-
-          listeners[i].fn.apply(listeners[i].context, args);
-      }
-    }
-  }
-
-  return true;
-};
-
-/**
- * Add a listener for a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @param {Function} fn The listener function.
- * @param {*} [context=this] The context to invoke the listener with.
- * @returns {EventEmitter} `this`.
- * @public
- */
-EventEmitter.prototype.on = function on(event, fn, context) {
-  return addListener(this, event, fn, context, false);
-};
-
-/**
- * Add a one-time listener for a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @param {Function} fn The listener function.
- * @param {*} [context=this] The context to invoke the listener with.
- * @returns {EventEmitter} `this`.
- * @public
- */
-EventEmitter.prototype.once = function once(event, fn, context) {
-  return addListener(this, event, fn, context, true);
-};
-
-/**
- * Remove the listeners of a given event.
- *
- * @param {(String|Symbol)} event The event name.
- * @param {Function} fn Only remove the listeners that match this function.
- * @param {*} context Only remove the listeners that have this context.
- * @param {Boolean} once Only remove one-time listeners.
- * @returns {EventEmitter} `this`.
- * @public
- */
-EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
-  var evt = prefix ? prefix + event : event;
-
-  if (!this._events[evt]) return this;
-  if (!fn) {
-    clearEvent(this, evt);
-    return this;
-  }
-
-  var listeners = this._events[evt];
-
-  if (listeners.fn) {
-    if (
-      listeners.fn === fn &&
-      (!once || listeners.once) &&
-      (!context || listeners.context === context)
-    ) {
-      clearEvent(this, evt);
-    }
-  } else {
-    for (var i = 0, events = [], length = listeners.length; i < length; i++) {
-      if (
-        listeners[i].fn !== fn ||
-        (once && !listeners[i].once) ||
-        (context && listeners[i].context !== context)
-      ) {
-        events.push(listeners[i]);
-      }
-    }
-
-    //
-    // Reset the array, or remove it completely if we have no more listeners.
-    //
-    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
-    else clearEvent(this, evt);
-  }
-
-  return this;
-};
-
-/**
- * Remove all listeners, or those of the specified event.
- *
- * @param {(String|Symbol)} [event] The event name.
- * @returns {EventEmitter} `this`.
- * @public
- */
-EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
-  var evt;
-
-  if (event) {
-    evt = prefix ? prefix + event : event;
-    if (this._events[evt]) clearEvent(this, evt);
-  } else {
-    this._events = new Events();
-    this._eventsCount = 0;
-  }
-
-  return this;
-};
-
-//
-// Alias methods names because people roll like that.
-//
-EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
-EventEmitter.prototype.addListener = EventEmitter.prototype.on;
-
-//
-// Expose the prefix.
-//
-EventEmitter.prefixed = prefix;
-
-//
-// Allow `EventEmitter` to be imported as module namespace.
-//
-EventEmitter.EventEmitter = EventEmitter;
-
-//
-// Expose the module.
-//
-if ('undefined' !== typeof module) {
-  module.exports = EventEmitter;
-}
-
-}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); })
-return __REQUIRE__(1603952260665);
-})()
-//# sourceMappingURL=index.js.map

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
miniprogram/miniprogram_npm/eventemitter3/index.js.map


+ 0 - 1368
miniprogram/miniprogram_npm/miniprogram-barrage/index.js

@@ -1,1368 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 1);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// 获取字节长度,中文算2个字节
-function getStrLen(str) {
-  // eslint-disable-next-line no-control-regex
-  return str.replace(/[^\x00-\xff]/g, 'aa').length;
-}
-
-// 截取指定字节长度的子串
-function substring(str, n) {
-  if (!str) return '';
-
-  var len = getStrLen(str);
-  if (n >= len) return str;
-
-  var l = 0;
-  var result = '';
-  for (var i = 0; i < str.length; i++) {
-    var ch = str.charAt(i);
-    // eslint-disable-next-line no-control-regex
-    l = /[^\x00-\xff]/i.test(ch) ? l + 2 : l + 1;
-    result += ch;
-    if (l >= n) break;
-  }
-  return result;
-}
-
-function getRandom() {
-  var max = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
-  var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
-  return Math.floor(Math.random() * (max - min) + min);
-}
-
-function getFontSize(font) {
-  var reg = /(\d+)(px)/i;
-  var match = font.match(reg);
-  return match && match[1] || 10;
-}
-
-function compareVersion(v1, v2) {
-  v1 = v1.split('.');
-  v2 = v2.split('.');
-  var len = Math.max(v1.length, v2.length);
-
-  while (v1.length < len) {
-    v1.push('0');
-  }
-  while (v2.length < len) {
-    v2.push('0');
-  }
-
-  for (var i = 0; i < len; i++) {
-    var num1 = parseInt(v1[i], 10);
-    var num2 = parseInt(v2[i], 10);
-
-    if (num1 > num2) {
-      return 1;
-    } else if (num1 < num2) {
-      return -1;
-    }
-  }
-  return 0;
-}
-
-module.exports = {
-  getStrLen: getStrLen,
-  substring: substring,
-  getRandom: getRandom,
-  getFontSize: getFontSize,
-  compareVersion: compareVersion
-};
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _barrageDom = __webpack_require__(2);
-
-var _barrageDom2 = _interopRequireDefault(_barrageDom);
-
-var _barrageCanvas = __webpack_require__(3);
-
-var _barrageCanvas2 = _interopRequireDefault(_barrageCanvas);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-Component({
-  options: {
-    addGlobalClass: true
-  },
-
-  properties: {
-    zIndex: {
-      type: Number,
-      value: 10
-    },
-
-    renderingMode: {
-      type: String,
-      value: 'canvas'
-    }
-  },
-
-  methods: {
-    getBarrageInstance: function getBarrageInstance() {
-      var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-      opt.comp = this;
-      this.barrageInstance = this.data.renderingMode === 'dom' ? new _barrageDom2.default(opt) : new _barrageCanvas2.default(opt);
-      return this.barrageInstance;
-    },
-    onAnimationend: function onAnimationend(e) {
-      var _e$currentTarget$data = e.currentTarget.dataset,
-          tunnelid = _e$currentTarget$data.tunnelid,
-          bulletid = _e$currentTarget$data.bulletid;
-
-      this.barrageInstance.animationend({
-        tunnelId: tunnelid,
-        bulletId: bulletid
-      });
-    },
-    onTapBullet: function onTapBullet(e) {
-      var _e$currentTarget$data2 = e.currentTarget.dataset,
-          tunnelid = _e$currentTarget$data2.tunnelid,
-          bulletid = _e$currentTarget$data2.bulletid;
-
-      this.barrageInstance.tapBullet({
-        tunnelId: tunnelid,
-        bulletId: bulletid
-      });
-    }
-  }
-});
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-exports.__esModule = true;
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var _require = __webpack_require__(0),
-    substring = _require.substring,
-    getRandom = _require.getRandom,
-    getFontSize = _require.getFontSize;
-
-var Bullet = function () {
-  function Bullet() {
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    _classCallCheck(this, Bullet);
-
-    this.bulletId = opt.bulletId;
-    this.addContent(opt);
-  }
-
-  /**
-   * image 结构
-   * {
-   *   head: {src, width, height},
-   *   tail: {src, width, height},
-   *   gap: 4 // 图片与文本间隔
-   * }
-   */
-
-
-  Bullet.prototype.addContent = function addContent() {
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    var defaultBulletOpt = {
-      duration: 0, // 动画时长
-      passtime: 0, // 弹幕穿越右边界耗时
-      content: '', // 文本
-      color: '#000000', // 默认黑色
-      width: 0, // 弹幕宽度
-      height: 0, // 弹幕高度
-      image: {}, // 图片
-      paused: false // 是否暂停
-    };
-    Object.assign(this, defaultBulletOpt, opt);
-  };
-
-  Bullet.prototype.removeContent = function removeContent() {
-    this.addContent({});
-  };
-
-  return Bullet;
-}();
-
-// tunnel(轨道)
-
-
-var Tunnel = function () {
-  function Tunnel() {
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    _classCallCheck(this, Tunnel);
-
-    var defaultTunnelOpt = {
-      tunnelId: 0,
-      height: 0, // 轨道高度
-      width: 0, // 轨道宽度
-      safeGap: 4, // 相邻弹幕安全间隔
-      maxNum: 10, // 缓冲队列长度
-      bullets: [], // 弹幕
-      last: -1, // 上一条发送的弹幕序号
-      bulletStatus: [], // 0 空闲,1 占用中
-      disabled: false, // 禁用中
-      sending: false, // 弹幕正在发送
-      timer: null // 定时器
-    };
-    Object.assign(this, defaultTunnelOpt, opt);
-    this.bulletStatus = new Array(this.maxNum).fill(0);
-    for (var i = 0; i < this.maxNum; i++) {
-      this.bullets.push(new Bullet({
-        bulletId: i
-      }));
-    }
-  }
-
-  Tunnel.prototype.disable = function disable() {
-    this.disabled = true;
-    this.last = -1;
-    this.sending = false;
-    this.bulletStatus = new Array(this.maxNum).fill(1);
-    this.bullets.forEach(function (bullet) {
-      return bullet.removeContent();
-    });
-  };
-
-  Tunnel.prototype.enable = function enable() {
-    if (this.disabled) {
-      this.bulletStatus = new Array(this.maxNum).fill(0);
-    }
-    this.disabled = false;
-  };
-
-  Tunnel.prototype.clear = function clear() {
-    this.last = -1;
-    this.sending = false;
-    this.bulletStatus = new Array(this.maxNum).fill(0);
-    this.bullets.forEach(function (bullet) {
-      return bullet.removeContent();
-    });
-    if (this.timer) {
-      clearTimeout(this.timer);
-    }
-  };
-
-  Tunnel.prototype.getIdleBulletIdx = function getIdleBulletIdx() {
-    var idle = this.bulletStatus.indexOf(0, this.last + 1);
-    if (idle === -1) {
-      idle = this.bulletStatus.indexOf(0);
-    }
-
-    return idle;
-  };
-
-  Tunnel.prototype.getIdleBulletNum = function getIdleBulletNum() {
-    var count = 0;
-    this.bulletStatus.forEach(function (status) {
-      if (status === 0) count++;
-    });
-    return count;
-  };
-
-  Tunnel.prototype.addBullet = function addBullet(opt) {
-    if (this.disabled) return;
-    var idx = this.getIdleBulletIdx();
-    if (idx >= 0) {
-      this.bulletStatus[idx] = 1;
-      this.bullets[idx].addContent(opt);
-    }
-  };
-
-  Tunnel.prototype.removeBullet = function removeBullet(bulletId) {
-    if (this.disabled) return;
-    this.bulletStatus[bulletId] = 0;
-    var bullet = this.bullets[bulletId];
-    bullet.removeContent();
-  };
-
-  return Tunnel;
-}();
-
-// Barrage(控制中心)
-
-
-var Barrage = function () {
-  function Barrage() {
-    var _this = this;
-
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    _classCallCheck(this, Barrage);
-
-    var defaultBarrageOpt = {
-      duration: 10, // 弹幕动画时长
-      lineHeight: 1.2, // 弹幕行高
-      padding: [0, 0, 0, 0], // 弹幕区四周留白
-      alpha: 1, // 全局透明度
-      font: '10px sans-serif', // 全局字体
-      mode: 'separate', // 弹幕重叠 overlap  不重叠 separate
-      range: [0, 1], // 弹幕显示的垂直范围,支持两个值。[0,1]表示弹幕整个随机分布,
-      tunnelShow: false, // 显示轨道线
-      tunnelMaxNum: 30, // 隧道最大缓冲长度
-      maxLength: 30, // 弹幕最大字节长度,汉字算双字节
-      safeGap: 4, // 发送时的安全间隔
-      enableTap: false, // 点击弹幕停止动画高亮显示
-      tunnelHeight: 0,
-      tunnelNum: 0,
-      tunnels: [],
-      idleTunnels: null,
-      enableTunnels: null,
-      distance: 2000,
-      comp: null // 组件实例
-    };
-    Object.assign(this, defaultBarrageOpt, opt);
-    this._ready = false;
-    this._deferred = [];
-
-    var query = this.comp.createSelectorQuery();
-    query.select('.barrage-area').boundingClientRect(function (res) {
-      _this.init(res);
-      _this.ready();
-    }).exec();
-  }
-
-  Barrage.prototype.ready = function ready() {
-    var _this2 = this;
-
-    this._ready = true;
-    this._deferred.forEach(function (item) {
-      // eslint-disable-next-line prefer-spread
-      _this2[item.callback].apply(_this2, item.args);
-    });
-
-    this._deferred = [];
-  };
-
-  Barrage.prototype._delay = function _delay(method, args) {
-    this._deferred.push({
-      callback: method,
-      args: args
-    });
-  };
-
-  Barrage.prototype.init = function init(opt) {
-    this.width = opt.width;
-    this.height = opt.height;
-    this.fontSize = getFontSize(this.font);
-    this.idleTunnels = new Set();
-    this.enableTunnels = new Set();
-    this.tunnels = [];
-    this.availableHeight = this.height - this.padding[0] - this.padding[2];
-    this.tunnelHeight = this.fontSize * this.lineHeight;
-    this.tunnelNum = Math.floor(this.availableHeight / this.tunnelHeight);
-    for (var i = 0; i < this.tunnelNum; i++) {
-      this.idleTunnels.add(i); // 空闲的隧道id集合
-      this.enableTunnels.add(i); // 可用的隧道id集合
-
-      this.tunnels.push(new Tunnel({ // 隧道集合
-        width: this.width,
-        height: this.tunnelHeight,
-        safeGap: this.safeGap,
-        maxNum: this.tunnelMaxNum,
-        tunnelId: i
-      }));
-    }
-    this.comp.setData({
-      fontSize: this.fontSize,
-      tunnelShow: this.tunnelShow,
-      tunnels: this.tunnels,
-      font: this.font,
-      alpha: this.alpha,
-      padding: this.padding.map(function (item) {
-        return item + 'px';
-      }).join(' ')
-    });
-    // 筛选符合范围的隧道
-    this.setRange();
-  };
-
-  // 设置显示范围 range: [0,1]
-
-
-  Barrage.prototype.setRange = function setRange(range) {
-    var _this3 = this;
-
-    if (!this._ready) {
-      this._delay('setRange', range);
-      return;
-    }
-
-    range = range || this.range;
-    var top = range[0] * this.tunnelNum;
-    var bottom = range[1] * this.tunnelNum;
-    // 释放符合要求的隧道
-    // 找到目前空闲的隧道
-    var idleTunnels = new Set();
-    var enableTunnels = new Set();
-    this.tunnels.forEach(function (tunnel, tunnelId) {
-      if (tunnelId >= top && tunnelId < bottom) {
-        var disabled = tunnel.disabled;
-        tunnel.enable();
-        enableTunnels.add(tunnelId);
-
-        if (disabled || _this3.idleTunnels.has(tunnelId)) {
-          idleTunnels.add(tunnelId);
-        }
-      } else {
-        tunnel.disable();
-      }
-    });
-    this.idleTunnels = idleTunnels;
-    this.enableTunnels = enableTunnels;
-    this.range = range;
-    this.comp.setData({ tunnels: this.tunnels });
-  };
-
-  Barrage.prototype.setFont = function setFont(font) {
-    if (!this._ready) {
-      this._delay('setFont', font);
-      return;
-    }
-
-    if (typeof font !== 'string') return;
-    this.font = font;
-    this.comp.setData({ font: font });
-  };
-
-  Barrage.prototype.setAlpha = function setAlpha(alpha) {
-    if (!this._ready) {
-      this._delay('setAlpha', alpha);
-      return;
-    }
-
-    if (typeof alpha !== 'number') return;
-    this.alpha = alpha;
-    this.comp.setData({ alpha: alpha });
-  };
-
-  Barrage.prototype.setDuration = function setDuration(duration) {
-    if (!this._ready) {
-      this._delay('setDuration', duration);
-      return;
-    }
-
-    if (typeof duration !== 'number') return;
-    this.duration = duration;
-    this.clear();
-  };
-
-  // 开启弹幕
-
-
-  Barrage.prototype.open = function open() {
-    if (!this._ready) {
-      this._delay('open');
-      return;
-    }
-
-    this._isActive = true;
-  };
-
-  // 关闭弹幕,清除所有数据
-
-
-  Barrage.prototype.close = function close() {
-    if (!this._ready) {
-      this._delay('close');
-      return;
-    }
-
-    this._isActive = false;
-    this.clear();
-  };
-
-  Barrage.prototype.clear = function clear() {
-    this.tunnels.forEach(function (tunnel) {
-      return tunnel.clear();
-    });
-    this.idleTunnels = new Set(this.enableTunnels);
-    this.comp.setData({ tunnels: this.tunnels });
-  };
-
-  // 添加一批弹幕,轨道满时会被丢弃
-
-
-  Barrage.prototype.addData = function addData() {
-    var _this4 = this;
-
-    var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-
-    if (!this._ready) {
-      this._delay('addData', data);
-      return;
-    }
-
-    if (!this._isActive) return;
-
-    data.forEach(function (item) {
-      item.content = substring(item.content, _this4.maxLength);
-      _this4.addBullet2Tunnel(item);
-    });
-    this.comp.setData({
-      tunnels: this.tunnels
-    }, function () {
-      _this4.updateBullets();
-    });
-  };
-
-  // 发送一条弹幕
-
-
-  Barrage.prototype.send = function send() {
-    var _this5 = this;
-
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    if (!this._ready) {
-      this._delay('send', opt);
-      return;
-    }
-    var tunnel = this.getEnableTunnel();
-    if (tunnel === null) return;
-
-    var timer = setInterval(function () {
-      var tunnel = _this5.getIdleTunnel();
-      if (tunnel) {
-        _this5.addData([opt]);
-        clearInterval(timer);
-      }
-    }, 16);
-  };
-
-  // 添加至轨道
-
-
-  Barrage.prototype.addBullet2Tunnel = function addBullet2Tunnel() {
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    var tunnel = this.getIdleTunnel();
-    if (tunnel === null) return;
-
-    var tunnelId = tunnel.tunnelId;
-    tunnel.addBullet(opt);
-    if (tunnel.getIdleBulletNum() === 0) this.removeIdleTunnel(tunnelId);
-  };
-
-  Barrage.prototype.updateBullets = function updateBullets() {
-    var _this6 = this;
-
-    var self = this;
-    var query = this.comp.createSelectorQuery();
-    query.selectAll('.bullet-item').boundingClientRect(function (res) {
-      if (!_this6._isActive) return;
-
-      for (var i = 0; i < res.length; i++) {
-        var _res$i$dataset = res[i].dataset,
-            tunnelid = _res$i$dataset.tunnelid,
-            bulletid = _res$i$dataset.bulletid;
-
-        var tunnel = self.tunnels[tunnelid];
-        var bullet = tunnel.bullets[bulletid];
-        bullet.width = res[i].width;
-        bullet.height = res[i].height;
-      }
-      self.animate();
-    }).exec();
-  };
-
-  Barrage.prototype.animate = function animate() {
-    var _this7 = this;
-
-    this.tunnels.forEach(function (tunnel) {
-      _this7.tunnelAnimate(tunnel);
-    });
-  };
-
-  Barrage.prototype.tunnelAnimate = function tunnelAnimate(tunnel) {
-    var _this8 = this;
-
-    if (tunnel.disabled || tunnel.sending || !this._isActive) return;
-
-    var next = (tunnel.last + 1) % tunnel.maxNum;
-    var bullet = tunnel.bullets[next];
-
-    if (!bullet) return;
-
-    if (bullet.content || bullet.image.head || bullet.image.tail) {
-      var _comp$setData;
-
-      tunnel.sending = true;
-      tunnel.last = next;
-      var duration = this.duration;
-      if (this.mode === 'overlap') {
-        duration = this.distance * this.duration / (this.distance + bullet.width);
-      }
-      var passDistance = bullet.width + tunnel.safeGap;
-      bullet.duration = duration;
-      // 等上一条通过右边界
-      bullet.passtime = Math.ceil(passDistance * bullet.duration * 1000 / this.distance);
-      this.comp.setData((_comp$setData = {}, _comp$setData['tunnels[' + tunnel.tunnelId + '].bullets[' + bullet.bulletId + ']'] = bullet, _comp$setData), function () {
-        tunnel.timer = setTimeout(function () {
-          tunnel.sending = false;
-          _this8.tunnelAnimate(tunnel);
-        }, bullet.passtime);
-      });
-    }
-  };
-
-  Barrage.prototype.showTunnel = function showTunnel() {
-    this.comp.setData({
-      tunnelShow: true
-    });
-  };
-
-  Barrage.prototype.hideTunnel = function hideTunnel() {
-    this.comp.setData({
-      tunnelShow: false
-    });
-  };
-
-  Barrage.prototype.removeIdleTunnel = function removeIdleTunnel(tunnelId) {
-    this.idleTunnels.delete(tunnelId);
-  };
-
-  Barrage.prototype.addIdleTunnel = function addIdleTunnel(tunnelId) {
-    this.idleTunnels.add(tunnelId);
-  };
-
-  // 从可用的隧道中随机挑选一个
-
-
-  Barrage.prototype.getEnableTunnel = function getEnableTunnel() {
-    if (this.enableTunnels.size === 0) return null;
-    var enableTunnels = Array.from(this.enableTunnels);
-    var index = getRandom(enableTunnels.length);
-    return this.tunnels[enableTunnels[index]];
-  };
-
-  // 从还有余量的隧道中随机挑选一个
-
-
-  Barrage.prototype.getIdleTunnel = function getIdleTunnel() {
-    if (this.idleTunnels.size === 0) return null;
-    var idleTunnels = Array.from(this.idleTunnels);
-    var index = getRandom(idleTunnels.length);
-    return this.tunnels[idleTunnels[index]];
-  };
-
-  Barrage.prototype.animationend = function animationend(opt) {
-    var _comp$setData2;
-
-    var tunnelId = opt.tunnelId,
-        bulletId = opt.bulletId;
-
-    var tunnel = this.tunnels[tunnelId];
-    var bullet = tunnel.bullets[bulletId];
-
-    if (!tunnel || !bullet) return;
-
-    tunnel.removeBullet(bulletId);
-    this.addIdleTunnel(tunnelId);
-    this.comp.setData((_comp$setData2 = {}, _comp$setData2['tunnels[' + tunnelId + '].bullets[' + bulletId + ']'] = bullet, _comp$setData2));
-  };
-
-  Barrage.prototype.tapBullet = function tapBullet(opt) {
-    var _comp$setData3;
-
-    if (!this.enableTap) return;
-
-    var tunnelId = opt.tunnelId,
-        bulletId = opt.bulletId;
-
-    var tunnel = this.tunnels[tunnelId];
-    var bullet = tunnel.bullets[bulletId];
-    bullet.paused = !bullet.paused;
-    this.comp.setData((_comp$setData3 = {}, _comp$setData3['tunnels[' + tunnelId + '].bullets[' + bulletId + ']'] = bullet, _comp$setData3));
-  };
-
-  return Barrage;
-}();
-
-exports.default = Barrage;
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-exports.__esModule = true;
-
-var _utils = __webpack_require__(0);
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var Bullet = function () {
-  function Bullet(barrage) {
-    var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-    _classCallCheck(this, Bullet);
-
-    var defaultBulletOpt = {
-      color: '#000000', // 默认黑色
-      font: '10px sans-serif',
-      fontSize: 10, // 全局字体大小
-      content: '',
-      textWidth: 0,
-      speed: 0, // 根据屏幕停留时长计算
-      x: 0,
-      y: 0,
-      tunnelId: 0,
-      // image: {
-      //   head: {src, width, height}, // 弹幕头部添加图片
-      //   tail: {src, width, height}, // 弹幕尾部添加图片
-      //   gap: 4 // 图片与文本间隔
-      // }
-      image: {},
-      imageHead: null, // Image 对象
-      imageTail: null
-      // status: 0 //0:待播放 1: 未完全进入屏幕 2: 完全进入屏幕 3: 完全退出屏幕
-    };
-    Object.assign(this, defaultBulletOpt, opt);
-
-    this.barrage = barrage;
-    this.ctx = barrage.ctx;
-    this.canvas = barrage.canvas;
-  }
-
-  Bullet.prototype.move = function move() {
-    var _this = this;
-
-    if (this.image.head && !this.imageHead) {
-      var Image = this.canvas.createImage();
-      Image.src = this.image.head.src;
-      Image.onload = function () {
-        _this.imageHead = Image;
-      };
-      Image.onerror = function () {
-        // eslint-disable-next-line no-console
-        console.log('Fail to load image: ' + _this.image.head.src);
-      };
-    }
-
-    if (this.image.tail && !this.imageTail) {
-      var _Image = this.canvas.createImage();
-      _Image.src = this.image.tail.src;
-      _Image.onload = function () {
-        _this.imageTail = _Image;
-      };
-      _Image.onerror = function () {
-        // eslint-disable-next-line no-console
-        console.log('Fail to load image: ' + _this.image.tail.src);
-      };
-    }
-
-    if (this.imageHead) {
-      var _image$head = this.image.head,
-          _image$head$width = _image$head.width,
-          width = _image$head$width === undefined ? this.fontSize : _image$head$width,
-          _image$head$height = _image$head.height,
-          height = _image$head$height === undefined ? this.fontSize : _image$head$height,
-          _image$head$gap = _image$head.gap,
-          gap = _image$head$gap === undefined ? 4 : _image$head$gap;
-
-      var x = this.x - gap - width;
-      var y = this.y - 0.5 * height;
-      this.ctx.drawImage(this.imageHead, x, y, width, height);
-    }
-
-    if (this.imageTail) {
-      var _image$tail = this.image.tail,
-          _image$tail$width = _image$tail.width,
-          _width = _image$tail$width === undefined ? this.fontSize : _image$tail$width,
-          _image$tail$height = _image$tail.height,
-          _height = _image$tail$height === undefined ? this.fontSize : _image$tail$height,
-          _image$tail$gap = _image$tail.gap,
-          _gap = _image$tail$gap === undefined ? 4 : _image$tail$gap;
-
-      var _x2 = this.x + this.textWidth + _gap;
-      var _y = this.y - 0.5 * _height;
-      this.ctx.drawImage(this.imageTail, _x2, _y, _width, _height);
-    }
-
-    this.x = this.x - this.speed;
-    this.ctx.fillStyle = this.color;
-    this.ctx.fillText(this.content, this.x, this.y);
-  };
-
-  return Bullet;
-}();
-
-// tunnel(轨道)
-
-
-var Tunnel = function () {
-  function Tunnel(barrage) {
-    var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-    _classCallCheck(this, Tunnel);
-
-    var defaultTunnelOpt = {
-      activeQueue: [], // 正在屏幕中列表
-      nextQueue: [], // 待播放列表
-      maxNum: 30,
-      freeNum: 30, // 剩余可添加量
-      height: 0,
-      width: 0,
-      disabled: false,
-      tunnelId: 0,
-      safeArea: 4,
-      sending: false // 弹幕正在发送
-    };
-    Object.assign(this, defaultTunnelOpt, opt);
-
-    this.freeNum = this.maxNum;
-    this.barrage = barrage; // 控制中心
-    this.ctx = barrage.ctx;
-  }
-
-  Tunnel.prototype.disable = function disable() {
-    this.disabled = true;
-  };
-
-  Tunnel.prototype.enable = function enable() {
-    this.disabled = false;
-  };
-
-  Tunnel.prototype.clear = function clear() {
-    this.activeQueue = [];
-    this.nextQueue = [];
-    this.sending = false;
-    this.freeNum = this.maxNum;
-    this.barrage.addIdleTunnel(this.tunnelId);
-  };
-
-  Tunnel.prototype.addBullet = function addBullet(bullet) {
-    if (this.disabled) return;
-    if (this.freeNum === 0) return;
-    this.nextQueue.push(bullet);
-    this.freeNum--;
-    if (this.freeNum === 0) {
-      this.barrage.removeIdleTunnel(this.tunnelId);
-    }
-  };
-
-  Tunnel.prototype.animate = function animate() {
-    if (this.disabled) return;
-    // 无正在发送弹幕,添加一条
-    var nextQueue = this.nextQueue;
-    var activeQueue = this.activeQueue;
-    if (!this.sending && nextQueue.length > 0) {
-      var bullet = nextQueue.shift();
-      activeQueue.push(bullet);
-      this.freeNum++;
-      this.sending = true;
-      this.barrage.addIdleTunnel(this.tunnelId);
-    }
-
-    if (activeQueue.length > 0) {
-      activeQueue.forEach(function (bullet) {
-        return bullet.move();
-      });
-      var head = activeQueue[0];
-      var tail = activeQueue[activeQueue.length - 1];
-      // 队首移出屏幕
-      if (head.x + head.textWidth < 0) {
-        activeQueue.shift();
-      }
-      // 队尾离开超过安全区
-      if (tail.x + tail.textWidth + this.safeArea < this.width) {
-        this.sending = false;
-      }
-    }
-  };
-
-  return Tunnel;
-}();
-
-var Barrage = function () {
-  function Barrage() {
-    var _this2 = this;
-
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    _classCallCheck(this, Barrage);
-
-    var defaultBarrageOpt = {
-      font: '10px sans-serif',
-      duration: 15, // 弹幕屏幕停留时长
-      lineHeight: 1.2,
-      padding: [0, 0, 0, 0],
-      tunnelHeight: 0,
-      tunnelNum: 0,
-      tunnelMaxNum: 30, // 隧道最大缓冲长度
-      maxLength: 30, // 最大字节长度,汉字算双字节
-      safeArea: 4, // 发送时的安全间隔
-      tunnels: [],
-      idleTunnels: [],
-      enableTunnels: [],
-      alpha: 1, // 全局透明度
-      mode: 'separate', // 弹幕重叠 overlap  不重叠 separate
-      range: [0, 1], // 弹幕显示的垂直范围,支持两个值。[0,1]表示弹幕整个随机分布,
-      fps: 60, // 刷新率
-      tunnelShow: false, // 显示轨道线
-      comp: null // 组件实例
-    };
-    Object.assign(this, defaultBarrageOpt, opt);
-    var systemInfo = wx.getSystemInfoSync();
-    this.ratio = systemInfo.pixelRatio;
-    this.selector = '#weui-canvas';
-    this._ready = false;
-    this._deferred = [];
-
-    var query = this.comp.createSelectorQuery();
-    query.select(this.selector).boundingClientRect();
-    query.select(this.selector).node();
-    query.exec(function (res) {
-      _this2.canvas = res[1].node;
-      _this2.init(res[0]);
-      _this2.ready();
-    });
-  }
-
-  Barrage.prototype.ready = function ready() {
-    var _this3 = this;
-
-    this._ready = true;
-    this._deferred.forEach(function (item) {
-      // eslint-disable-next-line prefer-spread
-      _this3[item.callback].apply(_this3, item.args);
-    });
-
-    this._deferred = [];
-  };
-
-  Barrage.prototype._delay = function _delay(method, args) {
-    this._deferred.push({
-      callback: method,
-      args: args
-    });
-  };
-
-  Barrage.prototype.init = function init() {
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    this.width = opt.width;
-    this.height = opt.height;
-    this.fontSize = (0, _utils.getFontSize)(this.font);
-    this.innerDuration = this.transfromDuration2Canvas(this.duration);
-
-    var ratio = this.ratio; // 设备像素比
-    this.canvas.width = this.width * ratio;
-    this.canvas.height = this.height * ratio;
-    this.ctx = this.canvas.getContext('2d');
-    this.ctx.scale(ratio, ratio);
-
-    this.ctx.textBaseline = 'middle';
-    this.ctx.globalAlpha = this.alpha;
-    this.ctx.font = this.font;
-
-    this.idleTunnels = [];
-    this.enableTunnels = [];
-    this.tunnels = [];
-
-    this.availableHeight = this.height - this.padding[0] - this.padding[2];
-    this.tunnelHeight = this.fontSize * this.lineHeight;
-    this.tunnelNum = Math.floor(this.availableHeight / this.tunnelHeight);
-    for (var i = 0; i < this.tunnelNum; i++) {
-      this.idleTunnels.push(i); // 空闲的隧道id集合
-      this.enableTunnels.push(i); // 可用的隧道id集合
-      this.tunnels.push(new Tunnel(this, { // 隧道集合
-        width: this.width,
-        height: this.tunnelHeight,
-        safeArea: this.safeArea,
-        maxNum: this.tunnelMaxNum,
-        tunnelId: i
-      }));
-    }
-    // 筛选符合范围的隧道
-    this.setRange();
-    this._isActive = false;
-  };
-
-  Barrage.prototype.transfromDuration2Canvas = function transfromDuration2Canvas(duration) {
-    // 2000 是 dom 中移动的距离
-    return duration * this.width / 2000;
-  };
-
-  // 设置显示范围 range: [0,1]
-
-
-  Barrage.prototype.setRange = function setRange(range) {
-    var _this4 = this;
-
-    if (!this._ready) {
-      this._delay('setRange', range);
-      return;
-    }
-
-    range = range || this.range;
-    var top = range[0] * this.tunnelNum;
-    var bottom = range[1] * this.tunnelNum;
-
-    // 释放符合要求的隧道
-    // 找到目前空闲的隧道
-    var idleTunnels = [];
-    var enableTunnels = [];
-    this.tunnels.forEach(function (tunnel, tunnelId) {
-      if (tunnelId >= top && tunnelId < bottom) {
-        tunnel.enable();
-        enableTunnels.push(tunnelId);
-        if (_this4.idleTunnels.indexOf(tunnelId) >= 0) {
-          idleTunnels.push(tunnelId);
-        }
-      } else {
-        tunnel.disable();
-      }
-    });
-    this.idleTunnels = idleTunnels;
-    this.enableTunnels = enableTunnels;
-    this.range = range;
-  };
-
-  Barrage.prototype.setFont = function setFont(font) {
-    if (!this._ready) {
-      this._delay('setFont', font);
-      return;
-    }
-
-    this.font = font;
-    this.fontSize = (0, _utils.getFontSize)(this.font);
-    this.ctx.font = font;
-  };
-
-  Barrage.prototype.setAlpha = function setAlpha(alpha) {
-    if (!this._ready) {
-      this._delay('setAlpha', alpha);
-      return;
-    }
-
-    this.alpha = alpha;
-    this.ctx.globalAlpha = alpha;
-  };
-
-  Barrage.prototype.setDuration = function setDuration(duration) {
-    if (!this._ready) {
-      this._delay('setDuration', duration);
-      return;
-    }
-
-    this.clear();
-    this.duration = duration;
-    this.innerDuration = this.transfromDuration2Canvas(duration);
-  };
-
-  // 开启弹幕
-
-
-  Barrage.prototype.open = function open() {
-    if (!this._ready) {
-      this._delay('open');
-      return;
-    }
-
-    if (this._isActive) return;
-    this._isActive = true;
-    this.play();
-  };
-
-  // 关闭弹幕,清除所有数据
-
-
-  Barrage.prototype.close = function close() {
-    if (!this._ready) {
-      this._delay('close');
-      return;
-    }
-
-    if (!this._isActive) return;
-    this._isActive = false;
-    this.pause();
-    this.clear();
-  };
-
-  // 开启弹幕滚动
-
-
-  Barrage.prototype.play = function play() {
-    var _this5 = this;
-
-    this._rAFId = this.canvas.requestAnimationFrame(function () {
-      _this5.animate();
-      _this5.play();
-    });
-  };
-
-  // 停止弹幕滚动
-
-
-  Barrage.prototype.pause = function pause() {
-    if (typeof this._rAFId === 'number') {
-      this.canvas.cancelAnimationFrame(this._rAFId);
-    }
-  };
-
-  // 清空屏幕和缓冲的数据
-
-
-  Barrage.prototype.clear = function clear() {
-    this.ctx.clearRect(0, 0, this.width, this.height);
-    this.tunnels.forEach(function (tunnel) {
-      return tunnel.clear();
-    });
-  };
-
-  // 添加一批弹幕,轨道满时会被丢弃
-
-
-  Barrage.prototype.addData = function addData() {
-    var _this6 = this;
-
-    var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-
-    if (!this._ready) {
-      this._delay('addData', data);
-      return;
-    }
-
-    if (!this._isActive) return;
-    data.forEach(function (item) {
-      return _this6.addBullet2Tunnel(item);
-    });
-  };
-
-  // 发送一条弹幕
-  // 为保证发送成功,选取一条可用隧道,替换待发送队列队头元素
-
-
-  Barrage.prototype.send = function send() {
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    if (!this._ready) {
-      this._delay('send', opt);
-      return;
-    }
-
-    var tunnel = this.getEnableTunnel();
-    if (tunnel === null) return;
-
-    opt.tunnelId = tunnel.tunnelId;
-    var bullet = this.registerBullet(opt);
-    tunnel.nextQueue[0] = bullet;
-  };
-
-  // 添加至轨道 {content, color}
-
-
-  Barrage.prototype.addBullet2Tunnel = function addBullet2Tunnel() {
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    var tunnel = this.getIdleTunnel();
-    if (tunnel === null) return;
-
-    opt.tunnelId = tunnel.tunnelId;
-    var bullet = this.registerBullet(opt);
-    tunnel.addBullet(bullet);
-  };
-
-  Barrage.prototype.registerBullet = function registerBullet() {
-    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-    opt.tunnelId = opt.tunnelId || 0;
-    opt.content = (0, _utils.substring)(opt.content, this.maxLength);
-    var textWidth = this.getTextWidth(opt.content);
-    var distance = this.mode === 'overlap' ? this.width + textWidth : this.width;
-    opt.textWidth = textWidth;
-    opt.speed = distance / (this.innerDuration * this.fps);
-    opt.fontSize = this.fontSize;
-    opt.x = this.width;
-    opt.y = this.tunnelHeight * (opt.tunnelId + 0.5) + this.padding[0];
-    return new Bullet(this, opt);
-  };
-
-  // 每帧执行的操作
-
-
-  Barrage.prototype.animate = function animate() {
-    // 清空画面后重绘
-    this.ctx.clearRect(0, 0, this.width, this.height);
-    if (this.tunnelShow) {
-      this.drawTunnel();
-    }
-    this.tunnels.forEach(function (tunnel) {
-      return tunnel.animate();
-    });
-  };
-
-  Barrage.prototype.showTunnel = function showTunnel() {
-    this.tunnelShow = true;
-  };
-
-  Barrage.prototype.hideTunnel = function hideTunnel() {
-    this.tunnelShow = false;
-  };
-
-  Barrage.prototype.removeIdleTunnel = function removeIdleTunnel(tunnelId) {
-    var idx = this.idleTunnels.indexOf(tunnelId);
-    if (idx >= 0) this.idleTunnels.splice(idx, 1);
-  };
-
-  Barrage.prototype.addIdleTunnel = function addIdleTunnel(tunnelId) {
-    var idx = this.idleTunnels.indexOf(tunnelId);
-    if (idx < 0) this.idleTunnels.push(tunnelId);
-  };
-
-  // 从可用的隧道中随机挑选一个
-
-
-  Barrage.prototype.getEnableTunnel = function getEnableTunnel() {
-    if (this.enableTunnels.length === 0) return null;
-    var index = (0, _utils.getRandom)(this.enableTunnels.length);
-    return this.tunnels[this.enableTunnels[index]];
-  };
-
-  // 从还有余量的隧道中随机挑选一个
-
-
-  Barrage.prototype.getIdleTunnel = function getIdleTunnel() {
-    if (this.idleTunnels.length === 0) return null;
-    var index = (0, _utils.getRandom)(this.idleTunnels.length);
-    return this.tunnels[this.idleTunnels[index]];
-  };
-
-  Barrage.prototype.getTextWidth = function getTextWidth(content) {
-    this.ctx.font = this.font;
-    return Math.ceil(this.ctx.measureText(content).width);
-  };
-
-  Barrage.prototype.drawTunnel = function drawTunnel() {
-    var ctx = this.ctx;
-    var tunnelColor = '#CCB24D';
-    for (var i = 0; i <= this.tunnelNum; i++) {
-      var y = this.padding[0] + i * this.tunnelHeight;
-      ctx.beginPath();
-      ctx.strokeStyle = tunnelColor;
-      ctx.setLineDash([5, 10]);
-      ctx.moveTo(0, y);
-      ctx.lineTo(this.width, y);
-      ctx.stroke();
-      if (i < this.tunnelNum) {
-        ctx.fillStyle = tunnelColor;
-        ctx.fillText('\u5F39\u9053' + (i + 1), 10, this.tunnelHeight / 2 + y);
-      }
-    }
-  };
-
-  return Barrage;
-}();
-
-exports.default = Barrage;
-
-/***/ })
-/******/ ]);

+ 0 - 4
miniprogram/miniprogram_npm/miniprogram-barrage/index.json

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

+ 0 - 39
miniprogram/miniprogram_npm/miniprogram-barrage/index.wxml

@@ -1,39 +0,0 @@
-<view wx:if="{{renderingMode === 'canvas'}}" class="barrage-area" style="z-index: {{zIndex}};">
-  <canvas type="2d" id="weui-canvas" style="width: 100%; height: 100%;"></canvas>
-</view>
-
-<view wx:else class="barrage-area" style="opacity: {{alpha}}; font: {{font}}; padding: {{padding}}; z-index: {{zIndex}};">
-  <block wx:for="{{tunnels}}" wx:key="tunnelId" wx:for-item="tunnel" wx:for-index="tunnelId">
-    <view class="barrage-tunnel" style="height: {{tunnel.height}}px; border-top-width: {{tunnelShow ? 1 : 0}}px">
-      <view class="tunnel-tips" hidden="{{!tunnelShow}}">轨道{{tunnelId}}</view>
-      <block wx:for="{{tunnel.bullets}}" wx:key="bulletId" wx:for-item="bullet" wx:for-index="bulletId">
-        <view 
-          class="bullet-item {{bullet.duration > 0 ? 'bullet-move' : ''}} {{bullet.paused ? 'paused' : ''}}" 
-          style="color: {{bullet.paused ? '#fff' : bullet.color}}; height: {{tunnel.height}}px; line-height: {{tunnel.height}}px; animation-duration: {{bullet.duration}}s; animation-play-state: {{bullet.paused ? 'paused' : 'running'}}" 
-          data-tunnelid="{{tunnelId}}" 
-          data-bulletid="{{bulletId}}" 
-          bindanimationend="onAnimationend" 
-          bindtap="onTapBullet"
-        >
-          <image 
-            wx:if="{{bullet.image.head}}" 
-            class="bullet-item_img" 
-            style="width: {{bullet.image.head.width || fontSize}}px; height: {{bullet.image.head.height}}px; margin-right: {{bullet.image.head.gap || 4}}px;" 
-            mode="aspectFit" 
-            src="{{bullet.image.head.src}}"
-          ></image>
-          <view class="bullet-item_text" style="opacity: 1;">
-            <text>{{bullet.content}}</text>
-          </view>
-          <image 
-            wx:if="{{bullet.image.tail}}" 
-            class="bullet-item_img" 
-            style="width: {{bullet.image.tail.width || fontSize}}px; height: {{bullet.image.tail.height}}px; margin-left: {{bullet.image.tail.gap || 4}}px;" 
-            mode="aspectFit" 
-            src="{{bullet.image.tail.src}}"
-          ></image>
-        </view>
-      </block>
-    </view>
-  </block>
-</view>

+ 0 - 61
miniprogram/miniprogram_npm/miniprogram-barrage/index.wxss

@@ -1,61 +0,0 @@
-.barrage-area {
-  position: relative;
-  box-sizing: border-box;
-  width: 100%;
-  height: 100%;
-  pointer-events: auto;
-}
-
-.barrage-tunnel {
-  box-sizing: border-box;
-  position: relative;
-  display: flex;
-  align-items: center;
-  border-top: 1px dashed #CCB24D;
-  width: 100%;
-}
-
-.tunnel-tips {
-  display: inline-block;
-  margin-left: 10px;
-  color: #CCB24D;
-}
-
-.bullet-item {
-  position: absolute;
-  display: flex;
-  align-items: center;
-  top: 0;
-  left: 100%;
-  white-space: nowrap;
-}
-
-.bullet-item.paused {
-  background: #000;
-  opacity: 0.6;
-  padding: 0 10px;
-  z-index: 1001;
-}
-
-.bullet-item_img {
-  max-height: 100%;
-  display: inline-block;
-}
-
-.bullet-item_text {
-  display: inline-block;
-  margin: 0;
-}
-
-.bullet-move {
-  animation: 0s linear slidein
-}
-
-@keyframes slidein {
-  0% {
-    transform: translate3d(0, 0, 0)
-  }
-  100% {
-   transform: translate3d(-2000px, 0, 0)
-  }
-}

+ 0 - 67
miniprogram/miniprogram_npm/miniprogram-barrage/utils.js

@@ -1,67 +0,0 @@
-// 获取字节长度,中文算2个字节
-function getStrLen(str) {
-  // eslint-disable-next-line no-control-regex
-  return str.replace(/[^\x00-\xff]/g, 'aa').length
-}
-
-// 截取指定字节长度的子串
-function substring(str, n) {
-  if (!str) return ''
-
-  const len = getStrLen(str)
-  if (n >= len) return str
-
-  let l = 0
-  let result = ''
-  for (let i = 0; i < str.length; i++) {
-    const ch = str.charAt(i)
-    // eslint-disable-next-line no-control-regex
-    l = /[^\x00-\xff]/i.test(ch) ? l + 2 : l + 1
-    result += ch
-    if (l >= n) break
-  }
-  return result
-}
-
-function getRandom(max = 10, min = 0) {
-  return Math.floor(Math.random() * (max - min) + min)
-}
-
-function getFontSize(font) {
-  const reg = /(\d+)(px)/i
-  const match = font.match(reg)
-  return (match && match[1]) || 10
-}
-
-function compareVersion(v1, v2) {
-  v1 = v1.split('.')
-  v2 = v2.split('.')
-  const len = Math.max(v1.length, v2.length)
-
-  while (v1.length < len) {
-    v1.push('0')
-  }
-  while (v2.length < len) {
-    v2.push('0')
-  }
-
-  for (let i = 0; i < len; i++) {
-    const num1 = parseInt(v1[i], 10)
-    const num2 = parseInt(v2[i], 10)
-
-    if (num1 > num2) {
-      return 1
-    } else if (num1 < num2) {
-      return -1
-    }
-  }
-  return 0
-}
-
-module.exports = {
-  getStrLen,
-  substring,
-  getRandom,
-  getFontSize,
-  compareVersion
-}

+ 0 - 45
miniprogram/miniprogram_npm/miniprogram-recycle-view/index.d.ts

@@ -1,45 +0,0 @@
-declare namespace recycleContext {
-    interface itemSize {
-        width: number;
-        height: number;
-    }
-    
-    type Component = any;
-    type Page = any;
-    
-    type itemSizeFunc<T> = (item: T, index: number) => itemSize
-    
-    interface options<T> {
-        id: string;
-        dataKey: string;
-        page: Component | Page;
-        itemSize: itemSizeFunc<T> | itemSize;
-        useInPage?: boolean;
-        root?: Page;
-    }
-    
-    interface position {
-        left: number;
-        top: number;
-        width: number;
-        height: number;
-    }
-    
-    interface RecycleContext<T> {
-        append(list: T[], callback?: () => void): RecycleContext<T>
-        appendList(list: T[], callback?: () => void): RecycleContext<T>
-        splice(begin: number, deleteCount: number, appendList: T[], callback?: () => void): RecycleContext<T>;
-        updateList(beginIndex: number, list: T[], callback?: () => void): RecycleContext<T>
-        update(beginIndex: number, list: T[], callback?: () => void): RecycleContext<T>
-        destroy(): RecycleContext<T>
-        forceUpdate(callback: () => void, reinitSlot: boolean): RecycleContext<T>
-        getBoundingClientRect(index: number | undefined): position | position[]
-        getScrollTop(): number;
-        transformRpx(rpx: number, addPxSuffix?: string): number;
-        getViewportItems(inViewportPx: number): T[]
-        getList(): T[]
-    }
-}
-declare function createRecycleContext<T>(op: recycleContext.options<T>): recycleContext.RecycleContext<T>
-
-export = createRecycleContext;

+ 0 - 851
miniprogram/miniprogram_npm/miniprogram-recycle-view/index.js

@@ -1,851 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 2);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var isIPhone = false;
-var deviceWidth = void 0;
-var deviceDPR = void 0;
-var BASE_DEVICE_WIDTH = 750;
-var checkDeviceWidth = function checkDeviceWidth() {
-  var info = wx.getSystemInfoSync();
-  // console.log('info', info)
-  isIPhone = info.platform === 'ios';
-  var newDeviceWidth = info.screenWidth || 375;
-  var newDeviceDPR = info.pixelRatio || 2;
-
-  if (!isIPhone) {
-    // HACK switch width and height when landscape
-    // const newDeviceHeight = info.screenHeight || 375
-    // 暂时不处理转屏的情况
-  }
-
-  if (newDeviceWidth !== deviceWidth || newDeviceDPR !== deviceDPR) {
-    deviceWidth = newDeviceWidth;
-    deviceDPR = newDeviceDPR;
-    // console.info('Updated device width: ' + newDeviceWidth + 'px DPR ' + newDeviceDPR)
-  }
-};
-checkDeviceWidth();
-
-var eps = 1e-4;
-var transformByDPR = function transformByDPR(number) {
-  if (number === 0) {
-    return 0;
-  }
-  number = number / BASE_DEVICE_WIDTH * deviceWidth;
-  number = Math.floor(number + eps);
-  if (number === 0) {
-    if (deviceDPR === 1 || !isIPhone) {
-      return 1;
-    }
-    return 0.5;
-  }
-  return number;
-};
-
-var rpxRE = /([+-]?\d+(?:\.\d+)?)rpx/gi;
-// const inlineRpxRE = /(?::|\s|\(|\/)([+-]?\d+(?:\.\d+)?)rpx/g
-
-var transformRpx = function transformRpx(style, inline) {
-  if (typeof style !== 'string') {
-    return style;
-  }
-  var re = rpxRE;
-  return style.replace(re, function (match, num) {
-    return transformByDPR(Number(num)) + (inline ? 'px' : '');
-  });
-};
-
-module.exports = {
-  transformRpx: transformRpx
-};
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = {};
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/**
- * recycle-view组件的api使用
- * 提供wx.createRecycleContext进行管理功能
- */
-var RecycleContext = __webpack_require__(3);
-
-/**
- * @params options参数是object对象,展开的结构如下
-      id: recycle-view的id
-      dataKey: recycle-item的wx:for绑定的数据变量
-      page: recycle-view所在的页面或组件的实例
-      itemSize: 函数或者是Object对象,生成每个recycle-item的宽和高
- * @return RecycleContext对象
- */
-module.exports = function (options) {
-  return new RecycleContext(options);
-};
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* eslint complexity: ["error", {"max": 50}] */
-var recycleData = __webpack_require__(1);
-var recycleViewportChangeFunc = __webpack_require__(4);
-var transformRpx = __webpack_require__(0);
-
-var RECT_SIZE = 200;
-
-// eslint-disable-next-line no-complexity
-function RecycleContext(_ref) {
-  var _this = this;
-
-  var id = _ref.id,
-      dataKey = _ref.dataKey,
-      page = _ref.page,
-      itemSize = _ref.itemSize,
-      useInPage = _ref.useInPage,
-      placeholderClass = _ref.placeholderClass,
-      root = _ref.root;
-
-  if (!id || !dataKey || !page || !itemSize) {
-    throw new Error('parameter id, dataKey, page, itemSize is required');
-  }
-  if (typeof itemSize !== 'function' && (typeof itemSize === 'undefined' ? 'undefined' : _typeof(itemSize)) !== 'object') {
-    throw new Error('parameter itemSize must be function or object with key width and height');
-  }
-  if ((typeof itemSize === 'undefined' ? 'undefined' : _typeof(itemSize)) === 'object' && (!itemSize.width || !itemSize.height) && (!itemSize.props || !itemSize.queryClass || !itemSize.dataKey)) {
-    throw new Error('parameter itemSize must be function or object with key width and height');
-  }
-  this.id = id;
-  this.dataKey = dataKey;
-  this.page = page;
-  // 加root参数给useInPage单独使用
-  this.root = root;
-  this.placeholderClass = placeholderClass;
-  page._recycleViewportChange = recycleViewportChangeFunc;
-  this.comp = page.selectComponent('#' + id);
-  this.itemSize = itemSize;
-  this.itemSizeOpt = itemSize;
-  // if (!this.comp) {
-  // throw `<recycle-view> with id ${id} not found`
-  // }
-  this.useInPage = useInPage || false;
-  if (this.comp) {
-    this.comp.context = this;
-    this.comp.setPage(page);
-    this.comp.setUseInPage(this.useInPage);
-  }
-  if (this.useInPage && !this.root) {
-    throw new Error('parameter root is required when useInPage is true');
-  }
-  if (this.useInPage) {
-    this.oldPageScroll = this.root.onPageScroll;
-    // 重写onPageScroll事件
-    this.root.onPageScroll = function (e) {
-      // this.checkComp();
-      if (_this.comp) {
-        _this.comp._scrollViewDidScroll({
-          detail: {
-            scrollLeft: 0,
-            scrollTop: e.scrollTop
-          }
-        });
-      }
-      _this.oldPageScroll.apply(_this.root, [e]);
-    };
-    this.oldReachBottom = this.root.onReachBottom;
-    this.root.onReachBottom = function (e) {
-      if (_this.comp) {
-        _this.comp.triggerEvent('scrolltolower', {});
-      }
-      _this.oldReachBottom.apply(_this.root, [e]);
-    };
-    this.oldPullDownRefresh = this.root.onPullDownRefresh;
-    this.root.onPullDownRefresh = function (e) {
-      if (_this.comp) {
-        _this.comp.triggerEvent('scrolltoupper', {});
-      }
-      _this.oldPullDownRefresh.apply(_this.root, [e]);
-    };
-  }
-}
-RecycleContext.prototype.checkComp = function () {
-  if (!this.comp) {
-    this.comp = this.page.selectComponent('#' + this.id);
-    if (this.comp) {
-      this.comp.setUseInPage(this.useInPage);
-      this.comp.context = this;
-      this.comp.setPage(this.page);
-    } else {
-      throw new Error('the recycle-view correspond to this context is detached, pls create another RecycleContext');
-    }
-  }
-};
-RecycleContext.prototype.appendList = function (list, cb) {
-  this.checkComp();
-  var id = this.id;
-  var dataKey = this.dataKey;
-  if (!recycleData[id]) {
-    recycleData[id] = {
-      key: dataKey,
-      id: id,
-      list: list,
-      sizeMap: {},
-      sizeArray: []
-    };
-  } else {
-    recycleData[id].dataKey = dataKey;
-    recycleData[id].list = recycleData[id].list.concat(list);
-  }
-  this._forceRerender(id, cb);
-  return this;
-};
-RecycleContext.prototype._forceRerender = function (id, cb) {
-  this.isDataReady = true; // 首次调用说明数据已经ready了
-  // 动态计算高度并缓存
-  var that = this;
-  var allrect = null;
-  var parentRect = null;
-  var count = 0;
-
-  function setPlaceholderImage() {
-    if (!allrect || !parentRect) return;
-    var svgRects = [];
-    for (var i = 0; i < count; i++) {
-      svgRects.push({
-        left: allrect[i].left - parentRect.left,
-        top: allrect[i].top - parentRect.top,
-        width: allrect[i].width,
-        height: allrect[i].height
-      });
-    }
-    that.comp.setPlaceholderImage(svgRects, {
-      width: parentRect.width,
-      height: parentRect.height
-    });
-  }
-  function newcb() {
-    if (cb) {
-      cb();
-    }
-    // 计算placeholder, 只有在动态计算高度的时候才支持
-    if (that.autoCalculateSize && that.placeholderClass) {
-      var newQueryClass = [];
-      that.placeholderClass.forEach(function (item) {
-        newQueryClass.push('.' + that.itemSizeOpt.queryClass + ' .' + item);
-      });
-      // newQueryClass.push(`.` + that.itemSizeOpt.queryClass)
-      count = newQueryClass.length;
-      wx.createSelectorQuery().selectAll(newQueryClass.join(',')).boundingClientRect(function (rect) {
-        if (rect.length < count) return;
-        allrect = rect;
-        setPlaceholderImage();
-      }).exec();
-      wx.createSelectorQuery().select('.' + that.itemSizeOpt.queryClass).boundingClientRect(function (rect) {
-        parentRect = rect;
-        setPlaceholderImage();
-      }).exec();
-    }
-  }
-  if (Object.prototype.toString.call(this.itemSizeOpt) === '[object Object]' && this.itemSizeOpt && !this.itemSizeOpt.width) {
-    this._recalculateSizeByProp(recycleData[id].list, function (sizeData) {
-      recycleData[id].sizeMap = sizeData.map;
-      recycleData[id].sizeArray = sizeData.array;
-      // 触发强制渲染
-      that.comp.forceUpdate(newcb);
-    });
-    return;
-  }
-  var sizeData = this._recalculateSize(recycleData[id].list);
-  recycleData[id].sizeMap = sizeData.map;
-  // console.log('size is', sizeData.array, sizeData.map, 'totalHeight', sizeData.totalHeight)
-  // console.log('sizeArray', sizeData.array)
-  recycleData[id].sizeArray = sizeData.array;
-  // 触发强制渲染
-  this.comp.forceUpdate(cb);
-};
-function getValue(item, key) {
-  if (!key) return item;
-  if (typeof item[key] !== 'undefined') return item[key];
-  var keyItems = key.split('.');
-  for (var i = 0; i < keyItems.length; i++) {
-    item = item[keyItems[i]];
-    if (typeof item === 'undefined' || (typeof item === 'undefined' ? 'undefined' : _typeof(item)) === 'object' && !item) {
-      return undefined;
-    }
-  }
-  return item;
-}
-function getValues(item, keys) {
-  if (Object.prototype.toString.call(keys) !== '[object Array]') {
-    keys = [keys];
-  }
-  var vals = {};
-  for (var i = 0; i < keys.length; i++) {
-    vals[keys[i]] = getValue(item, keys[i]);
-  }
-  return vals;
-}
-function isArray(arr) {
-  return Object.prototype.toString.call(arr) === '[object Array]';
-}
-function isSamePureValue(item1, item2) {
-  if ((typeof item1 === 'undefined' ? 'undefined' : _typeof(item1)) !== (typeof item2 === 'undefined' ? 'undefined' : _typeof(item2))) return false;
-  if (isArray(item1) && isArray(item2)) {
-    if (item1.length !== item2.length) return false;
-    for (var i = 0; i < item1.length; i++) {
-      if (item1[i] !== item2[i]) return false;
-    }
-    return true;
-  }
-  return item1 === item2;
-}
-function isSameValue(item1, item2, keys) {
-  if (!isArray(keys)) {
-    keys = [keys];
-  }
-  for (var i = 0; i < keys.length; i++) {
-    if (!isSamePureValue(getValue(item1, keys[i]), getValue(item2, keys[i]))) return false;
-  }
-  return true;
-}
-RecycleContext.prototype._recalculateSizeByProp = function (list, cb) {
-  var itemSize = this.itemSizeOpt;
-  var propValueMap = this.propValueMap || [];
-  var calcNewItems = [];
-  var needCalcPropIndex = [];
-  if (itemSize.cacheKey) {
-    propValueMap = wx.getStorageSync(itemSize.cacheKey) || [];
-    // eslint-disable-next-line no-console
-    // console.log('[recycle-view] get itemSize from cache', propValueMap)
-  }
-  this.autoCalculateSize = true;
-  var item2PropValueMap = [];
-  for (var i = 0; i < list.length; i++) {
-    var item2PropValueIndex = propValueMap.length;
-    if (!propValueMap.length) {
-      var val = getValues(list[i], itemSize.props);
-      val.__index__ = i;
-      propValueMap.push(val);
-      calcNewItems.push(list[i]);
-      needCalcPropIndex.push(item2PropValueIndex);
-      item2PropValueMap.push({
-        index: i,
-        sizeIndex: item2PropValueIndex
-      });
-      continue;
-    }
-    var found = false;
-    for (var j = 0; j < propValueMap.length; j++) {
-      if (isSameValue(propValueMap[j], list[i], itemSize.props)) {
-        item2PropValueIndex = j;
-        found = true;
-        break;
-      }
-    }
-    if (!found) {
-      var _val = getValues(list[i], itemSize.props);
-      _val.__index__ = i;
-      propValueMap.push(_val);
-      calcNewItems.push(list[i]);
-      needCalcPropIndex.push(item2PropValueIndex);
-    }
-    item2PropValueMap.push({
-      index: i,
-      sizeIndex: item2PropValueIndex
-    });
-  }
-  // this.item2PropValueMap = item2PropValueMap
-  this.propValueMap = propValueMap;
-  if (propValueMap.length > 10) {
-    // eslint-disable-next-line no-console
-    console.warn('[recycle-view] get itemSize count exceed maximum of 10, now got', propValueMap);
-  }
-  // console.log('itemsize', propValueMap, item2PropValueMap)
-  // 预先渲染
-  var that = this;
-  function newItemSize(item, index) {
-    var sizeIndex = item2PropValueMap[index];
-    if (!sizeIndex) {
-      // eslint-disable-next-line no-console
-      console.error('[recycle-view] auto calculate size array error, no map size found', item, index, item2PropValueMap);
-      throw new Error('[recycle-view] auto calculate size array error, no map size found');
-    }
-    var size = propValueMap[sizeIndex.sizeIndex];
-    if (!size) {
-      // eslint-disable-next-line no-console
-      console.log('[recycle-view] auto calculate size array error, no size found', item, index, sizeIndex, propValueMap);
-      throw new Error('[recycle-view] auto calculate size array error, no size found');
-    }
-    return {
-      width: size.width,
-      height: size.height
-    };
-  }
-  function sizeReady(rects) {
-    rects.forEach(function (rect, index) {
-      var propValueIndex = needCalcPropIndex[index];
-      propValueMap[propValueIndex].width = rect.width;
-      propValueMap[propValueIndex].height = rect.height;
-    });
-    that.itemSize = newItemSize;
-    var sizeData = that._recalculateSize(list);
-    if (itemSize.cacheKey) {
-      wx.setStorageSync(itemSize.cacheKey, propValueMap); // 把数据缓存起来
-    }
-    if (cb) {
-      cb(sizeData);
-    }
-  }
-  if (calcNewItems.length) {
-    var obj = {};
-    obj[itemSize.dataKey] = calcNewItems;
-    this.page.setData(obj, function () {
-      // wx.createSelectorQuery().select(itemSize.componentClass).boundingClientRect(rects => {
-      //   compSize = rects;
-      //   if (compSize && allItemSize) {
-      //     sizeReady();
-      //   }
-      // }).exec();
-      wx.createSelectorQuery().selectAll('.' + itemSize.queryClass).boundingClientRect(function (rects) {
-        sizeReady(rects);
-      }).exec();
-    });
-  } else {
-    that.itemSize = newItemSize;
-    var sizeData = that._recalculateSize(list);
-    if (cb) {
-      cb(sizeData);
-    }
-  }
-};
-// 当before和after这2个slot发生变化的时候调用一下此接口
-RecycleContext.prototype._recalculateSize = function (list) {
-  // 遍历所有的数据
-  // 应该最多就千量级的, 遍历没有问题
-  var sizeMap = {};
-  var func = this.itemSize;
-  var funcExist = typeof func === 'function';
-  var comp = this.comp;
-  var compData = comp.data;
-  var offsetLeft = 0;
-  var offsetTop = 0;
-  var line = 0;
-  var column = 0;
-  var sizeArray = [];
-  var listLen = list.length;
-  // 把整个页面拆分成200*200的很多个方格, 判断每个数据落在哪个方格上
-  for (var i = 0; i < listLen; i++) {
-    list[i].__index__ = i;
-    var itemSize = {};
-    // 获取到每一项的宽和高
-    if (funcExist) {
-      // 必须保证返回的每一行的高度一样
-      itemSize = func && func.call(this, list[i], i);
-    } else {
-      itemSize = {
-        width: func.width,
-        height: func.height
-      };
-    }
-    itemSize = Object.assign({}, itemSize);
-    sizeArray.push(itemSize);
-    // 判断数据落到哪个方格上
-    // 超过了宽度, 移动到下一行, 再根据高度判断是否需要移动到下一个方格
-    if (offsetLeft + itemSize.width > compData.width) {
-      column = 0;
-      offsetLeft = itemSize.width;
-      // Fixed issue #22
-      if (sizeArray.length >= 2) {
-        offsetTop += sizeArray[sizeArray.length - 2].height || 0; // 加上最后一个数据的高度
-      } else {
-        offsetTop += itemSize.height;
-      }
-      // offsetTop += sizeArray[sizeArray.length - 2].height // 加上最后一个数据的高度
-      // 根据高度判断是否需要移动到下一个方格
-      if (offsetTop >= RECT_SIZE * (line + 1)) {
-        // fix: 当区块比较大时,会缺失块区域信息
-        var lastIdx = i - 1;
-        var lastLine = line;
-
-        line += parseInt((offsetTop - RECT_SIZE * line) / RECT_SIZE, 10);
-
-        for (var idx = lastLine; idx < line; idx++) {
-          var _key = idx + '.' + column;
-          if (!sizeMap[_key]) {
-            sizeMap[_key] = [];
-          }
-          sizeMap[_key].push(lastIdx);
-        }
-      }
-
-      // 新起一行的元素, beforeHeight是前一个元素的beforeHeight和height相加
-      if (i === 0) {
-        itemSize.beforeHeight = 0;
-      } else {
-        var prevItemSize = sizeArray[sizeArray.length - 2];
-        itemSize.beforeHeight = prevItemSize.beforeHeight + prevItemSize.height;
-      }
-    } else {
-      if (offsetLeft >= RECT_SIZE * (column + 1)) {
-        column++;
-      }
-      offsetLeft += itemSize.width;
-      if (i === 0) {
-        itemSize.beforeHeight = 0;
-      } else {
-        // 同一行的元素, beforeHeight和前面一个元素的beforeHeight一样
-        itemSize.beforeHeight = sizeArray[sizeArray.length - 2].beforeHeight;
-      }
-    }
-    var key = line + '.' + column;
-    if (!sizeMap[key]) {
-      sizeMap[key] = [];
-    }
-    sizeMap[key].push(i);
-
-    // fix: 当区块比较大时,会缺失块区域信息
-    if (listLen - 1 === i && itemSize.height > RECT_SIZE) {
-      var _lastIdx = line;
-      offsetTop += itemSize.height;
-      line += parseInt((offsetTop - RECT_SIZE * line) / RECT_SIZE, 10);
-      for (var _idx = _lastIdx; _idx <= line; _idx++) {
-        var _key2 = _idx + '.' + column;
-        if (!sizeMap[_key2]) {
-          sizeMap[_key2] = [];
-        }
-        sizeMap[_key2].push(i);
-      }
-    }
-  }
-  // console.log('sizeMap', sizeMap)
-  var obj = {
-    array: sizeArray,
-    map: sizeMap,
-    totalHeight: sizeArray.length ? sizeArray[sizeArray.length - 1].beforeHeight + sizeArray[sizeArray.length - 1].height : 0
-  };
-  comp.setItemSize(obj);
-  return obj;
-};
-RecycleContext.prototype.deleteList = function (beginIndex, count, cb) {
-  this.checkComp();
-  var id = this.id;
-  if (!recycleData[id]) {
-    return this;
-  }
-  recycleData[id].list.splice(beginIndex, count);
-  this._forceRerender(id, cb);
-  return this;
-};
-RecycleContext.prototype.updateList = function (beginIndex, list, cb) {
-  this.checkComp();
-  var id = this.id;
-  if (!recycleData[id]) {
-    return this;
-  }
-  var len = recycleData[id].list.length;
-  for (var i = 0; i < list.length && beginIndex < len; i++) {
-    recycleData[id].list[beginIndex++] = list[i];
-  }
-  this._forceRerender(id, cb);
-  return this;
-};
-RecycleContext.prototype.update = RecycleContext.prototype.updateList;
-RecycleContext.prototype.splice = function (begin, deleteCount, appendList, cb) {
-  this.checkComp();
-  var id = this.id;
-  var dataKey = this.dataKey;
-  // begin是数组
-  if ((typeof begin === 'undefined' ? 'undefined' : _typeof(begin)) === 'object' && begin.length) {
-    cb = deleteCount;
-    appendList = begin;
-  }
-  if (typeof appendList === 'function') {
-    cb = appendList;
-    appendList = [];
-  }
-  if (!recycleData[id]) {
-    recycleData[id] = {
-      key: dataKey,
-      id: id,
-      list: appendList || [],
-      sizeMap: {},
-      sizeArray: []
-    };
-  } else {
-    recycleData[id].dataKey = dataKey;
-    var list = recycleData[id].list;
-    if (appendList && appendList.length) {
-      list.splice.apply(list, [begin, deleteCount].concat(appendList));
-    } else {
-      list.splice(begin, deleteCount);
-    }
-  }
-  this._forceRerender(id, cb);
-  return this;
-};
-
-RecycleContext.prototype.append = RecycleContext.prototype.appendList;
-
-RecycleContext.prototype.destroy = function () {
-  if (this.useInPage) {
-    this.page.onPullDownRefresh = this.oldPullDownRefresh;
-    this.page.onReachBottom = this.oldReachBottom;
-    this.page.onPageScroll = this.oldPageScroll;
-    this.oldPageScroll = this.oldReachBottom = this.oldPullDownRefresh = null;
-  }
-  this.page = null;
-  this.comp = null;
-  if (recycleData[this.id]) {
-    delete recycleData[this.id];
-  }
-  return this;
-};
-// 重新更新下页面的数据
-RecycleContext.prototype.forceUpdate = function (cb, reinitSlot) {
-  var _this2 = this;
-
-  this.checkComp();
-  if (reinitSlot) {
-    this.comp.reRender(function () {
-      _this2._forceRerender(_this2.id, cb);
-    });
-  } else {
-    this._forceRerender(this.id, cb);
-  }
-  return this;
-};
-RecycleContext.prototype.getBoundingClientRect = function (index) {
-  this.checkComp();
-  if (!recycleData[this.id]) {
-    return null;
-  }
-  var sizeArray = recycleData[this.id].sizeArray;
-  if (!sizeArray || !sizeArray.length) {
-    return null;
-  }
-  if (typeof index === 'undefined') {
-    var list = [];
-    for (var i = 0; i < sizeArray.length; i++) {
-      list.push({
-        left: 0,
-        top: sizeArray[i].beforeHeight,
-        width: sizeArray[i].width,
-        height: sizeArray[i].height
-      });
-    }
-    return list;
-  }
-  index = parseInt(index, 10);
-  if (index >= sizeArray.length || index < 0) return null;
-  return {
-    left: 0,
-    top: sizeArray[index].beforeHeight,
-    width: sizeArray[index].width,
-    height: sizeArray[index].height
-  };
-};
-RecycleContext.prototype.getScrollTop = function () {
-  this.checkComp();
-  return this.comp.currentScrollTop || 0;
-};
-// 将px转化为rpx
-RecycleContext.prototype.transformRpx = RecycleContext.transformRpx = function (str, addPxSuffix) {
-  if (typeof str === 'number') str += 'rpx';
-  return parseFloat(transformRpx.transformRpx(str, addPxSuffix));
-};
-RecycleContext.prototype.getViewportItems = function (inViewportPx) {
-  this.checkComp();
-  var indexes = this.comp.getIndexesInViewport(inViewportPx);
-  if (indexes.length <= 0) return [];
-  var viewportItems = [];
-  var list = recycleData[this.id].list;
-  for (var i = 0; i < indexes.length; i++) {
-    viewportItems.push(list[indexes[i]]);
-  }
-  return viewportItems;
-};
-RecycleContext.prototype.getTotalHeight = function () {
-  this.checkComp();
-  return this.comp.getTotalHeight();
-};
-// 返回完整的列表数据
-RecycleContext.prototype.getList = function () {
-  if (!recycleData[this.id]) {
-    return [];
-  }
-  return recycleData[this.id].list;
-};
-module.exports = RecycleContext;
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* eslint complexity: ["error", {"max": 50}] */
-var recycleData = __webpack_require__(1);
-
-module.exports = function (e, cb) {
-  var detail = e.detail;
-  // console.log('data change transfer use time', Date.now() - e.detail.timeStamp)
-  var newList = [];
-  var item = recycleData[detail.id];
-  // 边界值判断, 避免造成异常, 假设先调用了createRecycleContext, 然后再延迟2s调用append插入数据的情况
-  if (!item || !item.list) return;
-  var dataList = item.list;
-  var pos = detail.data;
-  var beginIndex = pos.beginIndex;
-  var endIndex = pos.endIndex;
-  item.pos = pos;
-  // 加ignoreBeginIndex和ignoreEndIndex
-  if (typeof beginIndex === 'undefined' || beginIndex === -1 || typeof endIndex === 'undefined' || endIndex === -1) {
-    newList = [];
-  } else {
-    var i = -1;
-    for (i = beginIndex; i < dataList.length && i <= endIndex; i++) {
-      if (i >= pos.ignoreBeginIndex && i <= pos.ignoreEndIndex) continue;
-      newList.push(dataList[i]);
-    }
-  }
-  var obj = {
-    // batchSetRecycleData: !this.data.batchSetRecycleData
-  };
-  obj[item.key] = newList;
-  var comp = this.selectComponent('#' + detail.id);
-  obj[comp.data.batchKey] = !this.data.batchSetRecycleData;
-  comp._setInnerBeforeAndAfterHeight({
-    beforeHeight: pos.minTop,
-    afterHeight: pos.afterHeight
-  });
-  this.setData(obj, function () {
-    if (typeof cb === 'function') {
-      cb();
-    }
-  });
-  // Fix #1
-  // 去掉了batchSetDataKey,支持一个页面内显示2个recycle-view
-  // const groupSetData = () => {
-  //   this.setData(obj)
-  //   comp._recycleInnerBatchDataChanged(() => {
-  //     if (typeof cb === 'function') {
-  //       cb()
-  //     }
-  //   })
-  // }
-  // if (typeof this.groupSetData === 'function') {
-  //   this.groupSetData(groupSetData)
-  // } else {
-  //   groupSetData()
-  // }
-};
-
-/***/ })
-/******/ ]);

+ 0 - 126
miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-item.js

@@ -1,126 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 5);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 5:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// components/recycle-item/recycle-item.js
-Component({
-  relations: {
-    './recycle-view': {
-      type: 'parent', // 关联的目标节点应为子节点
-      linked: function linked() {}
-    }
-  },
-  /**
-   * 组件的属性列表
-   */
-  properties: {},
-
-  /**
-   * 组件的初始数据
-   */
-  data: {
-    // height: 100
-  },
-
-  /**
-   * 组件的方法列表
-   */
-  methods: {
-    heightChange: function heightChange() {}
-  }
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-item.json

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

+ 0 - 4
miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml

@@ -1,4 +0,0 @@
-<!--components/recycle-item/recycle-item.wxml-->
-<view class="wx-recycle-item">
-  <slot></slot>
-</view>

+ 0 - 7
miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss

@@ -1,7 +0,0 @@
-/* components/recycle-item/recycle-item.wxss */
-:host {
-  display: inline-block;
-}
-.wx-recycle-item {
-  height: 100%;
-}

+ 0 - 925
miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-view.js

@@ -1,925 +0,0 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 6);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 0:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var isIPhone = false;
-var deviceWidth = void 0;
-var deviceDPR = void 0;
-var BASE_DEVICE_WIDTH = 750;
-var checkDeviceWidth = function checkDeviceWidth() {
-  var info = wx.getSystemInfoSync();
-  // console.log('info', info)
-  isIPhone = info.platform === 'ios';
-  var newDeviceWidth = info.screenWidth || 375;
-  var newDeviceDPR = info.pixelRatio || 2;
-
-  if (!isIPhone) {
-    // HACK switch width and height when landscape
-    // const newDeviceHeight = info.screenHeight || 375
-    // 暂时不处理转屏的情况
-  }
-
-  if (newDeviceWidth !== deviceWidth || newDeviceDPR !== deviceDPR) {
-    deviceWidth = newDeviceWidth;
-    deviceDPR = newDeviceDPR;
-    // console.info('Updated device width: ' + newDeviceWidth + 'px DPR ' + newDeviceDPR)
-  }
-};
-checkDeviceWidth();
-
-var eps = 1e-4;
-var transformByDPR = function transformByDPR(number) {
-  if (number === 0) {
-    return 0;
-  }
-  number = number / BASE_DEVICE_WIDTH * deviceWidth;
-  number = Math.floor(number + eps);
-  if (number === 0) {
-    if (deviceDPR === 1 || !isIPhone) {
-      return 1;
-    }
-    return 0.5;
-  }
-  return number;
-};
-
-var rpxRE = /([+-]?\d+(?:\.\d+)?)rpx/gi;
-// const inlineRpxRE = /(?::|\s|\(|\/)([+-]?\d+(?:\.\d+)?)rpx/g
-
-var transformRpx = function transformRpx(style, inline) {
-  if (typeof style !== 'string') {
-    return style;
-  }
-  var re = rpxRE;
-  return style.replace(re, function (match, num) {
-    return transformByDPR(Number(num)) + (inline ? 'px' : '');
-  });
-};
-
-module.exports = {
-  transformRpx: transformRpx
-};
-
-/***/ }),
-
-/***/ 6:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* eslint complexity: ["error", {"max": 50}] */
-/* eslint-disable indent */
-var DEFAULT_SHOW_SCREENS = 4;
-var RECT_SIZE = 200;
-var systemInfo = wx.getSystemInfoSync();
-var DEBUG = false;
-var transformRpx = __webpack_require__(0).transformRpx;
-
-Component({
-  options: {
-    multipleSlots: true // 在组件定义时的选项中启用多slot支持
-  },
-  relations: {
-    '../recycle-item/recycle-item': {
-      type: 'child', // 关联的目标节点应为子节点
-      linked: function linked(target) {
-        // 检查第一个的尺寸就好了吧
-        if (!this._hasCheckSize) {
-          this._hasCheckSize = true;
-          var size = this.boundingClientRect(this._pos.beginIndex);
-          if (!size) {
-            return;
-          }
-          setTimeout(function () {
-            try {
-              target.createSelectorQuery().select('.wx-recycle-item').boundingClientRect(function (rect) {
-                if (rect && (rect.width !== size.width || rect.height !== size.height)) {
-                  // eslint-disable-next-line no-console
-                  console.warn('[recycle-view] the size in <recycle-item> is not the same with param ' + ('itemSize, expect {width: ' + rect.width + ', height: ' + rect.height + '} but got ') + ('{width: ' + size.width + ', height: ' + size.height + '}'));
-                }
-              }).exec();
-            } catch (e) {
-              // do nothing
-            }
-          }, 10);
-        }
-      }
-    }
-  },
-  /**
-   * 组件的属性列表
-   */
-  properties: {
-    debug: {
-      type: Boolean,
-      value: false
-    },
-    scrollY: {
-      type: Boolean,
-      value: true
-    },
-    batch: {
-      type: Boolean,
-      value: false,
-      public: true,
-      observer: '_recycleInnerBatchDataChanged'
-    },
-    batchKey: {
-      type: String,
-      value: 'batchSetRecycleData',
-      public: true
-    },
-    scrollTop: {
-      type: Number,
-      value: 0,
-      public: true,
-      observer: '_scrollTopChanged',
-      observeAssignments: true
-    },
-    height: {
-      type: Number,
-      value: systemInfo.windowHeight,
-      public: true,
-      observer: '_heightChanged'
-    },
-    width: {
-      type: Number,
-      value: systemInfo.windowWidth,
-      public: true,
-      observer: '_widthChanged'
-    },
-    // 距顶部/左边多远时,触发bindscrolltoupper
-    upperThreshold: {
-      type: Number,
-      value: 50,
-      public: true
-    },
-    // 距底部/右边多远时,触发bindscrolltolower
-    lowerThreshold: {
-      type: Number,
-      value: 50,
-      public: true
-    },
-    scrollToIndex: {
-      type: Number,
-      public: true,
-      value: 0,
-      observer: '_scrollToIndexChanged',
-      observeAssignments: true
-    },
-    scrollWithAnimation: {
-      type: Boolean,
-      public: true,
-      value: false
-    },
-    enableBackToTop: {
-      type: Boolean,
-      public: true,
-      value: false
-    },
-    // 是否节流,默认是
-    throttle: {
-      type: Boolean,
-      public: true,
-      value: true
-    },
-    placeholderImage: {
-      type: String,
-      public: true,
-      value: ''
-    },
-    screen: { // 默认渲染多少屏的数据
-      type: Number,
-      public: true,
-      value: DEFAULT_SHOW_SCREENS
-    }
-  },
-
-  /**
-   * 组件的初始数据
-   */
-  data: {
-    innerBeforeHeight: 0,
-    innerAfterHeight: 0,
-    innerScrollTop: 0,
-    innerScrollIntoView: '',
-    placeholderImageStr: '',
-    totalHeight: 0,
-    useInPage: false
-  },
-  attached: function attached() {
-    if (this.data.placeholderImage) {
-      this.setData({
-        placeholderImageStr: transformRpx(this.data.placeholderImage, true)
-      });
-    }
-    this.setItemSize({
-      array: [],
-      map: {},
-      totalHeight: 0
-    });
-  },
-  ready: function ready() {
-    var _this = this;
-
-    this._initPosition(function () {
-      _this._isReady = true; // DOM结构ready了
-      // 有一个更新的timer在了
-      if (_this._updateTimerId) return;
-
-      _this._scrollViewDidScroll({
-        detail: {
-          scrollLeft: _this._pos.left,
-          scrollTop: _this._pos.top,
-          ignoreScroll: true
-        }
-      }, true);
-    });
-  },
-  detached: function detached() {
-    this.page = null;
-    // 销毁对应的RecycleContext
-    if (this.context) {
-      this.context.destroy();
-      this.context = null;
-    }
-  },
-
-  /**
-   * 组件的方法列表
-   */
-  methods: {
-    _log: function _log() {
-      var _console;
-
-      if (!DEBUG && !this.data.debug) return;
-      var h = new Date();
-      var str = h.getHours() + ':' + h.getMinutes() + ':' + h.getSeconds() + '.' + h.getMilliseconds();
-
-      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
-        args[_key] = arguments[_key];
-      }
-
-      Array.prototype.splice.call(args, 0, 0, str);
-      // eslint-disable-next-line no-console
-      (_console = console).log.apply(_console, args);
-    },
-    _scrollToUpper: function _scrollToUpper(e) {
-      this.triggerEvent('scrolltoupper', e.detail);
-    },
-    _scrollToLower: function _scrollToLower(e) {
-      this.triggerEvent('scrolltolower', e.detail);
-    },
-    _beginToScroll: function _beginToScroll() {
-      if (!this._lastScrollTop) {
-        this._lastScrollTop = this._pos && (this._pos.top || 0);
-      }
-    },
-    _clearList: function _clearList(cb) {
-      this.currentScrollTop = 0;
-      this._lastScrollTop = 0;
-      var pos = this._pos;
-      pos.beginIndex = this._pos.endIndex = -1;
-      pos.afterHeight = pos.minTop = pos.maxTop = 0;
-      this.page._recycleViewportChange({
-        detail: {
-          data: pos,
-          id: this.id
-        }
-      }, cb);
-    },
-
-    // 判断RecycleContext是否Ready
-    _isValid: function _isValid() {
-      return this.page && this.context && this.context.isDataReady;
-    },
-
-    // eslint-disable-next-line no-complexity
-    _scrollViewDidScroll: function _scrollViewDidScroll(e, force) {
-      // 如果RecycleContext还没有初始化, 不做任何事情
-      if (!this._isValid()) {
-        return;
-      }
-      // 监测白屏时间
-      if (!e.detail.ignoreScroll) {
-        this.triggerEvent('scroll', e.detail);
-      }
-      this.currentScrollTop = e.detail.scrollTop;
-      // 高度为0的情况, 不做任何渲染逻辑
-      if (!this._pos.height || !this.sizeArray.length) {
-        // 没有任何数据的情况下, 直接清理所有的状态
-        this._clearList(e.detail.cb);
-        return;
-      }
-
-      // 在scrollWithAnimation动画最后会触发一次scroll事件, 这次scroll事件必须要被忽略
-      if (this._isScrollingWithAnimation) {
-        this._isScrollingWithAnimation = false;
-        return;
-      }
-      var pos = this._pos;
-      var that = this;
-      var scrollLeft = e.detail.scrollLeft;
-      var scrollTop = e.detail.scrollTop;
-      var scrollDistance = Math.abs(scrollTop - this._lastScrollTop);
-      if (!force && Math.abs(scrollTop - pos.top) < pos.height * 1.5) {
-        this._log('【not exceed height');
-        return;
-      }
-      this._lastScrollTop = scrollTop;
-      var SHOW_SCREENS = this.data.screen; // 固定4屏幕
-      this._log('SHOW_SCREENS', SHOW_SCREENS, scrollTop);
-      this._calcViewportIndexes(scrollLeft, scrollTop, function (beginIndex, endIndex, minTop, afterHeight, maxTop) {
-        that._log('scrollDistance', scrollDistance, 'indexes', beginIndex, endIndex);
-        // 渲染的数据不变
-        if (!force && pos.beginIndex === beginIndex && pos.endIndex === endIndex && pos.minTop === minTop && pos.afterHeight === afterHeight) {
-          that._log('------------is the same beginIndex and endIndex');
-          return;
-        }
-        // 如果这次渲染的范围比上一次的范围小,则忽略
-        that._log('【check】before setData, old pos is', pos.minTop, pos.maxTop, minTop, maxTop);
-        that._throttle = false;
-        pos.left = scrollLeft;
-        pos.top = scrollTop;
-        pos.beginIndex = beginIndex;
-        pos.endIndex = endIndex;
-        // console.log('render indexes', endIndex - beginIndex + 1, endIndex, beginIndex)
-        pos.minTop = minTop;
-        pos.maxTop = maxTop;
-        pos.afterHeight = afterHeight;
-        pos.ignoreBeginIndex = pos.ignoreEndIndex = -1;
-        that.page._recycleViewportChange({
-          detail: {
-            data: that._pos,
-            id: that.id
-          }
-        }, function () {
-          if (e.detail.cb) {
-            e.detail.cb();
-          }
-        });
-      });
-    },
-
-    // 计算在视窗内渲染的数据
-    _calcViewportIndexes: function _calcViewportIndexes(left, top, cb) {
-      var that = this;
-      // const st = +new Date
-      this._getBeforeSlotHeight(function () {
-        var _that$__calcViewportI = that.__calcViewportIndexes(left, top),
-            beginIndex = _that$__calcViewportI.beginIndex,
-            endIndex = _that$__calcViewportI.endIndex,
-            minTop = _that$__calcViewportI.minTop,
-            afterHeight = _that$__calcViewportI.afterHeight,
-            maxTop = _that$__calcViewportI.maxTop;
-
-        if (cb) {
-          cb(beginIndex, endIndex, minTop, afterHeight, maxTop);
-        }
-      });
-    },
-    _getBeforeSlotHeight: function _getBeforeSlotHeight(cb) {
-      if (typeof this.data.beforeSlotHeight !== 'undefined') {
-        if (cb) {
-          cb(this.data.beforeSlotHeight);
-        }
-      } else {
-        this.reRender(cb);
-      }
-    },
-    _getAfterSlotHeight: function _getAfterSlotHeight(cb) {
-      if (typeof this.data.afterSlotHeight !== 'undefined') {
-        if (cb) {
-          cb(this.data.afterSlotHeight);
-        }
-        // cb && cb(this.data.afterSlotHeight)
-      } else {
-        this.reRender(cb);
-      }
-    },
-    _getIndexes: function _getIndexes(minTop, maxTop) {
-      if (minTop === maxTop && maxTop === 0) {
-        return {
-          beginIndex: -1,
-          endIndex: -1
-        };
-      }
-      var startLine = Math.floor(minTop / RECT_SIZE);
-      var endLine = Math.ceil(maxTop / RECT_SIZE);
-      var rectEachLine = Math.floor(this.data.width / RECT_SIZE);
-      var beginIndex = void 0;
-      var endIndex = void 0;
-      var sizeMap = this.sizeMap;
-      for (var i = startLine; i <= endLine; i++) {
-        for (var col = 0; col < rectEachLine; col++) {
-          var key = i + '.' + col;
-          // 找到sizeMap里面的最小值和最大值即可
-          if (!sizeMap[key]) continue;
-          for (var j = 0; j < sizeMap[key].length; j++) {
-            if (typeof beginIndex === 'undefined') {
-              beginIndex = endIndex = sizeMap[key][j];
-              continue;
-            }
-            if (beginIndex > sizeMap[key][j]) {
-              beginIndex = sizeMap[key][j];
-            } else if (endIndex < sizeMap[key][j]) {
-              endIndex = sizeMap[key][j];
-            }
-          }
-        }
-      }
-      return {
-        beginIndex: beginIndex,
-        endIndex: endIndex
-      };
-    },
-    _isIndexValid: function _isIndexValid(beginIndex, endIndex) {
-      if (typeof beginIndex === 'undefined' || beginIndex === -1 || typeof endIndex === 'undefined' || endIndex === -1 || endIndex >= this.sizeArray.length) {
-        return false;
-      }
-      return true;
-    },
-    __calcViewportIndexes: function __calcViewportIndexes(left, top) {
-      if (!this.sizeArray.length) return {};
-      var pos = this._pos;
-      if (typeof left === 'undefined') {
-        left = pos.left;
-      }
-      if (typeof top === 'undefined') {
-        top = pos.top;
-      }
-      // top = Math.max(top, this.data.beforeSlotHeight)
-      var beforeSlotHeight = this.data.beforeSlotHeight || 0;
-      // 和direction无关了
-      var SHOW_SCREENS = this.data.screen;
-      var minTop = top - pos.height * SHOW_SCREENS - beforeSlotHeight;
-      var maxTop = top + pos.height * SHOW_SCREENS - beforeSlotHeight;
-      // maxTop或者是minTop超出了范围
-      if (maxTop > this.totalHeight) {
-        minTop -= maxTop - this.totalHeight;
-        maxTop = this.totalHeight;
-      }
-      if (minTop < beforeSlotHeight) {
-        maxTop += Math.min(beforeSlotHeight - minTop, this.totalHeight);
-        minTop = 0;
-      }
-      // 计算落在minTop和maxTop之间的方格有哪些
-      var indexObj = this._getIndexes(minTop, maxTop);
-      var beginIndex = indexObj.beginIndex;
-      var endIndex = indexObj.endIndex;
-      if (endIndex >= this.sizeArray.length) {
-        endIndex = this.sizeArray.length - 1;
-      }
-      // 校验一下beginIndex和endIndex的有效性,
-      if (!this._isIndexValid(beginIndex, endIndex)) {
-        return {
-          beginIndex: -1,
-          endIndex: -1,
-          minTop: 0,
-          afterHeight: 0,
-          maxTop: 0
-        };
-      }
-      // 计算白屏的默认占位的区域
-      var maxTopFull = this.sizeArray[endIndex].beforeHeight + this.sizeArray[endIndex].height;
-      var minTopFull = this.sizeArray[beginIndex].beforeHeight;
-
-      // console.log('render indexes', beginIndex, endIndex)
-      var afterHeight = this.totalHeight - maxTopFull;
-      return {
-        beginIndex: beginIndex,
-        endIndex: endIndex,
-        minTop: minTopFull, // 取整, beforeHeight的距离
-        afterHeight: afterHeight,
-        maxTop: maxTop
-      };
-    },
-    setItemSize: function setItemSize(size) {
-      this.sizeArray = size.array;
-      this.sizeMap = size.map;
-      if (size.totalHeight !== this.totalHeight) {
-        // console.log('---totalHeight is', size.totalHeight);
-        this.setData({
-          totalHeight: size.totalHeight,
-          useInPage: this.useInPage || false
-        });
-      }
-      this.totalHeight = size.totalHeight;
-    },
-    setList: function setList(key, newList) {
-      this._currentSetDataKey = key;
-      this._currentSetDataList = newList;
-    },
-    setPage: function setPage(page) {
-      this.page = page;
-    },
-    forceUpdate: function forceUpdate(cb, reInit) {
-      var _this2 = this;
-
-      if (!this._isReady) {
-        if (this._updateTimerId) {
-          // 合并多次的forceUpdate
-          clearTimeout(this._updateTimerId);
-        }
-        this._updateTimerId = setTimeout(function () {
-          _this2.forceUpdate(cb, reInit);
-        }, 10);
-        return;
-      }
-      this._updateTimerId = null;
-      var that = this;
-      if (reInit) {
-        this.reRender(function () {
-          that._scrollViewDidScroll({
-            detail: {
-              scrollLeft: that._pos.left,
-              scrollTop: that.currentScrollTop || that.data.scrollTop || 0,
-              ignoreScroll: true,
-              cb: cb
-            }
-          }, true);
-        });
-      } else {
-        this._scrollViewDidScroll({
-          detail: {
-            scrollLeft: that._pos.left,
-            scrollTop: that.currentScrollTop || that.data.scrollTop || 0,
-            ignoreScroll: true,
-            cb: cb
-          }
-        }, true);
-      }
-    },
-    _initPosition: function _initPosition(cb) {
-      var that = this;
-      that._pos = {
-        left: that.data.scrollLeft || 0,
-        top: that.data.scrollTop || 0,
-        width: this.data.width,
-        height: Math.max(500, this.data.height), // 一个屏幕的高度
-        direction: 0
-      };
-      this.reRender(cb);
-    },
-    _widthChanged: function _widthChanged(newVal) {
-      if (!this._isReady) return newVal;
-      this._pos.width = newVal;
-      this.forceUpdate();
-      return newVal;
-    },
-    _heightChanged: function _heightChanged(newVal) {
-      if (!this._isReady) return newVal;
-      this._pos.height = Math.max(500, newVal);
-      this.forceUpdate();
-      return newVal;
-    },
-    reRender: function reRender(cb) {
-      var _this3 = this;
-
-      var beforeSlotHeight = void 0;
-      var afterSlotHeight = void 0;
-      var that = this;
-      // const reRenderStart = Date.now()
-      function newCb() {
-        if (that._lastBeforeSlotHeight !== beforeSlotHeight || that._lastAfterSlotHeight !== afterSlotHeight) {
-          that.setData({
-            hasBeforeSlotHeight: true,
-            hasAfterSlotHeight: true,
-            beforeSlotHeight: beforeSlotHeight,
-            afterSlotHeight: afterSlotHeight
-          });
-        }
-        that._lastBeforeSlotHeight = beforeSlotHeight;
-        that._lastAfterSlotHeight = afterSlotHeight;
-        // console.log('_getBeforeSlotHeight use time', Date.now() - reRenderStart)
-        if (cb) {
-          cb();
-        }
-      }
-      // 重新渲染事件发生
-      var beforeReady = false;
-      var afterReady = false;
-      // fix:#16 确保获取slot节点实际高度
-      this.setData({
-        hasBeforeSlotHeight: false,
-        hasAfterSlotHeight: false
-      }, function () {
-        _this3.createSelectorQuery().select('.slot-before').boundingClientRect(function (rect) {
-          beforeSlotHeight = rect.height;
-          beforeReady = true;
-          if (afterReady) {
-            if (newCb) {
-              newCb();
-            }
-          }
-        }).exec();
-        _this3.createSelectorQuery().select('.slot-after').boundingClientRect(function (rect) {
-          afterSlotHeight = rect.height;
-          afterReady = true;
-          if (beforeReady) {
-            if (newCb) {
-              newCb();
-            }
-          }
-        }).exec();
-      });
-    },
-    _setInnerBeforeAndAfterHeight: function _setInnerBeforeAndAfterHeight(obj) {
-      if (typeof obj.beforeHeight !== 'undefined') {
-        this._tmpBeforeHeight = obj.beforeHeight;
-      }
-      if (obj.afterHeight) {
-        this._tmpAfterHeight = obj.afterHeight;
-      }
-    },
-    _recycleInnerBatchDataChanged: function _recycleInnerBatchDataChanged(cb) {
-      var _this4 = this;
-
-      if (typeof this._tmpBeforeHeight !== 'undefined') {
-        var setObj = {
-          innerBeforeHeight: this._tmpBeforeHeight || 0,
-          innerAfterHeight: this._tmpAfterHeight || 0
-        };
-        if (typeof this._tmpInnerScrollTop !== 'undefined') {
-          setObj.innerScrollTop = this._tmpInnerScrollTop;
-        }
-        var pageObj = {};
-        var hasPageData = false;
-        if (typeof this._currentSetDataKey !== 'undefined') {
-          pageObj[this._currentSetDataKey] = this._currentSetDataList;
-          hasPageData = true;
-        }
-        var saveScrollWithAnimation = this.data.scrollWithAnimation;
-        var groupSetData = function groupSetData() {
-          // 如果有分页数据的话
-          if (hasPageData) {
-            _this4.page.setData(pageObj);
-          }
-          _this4.setData(setObj, function () {
-            _this4.setData({
-              scrollWithAnimation: saveScrollWithAnimation
-            });
-            if (typeof cb === 'function') {
-              cb();
-            }
-          });
-        };
-        groupSetData();
-        delete this._currentSetDataKey;
-        delete this._currentSetDataList;
-        this._tmpBeforeHeight = undefined;
-        this._tmpAfterHeight = undefined;
-        this._tmpInnerScrollTop = undefined;
-      }
-    },
-    _renderByScrollTop: function _renderByScrollTop(scrollTop) {
-      // 先setData把目标位置的数据补齐
-      this._scrollViewDidScroll({
-        detail: {
-          scrollLeft: this._pos.scrollLeft,
-          scrollTop: scrollTop,
-          ignoreScroll: true
-        }
-      }, true);
-      if (this.data.scrollWithAnimation) {
-        this._isScrollingWithAnimation = true;
-      }
-      this.setData({
-        innerScrollTop: scrollTop
-      });
-    },
-    _scrollTopChanged: function _scrollTopChanged(newVal, oldVal) {
-      var _this5 = this;
-
-      // if (newVal === oldVal && newVal === 0) return
-      if (!this._isInitScrollTop && newVal === 0) {
-        this._isInitScrollTop = true;
-        return newVal;
-      }
-      this.currentScrollTop = newVal;
-      if (!this._isReady) {
-        if (this._scrollTopTimerId) {
-          clearTimeout(this._scrollTopTimerId);
-        }
-        this._scrollTopTimerId = setTimeout(function () {
-          _this5._scrollTopChanged(newVal, oldVal);
-        }, 10);
-        return newVal;
-      }
-      this._isInitScrollTop = true;
-      this._scrollTopTimerId = null;
-      // this._lastScrollTop = oldVal
-      if (typeof this._lastScrollTop === 'undefined') {
-        this._lastScrollTop = this.data.scrollTop;
-      }
-      // 滑动距离小于一个屏幕的高度, 直接setData
-      if (Math.abs(newVal - this._lastScrollTop) < this._pos.height) {
-        this.setData({
-          innerScrollTop: newVal
-        });
-        return newVal;
-      }
-      if (!this._isScrollTopChanged) {
-        // 首次的值需要延后一点执行才能生效
-        setTimeout(function () {
-          _this5._isScrollTopChanged = true;
-          _this5._renderByScrollTop(newVal);
-        }, 10);
-      } else {
-        this._renderByScrollTop(newVal);
-      }
-      return newVal;
-    },
-    _scrollToIndexChanged: function _scrollToIndexChanged(newVal, oldVal) {
-      var _this6 = this;
-
-      // if (newVal === oldVal && newVal === 0) return
-      // 首次滚动到0的不执行
-      if (!this._isInitScrollToIndex && newVal === 0) {
-        this._isInitScrollToIndex = true;
-        return newVal;
-      }
-      if (!this._isReady) {
-        if (this._scrollToIndexTimerId) {
-          clearTimeout(this._scrollToIndexTimerId);
-        }
-        this._scrollToIndexTimerId = setTimeout(function () {
-          _this6._scrollToIndexChanged(newVal, oldVal);
-        }, 10);
-        return newVal;
-      }
-      this._isInitScrollToIndex = true;
-      this._scrollToIndexTimerId = null;
-      if (typeof this._lastScrollTop === 'undefined') {
-        this._lastScrollTop = this.data.scrollTop;
-      }
-      var rect = this.boundingClientRect(newVal);
-      if (!rect) return newVal;
-      // console.log('rect top', rect, this.data.beforeSlotHeight)
-      var calScrollTop = rect.top + (this.data.beforeSlotHeight || 0);
-      this.currentScrollTop = calScrollTop;
-      if (Math.abs(calScrollTop - this._lastScrollTop) < this._pos.height) {
-        this.setData({
-          innerScrollTop: calScrollTop
-        });
-        return newVal;
-      }
-      if (!this._isScrollToIndexChanged) {
-        setTimeout(function () {
-          _this6._isScrollToIndexChanged = true;
-          _this6._renderByScrollTop(calScrollTop);
-        }, 10);
-      } else {
-        this._renderByScrollTop(calScrollTop);
-      }
-      return newVal;
-    },
-
-    // 提供给开发者使用的接口
-    boundingClientRect: function boundingClientRect(idx) {
-      if (idx < 0 || idx >= this.sizeArray.length) {
-        return null;
-      }
-      return {
-        left: 0,
-        top: this.sizeArray[idx].beforeHeight,
-        width: this.sizeArray[idx].width,
-        height: this.sizeArray[idx].height
-      };
-    },
-
-    // 获取当前出现在屏幕内数据项, 返回数据项组成的数组
-    // 参数inViewportPx表示当数据项至少有多少像素出现在屏幕内才算是出现在屏幕内,默认是1
-    getIndexesInViewport: function getIndexesInViewport(inViewportPx) {
-      if (!inViewportPx) {
-        inViewportPx = 1;
-      }
-      var scrollTop = this.currentScrollTop;
-      var minTop = scrollTop + inViewportPx;
-      if (minTop < 0) minTop = 0;
-      var maxTop = scrollTop + this.data.height - inViewportPx;
-      if (maxTop > this.totalHeight) maxTop = this.totalHeight;
-      var indexes = [];
-      for (var i = 0; i < this.sizeArray.length; i++) {
-        if (this.sizeArray[i].beforeHeight + this.sizeArray[i].height >= minTop && this.sizeArray[i].beforeHeight <= maxTop) {
-          indexes.push(i);
-        }
-        if (this.sizeArray[i].beforeHeight > maxTop) break;
-      }
-      return indexes;
-    },
-    getTotalHeight: function getTotalHeight() {
-      return this.totalHeight;
-    },
-    setUseInPage: function setUseInPage(useInPage) {
-      this.useInPage = useInPage;
-    },
-    setPlaceholderImage: function setPlaceholderImage(svgs, size) {
-      var fill = 'style=\'fill:rgb(204,204,204);\'';
-      var placeholderImages = ['data:image/svg+xml,%3Csvg height=\'' + size.height + '\' width=\'' + size.width + '\' xmlns=\'http://www.w3.org/2000/svg\'%3E'];
-      svgs.forEach(function (svg) {
-        placeholderImages.push('%3Crect width=\'' + svg.width + '\' x=\'' + svg.left + '\' height=\'' + svg.height + '\' y=\'' + svg.top + '\' ' + fill + ' /%3E');
-      });
-      placeholderImages.push('%3C/svg%3E');
-      this.setData({
-        placeholderImageStr: placeholderImages.join('')
-      });
-    }
-  }
-});
-
-/***/ })
-
-/******/ });

+ 0 - 4
miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-view.json

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

+ 0 - 21
miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml

@@ -1,21 +0,0 @@
-<!--components/recycle-view/recycle-view.wxml-->
-<view bindtouchstart='_beginToScroll' style="height:{{useInPage ? totalHeight + (hasBeforeSlotHeight ? beforeSlotHeight : 0) + (hasAfterSlotHeight ? afterSlotHeight : 0) : height}}px;width:{{width}}px;transform:translateZ(0);-webkit-transform:translateZ(0);" id="content" class="wrap">
-  <scroll-view bindscroll="_scrollViewDidScroll" class="content" style='height:100%;position: relative;' scroll-y="{{useInPage ? false : scrollY}}" scroll-x="{{false}}" upper-threshold="{{upperThreshold}}" lower-threshold="{{lowerThreshold}}" scroll-top="{{innerScrollTop}}" scroll-into-view="{{innerScrollIntoView}}" scroll-with-animation="{{scrollWithAnimation}}" bindscrolltoupper="_scrollToUpper" bindscrolltolower="_scrollToLower" scroll-anchoring enable-back-to-top="{{enableBackToTop}}" throttle="{{throttle}}">
-    <view style="position: absolute;z-index:1;width:100%;left: 0;top: 0;opacity: 0;visibility: hidden;">
-      <slot name="itemsize"></slot>
-    </view>
-    <view style="height:{{hasBeforeSlotHeight ? beforeSlotHeight + 'px' : 'auto'}}" class="slot-before">
-      <slot name="before"></slot>
-    </view>
-    <view style='position:relative;width:100%;z-index:10;background: url("{{placeholderImageStr}}") repeat;height:{{totalHeight}}px;'>
-      <!-- <view class='before' style="height:{{innerBeforeHeight}}px"></view> -->
-      <view style="position: absolute;left:0;width:100%;top:{{innerBeforeHeight}}px;">
-        <slot></slot>
-      </view>
-      <!-- <view class='after' style="height:{{innerAfterHeight}}px"></view> -->
-    </view>
-    <view style="height:{{hasAfterSlotHeight ? afterSlotHeight + 'px' : 'auto'}}" class="slot-after">
-      <slot name="after"></slot>
-    </view>
-  </scroll-view>
-</view>

+ 0 - 5
miniprogram/miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss

@@ -1,5 +0,0 @@
-/* components/recycle-view/recycle-view.wxss */
-:host {
-  display: block;
-  width: 100%;
-}

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 7
miniprogram/miniprogram_npm/widget-ui/index.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
miniprogram/miniprogram_npm/widget-ui/index.js.map


+ 0 - 779
miniprogram/miniprogram_npm/wxml-to-canvas/index.js

@@ -1,779 +0,0 @@
-(function webpackUniversalModuleDefinition(root, factory) {
-	if(typeof exports === 'object' && typeof module === 'object')
-		module.exports = factory();
-	else if(typeof define === 'function' && define.amd)
-		define([], factory);
-	else {
-		var a = factory();
-		for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
-	}
-})(window, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 1);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports) {
-
-const hex = (color) => {
-  let result = null
-
-  if (/^#/.test(color) && (color.length === 7 || color.length === 9)) {
-    return color
-    // eslint-disable-next-line no-cond-assign
-  } else if ((result = /^(rgb|rgba)\((.+)\)/.exec(color)) !== null) {
-    return '#' + result[2].split(',').map((part, index) => {
-      part = part.trim()
-      part = index === 3 ? Math.floor(parseFloat(part) * 255) : parseInt(part, 10)
-      part = part.toString(16)
-      if (part.length === 1) {
-        part = '0' + part
-      }
-      return part
-    }).join('')
-  } else {
-    return '#00000000'
-  }
-}
-
-const splitLineToCamelCase = (str) => str.split('-').map((part, index) => {
-  if (index === 0) {
-    return part
-  }
-  return part[0].toUpperCase() + part.slice(1)
-}).join('')
-
-const compareVersion = (v1, v2) => {
-  v1 = v1.split('.')
-  v2 = v2.split('.')
-  const len = Math.max(v1.length, v2.length)
-  while (v1.length < len) {
-    v1.push('0')
-  }
-  while (v2.length < len) {
-    v2.push('0')
-  }
-  for (let i = 0; i < len; i++) {
-    const num1 = parseInt(v1[i], 10)
-    const num2 = parseInt(v2[i], 10)
-
-    if (num1 > num2) {
-      return 1
-    } else if (num1 < num2) {
-      return -1
-    }
-  }
-
-  return 0
-}
-
-module.exports = {
-  hex,
-  splitLineToCamelCase,
-  compareVersion
-}
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-
-const xmlParse = __webpack_require__(2)
-const {Widget} = __webpack_require__(3)
-const {Draw} = __webpack_require__(5)
-const {compareVersion} = __webpack_require__(0)
-
-const canvasId = 'weui-canvas'
-
-Component({
-  properties: {
-    width: {
-      type: Number,
-      value: 400
-    },
-    height: {
-      type: Number,
-      value: 300
-    }
-  },
-  data: {
-    use2dCanvas: false, // 2.9.2 后可用canvas 2d 接口
-  },
-  lifetimes: {
-    attached() {
-      const {SDKVersion, pixelRatio: dpr} = wx.getSystemInfoSync()
-      const use2dCanvas = compareVersion(SDKVersion, '2.9.2') >= 0
-      this.dpr = dpr
-      this.setData({use2dCanvas}, () => {
-        if (use2dCanvas) {
-          const query = this.createSelectorQuery()
-          query.select(`#${canvasId}`)
-            .fields({node: true, size: true})
-            .exec(res => {
-              const canvas = res[0].node
-              const ctx = canvas.getContext('2d')
-              canvas.width = res[0].width * dpr
-              canvas.height = res[0].height * dpr
-              ctx.scale(dpr, dpr)
-              this.ctx = ctx
-              this.canvas = canvas
-            })
-        } else {
-          this.ctx = wx.createCanvasContext(canvasId, this)
-        }
-      })
-    }
-  },
-  methods: {
-    async renderToCanvas(args) {
-      const {wxml, style} = args
-      const ctx = this.ctx
-      const canvas = this.canvas
-      const use2dCanvas = this.data.use2dCanvas
-
-      if (use2dCanvas && !canvas) {
-        return Promise.reject(new Error('renderToCanvas: fail canvas has not been created'))
-      }
-
-      ctx.clearRect(0, 0, this.data.width, this.data.height)
-      const {root: xom} = xmlParse(wxml)
-
-      const widget = new Widget(xom, style)
-      const container = widget.init()
-      this.boundary = {
-        top: container.layoutBox.top,
-        left: container.layoutBox.left,
-        width: container.computedStyle.width,
-        height: container.computedStyle.height,
-      }
-      const draw = new Draw(ctx, canvas, use2dCanvas)
-      await draw.drawNode(container)
-
-      if (!use2dCanvas) {
-        await this.canvasDraw(ctx)
-      }
-      return Promise.resolve(container)
-    },
-
-    canvasDraw(ctx, reserve) {
-      return new Promise(resolve => {
-        ctx.draw(reserve, () => {
-          resolve()
-        })
-      })
-    },
-
-    canvasToTempFilePath(args = {}) {
-      const use2dCanvas = this.data.use2dCanvas
-
-      return new Promise((resolve, reject) => {
-        const {
-          top, left, width, height
-        } = this.boundary
-
-        const copyArgs = {
-          x: left,
-          y: top,
-          width,
-          height,
-          destWidth: width * this.dpr,
-          destHeight: height * this.dpr,
-          canvasId,
-          fileType: args.fileType || 'png',
-          quality: args.quality || 1,
-          success: resolve,
-          fail: reject
-        }
-
-        if (use2dCanvas) {
-          delete copyArgs.canvasId
-          copyArgs.canvas = this.canvas
-        }
-        wx.canvasToTempFilePath(copyArgs, this)
-      })
-    }
-  }
-})
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports) {
-
-
-/**
- * Module dependencies.
- */
-
-
-/**
- * Expose `parse`.
- */
-
-
-/**
- * Parse the given string of `xml`.
- *
- * @param {String} xml
- * @return {Object}
- * @api public
- */
-
-function parse(xml) {
-  xml = xml.trim()
-
-  // strip comments
-  xml = xml.replace(/<!--[\s\S]*?-->/g, '')
-
-  return document()
-
-  /**
-   * XML document.
-   */
-
-  function document() {
-    return {
-      declaration: declaration(),
-      root: tag()
-    }
-  }
-
-  /**
-   * Declaration.
-   */
-
-  function declaration() {
-    const m = match(/^<\?xml\s*/)
-    if (!m) return
-
-    // tag
-    const node = {
-      attributes: {}
-    }
-
-    // attributes
-    while (!(eos() || is('?>'))) {
-      const attr = attribute()
-      if (!attr) return node
-      node.attributes[attr.name] = attr.value
-    }
-
-    match(/\?>\s*/)
-
-    return node
-  }
-
-  /**
-   * Tag.
-   */
-
-  function tag() {
-    const m = match(/^<([\w-:.]+)\s*/)
-    if (!m) return
-
-    // name
-    const node = {
-      name: m[1],
-      attributes: {},
-      children: []
-    }
-
-    // attributes
-    while (!(eos() || is('>') || is('?>') || is('/>'))) {
-      const attr = attribute()
-      if (!attr) return node
-      node.attributes[attr.name] = attr.value
-    }
-
-    // self closing tag
-    if (match(/^\s*\/>\s*/)) {
-      return node
-    }
-
-    match(/\??>\s*/)
-
-    // content
-    node.content = content()
-
-    // children
-    let child
-    while (child = tag()) {
-      node.children.push(child)
-    }
-
-    // closing
-    match(/^<\/[\w-:.]+>\s*/)
-
-    return node
-  }
-
-  /**
-   * Text content.
-   */
-
-  function content() {
-    const m = match(/^([^<]*)/)
-    if (m) return m[1]
-    return ''
-  }
-
-  /**
-   * Attribute.
-   */
-
-  function attribute() {
-    const m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/)
-    if (!m) return
-    return {name: m[1], value: strip(m[2])}
-  }
-
-  /**
-   * Strip quotes from `val`.
-   */
-
-  function strip(val) {
-    return val.replace(/^['"]|['"]$/g, '')
-  }
-
-  /**
-   * Match `re` and advance the string.
-   */
-
-  function match(re) {
-    const m = xml.match(re)
-    if (!m) return
-    xml = xml.slice(m[0].length)
-    return m
-  }
-
-  /**
-   * End-of-source.
-   */
-
-  function eos() {
-    return xml.length == 0
-  }
-
-  /**
-   * Check for `prefix`.
-   */
-
-  function is(prefix) {
-    return xml.indexOf(prefix) == 0
-  }
-}
-
-module.exports = parse
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
-const Block = __webpack_require__(4)
-const {splitLineToCamelCase} = __webpack_require__(0)
-
-class Element extends Block {
-  constructor(prop) {
-    super(prop.style)
-    this.name = prop.name
-    this.attributes = prop.attributes
-  }
-}
-
-
-class Widget {
-  constructor(xom, style) {
-    this.xom = xom
-    this.style = style
-
-    this.inheritProps = ['fontSize', 'lineHeight', 'textAlign', 'verticalAlign', 'color']
-  }
-
-  init() {
-    this.container = this.create(this.xom)
-    this.container.layout()
-
-    this.inheritStyle(this.container)
-    return this.container
-  }
-
-  // 继承父节点的样式
-  inheritStyle(node) {
-    const parent = node.parent || null
-    const children = node.children || {}
-    const computedStyle = node.computedStyle
-
-    if (parent) {
-      this.inheritProps.forEach(prop => {
-        computedStyle[prop] = computedStyle[prop] || parent.computedStyle[prop]
-      })
-    }
-
-    Object.values(children).forEach(child => {
-      this.inheritStyle(child)
-    })
-  }
-
-  create(node) {
-    let classNames = (node.attributes.class || '').split(' ')
-    classNames = classNames.map(item => splitLineToCamelCase(item.trim()))
-    const style = {}
-    classNames.forEach(item => {
-      Object.assign(style, this.style[item] || {})
-    })
-
-    const args = {name: node.name, style}
-
-    const attrs = Object.keys(node.attributes)
-    const attributes = {}
-    for (const attr of attrs) {
-      const value = node.attributes[attr]
-      const CamelAttr = splitLineToCamelCase(attr)
-
-      if (value === '' || value === 'true') {
-        attributes[CamelAttr] = true
-      } else if (value === 'false') {
-        attributes[CamelAttr] = false
-      } else {
-        attributes[CamelAttr] = value
-      }
-    }
-    attributes.text = node.content
-    args.attributes = attributes
-    const element = new Element(args)
-    node.children.forEach(childNode => {
-      const childElement = this.create(childNode)
-      element.add(childElement)
-    })
-    return element
-  }
-}
-
-module.exports = {Widget}
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports) {
-
-module.exports = require("widget-ui");
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports) {
-
-class Draw {
-  constructor(context, canvas, use2dCanvas = false) {
-    this.ctx = context
-    this.canvas = canvas || null
-    this.use2dCanvas = use2dCanvas
-  }
-
-  roundRect(x, y, w, h, r, fill = true, stroke = false) {
-    if (r < 0) return
-    const ctx = this.ctx
-
-    ctx.beginPath()
-    ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 3 / 2)
-    ctx.arc(x + w - r, y + r, r, Math.PI * 3 / 2, 0)
-    ctx.arc(x + w - r, y + h - r, r, 0, Math.PI / 2)
-    ctx.arc(x + r, y + h - r, r, Math.PI / 2, Math.PI)
-    ctx.lineTo(x, y + r)
-    if (stroke) ctx.stroke()
-    if (fill) ctx.fill()
-  }
-
-  drawView(box, style) {
-    const ctx = this.ctx
-    const {
-      left: x, top: y, width: w, height: h
-    } = box
-    const {
-      borderRadius = 0,
-      borderWidth = 0,
-      borderColor,
-      color = '#000',
-      backgroundColor = 'transparent',
-    } = style
-    ctx.save()
-    // 外环
-    if (borderWidth > 0) {
-      ctx.fillStyle = borderColor || color
-      this.roundRect(x, y, w, h, borderRadius)
-    }
-
-    // 内环
-    ctx.fillStyle = backgroundColor
-    const innerWidth = w - 2 * borderWidth
-    const innerHeight = h - 2 * borderWidth
-    const innerRadius = borderRadius - borderWidth >= 0 ? borderRadius - borderWidth : 0
-    this.roundRect(x + borderWidth, y + borderWidth, innerWidth, innerHeight, innerRadius)
-    ctx.restore()
-  }
-
-  async drawImage(img, box, style) {
-    await new Promise((resolve, reject) => {
-      const ctx = this.ctx
-      const canvas = this.canvas
-
-      const {
-        borderRadius = 0
-      } = style
-      const {
-        left: x, top: y, width: w, height: h
-      } = box
-      ctx.save()
-      this.roundRect(x, y, w, h, borderRadius, false, false)
-      ctx.clip()
-
-      const _drawImage = (img) => {
-        if (this.use2dCanvas) {
-          const Image = canvas.createImage()
-          Image.onload = () => {
-            ctx.drawImage(Image, x, y, w, h)
-            ctx.restore()
-            resolve()
-          }
-          Image.onerror = () => { reject(new Error(`createImage fail: ${img}`)) }
-          Image.src = img
-        } else {
-          ctx.drawImage(img, x, y, w, h)
-          ctx.restore()
-          resolve()
-        }
-      }
-
-      const isTempFile = /^wxfile:\/\//.test(img)
-      const isNetworkFile = /^https?:\/\//.test(img)
-
-      if (isTempFile) {
-        _drawImage(img)
-      } else if (isNetworkFile) {
-        wx.downloadFile({
-          url: img,
-          success(res) {
-            if (res.statusCode === 200) {
-              _drawImage(res.tempFilePath)
-            } else {
-              reject(new Error(`downloadFile:fail ${img}`))
-            }
-          },
-          fail() {
-            reject(new Error(`downloadFile:fail ${img}`))
-          }
-        })
-      } else {
-        reject(new Error(`image format error: ${img}`))
-      }
-    })
-  }
-
-  // eslint-disable-next-line complexity
-  drawText(text, box, style) {
-    const ctx = this.ctx
-    let {
-      left: x, top: y, width: w, height: h
-    } = box
-    let {
-      color = '#000',
-      lineHeight = '1.4em',
-      fontSize = 14,
-      textAlign = 'left',
-      verticalAlign = 'top',
-      backgroundColor = 'transparent'
-    } = style
-
-    if (typeof lineHeight === 'string') { // 2em
-      lineHeight = Math.ceil(parseFloat(lineHeight.replace('em')) * fontSize)
-    }
-    if (!text || (lineHeight > h)) return
-
-    ctx.save()
-    ctx.textBaseline = 'top'
-    ctx.font = `${fontSize}px sans-serif`
-    ctx.textAlign = textAlign
-
-    // 背景色
-    ctx.fillStyle = backgroundColor
-    this.roundRect(x, y, w, h, 0)
-
-    // 文字颜色
-    ctx.fillStyle = color
-
-    // 水平布局
-    switch (textAlign) {
-      case 'left':
-        break
-      case 'center':
-        x += 0.5 * w
-        break
-      case 'right':
-        x += w
-        break
-      default: break
-    }
-
-    const textWidth = ctx.measureText(text).width
-    const actualHeight = Math.ceil(textWidth / w) * lineHeight
-    let paddingTop = Math.ceil((h - actualHeight) / 2)
-    if (paddingTop < 0) paddingTop = 0
-
-    // 垂直布局
-    switch (verticalAlign) {
-      case 'top':
-        break
-      case 'middle':
-        y += paddingTop
-        break
-      case 'bottom':
-        y += 2 * paddingTop
-        break
-      default: break
-    }
-
-    const inlinePaddingTop = Math.ceil((lineHeight - fontSize) / 2)
-
-    // 不超过一行
-    if (textWidth <= w) {
-      ctx.fillText(text, x, y + inlinePaddingTop)
-      return
-    }
-
-    // 多行文本
-    const chars = text.split('')
-    const _y = y
-
-    // 逐行绘制
-    let line = ''
-    for (const ch of chars) {
-      const testLine = line + ch
-      const testWidth = ctx.measureText(testLine).width
-
-      if (testWidth > w) {
-        ctx.fillText(line, x, y + inlinePaddingTop)
-        y += lineHeight
-        line = ch
-        if ((y + lineHeight) > (_y + h)) break
-      } else {
-        line = testLine
-      }
-    }
-
-    // 避免溢出
-    if ((y + lineHeight) <= (_y + h)) {
-      ctx.fillText(line, x, y + inlinePaddingTop)
-    }
-    ctx.restore()
-  }
-
-  async drawNode(element) {
-    const {layoutBox, computedStyle, name} = element
-    const {src, text} = element.attributes
-    if (name === 'view') {
-      this.drawView(layoutBox, computedStyle)
-    } else if (name === 'image') {
-      await this.drawImage(src, layoutBox, computedStyle)
-    } else if (name === 'text') {
-      this.drawText(text, layoutBox, computedStyle)
-    }
-    const childs = Object.values(element.children)
-    for (const child of childs) {
-      await this.drawNode(child)
-    }
-  }
-}
-
-
-module.exports = {
-  Draw
-}
-
-
-/***/ })
-/******/ ]);
-});

+ 0 - 4
miniprogram/miniprogram_npm/wxml-to-canvas/index.json

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

+ 0 - 2
miniprogram/miniprogram_npm/wxml-to-canvas/index.wxml

@@ -1,2 +0,0 @@
-<canvas wx:if="{{use2dCanvas}}" id="weui-canvas" type="2d" style="width: {{width}}px; height: {{height}}px;"></canvas>
-<canvas wx:else canvas-id="weui-canvas" style="width: {{width}}px; height: {{height}}px;"></canvas>

+ 0 - 0
miniprogram/miniprogram_npm/wxml-to-canvas/index.wxss


+ 0 - 57
miniprogram/miniprogram_npm/wxml-to-canvas/utils.js

@@ -1,57 +0,0 @@
-const hex = (color) => {
-  let result = null
-
-  if (/^#/.test(color) && (color.length === 7 || color.length === 9)) {
-    return color
-    // eslint-disable-next-line no-cond-assign
-  } else if ((result = /^(rgb|rgba)\((.+)\)/.exec(color)) !== null) {
-    return '#' + result[2].split(',').map((part, index) => {
-      part = part.trim()
-      part = index === 3 ? Math.floor(parseFloat(part) * 255) : parseInt(part, 10)
-      part = part.toString(16)
-      if (part.length === 1) {
-        part = '0' + part
-      }
-      return part
-    }).join('')
-  } else {
-    return '#00000000'
-  }
-}
-
-const splitLineToCamelCase = (str) => str.split('-').map((part, index) => {
-  if (index === 0) {
-    return part
-  }
-  return part[0].toUpperCase() + part.slice(1)
-}).join('')
-
-const compareVersion = (v1, v2) => {
-  v1 = v1.split('.')
-  v2 = v2.split('.')
-  const len = Math.max(v1.length, v2.length)
-  while (v1.length < len) {
-    v1.push('0')
-  }
-  while (v2.length < len) {
-    v2.push('0')
-  }
-  for (let i = 0; i < len; i++) {
-    const num1 = parseInt(v1[i], 10)
-    const num2 = parseInt(v2[i], 10)
-
-    if (num1 > num2) {
-      return 1
-    } else if (num1 < num2) {
-      return -1
-    }
-  }
-
-  return 0
-}
-
-module.exports = {
-  hex,
-  splitLineToCamelCase,
-  compareVersion
-}

+ 0 - 13
miniprogram/package.json

@@ -10,18 +10,5 @@
   "author": "",
   "license": "ISC",
   "dependencies": {
-    "@miniprogram-component-plus/col": "^1.0.0",
-    "@miniprogram-component-plus/emoji": "^1.0.1",
-    "@miniprogram-component-plus/index-list": "^1.0.0",
-    "@miniprogram-component-plus/row": "^1.0.0",
-    "@miniprogram-component-plus/select-text": "^1.0.1",
-    "@miniprogram-component-plus/sticky": "^1.0.0",
-    "@miniprogram-component-plus/tabs": "^1.0.0",
-    "@miniprogram-component-plus/video-swiper": "^1.0.1",
-    "@miniprogram-component-plus/vtabs": "^1.0.0",
-    "@miniprogram-component-plus/vtabs-content": "^1.0.0",
-    "miniprogram-barrage": "^1.1.0",
-    "miniprogram-recycle-view": "^0.1.5",
-    "wxml-to-canvas": "^1.1.1"
   }
 }

+ 0 - 3
miniprogram/packageAPI/pages/api/subscribe-message/subscribe-message.json

@@ -1,3 +0,0 @@
-{
-  "usingComponents": {}
-}

+ 0 - 79
miniprogram/packageAPI/pages/framework/two-way-bindings/two-way-bindings.js

@@ -1,79 +0,0 @@
-// miniprogram/page/API/pages/two-way-bindings/two-way-bindings.js
-Page({
-
-  /**
-   * 页面的初始数据
-   */
-  data: {
-    theme: 'light',
-    value: '',
-  },
-
-  /**
-   * 生命周期函数--监听页面加载
-   */
-  onLoad() {
-    this.setData({
-      theme: wx.getSystemInfoSync().theme || 'light'
-    })
-
-    if (wx.onThemeChange) {
-      wx.onThemeChange(({theme}) => {
-        this.setData({theme})
-      })
-    }
-
-  },
-
-  /**
-   * 生命周期函数--监听页面初次渲染完成
-   */
-  onReady() {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面显示
-   */
-  onShow() {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面隐藏
-   */
-  onHide() {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面卸载
-   */
-  onUnload() {
-
-  },
-
-  /**
-   * 页面相关事件处理函数--监听用户下拉动作
-   */
-  onPullDownRefresh() {
-
-  },
-
-  /**
-   * 页面上拉触底事件的处理函数
-   */
-  onReachBottom() {
-
-  },
-
-  /**
-   * 用户点击右上角分享
-   */
-  onShareAppMessage() {
-    return {
-      title: '双向绑定',
-      path: 'packageAPI/pages/framework/make-phone-call/make-phone-call'
-    }
-  },
-})

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff