Commit ca502d38 authored by lixy's avatar lixy

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform-ui into base-modify

parents 32120521 5548eccd
...@@ -2821,8 +2821,8 @@ ...@@ -2821,8 +2821,8 @@
}, },
"dom7": { "dom7": {
"version": "2.1.3", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/dom7/-/dom7-2.1.3.tgz", "resolved": "https://registry.npm.taobao.org/dom7/download/dom7-2.1.3.tgz",
"integrity": "sha512-QTxHHDox+M6ZFz1zHPAHZKI3JOHY5iY4i9BK2uctlggxKQwRhO3q3HHFq1BKsT25Bm/ySSj70K6Wk/G4bs9rMQ==", "integrity": "sha1-pzb5w7+8TKA5qBzQlfl9HX894Zw=",
"dev": true, "dev": true,
"requires": { "requires": {
"ssr-window": "^1.0.1" "ssr-window": "^1.0.1"
...@@ -3911,8 +3911,7 @@ ...@@ -3911,8 +3911,7 @@
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true, "dev": true
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.1.1", "version": "1.1.1",
...@@ -3989,7 +3988,6 @@ ...@@ -3989,7 +3988,6 @@
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"inherits": "~2.0.0" "inherits": "~2.0.0"
} }
...@@ -3999,7 +3997,6 @@ ...@@ -3999,7 +3997,6 @@
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"hoek": "2.x.x" "hoek": "2.x.x"
} }
...@@ -4019,8 +4016,7 @@ ...@@ -4019,8 +4016,7 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
"integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
"dev": true, "dev": true
"optional": true
}, },
"caseless": { "caseless": {
"version": "0.12.0", "version": "0.12.0",
...@@ -4040,8 +4036,7 @@ ...@@ -4040,8 +4036,7 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"dev": true, "dev": true
"optional": true
}, },
"combined-stream": { "combined-stream": {
"version": "1.0.5", "version": "1.0.5",
...@@ -4064,15 +4059,13 @@ ...@@ -4064,15 +4059,13 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"dev": true, "dev": true
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true, "dev": true
"optional": true
}, },
"cryptiles": { "cryptiles": {
"version": "2.0.5", "version": "2.0.5",
...@@ -4155,8 +4148,7 @@ ...@@ -4155,8 +4148,7 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
"integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
"dev": true, "dev": true
"optional": true
}, },
"forever-agent": { "forever-agent": {
"version": "0.6.1", "version": "0.6.1",
...@@ -4181,15 +4173,13 @@ ...@@ -4181,15 +4173,13 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true, "dev": true
"optional": true
}, },
"fstream": { "fstream": {
"version": "1.0.11", "version": "1.0.11",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"graceful-fs": "^4.1.2", "graceful-fs": "^4.1.2",
"inherits": "~2.0.0", "inherits": "~2.0.0",
...@@ -4250,7 +4240,6 @@ ...@@ -4250,7 +4240,6 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
...@@ -4264,8 +4253,7 @@ ...@@ -4264,8 +4253,7 @@
"version": "4.1.11", "version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true, "dev": true
"optional": true
}, },
"har-schema": { "har-schema": {
"version": "1.0.5", "version": "1.0.5",
...@@ -4309,8 +4297,7 @@ ...@@ -4309,8 +4297,7 @@
"version": "2.16.3", "version": "2.16.3",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
"dev": true, "dev": true
"optional": true
}, },
"http-signature": { "http-signature": {
"version": "1.1.1", "version": "1.1.1",
...@@ -4329,7 +4316,6 @@ ...@@ -4329,7 +4316,6 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"once": "^1.3.0", "once": "^1.3.0",
"wrappy": "1" "wrappy": "1"
...@@ -4339,8 +4325,7 @@ ...@@ -4339,8 +4325,7 @@
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true, "dev": true
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.4", "version": "1.3.4",
...@@ -4354,7 +4339,6 @@ ...@@ -4354,7 +4339,6 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "1.0.1" "number-is-nan": "1.0.1"
} }
...@@ -4370,8 +4354,7 @@ ...@@ -4370,8 +4354,7 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true, "dev": true
"optional": true
}, },
"isstream": { "isstream": {
"version": "0.1.2", "version": "0.1.2",
...@@ -4472,7 +4455,6 @@ ...@@ -4472,7 +4455,6 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "1.1.7" "brace-expansion": "1.1.7"
} }
...@@ -4489,7 +4471,6 @@ ...@@ -4489,7 +4471,6 @@
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
...@@ -4569,7 +4550,6 @@ ...@@ -4569,7 +4550,6 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
...@@ -4603,8 +4583,7 @@ ...@@ -4603,8 +4583,7 @@
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true, "dev": true
"optional": true
}, },
"performance-now": { "performance-now": {
"version": "0.2.0", "version": "0.2.0",
...@@ -4617,8 +4596,7 @@ ...@@ -4617,8 +4596,7 @@
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
"dev": true, "dev": true
"optional": true
}, },
"punycode": { "punycode": {
"version": "1.4.1", "version": "1.4.1",
...@@ -4661,7 +4639,6 @@ ...@@ -4661,7 +4639,6 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
"integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"buffer-shims": "~1.0.0", "buffer-shims": "~1.0.0",
"core-util-is": "~1.0.0", "core-util-is": "~1.0.0",
...@@ -4708,7 +4685,6 @@ ...@@ -4708,7 +4685,6 @@
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
"integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"glob": "^7.0.5" "glob": "^7.0.5"
} }
...@@ -4717,8 +4693,7 @@ ...@@ -4717,8 +4693,7 @@
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
"integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=",
"dev": true, "dev": true
"optional": true
}, },
"semver": { "semver": {
"version": "5.3.0", "version": "5.3.0",
...@@ -4783,7 +4758,6 @@ ...@@ -4783,7 +4758,6 @@
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
...@@ -4795,7 +4769,6 @@ ...@@ -4795,7 +4769,6 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
"integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.0.1" "safe-buffer": "^5.0.1"
} }
...@@ -4812,7 +4785,6 @@ ...@@ -4812,7 +4785,6 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
...@@ -4829,7 +4801,6 @@ ...@@ -4829,7 +4801,6 @@
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"block-stream": "*", "block-stream": "*",
"fstream": "^1.0.2", "fstream": "^1.0.2",
...@@ -4891,8 +4862,7 @@ ...@@ -4891,8 +4862,7 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true, "dev": true
"optional": true
}, },
"uuid": { "uuid": {
"version": "3.0.1", "version": "3.0.1",
...@@ -4925,8 +4895,7 @@ ...@@ -4925,8 +4895,7 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true, "dev": true
"optional": true
} }
} }
}, },
...@@ -10562,8 +10531,8 @@ ...@@ -10562,8 +10531,8 @@
}, },
"ssr-window": { "ssr-window": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-1.0.1.tgz", "resolved": "https://registry.npm.taobao.org/ssr-window/download/ssr-window-1.0.1.tgz",
"integrity": "sha512-dgFqB+f00LJTEgb6UXhx0h+SrG50LJvti2yMKMqAgzfUmUXZrLSv2fjULF7AWGwK25EXu8+smLR3jYsJQChPsg==", "integrity": "sha1-MHUqakZm53Z/C35qpvwv29DZs2k=",
"dev": true "dev": true
}, },
"stackframe": { "stackframe": {
...@@ -10761,8 +10730,8 @@ ...@@ -10761,8 +10730,8 @@
}, },
"swiper": { "swiper": {
"version": "4.5.0", "version": "4.5.0",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-4.5.0.tgz", "resolved": "https://registry.npm.taobao.org/swiper/download/swiper-4.5.0.tgz",
"integrity": "sha512-jRCd/CGet9kaHwthHdd/sL/YU8CI157PWLyItnIcn/o/jP4haVky3zTF6f9F3JDpmQIw7jdWihISiYx0/oTHsg==", "integrity": "sha1-TYcL7E9avi+yWTJYSd0mQckkPA0=",
"dev": true, "dev": true,
"requires": { "requires": {
"dom7": "^2.1.3", "dom7": "^2.1.3",
......
...@@ -70,6 +70,17 @@ export function getAllVehicleList() { ...@@ -70,6 +70,17 @@ export function getAllVehicleList() {
method: 'get' method: 'get'
}); });
} }
/**
* 根据sort排序,获取全部车型
* */
export function getAllVehicleModelList() {
return fetch({
url: '/vehicle/vehicleModel/list',
method: 'get'
});
}
/** /**
* 车型标签是否多选 * 车型标签是否多选
*/ */
......
...@@ -96,6 +96,22 @@ Vue.directive('enterNumber', { ...@@ -96,6 +96,22 @@ Vue.directive('enterNumber', {
}); });
} }
}); });
Vue.directive('isNumber', {
inserted: function (el) {
el.addEventListener("keypress",function(e){
e = e || window.event;
let charcode = typeof e.charCode == 'number' ? e.charCode : e.keyCode;
let re = /\d/;
if(!re.test(String.fromCharCode(charcode)) && charcode > 9 && !e.ctrlKey){
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue = false;
}
}
});
}
});
// register global utility filters. // register global utility filters.
Object.keys(filters).forEach(key => { Object.keys(filters).forEach(key => {
......
...@@ -561,4 +561,32 @@ export const asyncRouterMap = [{ ...@@ -561,4 +561,32 @@ export const asyncRouterMap = [{
} }
] ]
} }
,
{
path: '/xxOfficialWebsite',
component: Layout,
name: '新欣房车官网管理',
icon: 'setting',
authority: 'xxOfficialWebsite',
children: [
{
path: 'activityList',
component: _import('xxOfficialWebsite/activityList'),
name: '活动管理',
authority: 'activityList'
},
{
path: 'newsList',
component: _import('xxOfficialWebsite/newsList'),
name: '新闻管理',
authority: 'newsList'
},
{
path: 'bannerList',
component: _import('xxOfficialWebsite/bannerList'),
name: 'banner管理',
authority: 'bannerList'
}
]
}
]; ];
...@@ -50,3 +50,298 @@ export function objDeepCopy(source) { ...@@ -50,3 +50,298 @@ export function objDeepCopy(source) {
} }
/*是否合法IP地址*/
export function validateIP(rule, value,callback) {
if(value==''||value==undefined||value==null){
callback();
}else {
const reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的IP地址'));
} else {
callback();
}
}
}
/* 是否手机号码或者固话*/
export function validatePhoneTwo(rule, value, callback) {
const reg = /^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/;;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的电话号码或者固话号码'));
} else {
callback();
}
}
}
/* 是否固话*/
export function validateTelphone(rule, value,callback) {
const reg =/0\d{2}-\d{7,8}/;
if(value==''||value==undefined||value==null){
callback();
}else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的固话(格式:区号+号码,如010-1234567)'));
} else {
callback();
}
}
}
/* 是否手机号码*/
export function validatePhone(rule, value,callback) {
const reg =/^[1][3,4,5,7,8][0-9]{9}$/;
if(value==''||value==undefined||value==null){
callback();
}else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的电话号码'));
} else {
callback();
}
}
}
/* 是否身份证号码*/
export function validateIdNo(rule, value,callback) {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(value==''||value==undefined||value==null){
callback();
}else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的身份证号码'));
} else {
callback();
}
}
}
/* 是否邮箱*/
export function validateEMail(rule, value,callback) {
const reg =/^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/;
if(value==''||value==undefined||value==null){
callback();
}else{
if (!reg.test(value)){
callback(new Error('请输入正确的邮箱地址'));
} else {
callback();
}
}
}
/*验证内容是否英文数字以及下划线*/
export function isPassword(rule, value, callback) {
const reg =/^[_a-zA-Z0-9]+$/;
if(value==''||value==undefined||value==null){
callback();
} else {
if (!reg.test(value)){
callback(new Error('密码仅由英文字母,数字以及下划线组成'));
} else {
callback();
}
}
}
/*自动检验数值的范围*/
export function checkMax20000(rule, value, callback) {
if (value == '' || value == undefined || value == null) {
callback();
} else if (!Number(value)) {
callback(new Error('请输入[1,20000]之间的数字'));
} else if (value < 1 || value > 20000) {
callback(new Error('请输入[1,20000]之间的数字'));
} else {
callback();
}
}
//验证数字输入框最大数值,32767
export function checkMaxVal(rule, value,callback) {
if (value < 0 || value > 32767) {
callback(new Error('请输入[0,32767]之间的数字'));
} else {
callback();
}
}
//验证是否1-99之间
export function isOneToNinetyNine(rule, value, callback) {
if (!value) {
return callback(new Error('输入不可以为空'));
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入正整数'));
} else {
const re = /^[1-9][0-9]{0,1}$/;
const rsCheck = re.test(value);
if (!rsCheck) {
callback(new Error('请输入正整数,值为【1,99】'));
} else {
callback();
}
}
}, 0);
}
// 验证是否整数
export function isInteger(rule, value, callback) {
if (!value) {
return callback(new Error('输入不可以为空'));
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入正整数'));
} else {
const re = /^[0-9]*[1-9][0-9]*$/;
const rsCheck = re.test(value);
if (!rsCheck) {
callback(new Error('请输入正整数'));
} else {
callback();
}
}
}, 0);
}
// 验证是否整数,非必填
export function isIntegerNotMust(rule, value, callback) {
if (!value) {
callback();
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入正整数'));
} else {
const re = /^[0-9]*[1-9][0-9]*$/;
const rsCheck = re.test(value);
if (!rsCheck) {
callback(new Error('请输入正整数'));
} else {
callback();
}
}
}, 1000);
}
// 验证是否是[0-1]的小数
export function isDecimal(rule, value, callback) {
if (!value) {
return callback(new Error('输入不可以为空'));
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入[0,1]之间的数字'));
} else {
if (value < 0 || value > 1) {
callback(new Error('请输入[0,1]之间的数字'));
} else {
callback();
}
}
}, 100);
}
// 验证是否是[1-10]的小数,即不可以等于0
export function isBtnOneToTen(rule, value, callback) {
if (typeof value == 'undefined') {
return callback(new Error('输入不可以为空'));
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入正整数,值为[1,10]'));
} else {
if (!(value == '1' || value == '2' || value == '3' || value == '4' || value == '5' || value == '6' || value == '7' || value == '8' || value == '9' || value == '10')) {
callback(new Error('请输入正整数,值为[1,10]'));
} else {
callback();
}
}
}, 100);
}
// 验证是否是[1-100]的小数,即不可以等于0
export function isBtnOneToHundred(rule, value, callback) {
if (!value) {
return callback(new Error('输入不可以为空'));
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入整数,值为[1,100]'));
} else {
if (value < 1 || value > 100) {
callback(new Error('请输入整数,值为[1,100]'));
} else {
callback();
}
}
}, 100);
}
// 验证是否是[0-100]的小数
export function isBtnZeroToHundred(rule, value, callback) {
if (!value) {
return callback(new Error('输入不可以为空'));
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入[1,100]之间的数字'));
} else {
if (value < 0 || value > 100) {
callback(new Error('请输入[1,100]之间的数字'));
} else {
callback();
}
}
}, 100);
}
// 验证端口是否在[0,65535]之间
export function isPort(rule, value, callback) {
if (!value) {
return callback(new Error('输入不可以为空'));
}
setTimeout(() => {
if (value == '' || typeof(value) == undefined) {
callback(new Error('请输入端口值'));
} else {
const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;
const rsCheck = re.test(value);
if (!rsCheck) {
callback(new Error('请输入在[0-65535]之间的端口值'));
} else {
callback();
}
}
}, 100);
}
// 验证端口是否在[0,65535]之间,非必填,isMust表示是否必填
export function isCheckPort(rule, value, callback) {
if (!value) {
callback();
}
setTimeout(() => {
if (value == '' || typeof(value) == undefined) {
//callback(new Error('请输入端口值'));
} else {
const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;
const rsCheck = re.test(value);
if (!rsCheck) {
callback(new Error('请输入在[0-65535]之间的端口值'));
} else {
callback();
}
}
}, 100);
}
/*保留2为小数*/
export function validatetoFixedNew(str) {
return str ;
}
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
<el-form-item label="会员等级"> <el-form-item label="会员等级">
<el-select class="filter-item" v-model="newMemberObject.memberLevel" placeholder="选择会员等级"> <el-select class="filter-item" v-model="newMemberObject.memberLevel" placeholder="选择会员等级">
<!-- <el-option :key="undefined" label="无" :value="undefined"></el-option>--> <!-- <el-option :key="undefined" label="无" :value="undefined"></el-option>-->
<el-option v-for="(val, key, index) in memberLevelist " :key="val.id" :label="val.name" <el-option v-for="(val, key, index) in memberLevelList " :key="val.id" :label="val.name"
:value="val.id"></el-option> :value="val.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -125,14 +125,14 @@ ...@@ -125,14 +125,14 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="免费天数" placeholder="免费天数" prop="totalNumber"> <el-form-item label="免费天数" placeholder="免费天数" prop="totalNumber">
<el-input size="small " type="text" v-model="newMemberObject.totalNumber" v-enterNumber></el-input> <el-input size="small " type="number" v-model="newMemberObject.totalNumber" min="0" v-enterNumber></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="剩余天数" placeholder="剩余天数" prop="rentFreeDays"> <el-form-item label="剩余天数" placeholder="剩余天数" prop="rentFreeDays">
<el-input size="small " type="text" v-model="newMemberObject.rentFreeDays" v-enterNumber></el-input> <el-input size="small " type="number" v-model="newMemberObject.rentFreeDays" min="0" v-enterNumber></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -196,6 +196,7 @@ ...@@ -196,6 +196,7 @@
import {formatDate} from "../../utils/dateFormattor"; import {formatDate} from "../../utils/dateFormattor";
import ElRow from "element-ui/packages/row/src/row"; import ElRow from "element-ui/packages/row/src/row";
import ElCol from "element-ui/packages/col/src/col"; import ElCol from "element-ui/packages/col/src/col";
import {getMembers} from "src/api/admin/member/index"
export default { export default {
components: { components: {
...@@ -214,7 +215,7 @@ ...@@ -214,7 +215,7 @@
id: undefined, id: undefined,
userId: undefined userId: undefined
}, },
memberLevelist: [{id: 1, name: '普通会员'}, {id: 2, name: '黄金会员'}, {id: 3, name: '钻石会员'}], memberLevelList: [],
saveUserId: undefined, saveUserId: undefined,
validityType: '无', validityType: '无',
userOrderMessage: {}, userOrderMessage: {},
...@@ -302,6 +303,7 @@ ...@@ -302,6 +303,7 @@
this.memberEnter_btn_del=this.elements['memberEnter:btn_del'];//删除 this.memberEnter_btn_del=this.elements['memberEnter:btn_del'];//删除
this.memberEnter_btn_addIn=this.elements['memberEnter:btn_addIn'];//批量上传 this.memberEnter_btn_addIn=this.elements['memberEnter:btn_addIn'];//批量上传
this.getList(); this.getList();
this. getMembersLevel()
} , } ,
computed: { computed: {
... ...
...@@ -316,6 +318,20 @@ ...@@ -316,6 +318,20 @@
}, },
}, },
methods: { methods: {
getMembersLevel() {
var _this = this;
getMembers().then(res => {
let members = res.data
// console.log('getMembersLevel:{}'+JSON.stringify(members))
// debugger
members.map(function (ele) {
_this.memberLevelList.push({id: ele.level, name: ele.name})
})
// console.log('this.queryMemberLevelList'+JSON.stringify(this.queryMemberLevelList))
}
)
},
/** /**
* 上传 * 上传
*/ */
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-form-item label="等级" prop="level"> <el-form-item label="等级" prop="level">
<el-input type="text" v-model="add.level" placeholder="请填会员等级"></el-input> <el-input type="number" min="0" v-model="add.level" placeholder="请填会员等级" v-enterNumber></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-form-item label="折扣" prop="discount"> <el-form-item label="折扣" prop="discount">
<el-input type="text" v-model="add.discount" <el-input type="number" min="0" v-model="add.discount"
placeholder="请填写折扣"></el-input> placeholder="请填写折扣"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -90,14 +90,14 @@ ...@@ -90,14 +90,14 @@
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-form-item label="免费天数" prop="number"> <el-form-item label="免费天数" prop="number">
<el-input type="text" v-model="add.number" placeholder="请填免费天数"></el-input> <el-input type="number" min="0" v-model="add.number" placeholder="请填免费天数" v-enterNumber></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-form-item label="价格" prop="price"> <el-form-item label="价格" prop="price">
<el-input type="text" v-model="add.price" placeholder="请填价格"></el-input> <el-input type="number" min="0" v-model="add.price" placeholder="请填价格"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
......
...@@ -3,63 +3,64 @@ ...@@ -3,63 +3,64 @@
<div class="filter-container"> <div class="filter-container">
<el-form ref="queryForm" :inline="inline" :model="listQuery" label-width="100px"> <el-form ref="queryForm" :inline="inline" :model="listQuery" label-width="100px">
<el-row> <el-row>
<el-form-item label="手机号"> <el-form-item label="手机号">
<el-input v-model.number="listQuery.mobile" placeholder="请输入手机号"></el-input> <el-input v-model.number="listQuery.mobile" placeholder="请输入手机号"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="注册终端"> <el-form-item label="注册终端">
<el-select class="filter-item" v-model="listQuery.channel" placeholder="请选注册终端"> <el-select class="filter-item" v-model="listQuery.channel" placeholder="请选注册终端">
<el-option :key="undefined" label="全部" :value="undefined"></el-option> <el-option :key="undefined" label="全部" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in mobileList " :key="val.id" :label="val.name" <el-option v-for="(val, key, index) in mobileList " :key="val.id" :label="val.name"
:value="val.id"></el-option> :value="val.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="会员类型"> <el-form-item label="会员类型">
<el-select class="filter-item" v-model="listQuery.memberLevel" placeholder="请选会员类型"> <el-select class="filter-item" v-model="listQuery.memberLevel" placeholder="请选会员类型">
<el-option :key="undefined" label="全部用户" :value="undefined"></el-option> <el-option :key="undefined" label="全部用户" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in queryMemberLevelList " :key="val.id" :label="val.name" <el-option v-for="(val, key, index) in queryMemberLevelList " :key="val.id" :label="val.name"
:value="val.id"></el-option> :value="val.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="用户身份"> <el-form-item label="用户身份">
<el-select class="filter-item" v-model="listQuery.postionState" placeholder="选择会员身份"> <el-select class="filter-item" v-model="listQuery.postionState" placeholder="选择会员身份">
<el-option :key="undefined" label="全部" :value="undefined"></el-option> <el-option :key="undefined" label="全部" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in postionStatelList " :key="val.id" :label="val.name" <el-option v-for="(val, key, index) in postionStatelList " :key="val.id" :label="val.name"
:value="val.id"></el-option> :value="val.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="注册时间" prop="bookDateRange">--> <!-- <el-form-item label="注册时间" prop="bookDateRange">-->
<!-- <el-date-picker--> <!-- <el-date-picker-->
<!-- v-model="listQuery.registrationDate "--> <!-- v-model="listQuery.registrationDate "-->
<!-- type="daterange"--> <!-- type="daterange"-->
<!-- :editable="true"--> <!-- :editable="true"-->
<!-- format="yyyy-MM-dd"--> <!-- format="yyyy-MM-dd"-->
<!-- placeholder="请选择注册时间范围">--> <!-- placeholder="请选择注册时间范围">-->
<!-- </el-date-picker>--> <!-- </el-date-picker>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="注册时间"> <el-form-item label="注册时间">
<el-date-picker <el-date-picker
v-model="listQuery.registrationTimeBegin" v-model="listQuery.registrationTimeBegin"
type="date" type="date"
:editable="true" :editable="true"
format="yyyy-MM-dd" format="yyyy-MM-dd"
placeholder="选择日期" placeholder="选择日期"
></el-date-picker>~ ></el-date-picker>
<el-date-picker ~
v-model="listQuery.registrationTimeEnd" <el-date-picker
type="date" v-model="listQuery.registrationTimeEnd"
:editable="true" type="date"
format="yyyy-MM-dd" :editable="true"
placeholder="选择日期" format="yyyy-MM-dd"
></el-date-picker> placeholder="选择日期"
</el-form-item> ></el-date-picker>
<el-form-item label="用户来源"> </el-form-item>
<el-select class="filter-item" v-model="listQuery.source" placeholder="请选用户来源"> <el-form-item label="用户来源">
<el-option :key="undefined" label="全部" :value="undefined"></el-option> <el-select class="filter-item" v-model="listQuery.source" placeholder="请选用户来源">
<el-option v-for="(val, key, index) in sourceList" :key="val.id" :label="val.name" <el-option :key="undefined" label="全部" :value="undefined"></el-option>
:value="val.id"></el-option> <el-option v-for="(val, key, index) in sourceList" :key="val.id" :label="val.name"
</el-select> :value="val.id"></el-option>
</el-form-item> </el-select>
</el-form-item>
</el-row> </el-row>
</el-form> </el-form>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button> <el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
...@@ -131,19 +132,29 @@ ...@@ -131,19 +132,29 @@
<!-- </el-table-column>--> <!-- </el-table-column>-->
<el-table-column align="center" label="操作" width="400" fixed="right"> <el-table-column align="center" label="操作" width="400" fixed="right">
<template scope="scope"> <template scope="scope">
<el-button size="small" class="el-button el-button--text el-button--small" @click="viewDetails(scope.row)">查看详情 <el-button size="small" class="el-button el-button--text el-button--small" @click="viewDetails(scope.row)">
查看详情
</el-button>
<el-button size="small" class="el-button el-button--text el-button--small" v-if="admin_btn_user_postion_put"
@click="peopleSetting(scope.row)">身份设置
</el-button> </el-button>
<el-button size="small" class="el-button el-button--text el-button--small" v-if="admin_btn_user_postion_put" @click="peopleSetting(scope.row)">身份设置 <el-button class="el-button el-button--text el-button--small" v-if="scope.row.status!=1&&userList_btn_edit"
size="small" @click=" setMember(scope.row)">设置会员信息
</el-button> </el-button>
<el-button class="el-button el-button--text el-button--small" v-if="scope.row.status!=1&&userList_btn_edit" size="small" @click=" setMember(scope.row)">设置会员信息 <el-button class="el-button el-button--text el-button--small" v-if="scope.row.status!=1" size="small"
@click="userOrder(scope.row)">用户订单
</el-button> </el-button>
<el-button class="el-button el-button--text el-button--small" v-if="scope.row.status!=1" size="small" @click="userOrder(scope.row)">用户订单 <el-button v-if="scope.row.status!=1&&userList_btn_forbidden" size="small"
class="el-button el-button--text el-button--small" style="color:red" @click="disable(scope.row)">
设为禁用
</el-button> </el-button>
<el-button v-if="scope.row.status!=1&&userList_btn_forbidden" size="small" class="el-button el-button--text el-button--small" style="color:red" @click="disable(scope.row)">设为禁用 <el-button v-if="scope.row.status==1&&userList_btn_unmute" size="small"
class="el-button el-button--text el-button--small" style="color:red" @click="available(scope.row)">
取消禁用
</el-button> </el-button>
<el-button v-if="scope.row.status==1&&userList_btn_unmute" size="small" class="el-button el-button--text el-button--small" style="color:red" @click="available(scope.row)">取消禁用 <el-button class="el-button el-button--text el-button--small" style="color:red" size="small"
v-if="userList_btn_del" @click="deleteUser(scope.row)">删除
</el-button> </el-button>
<el-button class="el-button el-button--text el-button--small" style="color:red" size="small" v-if="userList_btn_del" @click="deleteUser(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -154,7 +165,8 @@ ...@@ -154,7 +165,8 @@
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination> layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div> </div>
<!-- 用户详细信息窗口--> <!-- 用户详细信息窗口-->
<el-dialog title="用户详情" :visible.sync="detailsDialogFormVisible" type="text" label-width="95px" class="user-list-dialog"> <el-dialog title="用户详情" :visible.sync="detailsDialogFormVisible" type="text" label-width="95px"
class="user-list-dialog">
<el-form> <el-form>
<el-row> <el-row>
<el-form-item label="基础信息"> <el-form-item label="基础信息">
...@@ -302,12 +314,12 @@ ...@@ -302,12 +314,12 @@
<!-- 设置会员信息窗口--> <!-- 设置会员信息窗口-->
<el-dialog title="设置会员信息" @change="change" :visible.sync="setMemberArea" class="member"> <el-dialog title="设置会员信息" @change="change" :visible.sync="setMemberArea" class="member">
<el-form :model="userMembershipInformation" ref="userMembership" label-width="100px"> <el-form :model="userMembershipInformation" :rules="rules" ref="userMembership" label-width="100px">
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-form-item label="会员等级" prop="memberLevel"> <el-form-item label="会员等级" prop="memberLevel">
<el-select class="filter-item" v-model="userMembershipInformation.memberLevel" placeholder="请选择会员等级"> <el-select class="filter-item" v-model="userMembershipInformation.memberLevel" placeholder="请选择会员等级">
<!-- <el-option :key="undefined" label="无" :value="undefined"></el-option>--> <!-- <el-option :key="undefined" label="无" :value="undefined"></el-option>-->
<el-option v-for="(val, key, index) in setMemberLevelList " :key="val.id" :label="val.name" <el-option v-for="(val, key, index) in setMemberLevelList " :key="val.id" :label="val.name"
:value="val.id"></el-option> :value="val.id"></el-option>
</el-select> </el-select>
...@@ -318,7 +330,7 @@ ...@@ -318,7 +330,7 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="有效期" prop="validTime"> <el-form-item label="有效期" prop="validTime">
<el-radio-group v-model="validityType"> <el-radio-group v-model="validityType">
<!-- <el-radio-button style="margin-bottom: 10px;" label="无"></el-radio-button>--> <!-- <el-radio-button style="margin-bottom: 10px;" label="无"></el-radio-button>-->
<el-radio-button style="margin-bottom: 10px;" label="永久"></el-radio-button> <el-radio-button style="margin-bottom: 10px;" label="永久"></el-radio-button>
<el-radio-button style="margin-bottom: 10px;" label="自定义"></el-radio-button> <el-radio-button style="margin-bottom: 10px;" label="自定义"></el-radio-button>
</el-radio-group> </el-radio-group>
...@@ -336,22 +348,23 @@ ...@@ -336,22 +348,23 @@
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-form-item label="充值次数/次" prop="buyCount"> <el-form-item label="充值次数/次" prop="buyCount">
<el-input type="text" :disabled="true" v-model="userMembershipInformation.buyCount" <el-input type="number" :disabled="true" v-model="userMembershipInformation.buyCount"
placeholder="请填写充值次数"></el-input> placeholder="请填写充值次数"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-form-item label="总天数" prop="totalNumber"> <el-form-item label="总天数" prop="totalNumber">
<el-input type="text" v-model="userMembershipInformation.totalNumber" placeholder="请填写赠送天数" v-enterNumber></el-input> <el-input type="number" v-model="userMembershipInformation.totalNumber" min="0" placeholder="请填写总天数"
v-enterNumber></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-form-item label="剩余天数/天" prop="rentFreeDays" placeholder="请填写剩余天数"> <el-form-item label="剩余天数" prop="rentFreeDays">
<el-input type="text" v-model="userMembershipInformation.rentFreeDays" v-enterNumber></el-input> <el-input type="number" v-model="userMembershipInformation.rentFreeDays" min="0" v-enterNumber placeholder="请填写剩余天数"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -366,7 +379,9 @@ ...@@ -366,7 +379,9 @@
<el-dialog title="身份设置" :visible.sync="peopleSettingModal" width="10%"> <el-dialog title="身份设置" :visible.sync="peopleSettingModal" width="10%">
<el-form :model="peopleSettingObject" ref="" label-width="100px"> <el-form :model="peopleSettingObject" ref="" label-width="100px">
<el-form-item label="身份类型"> <el-form-item label="身份类型">
<el-radio v-model="peopleSettingObject.positionId" :label='item.id' v-for="(item,index) in settingList" :key="index">{{item.name}}</el-radio> <el-radio v-model="peopleSettingObject.positionId" :label='item.id' v-for="(item,index) in settingList"
:key="index">{{item.name}}
</el-radio>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -426,7 +441,9 @@ ...@@ -426,7 +441,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-button class="filter-item" type="primary" v-waves icon="search" @click="userOrder" style="margin-left: 10px;">搜索</el-button> <el-button class="filter-item" type="primary" v-waves icon="search" @click="userOrder"
style="margin-left: 10px;">搜索
</el-button>
</el-col> </el-col>
</el-row> </el-row>
...@@ -540,13 +557,14 @@ ...@@ -540,13 +557,14 @@
getrewardSetting getrewardSetting
} from 'api/purseManage'; } from 'api/purseManage';
import {formatDate} from "../../../utils/dateFormattor"; import {formatDate} from "../../../utils/dateFormattor";
import {getMembers} from "src/api/admin/member/index" import {getMembers} from "src/api/admin/member/index"
export default { export default {
name: 'appUser', name: 'appUser',
data() { data() {
return { return {
inline:true, inline: true,
peopleSettingModal:false, peopleSettingModal: false,
orderData: [], orderData: [],
validTime: '', validTime: '',
userMembershipInformation: { userMembershipInformation: {
...@@ -558,22 +576,22 @@ ...@@ -558,22 +576,22 @@
id: undefined, id: undefined,
userId: undefined userId: undefined
}, },
peopleSettingObject:{ peopleSettingObject: {
id:'', id: '',
positionId:undefined positionId: undefined
}, },
saveUserId: undefined, saveUserId: undefined,
validityType: '无', validityType: '无',
userOrderMessage: {}, userOrderMessage: {},
mobileList: [{id: 1, name: 'app'}, {id: 2, name: "小程序"}], mobileList: [{id: 1, name: 'app'}, {id: 2, name: "小程序"}],
queryMemberLevelList: [{id: -1, name: '全部会员'}], queryMemberLevelList: [{id: -1, name: '全部会员'}],
postionStatelList:[ postionStatelList: [
{ {
id:6, id: 6,
name:'普通用户' name: '普通用户'
},{ }, {
id:1, id: 1,
name:'非普通用户' name: '非普通用户'
} }
], ],
setMemberLevelList: [], setMemberLevelList: [],
...@@ -588,8 +606,8 @@ ...@@ -588,8 +606,8 @@
{id: 7, name: '已完成'} {id: 7, name: '已完成'}
], ],
orderTypeList: [ orderTypeList: [
{id: 1, name: '旅游'}, {id: 1, name: '租车'},
{id: 2, name: '租车'}, {id: 2, name: '旅游'},
{id: 3, name: '会员订单'} {id: 3, name: '会员订单'}
], ],
BASE_API: process.env.BASE_API, BASE_API: process.env.BASE_API,
...@@ -619,6 +637,11 @@ ...@@ -619,6 +637,11 @@
type: undefined, type: undefined,
status: undefined status: undefined
}, },
rules: {
totalNumber: [this.integerValidator()],
rentFreeDays: [this.integerValidator()]
},
newMemberObjectVerify: { newMemberObjectVerify: {
phone: [ phone: [
{ {
...@@ -660,11 +683,11 @@ ...@@ -660,11 +683,11 @@
channel: undefined, channel: undefined,
registrationTimeEnd: undefined, registrationTimeEnd: undefined,
registrationTimeBegin: undefined, registrationTimeBegin: undefined,
postionState:undefined, postionState: undefined,
}, },
sexObj:{ sexObj: {
1:'女', 1: '女',
2:'男' 2: '男'
}, },
source: { source: {
0: '自来', 0: '自来',
...@@ -684,8 +707,8 @@ ...@@ -684,8 +707,8 @@
6: '已完成', 6: '已完成',
}, },
orderType: { orderType: {
1: '旅游', 1: '租车',
2: '租车', 2: '旅游',
3: '会员订单' 3: '会员订单'
}, },
detailsDialogFormVisible: false, detailsDialogFormVisible: false,
...@@ -703,18 +726,18 @@ ...@@ -703,18 +726,18 @@
selectedAccItem: undefined, selectedAccItem: undefined,
userList_btn_edit: false,//编辑 userList_btn_edit: false,//编辑
userList_btn_forbidden: false,//禁用 userList_btn_forbidden: false,//禁用
userList_btn_unmute:false,//取消禁用 userList_btn_unmute: false,//取消禁用
userList_btn_del: false,//删除 userList_btn_del: false,//删除
admin_btn_user_postion_put:false,//身份设置 admin_btn_user_postion_put: false,//身份设置
settingList:[], settingList: [],
} }
}, },
created() { created() {
this.userList_btn_edit=this.elements['userList:btn_edit'];//编辑 this.userList_btn_edit = this.elements['userList:btn_edit'];//编辑
this.userList_btn_forbidden=this.elements['userList:btn_forbidden'];//禁用 this.userList_btn_forbidden = this.elements['userList:btn_forbidden'];//禁用
this.userList_btn_unmute=this.elements['userList:btn_unmute'];//取消禁用 this.userList_btn_unmute = this.elements['userList:btn_unmute'];//取消禁用
this.userList_btn_del=this.elements['userList:btn_del'];//删除 this.userList_btn_del = this.elements['userList:btn_del'];//删除
this.admin_btn_user_postion_put=this.elements['admin:btn:user_postion:put'];//身份设置 this.admin_btn_user_postion_put = this.elements['admin:btn:user_postion:put'];//身份设置
this.getList(); this.getList();
this.getMembersLevel(); this.getMembersLevel();
} }
...@@ -735,19 +758,19 @@ ...@@ -735,19 +758,19 @@
}, },
methods: { methods: {
getMembersLevel(){ getMembersLevel() {
var _this = this; var _this = this;
getMembers().then(res=>{ getMembers().then(res => {
let members = res.data let members = res.data
// console.log('getMembersLevel:{}'+JSON.stringify(members)) // console.log('getMembersLevel:{}'+JSON.stringify(members))
// debugger // debugger
members.map(function (ele) { members.map(function (ele) {
_this.queryMemberLevelList.push({id:ele.level,name:ele.name}) _this.queryMemberLevelList.push({id: ele.level, name: ele.name})
_this.setMemberLevelList.push({id:ele.level,name:ele.name}) _this.setMemberLevelList.push({id: ele.level, name: ele.name})
}) })
// console.log('this.queryMemberLevelList'+JSON.stringify(this.queryMemberLevelList)) // console.log('this.queryMemberLevelList'+JSON.stringify(this.queryMemberLevelList))
} }
) )
}, },
...@@ -832,10 +855,10 @@ ...@@ -832,10 +855,10 @@
let query = JSON.parse(JSON.stringify(this.listQuery)) let query = JSON.parse(JSON.stringify(this.listQuery))
query.source = query.source ? query.source - 1 : '' query.source = query.source ? query.source - 1 : ''
// console.log('handleFilterStatus:this.listQuery=' + JSON.stringify(this.listQuery)) // console.log('handleFilterStatus:this.listQuery=' + JSON.stringify(this.listQuery))
query.registrationTimeBegin =this.listQuery.registrationTimeBegin query.registrationTimeBegin = this.listQuery.registrationTimeBegin
?(new Date(query.registrationTimeBegin).getTime()) / 1000:undefined ? (new Date(query.registrationTimeBegin).getTime()) / 1000 : undefined
query.registrationTimeEnd = this.listQuery.registrationTimeEnd query.registrationTimeEnd = this.listQuery.registrationTimeEnd
? (new Date( query.registrationTimeEnd).getTime()) / 1000:undefined ? (new Date(query.registrationTimeEnd).getTime()) / 1000 : undefined
// //
// console.log('handleFilterEnd:this.listQuery=' + JSON.stringify(this.listQuery)) // console.log('handleFilterEnd:this.listQuery=' + JSON.stringify(this.listQuery))
// console.log('query================' + JSON.stringify(query)) // console.log('query================' + JSON.stringify(query))
...@@ -857,14 +880,14 @@ ...@@ -857,14 +880,14 @@
listKey.timeOfMembership = listKey.timeOfMembership ? timestamp2Date(listKey.timeOfMembership) : ''; listKey.timeOfMembership = listKey.timeOfMembership ? timestamp2Date(listKey.timeOfMembership) : '';
listKey.recentRecharge = listKey.recentRecharge ? timestamp2Date(listKey.recentRecharge) : ''; listKey.recentRecharge = listKey.recentRecharge ? timestamp2Date(listKey.recentRecharge) : '';
listKey.lastTime = listKey.lastTime ? timestamp2Date(listKey.lastTime) : ''; listKey.lastTime = listKey.lastTime ? timestamp2Date(listKey.lastTime) : '';
listKey.createTime = listKey.createTime ? timestamp2Date(listKey.createTime*1000) : ''; listKey.createTime = listKey.createTime ? timestamp2Date(listKey.createTime * 1000) : '';
listKey.buyCount = listKey.buyCount ? listKey.buyCount : 0; listKey.buyCount = listKey.buyCount ? listKey.buyCount : 0;
listKey.channel = this.terminal[listKey.channel]; listKey.channel = this.terminal[listKey.channel];
listKey.source = this.source[listKey.source]; listKey.source = this.source[listKey.source];
listKey.validTime = listKey.validTime ? ((listKey.validTime == 0) ? '永久' : listKey.validTime) : '无'; listKey.validTime = listKey.validTime ? ((listKey.validTime == 0) ? '永久' : listKey.validTime) : '无';
listKey.visible2 =false listKey.visible2 = false
listKey.sex=(listKey.sex+1)?this.sexObj[(listKey.sex+1)]:'' listKey.sex = (listKey.sex + 1) ? this.sexObj[(listKey.sex + 1)] : ''
}, },
/** /**
...@@ -916,28 +939,28 @@ ...@@ -916,28 +939,28 @@
this.saveUserId = row.userId this.saveUserId = row.userId
getUserMemberByUserId(row.userId).then(response => { getUserMemberByUserId(row.userId).then(response => {
if (response.data){ if (response.data) {
if (response.data.validTime == 0) { if (response.data.validTime == 0) {
this.validityType = '永久' this.validityType = '永久'
} else if (response.data.validTime&&response.data.validTime !=-1) { } else if (response.data.validTime && response.data.validTime != -1) {
this.validityType = '自定义' this.validityType = '自定义'
response.data.validTime = timestamp2Date(response.data.validTime) response.data.validTime = timestamp2Date(response.data.validTime)
} }
// else if (response.data.validTime == -1) { // else if (response.data.validTime == -1) {
// this.validityType = '无' // this.validityType = '无'
// } // }
this.validTime = response.data.validTime; this.validTime = response.data.validTime;
this.userMembershipInformation.memberLevel = response.data.memberLevel; this.userMembershipInformation.memberLevel = response.data.memberLevel?response.data.memberLevel:'';
this.userMembershipInformation.validTime = response.data.validTime; this.userMembershipInformation.validTime = response.data.validTime;
this.userMembershipInformation.totalNumber = response.data.totalNumber; this.userMembershipInformation.totalNumber = response.data.totalNumber;
this.userMembershipInformation.rentFreeDays = response.data.rentFreeDays; this.userMembershipInformation.rentFreeDays = response.data.rentFreeDays;
this.userMembershipInformation.buyCount = response.data.buyCount; this.userMembershipInformation.buyCount = response.data.buyCount;
this.userMembershipInformation.id = response.data.id; this.userMembershipInformation.id = response.data.id;
// this.userMembershipInformation.memberLevel= this.userMembershipInformation.memberLevel?this.userMembershipInformation.memberLevel:undefined // this.userMembershipInformation.memberLevel= this.userMembershipInformation.memberLevel?this.userMembershipInformation.memberLevel:undefined
} }
this.setMemberArea = true this.setMemberArea = true
}) })
console.log('this.userMembershipInformation:'+JSON.stringify(this.userMembershipInformation)) // console.log('this.userMembershipInformation:' + JSON.stringify(this.userMembershipInformation))
this.userMembershipInformation.userId = this.saveUserId this.userMembershipInformation.userId = this.saveUserId
}, },
/** /**
...@@ -945,44 +968,49 @@ ...@@ -945,44 +968,49 @@
* @param formName * @param formName
*/ */
saveMember(formName) { saveMember(formName) {
if(Number(this.userMembershipInformation.totalNumber)<Number(this.userMembershipInformation.rentFreeDays)){ // if (this.$utils.isInteger(this.userMembershipInformation.totalNumber) ||
this.$notify({ // this.$utils.isInteger(this.userMembershipInformation.rentFreeDays) ||
title: '警告', // (this.userMembershipInformation.totalNumber && this.userMembershipInformation.rentFreeDays)) {
message: '剩余天数不能大于总天数',
type: 'warning',
duration: 2000
});
return false
}
if (this.validityType == '永久') {
this.userMembershipInformation.validTime = 0
} else if (this.validityType == '自定义') {
let date = new Date(this.validTime);
this.userMembershipInformation.validTime = date.getTime()
}
// else {
// this.userMembershipInformation.validTime = -1
// }
this.userMembershipInformation.userId = this.saveUserId if (Number(this.userMembershipInformation.totalNumber) < Number(this.userMembershipInformation.rentFreeDays)) {
this.userMembershipInformation.buyCount=undefined; this.$notify({
// console.log('userMembershipInformation:' + JSON.stringify(this.userMembershipInformation)) title: '警告',
seveObj(this.userMembershipInformation).then(res => { message: '剩余天数不能大于总天数',
if (res.rel) { type: 'warning',
this.$notify.success({ duration: 2000
title: '修改成功', });
message: `success` return false
})
} else {
this.$notify.warning({
title: '修改成功',
message: `failed`
})
} }
this.setMemberArea = false if (this.validityType == '永久') {
this.$refs[formName].resetFields() this.userMembershipInformation.validTime = 0
this.getList(); } else if (this.validityType == '自定义') {
}) let date = new Date(this.validTime);
this.userMembershipInformation.validTime = date.getTime()
}
// else {
// this.userMembershipInformation.validTime = -1
// }
this.userMembershipInformation.userId = this.saveUserId
this.userMembershipInformation.buyCount = undefined;
// console.log('userMembershipInformation:' + JSON.stringify(this.userMembershipInformation))
seveObj(this.userMembershipInformation).then(res => {
if (res.rel) {
this.$notify.success({
title: '修改成功',
message: `success`
})
} else {
this.$notify.warning({
title: '修改失败',
message: `failed`
})
}
this.setMemberArea = false
this.$refs[formName].resetFields()
this.getList();
})
// }
}, },
/** /**
* 显示新增会员窗口 * 显示新增会员窗口
...@@ -1050,10 +1078,10 @@ ...@@ -1050,10 +1078,10 @@
closeMembershipWindow() { closeMembershipWindow() {
this.detailsDialogFormVisible = false; this.detailsDialogFormVisible = false;
}, },
cancelPeopleSetting(){ cancelPeopleSetting() {
this.peopleSettingModal = false; this.peopleSettingModal = false;
}, },
setPeopleSetting(){ setPeopleSetting() {
userPosition(this.peopleSettingObject).then(response => { userPosition(this.peopleSettingObject).then(response => {
if (response.status == 200) { if (response.status == 200) {
this.$notify({ this.$notify({
...@@ -1064,7 +1092,7 @@ ...@@ -1064,7 +1092,7 @@
}); });
this.peopleSettingModal = false; this.peopleSettingModal = false;
this.getList(); this.getList();
}else{ } else {
this.$notify({ this.$notify({
title: '失败', title: '失败',
message: response.message, message: response.message,
...@@ -1074,17 +1102,17 @@ ...@@ -1074,17 +1102,17 @@
} }
}); });
}, },
peopleSetting(row){ peopleSetting(row) {
var that = this; var that = this;
this.peopleSettingObject.id = row.userId; this.peopleSettingObject.id = row.userId;
getrewardSetting().then(response => { getrewardSetting().then(response => {
this.settingList = response.data; this.settingList = response.data;
response.data.forEach(function(item){ response.data.forEach(function (item) {
if(row.positionName){ if (row.positionName) {
if(row.positionName==item.name){ if (row.positionName == item.name) {
that.peopleSettingObject.positionId = item.id; that.peopleSettingObject.positionId = item.id;
} }
}else{ } else {
that.peopleSettingObject.positionId = 1; that.peopleSettingObject.positionId = 1;
} }
}) })
...@@ -1211,26 +1239,26 @@ ...@@ -1211,26 +1239,26 @@
cleaningQuery() { cleaningQuery() {
this.listQuery.page = 1 this.listQuery.page = 1
this.listQuery.limit = 20 this.listQuery.limit = 20
this.listQuery.mobileList = undefined this.listQuery.mobileList = undefined
this.listQuery.mobile = undefined this.listQuery.mobile = undefined
this.listQuery.memberLevel = undefined this.listQuery.memberLevel = undefined
this.listQuery.source = undefined this.listQuery.source = undefined
this.listQuery.channel = undefined this.listQuery.channel = undefined
this.listQuery.registrationTimeEnd = undefined this.listQuery.registrationTimeEnd = undefined
this.listQuery.registrationTimeBegin = undefined this.listQuery.registrationTimeBegin = undefined
this.listQuery.postionState = undefined this.listQuery.postionState = undefined
}, },
change() { change() {
this.$forceUpdate() this.$forceUpdate()
}, },
deleteUser(row){ deleteUser(row) {
this.$confirm('确定删除吗?', '提示', { this.$confirm('确定删除吗?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
deleteUser(row.userId).then( deleteUser(row.userId).then(
res=>{ res => {
if (res.rel) { if (res.rel) {
this.$notify.success({ this.$notify.success({
title: '删除成功', title: '删除成功',
...@@ -1245,7 +1273,21 @@ ...@@ -1245,7 +1273,21 @@
this.getList() this.getList()
}) })
}) })
} },
integerValidator: function () {
return {
validator: (rule, value, callback) => {
if (this.$utils.isUndefined(value) || this.$utils.isNull()) {
return callback();
}
if (!this.$utils.isInteger(value)) {
return callback(new Error('必须为整数'));
}
callback();
},
trigger: 'blur'
};
},
} }
} }
</script> </script>
...@@ -1253,7 +1295,8 @@ ...@@ -1253,7 +1295,8 @@
.member .el-dialog--small { .member .el-dialog--small {
width: 500px; width: 500px;
} }
.user-list-dialog .el-form-item{
.user-list-dialog .el-form-item {
margin-bottom: 0px; margin-bottom: 0px;
} }
</style> </style>
......
...@@ -745,6 +745,7 @@ ...@@ -745,6 +745,7 @@
} from 'api/vehicle/vehicleInfo/'; } from 'api/vehicle/vehicleInfo/';
import { import {
getAllVehicleModelList,
getAllVehicleList getAllVehicleList
} from 'api/vehicleType'; } from 'api/vehicleType';
...@@ -1368,7 +1369,7 @@ ...@@ -1368,7 +1369,7 @@
* 获取全部车型 * 获取全部车型
* */ * */
getAllVehicleType() { getAllVehicleType() {
getAllVehicleList().then(response => { getAllVehicleModelList().then(response => {
let listRs = undefined; let listRs = undefined;
if (!this.$utils.isEmpty(response.data)) { if (!this.$utils.isEmpty(response.data)) {
listRs = response.data; listRs = response.data;
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
<span>{{scope.row.sum}}</span> <span>{{scope.row.sum}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="200" align="center" label="可租借数量"> <el-table-column width="150" align="center" label="可租借数量">
<template scope="scope"> <template scope="scope">
<span>{{scope.row.leasableQuantity}}</span> <span>{{scope.row.leasableQuantity}}</span>
</template> </template>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment