diff --git a/packages/uploader/src/main.vue b/packages/uploader/src/main.vue
index ea5d5c5a0..9c0ad2c53 100644
--- a/packages/uploader/src/main.vue
+++ b/packages/uploader/src/main.vue
@@ -18,6 +18,7 @@
default: false
},
beforeRead: Function,
+ afterRead: Function,
resultType: {
type: String,
default: 'dataUrl',
@@ -37,7 +38,7 @@
if (this.beforeRead && !this.beforeRead(file)) return;
var reader = new FileReader();
reader.onload = (e) => {
- this.$emit('file-readed',
+ this.afterRead && this.afterRead(
{
name: file.name,
type: file.type,
diff --git a/packages/zanui-css/assets/icons.sketch b/packages/zanui-css/assets/icons.sketch
index 77a1b3e2b..6040a80f9 100644
Binary files a/packages/zanui-css/assets/icons.sketch and b/packages/zanui-css/assets/icons.sketch differ
diff --git a/packages/zanui-css/package.json b/packages/zanui-css/package.json
index 80c7e77dc..4a829cd41 100644
--- a/packages/zanui-css/package.json
+++ b/packages/zanui-css/package.json
@@ -1,6 +1,6 @@
{
"name": "@youzan/zanui-css",
- "version": "0.0.47",
+ "version": "0.0.50",
"description": "zanui css.",
"main": "lib/index.css",
"style": "lib/index.css",
diff --git a/packages/zanui-css/scripts/build.sh b/packages/zanui-css/scripts/build.sh
index d2aa91528..5d3ca5d89 100644
--- a/packages/zanui-css/scripts/build.sh
+++ b/packages/zanui-css/scripts/build.sh
@@ -14,7 +14,7 @@ command_exists () {
fontname() {
if command_exists superman ; then
- echo "//b.yzcdn.cn$server_prefix/$(basename $basepath/../build/font/zanui-icon-*.$1)"
+ echo "https://b.yzcdn.cn$server_prefix/$(basename $basepath/../build/font/zanui-icon-*.$1)"
else
echo "$(abspath $basepath/../build/font/zanui-icon-*.$1)"
fi
diff --git a/packages/zanui-css/scripts/fount-config.js b/packages/zanui-css/scripts/fount-config.js
index a472a4ad2..f0bf9e89c 100644
--- a/packages/zanui-css/scripts/fount-config.js
+++ b/packages/zanui-css/scripts/fount-config.js
@@ -66,7 +66,8 @@ module.exports = {
{
keywords: ['chat'],
src: '客服.svg',
- css: 'chat'
+ css: 'chat',
+ 'correct_contour_direction': true
},
{
keywords: ['shop'],
@@ -142,6 +143,12 @@ module.exports = {
keywords: ['fail'],
src: '失败.svg',
css: 'fail'
+ },
+ {
+ keywords: ['contact'],
+ src: '联系人.svg',
+ css: 'contact',
+ 'correct_contour_direction': true
}
]
};
diff --git a/packages/zanui-css/src/badge.css b/packages/zanui-css/src/badge.css
index 6c88ba3e3..e31774330 100644
--- a/packages/zanui-css/src/badge.css
+++ b/packages/zanui-css/src/badge.css
@@ -2,70 +2,76 @@
@import './mixins/border_retina.css';
@component-namespace zan {
- @b badge-group {
- position: relative;
- width: 85px;
- &::after {
- @mixin border-retina (top);
- }
+ @b badge-group {
+ position: relative;
+ width: 85px;
+ &::after {
+ @mixin border-retina (top);
}
- @b badge {
+ }
+
+ @b badge {
+ display: block;
+ overflow: hidden;
+ position: relative;
+ padding: 20px 12px;
+ box-sizing: border-box;
+ line-height: 1.4;
+ background-color: $c-background;
+ color: $c-gray-darker;
+ font-size: 14px;
+ text-decoration: none;
+ word-break: break-all;
+
+ @m select {
+ font-weight: bold;
+ color: $c-black;
+ background-color: $c-white;
+ .zan-badge__active {
display: block;
- overflow: hidden;
- position: relative;
- padding: 20px 12px;
- box-sizing: border-box;
- line-height: 1.4;
- background-color: $c-background;
- color: $c-gray-darker;
- font-size: 14px;
- text-decoration: none;
- word-break: break-all;
- @e active {
- display: none;
- position: absolute;
- left: 0;
- top: 0;
- width: 3px;
- height: 100%;
- background-color: #FF4444;
- }
- @e info {
- position: absolute;
- top: 2px;
- right: 2px;
- font-size: 10px;
- transform:scale(0.8);
- text-align: center;
- box-sizing: border-box;
- padding: 0 6px;
- min-width: 18px;
- height: 18px;
- line-height: 18px;
- border-radius: 9px;
- background-color: #FF4444;
- color: $c-white;
- }
- @when select {
- font-weight: bold;
- color: $c-black;
- background-color: $c-white;
- .zan-badge__active {
- display: block;
- }
- &::after {
- @mixin border-retina (top);
- @mixin border-retina (right);
- @mixin border-retina (left);
- }
- }
- &::after {
- @mixin border-retina (bottom);
- }
- &:last-child {
- &::after {
- border-bottom: 0;
- }
- }
+ }
+ &::after {
+ @mixin border-retina (top);
+ @mixin border-retina (right);
+ @mixin border-retina (left);
+ }
}
+
+ @e active {
+ display: none;
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 3px;
+ height: 100%;
+ background-color: #FF4444;
+ }
+
+ @e info {
+ position: absolute;
+ top: 2px;
+ right: 2px;
+ font-size: 10px;
+ transform:scale(0.8);
+ text-align: center;
+ box-sizing: border-box;
+ padding: 0 6px;
+ min-width: 18px;
+ height: 18px;
+ line-height: 18px;
+ border-radius: 9px;
+ background-color: #FF4444;
+ color: $c-white;
+ }
+
+ &::after {
+ @mixin border-retina (bottom);
+ }
+
+ &:last-child {
+ &::after {
+ border-bottom: 0;
+ }
+ }
+ }
}
diff --git a/packages/zanui-css/src/card.css b/packages/zanui-css/src/card.css
index 95d722c9d..9939d734a 100644
--- a/packages/zanui-css/src/card.css
+++ b/packages/zanui-css/src/card.css
@@ -15,7 +15,7 @@
@e img {
width: 90px;
- height: 90px;
+ height: auto;
border: 0;
position: absolute;
top: 5px;
@@ -26,7 +26,7 @@
display: table;
width: 100%;
- @when center {
+ @m center {
display: table;
height: 90px;
diff --git a/packages/zanui-css/src/cell.css b/packages/zanui-css/src/cell.css
index 4f763f920..b29e716c4 100644
--- a/packages/zanui-css/src/cell.css
+++ b/packages/zanui-css/src/cell.css
@@ -1,5 +1,6 @@
@import './common/var.css';
@import './mixins/border_retina.css';
+@import './icon.css';
@component-namespace zan {
@b cell-group {
diff --git a/packages/zanui-css/src/icon.css b/packages/zanui-css/src/icon.css
index 1c0816e45..ebfb073bd 100644
--- a/packages/zanui-css/src/icon.css
+++ b/packages/zanui-css/src/icon.css
@@ -2,11 +2,11 @@
@font-face {
font-family: 'zan-icon';
- src: url('//b.yzcdn.cn/zanui/icon/zanui-icon-d64cb2f719.eot');
- src: url('//b.yzcdn.cn/zanui/icon/zanui-icon-d64cb2f719.eot?#iefix') format('embedded-opentype'),
- url('//b.yzcdn.cn/zanui/icon/zanui-icon-d64cb2f719.woff2') format('woff2'),
- url('//b.yzcdn.cn/zanui/icon/zanui-icon-d64cb2f719.woff') format('woff'),
- url('//b.yzcdn.cn/zanui/icon/zanui-icon-d64cb2f719.ttf') format('truetype')
+ src: url('https://b.yzcdn.cn/zanui/icon/zanui-icon-55de83a2f0.eot');
+ src: url('https://b.yzcdn.cn/zanui/icon/zanui-icon-55de83a2f0.eot?#iefix') format('embedded-opentype'),
+ url('https://b.yzcdn.cn/zanui/icon/zanui-icon-55de83a2f0.woff2') format('woff2'),
+ url('https://b.yzcdn.cn/zanui/icon/zanui-icon-55de83a2f0.woff') format('woff'),
+ url('https://b.yzcdn.cn/zanui/icon/zanui-icon-55de83a2f0.ttf') format('truetype')
}
.zan-icon {
@@ -72,4 +72,5 @@
.zan-icon-search:before { content: '\e816'; } /* '' */
.zan-icon-clear:before { content: '\e817'; } /* '' */
.zan-icon-success:before { content: '\e818'; } /* '' */
-.zan-icon-fail:before { content: '\e819'; } /* '' */
\ No newline at end of file
+.zan-icon-fail:before { content: '\e819'; } /* '' */
+.zan-icon-contact:before { content: '\e81a'; } /* '' */
\ No newline at end of file
diff --git a/packages/zanui-css/src/image_preview.css b/packages/zanui-css/src/image_preview.css
index eb47d8b12..9d78c4384 100644
--- a/packages/zanui-css/src/image_preview.css
+++ b/packages/zanui-css/src/image_preview.css
@@ -1,3 +1,5 @@
+@import './swipe.css';
+
@component-namespace zan {
@b image-preview {
position: fixed;
@@ -9,18 +11,24 @@
@e image {
display: block;
- width: 100%;
- height: auto;
- transition: .2s ease-out;
position: absolute;
left: 0;
@m center {
+ width: 100%;
+ height: auto;
top: 50%;
transform: translate3d(0, -50%, 0);
}
}
+ .zan-image-preview__image--big {
+ height: 100%;
+ width: auto;
+ left: 50%;
+ transform: translate3d(-50%, 0, 0);
+ }
+
.zan-swipe {
height: 100%;
}
diff --git a/packages/zanui-css/src/search.css b/packages/zanui-css/src/search.css
index f97abffba..e2a2c2860 100644
--- a/packages/zanui-css/src/search.css
+++ b/packages/zanui-css/src/search.css
@@ -1,69 +1,61 @@
@import './common/var.css';
+@import './icon.css';
@component-namespace zan {
- @b search {
- display: flex;
- flex-direction: row;
- justify-content: space-around;
- align-items: center;
- position: relative;
- box-sizing: border-box;
- padding: 4px 15px;
- background-color: #F2F2F2;
+ @b search {
+ position: relative;
+ box-sizing: border-box;
+ padding: 4px 15px;
+ background-color: #F2F2F2;
- @m focus {
- .zan-search__input-wrap {
- width: 82%;
- }
- .zan-icon-clear {
- display: inline-block;
- }
- }
-
- @e input-wrap {
- position: relative;
- width: 90%;
- padding: 8px 24px 8px 35px;
- border: 1px solid $c-gray-light;
- border-radius: 4px;
- background-color: $c-white;
-
- input {
- width: 100%;
- height: 14px;
- font-size: 14px;
- color: $c-gray-dark;
- border: none;
- outline: none;
- }
- }
-
- @e cancel {
- display: none;
- color: #44BB00;
- font-size: 14px;
- white-space: nowrap;
- margin-left: 5px;
-
- @m focus {
- display: block;
- }
- }
-
- .zan-icon-search {
- color: $c-gray-darker;
- position: absolute;
- top: 9px;
- left: 10px;
- font-size: 16px;
- }
-
- .zan-icon-clear {
- display: none;
- position: absolute;
- right: 5px;
- top: 8px;
- color: #888;
- }
+ @m focus {
+ padding-right: 50px;
}
+
+ @e input-wrap {
+ position: relative;
+ padding: 8px 24px 8px 35px;
+ border: 1px solid $c-gray-light;
+ border-radius: 4px;
+ background-color: $c-white;
+ }
+
+ @e input {
+ display: block;
+ width: 100%;
+ height: 14px;
+ font-size: 14px;
+ color: $c-gray-dark;
+ border: none;
+ outline: none;
+ }
+
+ @e cancel {
+ position: absolute;
+ line-height: 34px;
+ padding: 4px 0;
+ top: 0;
+ right: 10px;
+ font-size: 14px;
+ color: $c-green;
+ }
+
+ .zan-icon-search {
+ color: $c-gray-darker;
+ position: absolute;
+ top: 8px;
+ left: 10px;
+ font-size: 16px;
+ line-height: 1;
+ }
+
+ .zan-icon-clear {
+ font-size: 14px;
+ line-height: 1;
+ position: absolute;
+ right: 5px;
+ top: 9px;
+ color: #888;
+ }
+ }
}
\ No newline at end of file
diff --git a/packages/zanui-css/src/steps.css b/packages/zanui-css/src/steps.css
index 684a1a25d..87e2cb72a 100644
--- a/packages/zanui-css/src/steps.css
+++ b/packages/zanui-css/src/steps.css
@@ -1,5 +1,6 @@
@import './common/var.css';
@import './mixins/ellipsis.css';
+@import './icon.css';
@component-namespace zan {
@b steps {
@@ -20,12 +21,15 @@
}
@e icon {
- font-size: 40px;
- line-height: 1;
float: left;
margin-right: 10px;
}
+ .zan-icon {
+ font-size: 40px;
+ line-height: 1;
+ }
+
@e message {
display: table;
height: 40px;
@@ -53,8 +57,12 @@
@e items {
margin: 0 0 10px;
overflow: hidden;
- padding-bottom: 20px;
position: relative;
+ padding-bottom: 20px;
+
+ @m alone {
+ padding-top: 10px;
+ }
}
}
diff --git a/packages/zanui-css/src/tab.css b/packages/zanui-css/src/tab.css
index bc552a6be..b3fe3896a 100644
--- a/packages/zanui-css/src/tab.css
+++ b/packages/zanui-css/src/tab.css
@@ -53,9 +53,7 @@
border-radius: 2px;
border: 1px solid #666666;
overflow: hidden;
- .zan-tabs__nav-bar {
- display: none;
- }
+
.zan-tab {
color: #666666;
line-height: 28px;
diff --git a/packages/zanui-css/src/tag.css b/packages/zanui-css/src/tag.css
index e3d656ebc..45ad0277f 100644
--- a/packages/zanui-css/src/tag.css
+++ b/packages/zanui-css/src/tag.css
@@ -23,6 +23,7 @@
&::after {
border-color: $c-green;
}
+
@when plain {
color: $c-green;
}
@@ -34,6 +35,7 @@
&::after {
border-color: $button-danger-background-color;
}
+
@when plain {
color: $button-danger-background-color;
}
@@ -45,6 +47,7 @@
&::after {
border-color: $c-blue;
}
+
@when plain {
color: $c-blue;
}
diff --git a/packages/zanui-css/src/toast.css b/packages/zanui-css/src/toast.css
index d59361425..0ee5f2477 100644
--- a/packages/zanui-css/src/toast.css
+++ b/packages/zanui-css/src/toast.css
@@ -44,9 +44,13 @@
}
.zan-toast__text {
- padding-bottom: 20px;
+ padding: 15px 0 20px;
font-size: 14px;
}
}
}
}
+
+.zan-toast-fade-enter, .zan-toast-fade-leave-active {
+ opacity: 0;
+}
diff --git a/src/index.js b/src/index.js
index c3876a2c2..cb3014607 100644
--- a/src/index.js
+++ b/src/index.js
@@ -80,7 +80,7 @@ if (typeof window !== 'undefined' && window.Vue) {
module.exports = {
install,
- version: '0.0.47',
+ version: '0.0.50',
Button,
Switch,
Field,
diff --git a/src/mixins/popup/index.js b/src/mixins/popup/index.js
index acb441b97..4ecc1e418 100644
--- a/src/mixins/popup/index.js
+++ b/src/mixins/popup/index.js
@@ -1,27 +1,6 @@
-import Vue from 'vue';
import merge from 'src/utils/merge';
import PopupManager from './popup-manager';
-
-let popupContext;
-if (!window.popupContext) {
- popupContext = window.popupContext = {
- idSeed: 1,
- zIndex: 2000,
- hasModal: false,
- instances: {},
- modalStack: []
- };
-} else {
- popupContext = window.popupContext;
-}
-
-const getDOM = function(dom) {
- if (dom.nodeType === 3) {
- dom = dom.nextElementSibling || dom.nextSibling;
- getDOM(dom);
- }
- return dom;
-};
+import PopupContext from './popup-context';
export default {
props: {
@@ -70,8 +49,8 @@ export default {
},
beforeMount() {
- this._popupId = 'popup-' + popupContext.idSeed++;
- PopupManager.register(this._popupId, this, popupContext);
+ this._popupId = 'popup-' + PopupContext.plusKeyByOne('idSeed');
+ PopupManager.register(this._popupId, this);
},
data() {
@@ -94,13 +73,12 @@ export default {
this.$emit('input', true);
- const dom = getDOM(this.$el);
const props = merge({}, this, options);
const zIndex = props.zIndex;
// 如果属性中传入了`zIndex`,则覆盖`popupContext`中对应的`zIndex`
if (zIndex) {
- popupContext.zIndex = zIndex;
+ PopupContext.setContext('zIndex', zIndex);
}
// 如果显示遮罩层
@@ -109,7 +87,7 @@ export default {
PopupManager.closeModal(this._popupId);
this.closing = false;
}
- PopupManager.openModal(this._popupId, PopupManager.nextZIndex(), dom);
+ PopupManager.openModal(this._popupId, PopupManager.nextZIndex(), this.$el);
// 如果滚动时需要锁定
if (this.lockOnScroll) {
@@ -118,11 +96,11 @@ export default {
this.bodyOverflow = document.body.style.overflow;
}
- document.body.style.overlay = 'hidden';
+ document.body.style.overflow = 'hidden';
}
}
- dom.style.zIndex = PopupManager.nextZIndex();
+ this.$el.style.zIndex = PopupManager.nextZIndex();
this.opened = true;
this.opening = false;
},
@@ -139,7 +117,7 @@ export default {
if (this.lockOnScroll) {
setTimeout(() => {
- if (this.modal && this.bodyOverflow !== 'hidden') {
+ if (this.overlay && this.bodyOverflow !== 'hidden') {
document.body.style.overflow = this.bodyOverflow;
}
this.bodyOverflow = null;
@@ -160,7 +138,7 @@ export default {
PopupManager.deregister(this._popupId);
PopupManager.closeModal(this._popupId);
- if (this.modal && this.bodyOverflow !== null && this.bodyOverflow !== 'hidden') {
+ if (this.overlay && this.bodyOverflow !== null && this.bodyOverflow !== 'hidden') {
document.body.style.overflow = this.bodyOverflow;
}
this.bodyOverflow = null;
diff --git a/src/mixins/popup/popup-context.js b/src/mixins/popup/popup-context.js
new file mode 100644
index 000000000..4c6fe55eb
--- /dev/null
+++ b/src/mixins/popup/popup-context.js
@@ -0,0 +1,35 @@
+import merge from 'src/utils/merge';
+
+let context;
+if (window && window.popupContext) {
+ context = window.popupContext
+}
+
+const DEFAULT_CONTEXT = {
+ idSeed: 1,
+ zIndex: 2000,
+ hasModal: false,
+ instances: {},
+ modalStack: []
+}
+
+context = window.popupContext = merge({}, DEFAULT_CONTEXT, context);
+
+const PopupContext = {
+ getContext(key) {
+ return context[key];
+ },
+
+ setContext(key, value) {
+ context[key] = value;
+ },
+
+ plusKeyByOne(key) {
+ const oldVal = context[key];
+ context[key] = oldVal + 1;
+
+ return oldVal;
+ }
+};
+
+export default PopupContext;
diff --git a/src/mixins/popup/popup-manager.js b/src/mixins/popup/popup-manager.js
index 69b02de00..90d0bc05d 100644
--- a/src/mixins/popup/popup-manager.js
+++ b/src/mixins/popup/popup-manager.js
@@ -1,16 +1,16 @@
-import Vue from 'vue';
import { addClass } from 'src/utils/dom';
+import PopupContext from './popup-context';
const getModal = function() {
- let modalDom = window.popupContext && window.popupContext.modalDom;
+ let modalDom = PopupContext.getContext('modalDom');
if (modalDom) {
- window.popupContext.hasModal = true;
+ PopupContext.setContext('hasModal', true);
} else {
- window.popupContext.hasModal = false;
+ PopupContext.setContext('hasModal', false);
modalDom = document.createElement('div');
- window.popupContext.modalDom = modalDom;
+ PopupContext.setContext('modalDom', modalDom);
modalDom.addEventListener('touchmove', function(event) {
event.preventDefault();
@@ -27,24 +27,25 @@ const getModal = function() {
const PopupManager = {
nextZIndex() {
- return this.popupContext.zIndex++;
+ return PopupContext.plusKeyByOne('zIndex');
},
getInstance(id) {
- return this.popupContext.instances[id];
+ return PopupContext.getContext('instances')[id];
},
- register(id, instance, context) {
+ register(id, instance) {
if (id && instance) {
- this.popupContext = context;
- this.popupContext.instances[id] = instance;
+ let instances = PopupContext.getContext('instances');
+ instances[id] = instance;
}
},
deregister(id) {
if (id) {
- this.popupContext.instances[id] = null;
- delete this.popupContext.instances[id];
+ let instances = PopupContext.getContext('instances');
+ instances[id] = null;
+ delete instances[id];
}
},
@@ -52,7 +53,8 @@ const PopupManager = {
* 遮罩层点击回调,`closeOnClickOverlay`为`true`时会关闭当前`popup`
*/
handleOverlayClick() {
- const topModal = this.popupContext.modalStack[this.popupContext.modalStack.length - 1];
+ const modalStack = PopupContext.getContext('modalStack');
+ const topModal = modalStack[modalStack.length - 1];
if (!topModal) return;
const instance = PopupManager.getInstance(topModal.id);
@@ -64,7 +66,7 @@ const PopupManager = {
openModal(id, zIndex, dom) {
if (!id || zIndex === undefined) return;
- const modalStack = this.popupContext.modalStack;
+ const modalStack = PopupContext.getContext('modalStack');
for (let i = 0, len = modalStack.length; i < len; i++) {
const item = modalStack[i];
@@ -88,11 +90,11 @@ const PopupManager = {
}
modalDom.style.display = '';
- this.popupContext.modalStack.push({ id: id, zIndex: zIndex });
+ modalStack.push({ id: id, zIndex: zIndex });
},
closeModal(id) {
- const modalStack = this.popupContext.modalStack;
+ const modalStack = PopupContext.getContext('modalStack');
const modalDom = getModal();
if (modalStack.length > 0) {
diff --git a/yarn.lock b/yarn.lock
index 4a06ab450..b7d8f7414 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2887,7 +2887,7 @@ good-listener@^1.2.0:
dependencies:
delegate "^3.1.2"
-graceful-fs@4.1.10:
+graceful-fs@4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
version "4.1.10"
resolved "http://registry.npm.qima-inc.com/graceful-fs/download/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131"
@@ -2897,10 +2897,6 @@ graceful-fs@^3.0.0:
dependencies:
natives "^1.1.0"
-graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
- version "4.1.11"
- resolved "http://registry.npm.qima-inc.com/graceful-fs/download/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
-
graceful-fs@~1.2.0:
version "1.2.3"
resolved "http://registry.npm.qima-inc.com/graceful-fs/download/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
@@ -5452,14 +5448,10 @@ q-io@1.13.2:
qs "^1.2.1"
url2 "^0.0.0"
-q@1.4.1:
+q@1.4.1, q@^1.0.1, q@^1.1.2:
version "1.4.1"
resolved "http://registry.npm.qima-inc.com/q/download/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
-q@^1.0.1, q@^1.1.2:
- version "1.5.0"
- resolved "http://registry.npm.qima-inc.com/q/download/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
-
qjobs@^1.1.4:
version "1.1.5"
resolved "http://registry.npm.qima-inc.com/qjobs/download/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73"
@@ -6743,6 +6735,10 @@ vue-html-loader@^1.2.3:
loader-utils "^1.0.2"
object-assign "^4.1.0"
+vue-lazyload@^1.0.3:
+ version "1.0.3"
+ resolved "http://registry.npm.qima-inc.com/vue-lazyload/download/vue-lazyload-1.0.3.tgz#6bd881a5bf3c681e74e86190094cad104bc403fa"
+
vue-loader@^10.3.0:
version "10.3.0"
resolved "http://registry.npm.qima-inc.com/vue-loader/download/vue-loader-10.3.0.tgz#436421736e9ad0f1c481330327c376963db86a19"