diff --git a/src/empty/Network.tsx b/src/empty/Network.tsx
new file mode 100644
index 000000000..a6cedf812
--- /dev/null
+++ b/src/empty/Network.tsx
@@ -0,0 +1,125 @@
+export default {
+ render() {
+ const genStop = (color: string, offset: number, opacity?: number) => (
+
+ );
+
+ return (
+
+ );
+ },
+};
diff --git a/src/empty/index.js b/src/empty/index.js
index 8300e09cd..ef3e307a0 100644
--- a/src/empty/index.js
+++ b/src/empty/index.js
@@ -1,8 +1,9 @@
import { createNamespace } from '../utils';
+import Network from './Network';
const [createComponent, bem] = createNamespace('empty');
-const PRESETS = ['error', 'search', 'default', 'network'];
+const PRESETS = ['error', 'search', 'default'];
export default createComponent({
props: {
@@ -13,20 +14,29 @@ export default createComponent({
},
},
- computed: {
- url() {
- if (PRESETS.indexOf(this.image) !== -1) {
- return `https://img.yzcdn.cn/vant/empty-image-${this.image}.png`;
+ methods: {
+ genImageContent() {
+ const slots = this.slots('image');
+
+ if (slots) {
+ return slots;
}
- return this.image;
- },
- },
+ if (this.image === 'network') {
+ return ;
+ }
+
+ let { image } = this;
+
+ if (PRESETS.indexOf(image) !== -1) {
+ image = `https://img.yzcdn.cn/vant/empty-image-${image}.png`;
+ }
+
+ return
;
+ },
- methods: {
genImage() {
- const image = this.slots('image') ||
;
- return
{image}
;
+ return {this.genImageContent()}
;
},
genDescription() {
diff --git a/src/empty/test/__snapshots__/index.spec.js.snap b/src/empty/test/__snapshots__/index.spec.js.snap
index 3f2244c96..4484b79f0 100644
--- a/src/empty/test/__snapshots__/index.spec.js.snap
+++ b/src/empty/test/__snapshots__/index.spec.js.snap
@@ -1,5 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+exports[`bottom slot 1`] = `
+
+`;
+
exports[`description slot 1`] = `
@@ -12,3 +19,65 @@ exports[`image slot 1`] = `
Custom Image
`;
+
+exports[`render svg when image is network 1`] = `
+
+
+
+`;
diff --git a/src/empty/test/index.spec.js b/src/empty/test/index.spec.js
index 7dd7cb4ff..54d3d4438 100644
--- a/src/empty/test/index.spec.js
+++ b/src/empty/test/index.spec.js
@@ -20,3 +20,23 @@ test('description slot', () => {
expect(wrapper).toMatchSnapshot();
});
+
+test('bottom slot', () => {
+ const wrapper = mount(Empty, {
+ scopedSlots: {
+ default: () => 'Custom bottom',
+ },
+ });
+
+ expect(wrapper).toMatchSnapshot();
+});
+
+test('render svg when image is network', () => {
+ const wrapper = mount(Empty, {
+ propsData: {
+ image: 'network',
+ },
+ });
+
+ expect(wrapper).toMatchSnapshot();
+});
diff --git a/yarn.lock b/yarn.lock
index 0cb675f51..2c47c9afa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1561,40 +1561,40 @@
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@^2.16.0":
- version "2.22.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.22.0.tgz#218ce6d4aa0244c6a40baba39ca1e021b26bb017"
- integrity sha512-BvxRLaTDVQ3N+Qq8BivLiE9akQLAOUfxNHIEhedOcg8B2+jY8Rc4/D+iVprvuMX1AdezFYautuGDwr9QxqSxBQ==
+"@typescript-eslint/eslint-plugin@^2.27.0":
+ version "2.28.0"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-2.28.0.tgz#4431bc6d3af41903e5255770703d4e55a0ccbdec"
+ integrity sha1-RDG8bTr0GQPlJVdwcD1OVaDMvew=
dependencies:
- "@typescript-eslint/experimental-utils" "2.22.0"
- eslint-utils "^1.4.3"
+ "@typescript-eslint/experimental-utils" "2.28.0"
functional-red-black-tree "^1.0.1"
regexpp "^3.0.0"
tsutils "^3.17.1"
-"@typescript-eslint/experimental-utils@2.22.0":
- version "2.22.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.22.0.tgz#4d00c91fbaaa68e56e7869be284999a265707f85"
- integrity sha512-sJt1GYBe6yC0dWOQzXlp+tiuGglNhJC9eXZeC8GBVH98Zv9jtatccuhz0OF5kC/DwChqsNfghHx7OlIDQjNYAQ==
+"@typescript-eslint/experimental-utils@2.28.0":
+ version "2.28.0"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-2.28.0.tgz#1fd0961cd8ef6522687b4c562647da6e71f8833d"
+ integrity sha1-H9CWHNjvZSJoe0xWJkfabnH4gz0=
dependencies:
"@types/json-schema" "^7.0.3"
- "@typescript-eslint/typescript-estree" "2.22.0"
+ "@typescript-eslint/typescript-estree" "2.28.0"
eslint-scope "^5.0.0"
+ eslint-utils "^2.0.0"
-"@typescript-eslint/parser@^2.16.0":
- version "2.22.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.22.0.tgz#8eeb6cb6de873f655e64153397d4790898e149d0"
- integrity sha512-FaZKC1X+nvD7qMPqKFUYHz3H0TAioSVFGvG29f796Nc5tBluoqfHgLbSFKsh7mKjRoeTm8J9WX2Wo9EyZWjG7w==
+"@typescript-eslint/parser@^2.27.0":
+ version "2.28.0"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/parser/download/@typescript-eslint/parser-2.28.0.tgz#bb761286efd2b0714761cab9d0ee5847cf080385"
+ integrity sha1-u3YShu/SsHFHYcq50O5YR88IA4U=
dependencies:
"@types/eslint-visitor-keys" "^1.0.0"
- "@typescript-eslint/experimental-utils" "2.22.0"
- "@typescript-eslint/typescript-estree" "2.22.0"
+ "@typescript-eslint/experimental-utils" "2.28.0"
+ "@typescript-eslint/typescript-estree" "2.28.0"
eslint-visitor-keys "^1.1.0"
-"@typescript-eslint/typescript-estree@2.22.0":
- version "2.22.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.22.0.tgz#a16ed45876abf743e1f5857e2f4a1c3199fd219e"
- integrity sha512-2HFZW2FQc4MhIBB8WhDm9lVFaBDy6h9jGrJ4V2Uzxe/ON29HCHBTj3GkgcsgMWfsl2U5as+pTOr30Nibaw7qRQ==
+"@typescript-eslint/typescript-estree@2.28.0":
+ version "2.28.0"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-2.28.0.tgz#d34949099ff81092c36dc275b6a1ea580729ba00"
+ integrity sha1-00lJCZ/4EJLDbcJ1tqHqWAcpugA=
dependencies:
debug "^4.1.1"
eslint-visitor-keys "^1.1.0"
@@ -1672,15 +1672,16 @@
webpackbar "^4.0.0"
"@vant/eslint-config@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@vant/eslint-config/-/eslint-config-2.0.0.tgz#cbfc1daaa42c5ffcf9fa4341d867149737986967"
- integrity sha512-W6v4gNieMTGOGWSJVuSSdYjHy3giELbJibFlCMuCGK8VE8MFMSwz2M/riG/NxEOoKx51J1MVH9rFy3lvWuMH6g==
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/@vant/eslint-config/download/@vant/eslint-config-2.1.0.tgz#736cb273ac279a44ab54a922dfd9b21fd8883308"
+ integrity sha1-c2yyc6wnmkSrVKki39myH9iIMwg=
dependencies:
- "@typescript-eslint/eslint-plugin" "^2.16.0"
- "@typescript-eslint/parser" "^2.16.0"
- eslint-config-airbnb-base "^14.0.0"
- eslint-plugin-import "^2.20.0"
- eslint-plugin-vue "^6.1.2"
+ "@typescript-eslint/eslint-plugin" "^2.27.0"
+ "@typescript-eslint/parser" "^2.27.0"
+ eslint-config-airbnb-base "^14.1.0"
+ eslint-config-prettier "^6.10.1"
+ eslint-plugin-import "^2.20.2"
+ eslint-plugin-vue "^6.2.2"
"@vant/icons@1.2.1":
version "1.2.1"
@@ -3357,10 +3358,10 @@ configstore@^5.0.1:
write-file-atomic "^3.0.0"
xdg-basedir "^4.0.0"
-confusing-browser-globals@^1.0.7:
+confusing-browser-globals@^1.0.9:
version "1.0.9"
- resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd"
- integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==
+ resolved "https://registry.npm.taobao.org/confusing-browser-globals/download/confusing-browser-globals-1.0.9.tgz?cache=0&sync_timestamp=1575504220073&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconfusing-browser-globals%2Fdownload%2Fconfusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd"
+ integrity sha1-crwTtIPAJ2gBaBhx1ImFFvj1T90=
connect-history-api-fallback@^1.6.0:
version "1.6.0"
@@ -4379,14 +4380,21 @@ escodegen@^1.11.1:
optionalDependencies:
source-map "~0.6.1"
-eslint-config-airbnb-base@^14.0.0:
- version "14.0.0"
- resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz#8a7bcb9643d13c55df4dd7444f138bf4efa61e17"
- integrity sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA==
+eslint-config-airbnb-base@^14.1.0:
+ version "14.1.0"
+ resolved "https://registry.npm.taobao.org/eslint-config-airbnb-base/download/eslint-config-airbnb-base-14.1.0.tgz#2ba4592dd6843258221d9bff2b6831bd77c874e4"
+ integrity sha1-K6RZLdaEMlgiHZv/K2gxvXfIdOQ=
dependencies:
- confusing-browser-globals "^1.0.7"
+ confusing-browser-globals "^1.0.9"
object.assign "^4.1.0"
- object.entries "^1.1.0"
+ object.entries "^1.1.1"
+
+eslint-config-prettier@^6.10.1:
+ version "6.10.1"
+ resolved "https://registry.npm.taobao.org/eslint-config-prettier/download/eslint-config-prettier-6.10.1.tgz?cache=0&sync_timestamp=1584871515582&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-config-prettier%2Fdownload%2Feslint-config-prettier-6.10.1.tgz#129ef9ec575d5ddc0e269667bf09defcd898642a"
+ integrity sha1-Ep757FddXdwOJpZnvwne/NiYZCo=
+ dependencies:
+ get-stdin "^6.0.0"
eslint-import-resolver-node@^0.3.2:
version "0.3.3"
@@ -4404,10 +4412,10 @@ eslint-module-utils@^2.4.1:
debug "^2.6.9"
pkg-dir "^2.0.0"
-eslint-plugin-import@^2.20.0:
- version "2.20.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3"
- integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==
+eslint-plugin-import@^2.20.2:
+ version "2.20.2"
+ resolved "https://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d"
+ integrity sha1-kfw4B84Ivkg3FBJyyLmQc5BuWI0=
dependencies:
array-includes "^3.0.3"
array.prototype.flat "^1.2.1"
@@ -4422,10 +4430,10 @@ eslint-plugin-import@^2.20.0:
read-pkg-up "^2.0.0"
resolve "^1.12.0"
-eslint-plugin-vue@^6.1.2:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.1.tgz#ca802df5c33146aed1e56bb21d250c1abb6120a3"
- integrity sha512-MiIDOotoWseIfLIfGeDzF6sDvHkVvGd2JgkvjyHtN3q4RoxdAXrAMuI3SXTOKatljgacKwpNAYShmcKZa4yZzw==
+eslint-plugin-vue@^6.2.2:
+ version "6.2.2"
+ resolved "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-6.2.2.tgz?cache=0&sync_timestamp=1584178049037&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe"
+ integrity sha1-J/7NmjokeJsPER7N1UCp5WGY4P4=
dependencies:
natural-compare "^1.4.0"
semver "^5.6.0"
@@ -4454,6 +4462,13 @@ eslint-utils@^1.4.3:
dependencies:
eslint-visitor-keys "^1.1.0"
+eslint-utils@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd"
+ integrity sha1-e+HMcPJ6cqds0UqmmLyr7WiQ4c0=
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
eslint-visitor-keys@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
@@ -8200,10 +8215,10 @@ object.assign@^4.1.0:
has-symbols "^1.0.0"
object-keys "^1.0.11"
-object.entries@^1.1.0:
+object.entries@^1.1.1:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b"
- integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==
+ resolved "https://registry.npm.taobao.org/object.entries/download/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b"
+ integrity sha1-7hzwQVPeArsJP+wzaDkA9XzlOZs=
dependencies:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"