正在显示
16 个修改的文件
包含
3289 行增加
和
338 行删除
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | 3 | ||
4 | <head> | 4 | <head> |
5 | <meta charset="utf-8"> | 5 | <meta charset="utf-8"> |
6 | - <title>易通快速通关申报管理系统</title> | 6 | + <title>消息控制中心</title> |
7 | <link rel="shortcut icon" type="image/x-icon" href="favicon.ico"> | 7 | <link rel="shortcut icon" type="image/x-icon" href="favicon.ico"> |
8 | </head> | 8 | </head> |
9 | 9 |
@@ -2276,49 +2276,57 @@ | @@ -2276,49 +2276,57 @@ | ||
2276 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" | 2276 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" |
2277 | }, | 2277 | }, |
2278 | "cliui": { | 2278 | "cliui": { |
2279 | - "version": "3.2.0", | ||
2280 | - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", | ||
2281 | - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", | 2279 | + "version": "5.0.0", |
2280 | + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", | ||
2281 | + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", | ||
2282 | "dev": true, | 2282 | "dev": true, |
2283 | "requires": { | 2283 | "requires": { |
2284 | - "string-width": "^1.0.1", | ||
2285 | - "strip-ansi": "^3.0.1", | ||
2286 | - "wrap-ansi": "^2.0.0" | 2284 | + "string-width": "^3.1.0", |
2285 | + "strip-ansi": "^5.2.0", | ||
2286 | + "wrap-ansi": "^5.1.0" | ||
2287 | }, | 2287 | }, |
2288 | "dependencies": { | 2288 | "dependencies": { |
2289 | - "ansi-regex": { | ||
2290 | - "version": "2.1.1", | ||
2291 | - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", | ||
2292 | - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", | 2289 | + "emoji-regex": { |
2290 | + "version": "7.0.3", | ||
2291 | + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
2292 | + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
2293 | "dev": true | 2293 | "dev": true |
2294 | }, | 2294 | }, |
2295 | "is-fullwidth-code-point": { | 2295 | "is-fullwidth-code-point": { |
2296 | - "version": "1.0.0", | ||
2297 | - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", | ||
2298 | - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", | 2296 | + "version": "2.0.0", |
2297 | + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2298 | + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2299 | + "dev": true | ||
2300 | + }, | ||
2301 | + "string-width": { | ||
2302 | + "version": "3.1.0", | ||
2303 | + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
2304 | + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
2299 | "dev": true, | 2305 | "dev": true, |
2300 | "requires": { | 2306 | "requires": { |
2301 | - "number-is-nan": "^1.0.0" | 2307 | + "emoji-regex": "^7.0.1", |
2308 | + "is-fullwidth-code-point": "^2.0.0", | ||
2309 | + "strip-ansi": "^5.1.0" | ||
2302 | } | 2310 | } |
2303 | }, | 2311 | }, |
2304 | - "string-width": { | ||
2305 | - "version": "1.0.2", | ||
2306 | - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", | ||
2307 | - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", | 2312 | + "strip-ansi": { |
2313 | + "version": "5.2.0", | ||
2314 | + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
2315 | + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
2308 | "dev": true, | 2316 | "dev": true, |
2309 | "requires": { | 2317 | "requires": { |
2310 | - "code-point-at": "^1.0.0", | ||
2311 | - "is-fullwidth-code-point": "^1.0.0", | ||
2312 | - "strip-ansi": "^3.0.0" | 2318 | + "ansi-regex": "^4.1.0" |
2313 | } | 2319 | } |
2314 | }, | 2320 | }, |
2315 | - "strip-ansi": { | ||
2316 | - "version": "3.0.1", | ||
2317 | - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", | ||
2318 | - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", | 2321 | + "wrap-ansi": { |
2322 | + "version": "5.1.0", | ||
2323 | + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", | ||
2324 | + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", | ||
2319 | "dev": true, | 2325 | "dev": true, |
2320 | "requires": { | 2326 | "requires": { |
2321 | - "ansi-regex": "^2.0.0" | 2327 | + "ansi-styles": "^3.2.0", |
2328 | + "string-width": "^3.0.0", | ||
2329 | + "strip-ansi": "^5.0.0" | ||
2322 | } | 2330 | } |
2323 | } | 2331 | } |
2324 | } | 2332 | } |
@@ -4846,9 +4854,9 @@ | @@ -4846,9 +4854,9 @@ | ||
4846 | } | 4854 | } |
4847 | }, | 4855 | }, |
4848 | "globule": { | 4856 | "globule": { |
4849 | - "version": "1.2.1", | ||
4850 | - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", | ||
4851 | - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", | 4857 | + "version": "1.3.2", |
4858 | + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", | ||
4859 | + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", | ||
4852 | "dev": true, | 4860 | "dev": true, |
4853 | "requires": { | 4861 | "requires": { |
4854 | "glob": "~7.1.1", | 4862 | "glob": "~7.1.1", |
@@ -5249,9 +5257,9 @@ | @@ -5249,9 +5257,9 @@ | ||
5249 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" | 5257 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" |
5250 | }, | 5258 | }, |
5251 | "in-publish": { | 5259 | "in-publish": { |
5252 | - "version": "2.0.0", | ||
5253 | - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", | ||
5254 | - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", | 5260 | + "version": "2.0.1", |
5261 | + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", | ||
5262 | + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", | ||
5255 | "dev": true | 5263 | "dev": true |
5256 | }, | 5264 | }, |
5257 | "indent-string": { | 5265 | "indent-string": { |
@@ -6023,9 +6031,9 @@ | @@ -6023,9 +6031,9 @@ | ||
6023 | }, | 6031 | }, |
6024 | "dependencies": { | 6032 | "dependencies": { |
6025 | "minimist": { | 6033 | "minimist": { |
6026 | - "version": "1.2.0", | ||
6027 | - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", | ||
6028 | - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", | 6034 | + "version": "1.2.5", |
6035 | + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", | ||
6036 | + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", | ||
6029 | "dev": true | 6037 | "dev": true |
6030 | } | 6038 | } |
6031 | } | 6039 | } |
@@ -6377,9 +6385,9 @@ | @@ -6377,9 +6385,9 @@ | ||
6377 | } | 6385 | } |
6378 | }, | 6386 | }, |
6379 | "node-sass": { | 6387 | "node-sass": { |
6380 | - "version": "4.12.0", | ||
6381 | - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", | ||
6382 | - "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", | 6388 | + "version": "4.14.1", |
6389 | + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", | ||
6390 | + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", | ||
6383 | "dev": true, | 6391 | "dev": true, |
6384 | "requires": { | 6392 | "requires": { |
6385 | "async-foreach": "^0.1.3", | 6393 | "async-foreach": "^0.1.3", |
@@ -6389,14 +6397,14 @@ | @@ -6389,14 +6397,14 @@ | ||
6389 | "get-stdin": "^4.0.1", | 6397 | "get-stdin": "^4.0.1", |
6390 | "glob": "^7.0.3", | 6398 | "glob": "^7.0.3", |
6391 | "in-publish": "^2.0.0", | 6399 | "in-publish": "^2.0.0", |
6392 | - "lodash": "^4.17.11", | 6400 | + "lodash": "^4.17.15", |
6393 | "meow": "^3.7.0", | 6401 | "meow": "^3.7.0", |
6394 | "mkdirp": "^0.5.1", | 6402 | "mkdirp": "^0.5.1", |
6395 | "nan": "^2.13.2", | 6403 | "nan": "^2.13.2", |
6396 | "node-gyp": "^3.8.0", | 6404 | "node-gyp": "^3.8.0", |
6397 | "npmlog": "^4.0.0", | 6405 | "npmlog": "^4.0.0", |
6398 | "request": "^2.88.0", | 6406 | "request": "^2.88.0", |
6399 | - "sass-graph": "^2.2.4", | 6407 | + "sass-graph": "2.2.5", |
6400 | "stdout-stream": "^1.4.0", | 6408 | "stdout-stream": "^1.4.0", |
6401 | "true-case-path": "^1.0.2" | 6409 | "true-case-path": "^1.0.2" |
6402 | }, | 6410 | }, |
@@ -11461,15 +11469,15 @@ | @@ -11461,15 +11469,15 @@ | ||
11461 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | 11469 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" |
11462 | }, | 11470 | }, |
11463 | "sass-graph": { | 11471 | "sass-graph": { |
11464 | - "version": "2.2.4", | ||
11465 | - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", | ||
11466 | - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", | 11472 | + "version": "2.2.5", |
11473 | + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", | ||
11474 | + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", | ||
11467 | "dev": true, | 11475 | "dev": true, |
11468 | "requires": { | 11476 | "requires": { |
11469 | "glob": "^7.0.0", | 11477 | "glob": "^7.0.0", |
11470 | "lodash": "^4.0.0", | 11478 | "lodash": "^4.0.0", |
11471 | "scss-tokenizer": "^0.2.3", | 11479 | "scss-tokenizer": "^0.2.3", |
11472 | - "yargs": "^7.0.0" | 11480 | + "yargs": "^13.3.2" |
11473 | } | 11481 | } |
11474 | }, | 11482 | }, |
11475 | "sass-loader": { | 11483 | "sass-loader": { |
@@ -13472,88 +13480,138 @@ | @@ -13472,88 +13480,138 @@ | ||
13472 | "dev": true | 13480 | "dev": true |
13473 | }, | 13481 | }, |
13474 | "yargs": { | 13482 | "yargs": { |
13475 | - "version": "7.1.0", | ||
13476 | - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", | ||
13477 | - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", | 13483 | + "version": "13.3.2", |
13484 | + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", | ||
13485 | + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", | ||
13478 | "dev": true, | 13486 | "dev": true, |
13479 | "requires": { | 13487 | "requires": { |
13480 | - "camelcase": "^3.0.0", | ||
13481 | - "cliui": "^3.2.0", | ||
13482 | - "decamelize": "^1.1.1", | ||
13483 | - "get-caller-file": "^1.0.1", | ||
13484 | - "os-locale": "^1.4.0", | ||
13485 | - "read-pkg-up": "^1.0.1", | 13488 | + "cliui": "^5.0.0", |
13489 | + "find-up": "^3.0.0", | ||
13490 | + "get-caller-file": "^2.0.1", | ||
13486 | "require-directory": "^2.1.1", | 13491 | "require-directory": "^2.1.1", |
13487 | - "require-main-filename": "^1.0.1", | 13492 | + "require-main-filename": "^2.0.0", |
13488 | "set-blocking": "^2.0.0", | 13493 | "set-blocking": "^2.0.0", |
13489 | - "string-width": "^1.0.2", | ||
13490 | - "which-module": "^1.0.0", | ||
13491 | - "y18n": "^3.2.1", | ||
13492 | - "yargs-parser": "^5.0.0" | 13494 | + "string-width": "^3.0.0", |
13495 | + "which-module": "^2.0.0", | ||
13496 | + "y18n": "^4.0.0", | ||
13497 | + "yargs-parser": "^13.1.2" | ||
13493 | }, | 13498 | }, |
13494 | "dependencies": { | 13499 | "dependencies": { |
13495 | - "ansi-regex": { | ||
13496 | - "version": "2.1.1", | ||
13497 | - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", | ||
13498 | - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", | 13500 | + "emoji-regex": { |
13501 | + "version": "7.0.3", | ||
13502 | + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
13503 | + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
13499 | "dev": true | 13504 | "dev": true |
13500 | }, | 13505 | }, |
13501 | - "camelcase": { | 13506 | + "find-up": { |
13502 | "version": "3.0.0", | 13507 | "version": "3.0.0", |
13503 | - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", | ||
13504 | - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", | 13508 | + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", |
13509 | + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", | ||
13510 | + "dev": true, | ||
13511 | + "requires": { | ||
13512 | + "locate-path": "^3.0.0" | ||
13513 | + } | ||
13514 | + }, | ||
13515 | + "get-caller-file": { | ||
13516 | + "version": "2.0.5", | ||
13517 | + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", | ||
13518 | + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", | ||
13505 | "dev": true | 13519 | "dev": true |
13506 | }, | 13520 | }, |
13507 | "is-fullwidth-code-point": { | 13521 | "is-fullwidth-code-point": { |
13508 | - "version": "1.0.0", | ||
13509 | - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", | ||
13510 | - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", | 13522 | + "version": "2.0.0", |
13523 | + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
13524 | + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
13525 | + "dev": true | ||
13526 | + }, | ||
13527 | + "locate-path": { | ||
13528 | + "version": "3.0.0", | ||
13529 | + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", | ||
13530 | + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", | ||
13511 | "dev": true, | 13531 | "dev": true, |
13512 | "requires": { | 13532 | "requires": { |
13513 | - "number-is-nan": "^1.0.0" | 13533 | + "p-locate": "^3.0.0", |
13534 | + "path-exists": "^3.0.0" | ||
13535 | + } | ||
13536 | + }, | ||
13537 | + "p-limit": { | ||
13538 | + "version": "2.3.0", | ||
13539 | + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", | ||
13540 | + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", | ||
13541 | + "dev": true, | ||
13542 | + "requires": { | ||
13543 | + "p-try": "^2.0.0" | ||
13544 | + } | ||
13545 | + }, | ||
13546 | + "p-locate": { | ||
13547 | + "version": "3.0.0", | ||
13548 | + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", | ||
13549 | + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", | ||
13550 | + "dev": true, | ||
13551 | + "requires": { | ||
13552 | + "p-limit": "^2.0.0" | ||
13514 | } | 13553 | } |
13515 | }, | 13554 | }, |
13555 | + "p-try": { | ||
13556 | + "version": "2.2.0", | ||
13557 | + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", | ||
13558 | + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", | ||
13559 | + "dev": true | ||
13560 | + }, | ||
13561 | + "path-exists": { | ||
13562 | + "version": "3.0.0", | ||
13563 | + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | ||
13564 | + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", | ||
13565 | + "dev": true | ||
13566 | + }, | ||
13567 | + "require-main-filename": { | ||
13568 | + "version": "2.0.0", | ||
13569 | + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", | ||
13570 | + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", | ||
13571 | + "dev": true | ||
13572 | + }, | ||
13516 | "string-width": { | 13573 | "string-width": { |
13517 | - "version": "1.0.2", | ||
13518 | - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", | ||
13519 | - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", | 13574 | + "version": "3.1.0", |
13575 | + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
13576 | + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
13520 | "dev": true, | 13577 | "dev": true, |
13521 | "requires": { | 13578 | "requires": { |
13522 | - "code-point-at": "^1.0.0", | ||
13523 | - "is-fullwidth-code-point": "^1.0.0", | ||
13524 | - "strip-ansi": "^3.0.0" | 13579 | + "emoji-regex": "^7.0.1", |
13580 | + "is-fullwidth-code-point": "^2.0.0", | ||
13581 | + "strip-ansi": "^5.1.0" | ||
13525 | } | 13582 | } |
13526 | }, | 13583 | }, |
13527 | "strip-ansi": { | 13584 | "strip-ansi": { |
13528 | - "version": "3.0.1", | ||
13529 | - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", | ||
13530 | - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", | 13585 | + "version": "5.2.0", |
13586 | + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
13587 | + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
13531 | "dev": true, | 13588 | "dev": true, |
13532 | "requires": { | 13589 | "requires": { |
13533 | - "ansi-regex": "^2.0.0" | 13590 | + "ansi-regex": "^4.1.0" |
13534 | } | 13591 | } |
13535 | }, | 13592 | }, |
13536 | - "y18n": { | ||
13537 | - "version": "3.2.1", | ||
13538 | - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", | ||
13539 | - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", | 13593 | + "which-module": { |
13594 | + "version": "2.0.0", | ||
13595 | + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", | ||
13596 | + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", | ||
13540 | "dev": true | 13597 | "dev": true |
13541 | } | 13598 | } |
13542 | } | 13599 | } |
13543 | }, | 13600 | }, |
13544 | "yargs-parser": { | 13601 | "yargs-parser": { |
13545 | - "version": "5.0.0", | ||
13546 | - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", | ||
13547 | - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", | 13602 | + "version": "13.1.2", |
13603 | + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", | ||
13604 | + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", | ||
13548 | "dev": true, | 13605 | "dev": true, |
13549 | "requires": { | 13606 | "requires": { |
13550 | - "camelcase": "^3.0.0" | 13607 | + "camelcase": "^5.0.0", |
13608 | + "decamelize": "^1.2.0" | ||
13551 | }, | 13609 | }, |
13552 | "dependencies": { | 13610 | "dependencies": { |
13553 | "camelcase": { | 13611 | "camelcase": { |
13554 | - "version": "3.0.0", | ||
13555 | - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", | ||
13556 | - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", | 13612 | + "version": "5.3.1", |
13613 | + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", | ||
13614 | + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", | ||
13557 | "dev": true | 13615 | "dev": true |
13558 | } | 13616 | } |
13559 | } | 13617 | } |
src/api/message_bus.js
0 → 100644
1 | +import http from './http.js' | ||
2 | + | ||
3 | +let baseUrl = 'message-bus-service/bus' | ||
4 | +// let baseUrl = 'http://127.0.0.1:9030/bus' | ||
5 | + | ||
6 | +// MQ服务器,分页查询列表 | ||
7 | +export const selectBusServerList = params =>{return http.get(`${baseUrl}/server/list`, params);}; | ||
8 | +// MQ服务器,新增 | ||
9 | +export const insertBusServer = params =>{return http.post(`${baseUrl}/server/insert`, params);}; | ||
10 | +// MQ服务器,编辑 | ||
11 | +export const updateBusServer = params =>{return http.put(`${baseUrl}/server/update`, params);}; | ||
12 | +// MQ服务器,删除 | ||
13 | +export const deleteBusServer = params =>{return http.del(`${baseUrl}/server/delete`, params);}; | ||
14 | +// MQ服务器,批量删除 | ||
15 | +export const batchRemoveBusServer = params =>{return http.get(`${baseUrl}/server/batchRemove`, params);}; | ||
16 | + | ||
17 | + | ||
18 | +// MQ虚拟主机,分页查询列表 | ||
19 | +export const selectVirtualHostList = params =>{return http.get(`${baseUrl}/host/list`, params);}; | ||
20 | +// MQ虚拟主机,新增 | ||
21 | +export const insertVirtualHost = params =>{return http.post(`${baseUrl}/host/insert`, params);}; | ||
22 | +// MQ虚拟主机,编辑 | ||
23 | +export const updateVirtualHost = params =>{return http.put(`${baseUrl}/host/update`, params);}; | ||
24 | +// MQ虚拟主机,删除 | ||
25 | +export const deleteVirtualHost = params =>{return http.del(`${baseUrl}/host/delete`, params);}; | ||
26 | +// MQ虚拟主机,批量删除 | ||
27 | +export const batchRemoveVirtualHost = params =>{return http.get(`${baseUrl}/host/batchRemove`, params);}; | ||
28 | + | ||
29 | + | ||
30 | +// MQ交换机,分页查询列表 | ||
31 | +export const selectBusExchangeList = params =>{return http.get(`${baseUrl}/exchange/list`, params);}; | ||
32 | +// MQ交换机,新增 | ||
33 | +export const insertBusExchange = params =>{return http.post(`${baseUrl}/exchange/insert`, params);}; | ||
34 | +// MQ交换机,编辑 | ||
35 | +export const updateBusExchange = params =>{return http.put(`${baseUrl}/exchange/update`, params);}; | ||
36 | +// MQ交换机,删除 | ||
37 | +export const deleteBusExchange = params =>{return http.del(`${baseUrl}/exchange/delete`, params);}; | ||
38 | +// MQ交换机,批量删除 | ||
39 | +export const batchRemoveBusExchange = params =>{return http.get(`${baseUrl}/exchange/batchRemove`, params);}; | ||
40 | + | ||
41 | + | ||
42 | +// MQ路由键,分页查询列表 | ||
43 | +export const selectRoutingKeyList = params =>{return http.get(`${baseUrl}/routing/list`, params);}; | ||
44 | +// MQ路由键,新增 | ||
45 | +export const insertRoutingKey = params =>{return http.post(`${baseUrl}/routing/insert`, params);}; | ||
46 | +// MQ路由键,编辑 | ||
47 | +export const updateRoutingKey = params =>{return http.put(`${baseUrl}/routing/update`, params);}; | ||
48 | +// MQ路由键,删除 | ||
49 | +export const deleteRoutingKey = params =>{return http.del(`${baseUrl}/routing/delete`, params);}; | ||
50 | +// MQ路由键,批量删除 | ||
51 | +export const batchRemoveRoutingKey = params =>{return http.get(`${baseUrl}/routing/batchRemove`, params);}; | ||
52 | + | ||
53 | + | ||
54 | +// MQ消息队列,分页查询列表 | ||
55 | +export const selectBusQueueList = params =>{return http.get(`${baseUrl}/queue/list`, params);}; | ||
56 | +// MQ消息队列,新增 | ||
57 | +export const insertBusQueue = params =>{return http.post(`${baseUrl}/queue/insert`, params);}; | ||
58 | +// MQ消息队列,编辑 | ||
59 | +export const updateBusQueue = params =>{return http.put(`${baseUrl}/queue/update`, params);}; | ||
60 | +// MQ消息队列,删除 | ||
61 | +export const deleteBusQueue = params =>{return http.del(`${baseUrl}/queue/delete`, params);}; | ||
62 | +// MQ消息队列,批量删除 | ||
63 | +export const batchRemoveBusQueue = params =>{return http.get(`${baseUrl}/queue/batchRemove`, params);}; | ||
64 | + | ||
65 | + | ||
66 | + | ||
67 | +// MQ消息收发记录,分页查询列表 | ||
68 | +export const selectMessageNoteList = params =>{return http.get(`${baseUrl}/note/list`, params);}; | ||
69 | +// MQ消息收发记录,新增 | ||
70 | +export const insertMessageNote = params =>{return http.post(`${baseUrl}/note/insert`, params);}; | ||
71 | +// MQ消息收发记录,编辑 | ||
72 | +export const updateMessageNote = params =>{return http.put(`${baseUrl}/note/update`, params);}; | ||
73 | +// MQ消息收发记录,删除 | ||
74 | +export const deleteMessageNote = params =>{return http.del(`${baseUrl}/note/delete`, params);}; | ||
75 | +// MQ消息收发记录,批量删除 | ||
76 | +export const batchRemoveMessageNote = params =>{return http.get(`${baseUrl}/note/batchRemove`, params);}; | ||
77 | + | ||
78 | + | ||
79 | +// MQ账户消息绑定配置,分页查询列表 | ||
80 | +export const selectUserMessageBindingList = params =>{return http.get(`${baseUrl}/umb/list`, params);}; | ||
81 | +// MQ账户消息绑定配置,新增 | ||
82 | +export const insertUserMessageBinding = params =>{return http.post(`${baseUrl}/umb/insert`, params);}; | ||
83 | +// MQ账户消息绑定配置,编辑 | ||
84 | +export const updateUserMessageBinding = params =>{return http.put(`${baseUrl}/umb/update`, params);}; | ||
85 | +// MQ账户消息绑定配置,删除 | ||
86 | +export const deleteUserMessageBinding = params =>{return http.del(`${baseUrl}/umb/delete`, params);}; | ||
87 | +// MQ账户消息绑定配置,批量删除 | ||
88 | +export const batchRemoveUserMessageBinding = params =>{return http.get(`${baseUrl}/umb/batchRemove`, params);}; | ||
89 | + | ||
90 | +// 级联查询 | ||
91 | +export const getServerList = params =>{return http.get(`${baseUrl}/cascade/server`, params);}; | ||
92 | +export const getHostList = params =>{return http.get(`${baseUrl}/cascade/host`, params);}; | ||
93 | +export const getServerAndHostList = params =>{return http.get(`${baseUrl}/cascade/server_host`, params);}; | ||
94 | +export const getServerAndHostAndExchangeList = params =>{return http.get(`${baseUrl}/cascade/server_host_exchange`, params);}; |
@@ -75,6 +75,14 @@ import queryDeparture from './views/airtransport/queryDeparture.vue' | @@ -75,6 +75,14 @@ import queryDeparture from './views/airtransport/queryDeparture.vue' | ||
75 | import queryDeclare from './views/airtransport/queryDeclare.vue' | 75 | import queryDeclare from './views/airtransport/queryDeclare.vue' |
76 | import outConfigure from './views/airtransport/outConfigure.vue' | 76 | import outConfigure from './views/airtransport/outConfigure.vue' |
77 | import queryFlightConfigure from './views/airtransport/queryFlightConfigure.vue' | 77 | import queryFlightConfigure from './views/airtransport/queryFlightConfigure.vue' |
78 | +// 消息控制中心 | ||
79 | +import Server from './views/bus/Server.vue' | ||
80 | +import VirtualHost from './views/bus/VirtualHost.vue' | ||
81 | +import Exchange from './views/bus/Exchange.vue' | ||
82 | +import RoutingKey from './views/bus/RoutingKey.vue' | ||
83 | +import Queue from './views/bus/Queue.vue' | ||
84 | +import MessageNote from './views/bus/MessageNote.vue' | ||
85 | +import UserMessageBinding from './views/bus/UserMessageBinding.vue' | ||
78 | 86 | ||
79 | 87 | ||
80 | 88 | ||
@@ -108,162 +116,180 @@ let routes = [ | @@ -108,162 +116,180 @@ let routes = [ | ||
108 | name: '系统设置', | 116 | name: '系统设置', |
109 | iconCls: 'el-icon-setting',//图标样式class | 117 | iconCls: 'el-icon-setting',//图标样式class |
110 | children: [ | 118 | children: [ |
111 | - { path: '/user', component: User, name: '用户管理' }, | ||
112 | - { path: '/role', component: Role, name: '组织机构' }, | ||
113 | - { path: '/perm', component: Perm, name: '权限管理' }, | ||
114 | - { path: '/log', component: LOG, name: '系统日志' }, | ||
115 | - { path: '/department', component: Department, name: '部门管理' }, | ||
116 | - { path: '/company', component: Company, name: '公司管理'}, | ||
117 | - { path: '/group', component: Group, name: '集团管理'} | ||
118 | - ] | ||
119 | - }, | ||
120 | - { | ||
121 | - path: '/guestService', | ||
122 | - component: Home, | ||
123 | - name: '客服系统', | ||
124 | - iconCls: 'fa fa-id-card-o', | ||
125 | - children: [ | ||
126 | - { path: '/process', component: Process, name: '工单管理' }, | ||
127 | - { path: '/job', component: Job, name: '任务管理' }, | ||
128 | - {path: '/pre1', component: PreManifest, name: '预配'}, | ||
129 | - ] | ||
130 | - }, | ||
131 | - { | ||
132 | - path: '/output', | ||
133 | - component: Home, | ||
134 | - name: '出港业务申报', | ||
135 | - iconCls: 'el-icon-collection', | ||
136 | - children: [ | ||
137 | - {path: '/flight', component: ExitFlight, name: '出港航班申报'}, | ||
138 | - {path: '/manifest', component: ExitManifest, name: '出港运单申报'}, | ||
139 | - {path: '/pre', component: ExitPre, name: '出港预配舱单'}, | ||
140 | - {path: '/arrive', component: ExitArrive, name: '出港运抵'}, | ||
141 | - {path: '/loadingView', component: ExitFlightDesc, name: '出港航班信息'}, | ||
142 | - {path: '/loading', component: ExitLoading, name: '出港装载'}, | ||
143 | - {path: '/tidy', component: ExitTidy, name: '出港理货'} | 119 | + {path: '/user', component: User, name: '用户管理'}, |
120 | + {path: '/role', component: Role, name: '组织机构'}, | ||
121 | + {path: '/perm', component: Perm, name: '权限管理'}, | ||
122 | + {path: '/log', component: LOG, name: '系统日志'}, | ||
123 | + {path: '/department', component: Department, name: '部门管理'}, | ||
124 | + {path: '/company', component: Company, name: '公司管理'}, | ||
125 | + {path: '/group', component: Group, name: '集团管理'} | ||
144 | ] | 126 | ] |
145 | }, | 127 | }, |
128 | + | ||
146 | { | 129 | { |
147 | - path: '/nmms2', | 130 | + path: '/bus', |
148 | component: Home, | 131 | component: Home, |
149 | - name: '进港业务申报', | ||
150 | - iconCls: 'fa fa-id-card-o', | 132 | + name: '消息控制中心', |
133 | + iconCls: 'el-icon-message', | ||
151 | children: [ | 134 | children: [ |
152 | - { path: '/orig', component: OrigFlightList, name: '进港航班申报' }, | ||
153 | - {path:'/waybill',component:Waybill,name:'进港运单申报'}, | ||
154 | - {path:'/allocateSearch',component:AllocateSearch,name:'运单分拨申报'}, | ||
155 | - { path: '/enter', component: EnterFlightInfo, name: '原始舱单'}, | ||
156 | - { path:'/origmaster',component:OrigMaster,name:'进港原始舱单'}, | ||
157 | - {path:'/entertall',component:EnterTally,name:'进港理货'}, | ||
158 | - {path:'/tallymaster',component:TallyMster,name:'进港理货舱单'}, | ||
159 | - {path:'/importallocation',component:Importallocation,name:'进港分拨'}, | ||
160 | - {path:'/allocatearrive',component:Allocatearrive,name:'分拨运抵'}, | 135 | + {path: '/server', component: Server, name: '服务器管理'}, |
136 | + {path: '/host', component: VirtualHost, name: '虚拟主机管理'}, | ||
137 | + {path: '/exchange', component: Exchange, name: '交换机管理'}, | ||
138 | + {path: '/queue', component: Queue, name: '队列管理'}, | ||
139 | + {path: '/routing', component: RoutingKey, name: '路由键管理'}, | ||
140 | + {path: '/umb', component: UserMessageBinding, name: '配置管理'}, | ||
141 | + {path: '/note', component: MessageNote, name: '消息记录管理'}, | ||
161 | ] | 142 | ] |
162 | }, | 143 | }, |
163 | - { | ||
164 | - path: '/lost', | ||
165 | - component: Home, | ||
166 | - name: '落装改配申报', | ||
167 | - iconCls:'el-icon-goods', | ||
168 | - children:[ | ||
169 | - {path:'/lostLoad',component:LostLoad,name:'落装业务申报'}, | ||
170 | - {path:'/lostLoadChange',component:LostLoadChange,name:'改配业务申报'} | ||
171 | 144 | ||
172 | - ] | ||
173 | - }, | ||
174 | - { | ||
175 | - path: '/airtransport', | ||
176 | - component: Home, | ||
177 | - name: '通用业务申报', | ||
178 | - iconCls:'el-icon-goods', | ||
179 | - children:[ | ||
180 | - {path:'/route',component:Route,name:'航线申报'}, | ||
181 | - {path:'/bill',component:Bill,name:'单据申报'}, | ||
182 | - {path:'/flights',component:Flight,name:'航班申报'}, | ||
183 | - {path:'/flightplan',component:Flightplan,name:'当日飞行计划'}, | ||
184 | - {path:'/aircraft',component:Aircraft,name:'通用航空器申报'}, | ||
185 | - {path:'/routeaircraft',component:Routeaircraft,name:'航线航空器申报'}, | ||
186 | - ] | ||
187 | - }, | ||
188 | - { | ||
189 | - path: '/querytransport', | ||
190 | - component: Home, | ||
191 | - name: '通用业务查询', | ||
192 | - iconCls:'el-icon-goods', | ||
193 | - children:[ | ||
194 | - {path:'/queryRoute',component:queryRoute,name:'航线查询'}, | ||
195 | - {path:'/queryBill',component:queryBill,name:'单据查询'}, | ||
196 | - {path:'/queryFlights',component:queryFlight,name:'航班查询'}, | ||
197 | - {path:'/queryFlightplan',component:queryFlightplan,name:'当日飞行计划查询'}, | ||
198 | - {path:'/queryAircraft',component:queryAircraft,name:'通用航空器查询'}, | ||
199 | - {path:'/queryRouteaircraft',component:queryRouteaircraft,name:'航线航空器查询'}, | ||
200 | - ] | ||
201 | - }, | ||
202 | - { | ||
203 | - path: '/input', | ||
204 | - component: Home, | ||
205 | - name: '进港航班申报', | ||
206 | - iconCls:'el-icon-goods', | ||
207 | - children:[ | ||
208 | - {path:'/arrival',component:arrival,name:'进港预报申报'}, | ||
209 | - {path:'/confirmatory',component:confirmatory,name:'进港确报申报'}, | ||
210 | - {path:'/queryArrival',component:queryArrival,name:'进港预报查询'}, | ||
211 | - {path:'/queryConfirmatory',component:queryConfirmatory,name:'进港确报查询'}, | ||
212 | - {path:'/configure',component:configure,name:'进港航班配置'}, | ||
213 | - {path:'/queryConfigure',component:queryConfigure,name:'航班配置查询'}, | ||
214 | - ] | ||
215 | - }, | ||
216 | - { | ||
217 | - path: '/out', | ||
218 | - component: Home, | ||
219 | - name: '出港航班申报', | ||
220 | - iconCls:'el-icon-goods', | ||
221 | - children:[ | ||
222 | - {path:'/departure',component:departure,name:'出港预报申报'}, | ||
223 | - {path:'/declare',component:declare,name:'出港确报申报'}, | ||
224 | - {path:'/queryDeparture',component:queryDeparture,name:'出港预报查询'}, | ||
225 | - {path:'/queryDeclare',component:queryDeclare,name:'出港确报查询'}, | ||
226 | - {path:'/outConfigure',component:outConfigure,name:'出港航班配置'}, | ||
227 | - {path:'/queryFlightConfigure',component:queryFlightConfigure,name:'航班配置查询'}, | ||
228 | - ] | ||
229 | - }, | ||
230 | 145 | ||
231 | - { | ||
232 | - path: '/empt', | ||
233 | - component: Home, | ||
234 | - name: '能源管理', | ||
235 | - iconCls: 'fa fa-id-card-o', | ||
236 | - children: [ | ||
237 | - { path: '/location', component: Location, name: '能源缴费' }, | ||
238 | - ] | ||
239 | - }, | ||
240 | - { | ||
241 | - path: '/satff', | ||
242 | - component: Home, | ||
243 | - name: '生活保障部门', | ||
244 | - iconCls: 'fa fa-id-card-o', | ||
245 | - children: [ | ||
246 | - { path: '/security_inspection', component: SecrityInspection, name: '职工公寓安全巡视管理' }, | ||
247 | - { path: '/key', component: Key, name: '职工公寓备用钥匙使用登记管理' }, | ||
248 | - { path: '/maintain', component: Maintain, name: '职工公寓设施设备维修记录管理' }, | ||
249 | - { path: '/come_car', component: ComeCar, name: '职工公寓外来人员车辆登记管理' }, | ||
250 | - { path: '/on_duty', component: OnDuty, name: '职工公寓值班巡视记录管理' }, | ||
251 | - ] | ||
252 | - }, | ||
253 | - { | ||
254 | - path: '/water_heating_chamber', | ||
255 | - component: Home, | ||
256 | - name: '水暖室', | ||
257 | - iconCls: 'fa fa-address-card', | ||
258 | - // leaf: true,//只有一个节点 | ||
259 | - children: [ | ||
260 | - { path: '/water_stations_patrol', component: WaterStationsPatrol, name: '二水厂-水站巡视记录单管理' }, | ||
261 | - // { path: '/page6', component: Page6, name: '水质量检测' }, | ||
262 | - // { path: '/page6', component: Page6, name: '污水站' }, | ||
263 | - // { path: '/page6', component: Page6, name: '一水厂' }, | ||
264 | - // { path: '/page6', component: Page6, name: '综合楼空调站' }, | ||
265 | - ] | ||
266 | - }, | 146 | + // { |
147 | + // path: '/guestService', | ||
148 | + // component: Home, | ||
149 | + // name: '客服系统', | ||
150 | + // iconCls: 'fa fa-id-card-o', | ||
151 | + // children: [ | ||
152 | + // { path: '/process', component: Process, name: '工单管理' }, | ||
153 | + // { path: '/job', component: Job, name: '任务管理' }, | ||
154 | + // {path: '/pre1', component: PreManifest, name: '预配'}, | ||
155 | + // ] | ||
156 | + // }, | ||
157 | + // { | ||
158 | + // path: '/output', | ||
159 | + // component: Home, | ||
160 | + // name: '出港业务申报', | ||
161 | + // iconCls: 'el-icon-collection', | ||
162 | + // children: [ | ||
163 | + // {path: '/flight', component: ExitFlight, name: '出港航班申报'}, | ||
164 | + // {path: '/manifest', component: ExitManifest, name: '出港运单申报'}, | ||
165 | + // {path: '/pre', component: ExitPre, name: '出港预配舱单'}, | ||
166 | + // {path: '/arrive', component: ExitArrive, name: '出港运抵'}, | ||
167 | + // {path: '/loadingView', component: ExitFlightDesc, name: '出港航班信息'}, | ||
168 | + // {path: '/loading', component: ExitLoading, name: '出港装载'}, | ||
169 | + // {path: '/tidy', component: ExitTidy, name: '出港理货'} | ||
170 | + // ] | ||
171 | + // }, | ||
172 | + // { | ||
173 | + // path: '/nmms2', | ||
174 | + // component: Home, | ||
175 | + // name: '进港业务申报', | ||
176 | + // iconCls: 'fa fa-id-card-o', | ||
177 | + // children: [ | ||
178 | + // { path: '/orig', component: OrigFlightList, name: '进港航班申报' }, | ||
179 | + // {path:'/waybill',component:Waybill,name:'进港运单申报'}, | ||
180 | + // {path:'/allocateSearch',component:AllocateSearch,name:'运单分拨申报'}, | ||
181 | + // { path: '/enter', component: EnterFlightInfo, name: '原始舱单'}, | ||
182 | + // { path:'/origmaster',component:OrigMaster,name:'进港原始舱单'}, | ||
183 | + // {path:'/entertall',component:EnterTally,name:'进港理货'}, | ||
184 | + // {path:'/tallymaster',component:TallyMster,name:'进港理货舱单'}, | ||
185 | + // {path:'/importallocation',component:Importallocation,name:'进港分拨'}, | ||
186 | + // {path:'/allocatearrive',component:Allocatearrive,name:'分拨运抵'}, | ||
187 | + // ] | ||
188 | + // }, | ||
189 | + // { | ||
190 | + // path: '/lost', | ||
191 | + // component: Home, | ||
192 | + // name: '落装改配申报', | ||
193 | + // iconCls:'el-icon-goods', | ||
194 | + // children:[ | ||
195 | + // {path:'/lostLoad',component:LostLoad,name:'落装业务申报'}, | ||
196 | + // {path:'/lostLoadChange',component:LostLoadChange,name:'改配业务申报'} | ||
197 | + // | ||
198 | + // ] | ||
199 | + // }, | ||
200 | + // { | ||
201 | + // path: '/airtransport', | ||
202 | + // component: Home, | ||
203 | + // name: '通用业务申报', | ||
204 | + // iconCls:'el-icon-goods', | ||
205 | + // children:[ | ||
206 | + // {path:'/route',component:Route,name:'航线申报'}, | ||
207 | + // {path:'/bill',component:Bill,name:'单据申报'}, | ||
208 | + // {path:'/flights',component:Flight,name:'航班申报'}, | ||
209 | + // {path:'/flightplan',component:Flightplan,name:'当日飞行计划'}, | ||
210 | + // {path:'/aircraft',component:Aircraft,name:'通用航空器申报'}, | ||
211 | + // {path:'/routeaircraft',component:Routeaircraft,name:'航线航空器申报'}, | ||
212 | + // ] | ||
213 | + // }, | ||
214 | + // { | ||
215 | + // path: '/querytransport', | ||
216 | + // component: Home, | ||
217 | + // name: '通用业务查询', | ||
218 | + // iconCls:'el-icon-goods', | ||
219 | + // children:[ | ||
220 | + // {path:'/queryRoute',component:queryRoute,name:'航线查询'}, | ||
221 | + // {path:'/queryBill',component:queryBill,name:'单据查询'}, | ||
222 | + // {path:'/queryFlights',component:queryFlight,name:'航班查询'}, | ||
223 | + // {path:'/queryFlightplan',component:queryFlightplan,name:'当日飞行计划查询'}, | ||
224 | + // {path:'/queryAircraft',component:queryAircraft,name:'通用航空器查询'}, | ||
225 | + // {path:'/queryRouteaircraft',component:queryRouteaircraft,name:'航线航空器查询'}, | ||
226 | + // ] | ||
227 | + // }, | ||
228 | + // { | ||
229 | + // path: '/input', | ||
230 | + // component: Home, | ||
231 | + // name: '进港航班申报', | ||
232 | + // iconCls:'el-icon-goods', | ||
233 | + // children:[ | ||
234 | + // {path:'/arrival',component:arrival,name:'进港预报申报'}, | ||
235 | + // {path:'/confirmatory',component:confirmatory,name:'进港确报申报'}, | ||
236 | + // {path:'/queryArrival',component:queryArrival,name:'进港预报查询'}, | ||
237 | + // {path:'/queryConfirmatory',component:queryConfirmatory,name:'进港确报查询'}, | ||
238 | + // {path:'/configure',component:configure,name:'进港航班配置'}, | ||
239 | + // {path:'/queryConfigure',component:queryConfigure,name:'航班配置查询'}, | ||
240 | + // ] | ||
241 | + // }, | ||
242 | + // { | ||
243 | + // path: '/out', | ||
244 | + // component: Home, | ||
245 | + // name: '出港航班申报', | ||
246 | + // iconCls:'el-icon-goods', | ||
247 | + // children:[ | ||
248 | + // {path:'/departure',component:departure,name:'出港预报申报'}, | ||
249 | + // {path:'/declare',component:declare,name:'出港确报申报'}, | ||
250 | + // {path:'/queryDeparture',component:queryDeparture,name:'出港预报查询'}, | ||
251 | + // {path:'/queryDeclare',component:queryDeclare,name:'出港确报查询'}, | ||
252 | + // {path:'/outConfigure',component:outConfigure,name:'出港航班配置'}, | ||
253 | + // {path:'/queryFlightConfigure',component:queryFlightConfigure,name:'航班配置查询'}, | ||
254 | + // ] | ||
255 | + // }, | ||
256 | + // | ||
257 | + // { | ||
258 | + // path: '/empt', | ||
259 | + // component: Home, | ||
260 | + // name: '能源管理', | ||
261 | + // iconCls: 'fa fa-id-card-o', | ||
262 | + // children: [ | ||
263 | + // { path: '/location', component: Location, name: '能源缴费' }, | ||
264 | + // ] | ||
265 | + // }, | ||
266 | + // { | ||
267 | + // path: '/satff', | ||
268 | + // component: Home, | ||
269 | + // name: '生活保障部门', | ||
270 | + // iconCls: 'fa fa-id-card-o', | ||
271 | + // children: [ | ||
272 | + // { path: '/security_inspection', component: SecrityInspection, name: '职工公寓安全巡视管理' }, | ||
273 | + // { path: '/key', component: Key, name: '职工公寓备用钥匙使用登记管理' }, | ||
274 | + // { path: '/maintain', component: Maintain, name: '职工公寓设施设备维修记录管理' }, | ||
275 | + // { path: '/come_car', component: ComeCar, name: '职工公寓外来人员车辆登记管理' }, | ||
276 | + // { path: '/on_duty', component: OnDuty, name: '职工公寓值班巡视记录管理' }, | ||
277 | + // ] | ||
278 | + // }, | ||
279 | + // { | ||
280 | + // path: '/water_heating_chamber', | ||
281 | + // component: Home, | ||
282 | + // name: '水暖室', | ||
283 | + // iconCls: 'fa fa-address-card', | ||
284 | + // // leaf: true,//只有一个节点 | ||
285 | + // children: [ | ||
286 | + // { path: '/water_stations_patrol', component: WaterStationsPatrol, name: '二水厂-水站巡视记录单管理' }, | ||
287 | + // // { path: '/page6', component: Page6, name: '水质量检测' }, | ||
288 | + // // { path: '/page6', component: Page6, name: '污水站' }, | ||
289 | + // // { path: '/page6', component: Page6, name: '一水厂' }, | ||
290 | + // // { path: '/page6', component: Page6, name: '综合楼空调站' }, | ||
291 | + // ] | ||
292 | + // }, | ||
267 | { | 293 | { |
268 | path: '/', | 294 | path: '/', |
269 | component: Home, | 295 | component: Home, |
@@ -146,7 +146,7 @@ | @@ -146,7 +146,7 @@ | ||
146 | } | 146 | } |
147 | }; | 147 | }; |
148 | return { | 148 | return { |
149 | - sysName:'易通快速通关申报管理系统', | 149 | + sysName:'消息控制中心', |
150 | collapsed:false, | 150 | collapsed:false, |
151 | sysUserName: '', | 151 | sysUserName: '', |
152 | sysUserId:'', | 152 | sysUserId:'', |
@@ -371,7 +371,7 @@ | @@ -371,7 +371,7 @@ | ||
371 | aside { | 371 | aside { |
372 | flex:0 0 230px; | 372 | flex:0 0 230px; |
373 | width: 230px; | 373 | width: 230px; |
374 | - overflow-y: scroll; | 374 | + /*overflow-y: scroll;*/ |
375 | background: #606060; | 375 | background: #606060; |
376 | // position: absolute; | 376 | // position: absolute; |
377 | // top: 0px; | 377 | // top: 0px; |
src/views/bus/Exchange.vue
0 → 100644
1 | +<template> | ||
2 | + <el-container> | ||
3 | + <el-main> | ||
4 | + <el-card style="background-color: #F5F7FA"> | ||
5 | + <!-- 搜素区域 --> | ||
6 | + <div> | ||
7 | + <el-row :gutter="24"> | ||
8 | + <el-col :span="4"> | ||
9 | + <el-input v-model="exchange_queryInfo.exchangeName" prefix-icon="el-icon-search" | ||
10 | + size="medium" | ||
11 | + placeholder="交换机名称" clearable style="width:180px"></el-input> | ||
12 | + </el-col> | ||
13 | + <el-col :span="4"> | ||
14 | + <el-cascader | ||
15 | + style="width:180px" size="medium" | ||
16 | + v-model="exchange_queryInfo.virtualHostId" | ||
17 | + :options="exchange_config.cascade.server_hostList" | ||
18 | + :show-all-levels="false" | ||
19 | + :change-on-select="false" | ||
20 | + clearable | ||
21 | + @change="cascadeQueryChange" | ||
22 | + :props="exchange_config.cascade.defaultParams" | ||
23 | + placeholder="请选择所属虚拟主机"></el-cascader> | ||
24 | + </el-col> | ||
25 | + <el-col :span="8"> | ||
26 | + <el-button type="success" style="width:150px" size="medium" @click="exchange_getList"> | ||
27 | + 查询交换机 | ||
28 | + </el-button> | ||
29 | + <el-button type="primary" style="width:150px" size="medium" @click="exchange_toAddDialog"> | ||
30 | + 添加交换机 | ||
31 | + </el-button> | ||
32 | + </el-col> | ||
33 | + </el-row> | ||
34 | + </div> | ||
35 | + <!-- 列表区域 --> | ||
36 | + <div style="margin-top: 20px;"> | ||
37 | + <el-table :data="exchange_page.exchangeList" border v-loading="exchange_loading.listLoading" | ||
38 | + @selection-change="exchange_selectChange" | ||
39 | + element-loading-text="获取交换机列表,拼命加载中"> | ||
40 | + <el-table-column type="selection" width="55" align="center"></el-table-column> | ||
41 | + <el-table-column type="index" align="center"></el-table-column> | ||
42 | + <el-table-column label="交换机名称" prop="exchangeName" align="center" | ||
43 | + width="190"></el-table-column> | ||
44 | + <el-table-column label="所属虚拟主机" prop="virtualHost.virtualHostName" align="center" width="190"> | ||
45 | + </el-table-column> | ||
46 | + <el-table-column label="交换机类型" prop="exchangeType" align="center" width="160"> | ||
47 | + </el-table-column> | ||
48 | + <el-table-column label="是否持久化" prop="durability" align="center" width="145"> | ||
49 | + <template slot-scope="scope"> | ||
50 | + <span v-if="scope.row.durability ===false">否</span> | ||
51 | + <span v-if="scope.row.durability ===true">是</span> | ||
52 | + </template> | ||
53 | + </el-table-column> | ||
54 | + <el-table-column label="是否自动删除" prop="autoDelete" align="center" width="145"> | ||
55 | + <template slot-scope="scope"> | ||
56 | + <span v-if="scope.row.autoDelete ===false">否</span> | ||
57 | + <span v-if="scope.row.autoDelete ===true">是</span> | ||
58 | + </template> | ||
59 | + </el-table-column> | ||
60 | + <el-table-column label="是否仅内部使用" prop="internal" align="center" width="145"> | ||
61 | + <template slot-scope="scope"> | ||
62 | + <span v-if="scope.row.internal ===false">否</span> | ||
63 | + <span v-if="scope.row.internal ===true">是</span> | ||
64 | + </template> | ||
65 | + </el-table-column> | ||
66 | + <el-table-column label="扩展参数" prop="arguments" align="center" width="200"> | ||
67 | + </el-table-column> | ||
68 | + <el-table-column label="相关描述" prop="description" align="center" width="300"></el-table-column> | ||
69 | + <el-table-column label="操作" width="280px" align="center" fixed="right"> | ||
70 | + <template slot-scope="scope"> | ||
71 | + <!-- 路由键 style="width:50px;margin-left: 1px;"--> | ||
72 | + <el-tooltip effect="dark" content="路由键" placement="top-start" :enterable="false"> | ||
73 | + <el-button type="warning" icon="el-icon-link" size="small" | ||
74 | + @click="toRoutingKey(scope.$index,scope.row)">路由键 | ||
75 | + </el-button> | ||
76 | + </el-tooltip> | ||
77 | + <!-- 编辑按钮 style="width:50px;margin-left: 1px;"--> | ||
78 | + <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false"> | ||
79 | + <el-button type="primary" icon="el-icon-edit" size="small" | ||
80 | + @click="exchange_toEditDialog(scope.$index,scope.row)">编辑 | ||
81 | + </el-button> | ||
82 | + </el-tooltip> | ||
83 | + <!-- 删除按钮 style="width:50px;margin-left: 1px;"--> | ||
84 | + <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false"> | ||
85 | + <el-button type="danger" icon="el-icon-delete" size="small" | ||
86 | + :loading="exchange_loading.delLoading" | ||
87 | + @click="exchange_remove(scope.$index,scope.row)">删除 | ||
88 | + </el-button> | ||
89 | + </el-tooltip> | ||
90 | + </template> | ||
91 | + </el-table-column> | ||
92 | + </el-table> | ||
93 | + </div> | ||
94 | + | ||
95 | + | ||
96 | + <!--分页区域--> | ||
97 | + <div style="margin-top: 10px"> | ||
98 | + <el-row :gutter="24"> | ||
99 | + <el-col :span="5"> | ||
100 | + <el-button type="danger" icon="el-icon-delete" | ||
101 | + :loading="exchange_loading.batchDelLoading" | ||
102 | + :disabled="this.exchange_page.selectList.length===0" | ||
103 | + @click="exchange_batchRemove">批量删除 | ||
104 | + </el-button> | ||
105 | + </el-col> | ||
106 | + <el-col :span="10" style="margin-top: 5px"> | ||
107 | + <el-pagination | ||
108 | + @size-change="exchange_handleSizeChange" | ||
109 | + @current-change="exchange_handleCurrentChange" | ||
110 | + :current-page="exchange_queryInfo.pageNum" | ||
111 | + :page-sizes="[10,20,30,50]" | ||
112 | + :page-size="exchange_queryInfo.pageSize" | ||
113 | + layout="total, sizes, prev, pager, next, jumper" | ||
114 | + :total="exchange_page.total"> | ||
115 | + </el-pagination> | ||
116 | + </el-col> | ||
117 | + </el-row> | ||
118 | + </div> | ||
119 | + </el-card> | ||
120 | + <!-- 增加,对话框区域 --> | ||
121 | + <div> | ||
122 | + <el-dialog title="添加交换机" | ||
123 | + :visible.sync="exchange_dialog.addDialog" | ||
124 | + style="margin-top: -50px" | ||
125 | + width="62%" text-align="center" @close="exchange_addDialogClosed"> | ||
126 | + <el-form :inline="true" label-width="145px" status-icon style="margin-top: -10px" | ||
127 | + :model="exchange_addForm" :rules="exchange_addFormRules" ref="exchange_addFormRef"> | ||
128 | + <el-form-item label="交换机名称:" prop="exchangeName"> | ||
129 | + <el-input v-model="exchange_addForm.exchangeName" style="width:240px" size="small" clearable | ||
130 | + placeholder="请输入交换机名称"> | ||
131 | + </el-input> | ||
132 | + </el-form-item> | ||
133 | + <el-form-item label="所属虚拟主机:" prop="virtualHostId"> | ||
134 | + <el-cascader | ||
135 | + clearable style="width: 240px" size="small" | ||
136 | + v-model="exchange_addForm.virtualHostId" | ||
137 | + @change="cascadeAddChange" | ||
138 | + :options="exchange_config.cascade.server_hostList" | ||
139 | + :show-all-levels="false" | ||
140 | + :change-on-select="false" | ||
141 | + :props="exchange_config.cascade.defaultParams" | ||
142 | + placeholder="请选择所属虚拟主机"></el-cascader> | ||
143 | + </el-form-item> | ||
144 | + <el-form-item label="交换机类型:" prop="exchangeType"> | ||
145 | + <el-select v-model="exchange_addForm.exchangeType" style="width: 240px" clearable | ||
146 | + size="small" | ||
147 | + placeholder="请选择交换机类型"> | ||
148 | + <el-option | ||
149 | + v-for="item in exchangeTypeList" | ||
150 | + :key="item.value" | ||
151 | + :label="item.label" | ||
152 | + :value="item.value"> | ||
153 | + </el-option> | ||
154 | + </el-select> | ||
155 | + </el-form-item> | ||
156 | + <el-form-item label="是否持久化:" prop="durability"> | ||
157 | + <el-select v-model="exchange_addForm.durability" style="width: 240px" clearable size="small" | ||
158 | + placeholder="请选择是否持久化"> | ||
159 | + <el-option | ||
160 | + v-for="item in booleanList" | ||
161 | + :key="item.value" | ||
162 | + :label="item.label" | ||
163 | + :value="item.value"> | ||
164 | + </el-option> | ||
165 | + </el-select> | ||
166 | + </el-form-item> | ||
167 | + <el-form-item label="是否自动删除:" prop="autoDelete"> | ||
168 | + <el-select v-model="exchange_addForm.autoDelete" style="width: 240px" clearable size="small" | ||
169 | + placeholder="请选择是否自动删除"> | ||
170 | + <el-option | ||
171 | + v-for="item in booleanList" | ||
172 | + :key="item.value" | ||
173 | + :label="item.label" | ||
174 | + :value="item.value"> | ||
175 | + </el-option> | ||
176 | + </el-select> | ||
177 | + </el-form-item> | ||
178 | + <el-form-item label="是否仅内部使用:" prop="internal"> | ||
179 | + <el-select v-model="exchange_addForm.internal" style="width: 240px" clearable size="small" | ||
180 | + placeholder="是否仅内部使用"> | ||
181 | + <el-option | ||
182 | + v-for="item in booleanList" | ||
183 | + :key="item.value" | ||
184 | + :label="item.label" | ||
185 | + :value="item.value"> | ||
186 | + </el-option> | ||
187 | + </el-select> | ||
188 | + </el-form-item> | ||
189 | + <el-form-item label="扩展参数:" prop="arguments"> | ||
190 | + <el-input v-model="exchange_addForm.arguments" style="width:240px" clearable size="small" | ||
191 | + placeholder="扩展参数(JSON格式)"> | ||
192 | + </el-input> | ||
193 | + </el-form-item> | ||
194 | + <el-form-item label="相关描述:" prop="description"> | ||
195 | + <el-input v-model="exchange_addForm.description" style="width:240px" clearable size="small" | ||
196 | + placeholder="相关描述"> | ||
197 | + </el-input> | ||
198 | + </el-form-item> | ||
199 | + </el-form> | ||
200 | + <div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -20px"> | ||
201 | + <el-button type="info" @click="exchange_dialog.addDialog = false" size="medium" | ||
202 | + style="width: 100px">取消 | ||
203 | + </el-button> | ||
204 | + <el-button type="primary" @click="exchange_add" :loading="exchange_loading.addLoading" | ||
205 | + size="medium" style="width: 100px">添加 | ||
206 | + </el-button> | ||
207 | + </div> | ||
208 | + </el-dialog> | ||
209 | + </div> | ||
210 | + <!-- 编辑,对话框区域 --> | ||
211 | + <div> | ||
212 | + <el-dialog title="编辑交换机" | ||
213 | + :visible.sync="exchange_dialog.editDialog" | ||
214 | + style="margin-top: -50px" | ||
215 | + width="62%" text-align="center" @close="exchange_editDialogClosed"> | ||
216 | + <el-form :inline="true" label-width="145px" status-icon style="margin-top: -10px" | ||
217 | + :model="exchange_editForm" :rules="exchange_editFormRules" ref="exchange_editFormRef"> | ||
218 | + <el-form-item label="交换机名称:" prop="exchangeName"> | ||
219 | + <el-input v-model="exchange_editForm.exchangeName" style="width:240px" size="small" | ||
220 | + clearable | ||
221 | + placeholder="请输入交换机名称"> | ||
222 | + </el-input> | ||
223 | + </el-form-item> | ||
224 | + <el-form-item label="所属虚拟主机:" prop="virtualHostId"> | ||
225 | + <el-cascader | ||
226 | + clearable style="width: 240px" size="small" | ||
227 | + v-model="exchange_editForm.virtualHostId" | ||
228 | + @change="cascadeEditChange" | ||
229 | + :options="exchange_config.cascade.server_hostList" | ||
230 | + :show-all-levels="false" | ||
231 | + :change-on-select="false" | ||
232 | + :props="exchange_config.cascade.defaultParams" | ||
233 | + placeholder="请选择所属虚拟主机"></el-cascader> | ||
234 | + </el-form-item> | ||
235 | + <el-form-item label="交换机类型:" prop="exchangeType"> | ||
236 | + <el-select v-model="exchange_editForm.exchangeType" style="width: 240px" clearable | ||
237 | + size="small" | ||
238 | + placeholder="请选择交换机类型"> | ||
239 | + <el-option | ||
240 | + v-for="item in exchangeTypeList" | ||
241 | + :key="item.value" | ||
242 | + :label="item.label" | ||
243 | + :value="item.value"> | ||
244 | + </el-option> | ||
245 | + </el-select> | ||
246 | + </el-form-item> | ||
247 | + <el-form-item label="是否持久化:" prop="durability"> | ||
248 | + <el-select v-model="exchange_editForm.durability" style="width: 240px" clearable | ||
249 | + size="small" | ||
250 | + placeholder="请选择是否持久化"> | ||
251 | + <el-option | ||
252 | + v-for="item in booleanList" | ||
253 | + :key="item.value" | ||
254 | + :label="item.label" | ||
255 | + :value="item.value"> | ||
256 | + </el-option> | ||
257 | + </el-select> | ||
258 | + </el-form-item> | ||
259 | + <el-form-item label="是否自动删除:" prop="autoDelete"> | ||
260 | + <el-select v-model="exchange_editForm.autoDelete" style="width: 240px" clearable | ||
261 | + size="small" | ||
262 | + placeholder="请选择是否自动删除"> | ||
263 | + <el-option | ||
264 | + v-for="item in booleanList" | ||
265 | + :key="item.value" | ||
266 | + :label="item.label" | ||
267 | + :value="item.value"> | ||
268 | + </el-option> | ||
269 | + </el-select> | ||
270 | + </el-form-item> | ||
271 | + <el-form-item label="是否仅内部使用:" prop="internal"> | ||
272 | + <el-select v-model="exchange_editForm.internal" style="width: 240px" clearable size="small" | ||
273 | + placeholder="是否仅内部使用"> | ||
274 | + <el-option | ||
275 | + v-for="item in booleanList" | ||
276 | + :key="item.value" | ||
277 | + :label="item.label" | ||
278 | + :value="item.value"> | ||
279 | + </el-option> | ||
280 | + </el-select> | ||
281 | + </el-form-item> | ||
282 | + <el-form-item label="扩展参数:" prop="arguments"> | ||
283 | + <el-input v-model="exchange_editForm.arguments" style="width:240px" clearable size="small" | ||
284 | + placeholder="扩展参数(JSON格式)"> | ||
285 | + </el-input> | ||
286 | + </el-form-item> | ||
287 | + <el-form-item label="相关描述:" prop="description"> | ||
288 | + <el-input v-model="exchange_editForm.description" style="width:240px" clearable size="small" | ||
289 | + placeholder="相关描述"> | ||
290 | + </el-input> | ||
291 | + </el-form-item> | ||
292 | + </el-form> | ||
293 | + | ||
294 | + <div slot="footer" class="dialog-footer" style="text-align: center"> | ||
295 | + <el-button type="info" @click="exchange_dialog.editDialog = false" size="medium" | ||
296 | + style="width: 100px">取消 | ||
297 | + </el-button> | ||
298 | + <el-button type="primary" @click="exchange_edit" :loading="exchange_loading.addLoading" | ||
299 | + size="medium" | ||
300 | + style="width: 100px"> | ||
301 | + 编辑 | ||
302 | + </el-button> | ||
303 | + </div> | ||
304 | + </el-dialog> | ||
305 | + </div> | ||
306 | + </el-main> | ||
307 | + </el-container> | ||
308 | +</template> | ||
309 | + | ||
310 | +<script> | ||
311 | + import { | ||
312 | + selectBusExchangeList, | ||
313 | + insertBusExchange, | ||
314 | + updateBusExchange, | ||
315 | + deleteBusExchange, | ||
316 | + batchRemoveBusExchange, getServerAndHostList, getHostList, getServerList, | ||
317 | + } from "../../api/message_bus"; | ||
318 | + | ||
319 | + export default { | ||
320 | + name: "Exchange", | ||
321 | + | ||
322 | + data() { | ||
323 | + return { | ||
324 | + /** | ||
325 | + * exchange,配置与参数 | ||
326 | + */ | ||
327 | + exchange_config: { | ||
328 | + // 所属虚拟主机名称 | ||
329 | + virtualHostName: '', | ||
330 | + // 所有虚拟主机的基本信息 | ||
331 | + virtualHostList: [], | ||
332 | + // 级联显示 | ||
333 | + cascade: { | ||
334 | + // 服务器及虚拟主机列表 | ||
335 | + server_hostList: [], | ||
336 | + defaultParams: { | ||
337 | + label: 'aliasName', | ||
338 | + value: 'id', | ||
339 | + children: 'aliasList' | ||
340 | + } | ||
341 | + }, | ||
342 | + }, | ||
343 | + /** | ||
344 | + * exchange,搜索参数 | ||
345 | + */ | ||
346 | + exchange_queryInfo: { | ||
347 | + // 所属虚拟主机Id | ||
348 | + virtualHostId: '', | ||
349 | + // 交换机名称 | ||
350 | + exchangeName: '', | ||
351 | + // 当前页数 | ||
352 | + pageNum: 1, | ||
353 | + // 每页条数 | ||
354 | + pageSize: 10 | ||
355 | + }, | ||
356 | + /** | ||
357 | + * exchange,分页 | ||
358 | + */ | ||
359 | + exchange_page: { | ||
360 | + // 列表 | ||
361 | + exchangeList: [], | ||
362 | + // 总条数 | ||
363 | + total: 0, | ||
364 | + // 删除选中列表 | ||
365 | + selectList: [], | ||
366 | + }, | ||
367 | + /** | ||
368 | + * exchange,新增表单 | ||
369 | + */ | ||
370 | + exchange_addForm: { | ||
371 | + // 交换机名称 | ||
372 | + exchangeName: '', | ||
373 | + //所属虚拟主机ID | ||
374 | + virtualHostId: '', | ||
375 | + // 交换机类型,默认 direct;direct(路由-订阅)、topic(动态路由-订阅)、fanout(广播) | ||
376 | + exchangeType: 'direct', | ||
377 | + // 是否持久化,默认 true | ||
378 | + durability: true, | ||
379 | + // 是否自动删除,默认 false | ||
380 | + autoDelete: false, | ||
381 | + //是否是RabbitMQ内部使用,默认 false | ||
382 | + internal: false, | ||
383 | + // 扩展参数,以JSON格式存储 | ||
384 | + arguments: '', | ||
385 | + // 交换机相关描述 | ||
386 | + description: '', | ||
387 | + }, | ||
388 | + /** | ||
389 | + * exchange,编辑表单 | ||
390 | + */ | ||
391 | + exchange_editForm: {} | ||
392 | + , | ||
393 | + /** | ||
394 | + * exchange,加载 | ||
395 | + */ | ||
396 | + exchange_loading: { | ||
397 | + // 列表加载 | ||
398 | + listLoading: false, | ||
399 | + // 添加加载 | ||
400 | + addLoading: false, | ||
401 | + // 编辑加载 | ||
402 | + editLoading: false, | ||
403 | + // 删除加载 | ||
404 | + delLoading: false, | ||
405 | + // 批量删除加载 | ||
406 | + batchDelLoading: false, | ||
407 | + }, | ||
408 | + /** | ||
409 | + * exchange,对话框管理 | ||
410 | + */ | ||
411 | + exchange_dialog: { | ||
412 | + // 添加对话框 | ||
413 | + addDialog: false, | ||
414 | + // 编辑对话框 | ||
415 | + editDialog: false, | ||
416 | + }, | ||
417 | + | ||
418 | + /** | ||
419 | + * exchange,添加表单,验证规则 | ||
420 | + */ | ||
421 | + exchange_addFormRules: { | ||
422 | + exchangeName: [ | ||
423 | + {required: true, message: '请输入交换机名称', trigger: ['blur', 'change']}, | ||
424 | + ], | ||
425 | + virtualHostId: [ | ||
426 | + {required: true, message: '请选择虚拟主机', trigger: ['blur', 'change']}, | ||
427 | + ], | ||
428 | + exchangeType: [ | ||
429 | + {required: true, message: '请选择交换机类型', trigger: ['blur', 'change']}, | ||
430 | + ], | ||
431 | + durability: [ | ||
432 | + {required: true, message: '请选择是否持久化', trigger: ['blur', 'change']}, | ||
433 | + ], | ||
434 | + autoDelete: [ | ||
435 | + {required: true, message: '请选择是否自动删除', trigger: ['blur', 'change']}, | ||
436 | + ], | ||
437 | + internal: [ | ||
438 | + {required: true, message: '请选择是否仅内部使用', trigger: ['blur', 'change']}, | ||
439 | + ], | ||
440 | + // 扩展参数,以JSON格式存储 | ||
441 | + arguments: '', | ||
442 | + // 交换机相关描述 | ||
443 | + description: '', | ||
444 | + | ||
445 | + }, | ||
446 | + /** | ||
447 | + * exchange,编辑表单,验证规则 | ||
448 | + */ | ||
449 | + exchange_editFormRules: { | ||
450 | + exchangeName: [ | ||
451 | + {required: true, message: '请输入交换机名称', trigger: ['blur', 'change']}, | ||
452 | + ], | ||
453 | + virtualHostId: [ | ||
454 | + {required: true, message: '请选择虚拟主机', trigger: ['blur', 'change']}, | ||
455 | + ], | ||
456 | + exchangeType: [ | ||
457 | + {required: true, message: '请选择交换机类型', trigger: ['blur', 'change']}, | ||
458 | + ], | ||
459 | + durability: [ | ||
460 | + {required: true, message: '请选择是否持久化', trigger: ['blur', 'change']}, | ||
461 | + ], | ||
462 | + autoDelete: [ | ||
463 | + {required: true, message: '请选择是否自动删除', trigger: ['blur', 'change']}, | ||
464 | + ], | ||
465 | + internal: [ | ||
466 | + {required: true, message: '请选择是否仅内部使用', trigger: ['blur', 'change']}, | ||
467 | + ], | ||
468 | + // 扩展参数,以JSON格式存储 | ||
469 | + arguments: '', | ||
470 | + // 交换机相关描述 | ||
471 | + description: '', | ||
472 | + }, | ||
473 | + | ||
474 | + /** | ||
475 | + * Boolean属性,选择列表 | ||
476 | + */ | ||
477 | + booleanList: [ | ||
478 | + { | ||
479 | + value: true, | ||
480 | + label: '是' | ||
481 | + }, | ||
482 | + { | ||
483 | + value: false, | ||
484 | + label: '否' | ||
485 | + }, | ||
486 | + ], | ||
487 | + /** | ||
488 | + * 交换机类型,选择列表 | ||
489 | + */ | ||
490 | + exchangeTypeList: [ | ||
491 | + { | ||
492 | + value: 'direct', | ||
493 | + label: 'direct' | ||
494 | + }, | ||
495 | + { | ||
496 | + value: 'topic', | ||
497 | + label: 'topic' | ||
498 | + }, | ||
499 | + { | ||
500 | + value: 'fanout', | ||
501 | + label: 'fanout' | ||
502 | + }, | ||
503 | + { | ||
504 | + value: 'headers', | ||
505 | + label: 'headers' | ||
506 | + }, | ||
507 | + ], | ||
508 | + } | ||
509 | + }, | ||
510 | + methods: { | ||
511 | + /** | ||
512 | + * 分页查询,监听 pageSize 改变的事件 | ||
513 | + */ | ||
514 | + exchange_handleSizeChange(newSize) { | ||
515 | + this.exchange_queryInfo.pageSize = newSize; | ||
516 | + //刷新列表 | ||
517 | + this.exchange_getList(); | ||
518 | + }, | ||
519 | + /** | ||
520 | + * 分页查询,监听 pageNum 改变的事件 | ||
521 | + */ | ||
522 | + exchange_handleCurrentChange(newPage) { | ||
523 | + this.exchange_queryInfo.pageNum = newPage; | ||
524 | + //刷新列表 | ||
525 | + this.exchange_getList(); | ||
526 | + }, | ||
527 | + /** | ||
528 | + * exchange,分页查询 | ||
529 | + */ | ||
530 | + exchange_getList() { | ||
531 | + // 开启加载 | ||
532 | + this.exchange_loading.listLoading = true; | ||
533 | + selectBusExchangeList(this.exchange_queryInfo).then((response) => { | ||
534 | + let res = response.data; | ||
535 | + if (res.code !== '200') { | ||
536 | + // 关闭加载 | ||
537 | + this.exchange_loading.listLoading = false; | ||
538 | + return this.$message.error('获取交换机列表,失败!'); | ||
539 | + } | ||
540 | + // 获取列表数据 | ||
541 | + this.exchange_page.exchangeList = res.data.list; | ||
542 | + // 获取列表的总记录数 | ||
543 | + this.exchange_page.total = res.data.total; | ||
544 | + // 关闭加载 | ||
545 | + this.exchange_loading.listLoading = false; | ||
546 | + this.$message.success('获取交换机列表,成功!'); | ||
547 | + }).catch(error => { | ||
548 | + // 关闭加载 | ||
549 | + this.exchange_loading.listLoading = false; | ||
550 | + this.$message.error(error.toString()); | ||
551 | + }); | ||
552 | + }, | ||
553 | + /** | ||
554 | + * exchange,添加对话框,打开事件 | ||
555 | + */ | ||
556 | + exchange_toAddDialog() { | ||
557 | + this.exchange_dialog.addDialog = true; | ||
558 | + }, | ||
559 | + /** | ||
560 | + * exchange,添加对话框,关闭事件 | ||
561 | + */ | ||
562 | + exchange_addDialogClosed() { | ||
563 | + // 重置对话框 | ||
564 | + this.$refs.exchange_addFormRef.resetFields(); | ||
565 | + }, | ||
566 | + /** | ||
567 | + * exchange,添加功能 | ||
568 | + */ | ||
569 | + exchange_add() { | ||
570 | + // 进行表单的预验证 | ||
571 | + this.$refs.exchange_addFormRef.validate(valid => { | ||
572 | + // 未通过,表单预校验 | ||
573 | + if (!valid) return; | ||
574 | + // 通过,表单预检验 | ||
575 | + this.exchange_loading.addLoading = true; | ||
576 | + insertBusExchange(this.exchange_addForm).then((response) => { | ||
577 | + let res = response.data; | ||
578 | + // 添加失败 | ||
579 | + if (res.code !== '200') { | ||
580 | + if (res.code === '400') { | ||
581 | + // 关闭加载 | ||
582 | + this.exchange_loading.addLoading = false; | ||
583 | + return this.$message.error('该交换机,已存在'); | ||
584 | + } | ||
585 | + if (res.code === '999') { | ||
586 | + // 关闭加载 | ||
587 | + this.exchange_loading.addLoading = false; | ||
588 | + return this.$message.error('未知异常,添加交换机,失败'); | ||
589 | + } | ||
590 | + // 关闭加载 | ||
591 | + this.exchange_loading.addLoading = false; | ||
592 | + return this.$message.error('添加交换机,失败'); | ||
593 | + } | ||
594 | + // 添加,成功 | ||
595 | + this.$message.success('添加交换机,成功'); | ||
596 | + // 关闭加载 | ||
597 | + this.exchange_loading.addLoading = false; | ||
598 | + // 隐藏对话框 | ||
599 | + this.exchange_dialog.addDialog = false; | ||
600 | + // 刷新列表 | ||
601 | + this.exchange_getList(); | ||
602 | + }).catch(error => { | ||
603 | + // 关闭加载 | ||
604 | + this.exchange_loading.addLoading = false; | ||
605 | + this.$message.error(error.toString()); | ||
606 | + }); | ||
607 | + }) | ||
608 | + }, | ||
609 | + | ||
610 | + /** | ||
611 | + * exchange,编辑对话框,打开事件 | ||
612 | + */ | ||
613 | + exchange_toEditDialog(index, row) { | ||
614 | + this.exchange_editForm = Object.assign({}, row); | ||
615 | + this.exchange_dialog.editDialog = true; | ||
616 | + }, | ||
617 | + | ||
618 | + /** | ||
619 | + * exchange,编辑对话框,关闭事件 | ||
620 | + */ | ||
621 | + exchange_editDialogClosed() { | ||
622 | + //重置对话框 | ||
623 | + this.$refs.exchange_editFormRef.resetFields(); | ||
624 | + }, | ||
625 | + /** | ||
626 | + * exchange,编辑功能 | ||
627 | + */ | ||
628 | + exchange_edit() { | ||
629 | + //进行表单的预验证 | ||
630 | + this.$refs.exchange_editFormRef.validate(valid => { | ||
631 | + // 未通过,表单预校验 | ||
632 | + if (!valid) return; | ||
633 | + // 通过,表单预检验 | ||
634 | + this.exchange_loading.editLoading = true; | ||
635 | + updateBusExchange(this.exchange_editForm).then((response) => { | ||
636 | + let res = response.data; | ||
637 | + if (res.code !== '200') { | ||
638 | + if (res.code === '400') { | ||
639 | + // 关闭加载 | ||
640 | + this.exchange_loading.editLoading = false; | ||
641 | + return this.$message.error('该交换机,已存在'); | ||
642 | + } | ||
643 | + if (res.code === '999') { | ||
644 | + // 关闭加载 | ||
645 | + this.exchange_loading.editLoading = false; | ||
646 | + return this.$message.error('未知异常,编辑交换机信息,失败'); | ||
647 | + } | ||
648 | + //关闭加载 | ||
649 | + this.exchange_loading.editLoading = false; | ||
650 | + return this.$message.error('编辑交换机信息,失败'); | ||
651 | + } | ||
652 | + // 关闭加载 | ||
653 | + this.exchange_loading.editLoading = false; | ||
654 | + this.$message.success('编辑交换机信息,成功!'); | ||
655 | + // 隐藏对话框 | ||
656 | + this.exchange_dialog.editDialog = false; | ||
657 | + // 刷新列表 | ||
658 | + this.exchange_getList(); | ||
659 | + }).catch(error => { | ||
660 | + this.exchange_loading.editLoading = false; | ||
661 | + this.$message.error(error.toString()); | ||
662 | + }); | ||
663 | + }) | ||
664 | + }, | ||
665 | + /** | ||
666 | + * exchange,删除功能 | ||
667 | + */ | ||
668 | + exchange_remove(index, row) { | ||
669 | + // 弹框询问是否删除? | ||
670 | + this.$confirm('此操作永久删除该交换机信息, 是否继续?', '警告', { | ||
671 | + confirmButtonText: '确定删除', | ||
672 | + cancelButtonText: '取消', | ||
673 | + type: 'warning' | ||
674 | + } | ||
675 | + ).then(() => { | ||
676 | + // 开启加载 | ||
677 | + this.exchange_loading.delLoading = true; | ||
678 | + deleteBusExchange(row).then((response) => { | ||
679 | + let res = response.data; | ||
680 | + if (res.code !== '200') { | ||
681 | + // 关闭加载 | ||
682 | + this.exchange_loading.delLoading = false; | ||
683 | + return this.$message.error('删除交换机信息,失败'); | ||
684 | + } | ||
685 | + // 关闭加载 | ||
686 | + this.exchange_loading.delLoading = false; | ||
687 | + this.$message.success('删除交换机信息,成功!'); | ||
688 | + // 刷新列表 | ||
689 | + this.exchange_getList(); | ||
690 | + }).catch(error => { | ||
691 | + this.exchange_loading.delLoading = false; | ||
692 | + this.$message.error(error.toString()); | ||
693 | + }); | ||
694 | + }).catch(() => { | ||
695 | + }); | ||
696 | + }, | ||
697 | + /** | ||
698 | + * 批量删除---选中 | ||
699 | + */ | ||
700 | + exchange_selectChange: function (selectList) { | ||
701 | + this.exchange_page.selectList = selectList; | ||
702 | + }, | ||
703 | + /** | ||
704 | + * exchange,批量删除功能 | ||
705 | + */ | ||
706 | + exchange_batchRemove() { | ||
707 | + const ids = this.exchange_page.selectList.map(item => item.id).toString(); | ||
708 | + this.$confirm('此操作将永久删除选中的交换机信息, 是否继续?', '警告', { | ||
709 | + confirmButtonText: '确定删除', | ||
710 | + cancelButtonText: '取消', | ||
711 | + type: 'warning' | ||
712 | + } | ||
713 | + ).then(() => { | ||
714 | + // 开启加载 | ||
715 | + this.exchange_loading.batchDelLoading = true; | ||
716 | + let params = {ids: ids}; | ||
717 | + batchRemoveBusExchange(params).then(response => { | ||
718 | + let res = response.data; | ||
719 | + if (res.code !== '200') { | ||
720 | + // 关闭加载 | ||
721 | + this.exchange_loading.batchDelLoading = false; | ||
722 | + return this.$message.error('批量删除交换机信息,失败'); | ||
723 | + } | ||
724 | + this.$message.success('批量删除交换机信息,成功!'); | ||
725 | + // 关闭加载 | ||
726 | + this.exchange_loading.batchDelLoading = false; | ||
727 | + // 刷新列表 | ||
728 | + this.exchange_getList(); | ||
729 | + }).catch(error => { | ||
730 | + // 关闭加载 | ||
731 | + this.exchange_loading.batchDelLoading = false; | ||
732 | + this.$message.error(error.toString()); | ||
733 | + }); | ||
734 | + }).catch(() => { | ||
735 | + }); | ||
736 | + }, | ||
737 | + | ||
738 | + /** | ||
739 | + * exchange,获取全部虚拟主机 | ||
740 | + */ | ||
741 | + selectHostList() { | ||
742 | + getHostList().then((response) => { | ||
743 | + let res = response.data; | ||
744 | + if (res.code !== '200') { | ||
745 | + return this.$message.error('获取虚拟主机列表,失败!'); | ||
746 | + } | ||
747 | + // 获取列表数据 | ||
748 | + this.exchange_config.virtualHostList = res.data; | ||
749 | + // this.$message.success('获取虚拟主机列表,成功!'); | ||
750 | + }).catch(error => { | ||
751 | + this.$message.error(error.toString()); | ||
752 | + }); | ||
753 | + }, | ||
754 | + | ||
755 | + /** | ||
756 | + * 服务器与虚拟主机 1:n | ||
757 | + * 获取列表 | ||
758 | + */ | ||
759 | + selectServerAndHostList() { | ||
760 | + getServerAndHostList().then((response) => { | ||
761 | + let res = response.data; | ||
762 | + if (res.code !== '200') { | ||
763 | + return this.$message.error('获取服务器与虚拟主机信息,失败!'); | ||
764 | + } | ||
765 | + // 获取列表数据 | ||
766 | + this.exchange_config.cascade.server_hostList = res.data; | ||
767 | + // this.$message.success('获取虚拟主机列表,成功!'); | ||
768 | + }).catch(error => { | ||
769 | + this.$message.error(error.toString()); | ||
770 | + }); | ||
771 | + }, | ||
772 | + /** | ||
773 | + * 查询,级联。值改变激发的方法 | ||
774 | + * @param value 改变后的值 | ||
775 | + */ | ||
776 | + cascadeQueryChange(value) { | ||
777 | + let ids = value.join().split(","); | ||
778 | + this.exchange_queryInfo.virtualHostId = ids[ids.length - 1]; | ||
779 | + }, | ||
780 | + /** | ||
781 | + * 添加,级联。值改变激发的方法 | ||
782 | + * @param value 改变后的值 | ||
783 | + */ | ||
784 | + cascadeAddChange(value) { | ||
785 | + let ids = value.join().split(","); | ||
786 | + this.exchange_addForm.virtualHostId = ids[ids.length - 1]; | ||
787 | + }, | ||
788 | + cascadeEditChange(value) { | ||
789 | + let ids = value.join().split(","); | ||
790 | + this.exchange_editForm.virtualHostId = ids[ids.length - 1]; | ||
791 | + }, | ||
792 | + /** | ||
793 | + * 携带参数,跳转至路由键界面 | ||
794 | + */ | ||
795 | + toRoutingKey(index, row) { | ||
796 | + this.$confirm('查看该交换机下的路由键, 是否继续?', '提示', { | ||
797 | + confirmButtonText: '查看', | ||
798 | + cancelButtonText: '取消', | ||
799 | + type: 'warning' | ||
800 | + } | ||
801 | + ).then(() => { | ||
802 | + this.$router.push({name: "路由键管理", params: {exchange_scopeRow: row}}) | ||
803 | + }).catch(() => { | ||
804 | + }); | ||
805 | + }, | ||
806 | + }, | ||
807 | + created() { | ||
808 | + if (this.$route.params.virtualHost_scopeRow !== undefined) { | ||
809 | + // 参数,虚拟主机id | ||
810 | + this.exchange_queryInfo.virtualHostId = this.$route.params.virtualHost_scopeRow.id; | ||
811 | + // 刷新列表 | ||
812 | + this.exchange_getList(); | ||
813 | + // 参数,虚拟主机名称 | ||
814 | + //this.exchange_config.virtualHostName = this.$route.params.virtualHost_scopeRow.virtualHostName; | ||
815 | + } else { | ||
816 | + // 刷新列表 | ||
817 | + this.exchange_getList(); | ||
818 | + } | ||
819 | + }, | ||
820 | + mounted() { | ||
821 | + // this.selectHostList(); | ||
822 | + this.selectServerAndHostList(); | ||
823 | + }, | ||
824 | + computed: {}, | ||
825 | + } | ||
826 | +</script> | ||
827 | + | ||
828 | +<style scoped> | ||
829 | + | ||
830 | +</style> |
src/views/bus/MessageNote.vue
0 → 100644
1 | +<template> | ||
2 | + <div>消息记录</div> | ||
3 | +</template> | ||
4 | + | ||
5 | +<script> | ||
6 | + export default { | ||
7 | + name: "MessageNote", | ||
8 | + | ||
9 | + data() { | ||
10 | + return { | ||
11 | + | ||
12 | + } | ||
13 | + }, | ||
14 | + methods: { | ||
15 | + | ||
16 | + }, | ||
17 | + created() { | ||
18 | + | ||
19 | + }, | ||
20 | + mounted() { | ||
21 | + | ||
22 | + }, | ||
23 | + computed: { | ||
24 | + | ||
25 | + }, | ||
26 | + } | ||
27 | +</script> | ||
28 | + | ||
29 | +<style scoped> | ||
30 | + | ||
31 | +</style> |
src/views/bus/Queue.vue
0 → 100644
1 | +<template> | ||
2 | + <div>消息队列</div> | ||
3 | +</template> | ||
4 | + | ||
5 | +<script> | ||
6 | + import { | ||
7 | + selectBusQueueList, | ||
8 | + insertBusQueue, | ||
9 | + updateBusQueue, | ||
10 | + deleteBusQueue, | ||
11 | + batchRemoveBusQueue, | ||
12 | + getServerAndHostAndExchangeList, | ||
13 | + } from "../../api/message_bus"; | ||
14 | + | ||
15 | + export default { | ||
16 | + name: "Queue", | ||
17 | + | ||
18 | + data() { | ||
19 | + return { | ||
20 | + /** | ||
21 | + * queue,配置与参数 | ||
22 | + */ | ||
23 | + queue_config: { | ||
24 | + // 级联显示 | ||
25 | + cascade: { | ||
26 | + // 服务器及虚拟主机列表 | ||
27 | + server_host_exchangeList: [], | ||
28 | + defaultParams: { | ||
29 | + label: 'aliasName', | ||
30 | + value: 'id', | ||
31 | + children: 'aliasList' | ||
32 | + } | ||
33 | + }, | ||
34 | + }, | ||
35 | + /** | ||
36 | + * queue,搜索参数 | ||
37 | + */ | ||
38 | + queue_queryInfo: { | ||
39 | + // 队列名称 | ||
40 | + queueName: '', | ||
41 | + // 所属交换机id | ||
42 | + exchangeId: '', | ||
43 | + // 当前页数 | ||
44 | + pageNum: 1, | ||
45 | + // 每页条数 | ||
46 | + pageSize: 10 | ||
47 | + }, | ||
48 | + } | ||
49 | + }, | ||
50 | + methods: {}, | ||
51 | + created() { | ||
52 | + | ||
53 | + }, | ||
54 | + mounted() { | ||
55 | + | ||
56 | + }, | ||
57 | + computed: {}, | ||
58 | + } | ||
59 | +</script> | ||
60 | + | ||
61 | +<style scoped> | ||
62 | + | ||
63 | +</style> |
src/views/bus/RoutingKey.vue
0 → 100644
1 | +<template> | ||
2 | + <el-container> | ||
3 | + <el-main> | ||
4 | + <el-card style="background-color: #F5F7FA"> | ||
5 | + <!-- 搜素区域 --> | ||
6 | + <div> | ||
7 | + <el-row :gutter="24"> | ||
8 | + <el-col :span="4"> | ||
9 | + <el-input v-model="routingKey_queryInfo.routingKeyName" placeholder="路由键名称" | ||
10 | + prefix-icon="el-icon-search" size="medium" clearable style="width:180px"> | ||
11 | + </el-input> | ||
12 | + </el-col> | ||
13 | + | ||
14 | + <el-col :span="4"> | ||
15 | + <el-cascader | ||
16 | + style="width:180px" size="medium" | ||
17 | + v-model="routingKey_queryInfo.exchangeId" | ||
18 | + :options="routingKey_config.cascade.server_host_exchangeList" | ||
19 | + :show-all-levels="false" | ||
20 | + :change-on-select="false" | ||
21 | + clearable | ||
22 | + @change="cascadeQueryChange" | ||
23 | + :props="routingKey_config.cascade.defaultParams" | ||
24 | + placeholder="请选择所属交换机"></el-cascader> | ||
25 | + </el-col> | ||
26 | + <el-col :span="8"> | ||
27 | + <el-button type="success" style="width:150px" size="medium" @click="routingKey_getList"> | ||
28 | + 查询路由键 | ||
29 | + </el-button> | ||
30 | + <el-button type="primary" style="width:150px" size="medium" @click="routingKey_toAddDialog"> | ||
31 | + 添加路由键 | ||
32 | + </el-button> | ||
33 | + </el-col> | ||
34 | + </el-row> | ||
35 | + </div> | ||
36 | + <!-- 列表区域 --> | ||
37 | + <div style="margin-top: 20px;"> | ||
38 | + <el-table :data="routingKey_page.routingKeyList" border v-loading="routingKey_loading.listLoading" | ||
39 | + @selection-change="routingKey_selectChange" | ||
40 | + element-loading-text="获取路由键列表,拼命加载中"> | ||
41 | + <el-table-column type="selection" width="55" align="center"></el-table-column> | ||
42 | + <el-table-column type="index" align="center"></el-table-column> | ||
43 | + <el-table-column label="路由键名称" prop="routingKeyName" align="center" | ||
44 | + width="220"></el-table-column> | ||
45 | + <el-table-column label="所属交换机" prop="busExchange.exchangeName" align="center" | ||
46 | + width="220"></el-table-column> | ||
47 | + <el-table-column label="相关描述" prop="description" align="center" width="280"></el-table-column> | ||
48 | + <!-- fixed="right" --> | ||
49 | + <el-table-column label="操作" width="232px" align="center"> | ||
50 | + <template slot-scope="scope"> | ||
51 | + <!-- 编辑按钮--> | ||
52 | + <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false"> | ||
53 | + <el-button type="primary" icon="el-icon-edit" size="mini" | ||
54 | + @click="routingKey_toEditDialog(scope.$index,scope.row)">编辑 | ||
55 | + </el-button> | ||
56 | + </el-tooltip> | ||
57 | + | ||
58 | + <!-- 删除按钮--> | ||
59 | + <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false"> | ||
60 | + <el-button type="danger" icon="el-icon-delete" size="mini" | ||
61 | + :loading="routingKey_loading.delLoading" | ||
62 | + @click="routingKey_remove(scope.$index,scope.row)">删除 | ||
63 | + </el-button> | ||
64 | + </el-tooltip> | ||
65 | + </template> | ||
66 | + </el-table-column> | ||
67 | + </el-table> | ||
68 | + </div> | ||
69 | + | ||
70 | + <!--分页区域--> | ||
71 | + <div style="margin-top: 10px"> | ||
72 | + <el-row :gutter="24"> | ||
73 | + <el-col :span="5"> | ||
74 | + <el-button type="danger" icon="el-icon-delete" | ||
75 | + :loading="routingKey_loading.batchDelLoading" | ||
76 | + :disabled="this.routingKey_page.selectList.length===0" | ||
77 | + @click="routingKey_batchRemove">批量删除 | ||
78 | + </el-button> | ||
79 | + </el-col> | ||
80 | + <el-col :span="10" style="margin-top: 5px"> | ||
81 | + <el-pagination | ||
82 | + @size-change="routingKey_handleSizeChange" | ||
83 | + @current-change="routingKey_handleCurrentChange" | ||
84 | + :current-page="routingKey_queryInfo.pageNum" | ||
85 | + :page-sizes="[10,20,30,50]" | ||
86 | + :page-size="routingKey_queryInfo.pageSize" | ||
87 | + layout="total, sizes, prev, pager, next, jumper" | ||
88 | + :total="routingKey_page.total"> | ||
89 | + </el-pagination> | ||
90 | + </el-col> | ||
91 | + </el-row> | ||
92 | + </div> | ||
93 | + </el-card> | ||
94 | + <!-- 增加,对话框区域 --> | ||
95 | + <div> | ||
96 | + <el-dialog title="添加路由键" | ||
97 | + :visible.sync="routingKey_dialog.addDialog" | ||
98 | + style="margin-top: -50px" text-align="center" width="50%" | ||
99 | + @close="routingKey_addDialogClosed"> | ||
100 | + | ||
101 | + <el-form :inline="true" label-width="120px" status-icon style="margin-top: -10px" align="center" | ||
102 | + :model="routingKey_addForm" :rules="routingKey_addFormRules" ref="routingKey_addFormRef"> | ||
103 | + <el-form-item label="路由键名称:" prop="routingKeyName"> | ||
104 | + <el-input v-model="routingKey_addForm.routingKeyName" placeholder="请输入路由键名称" | ||
105 | + style="width:240px" size="small" clearable> | ||
106 | + </el-input> | ||
107 | + </el-form-item> | ||
108 | + <el-form-item label="所属交换机:" prop="exchangeId"> | ||
109 | + <el-cascader | ||
110 | + style="width:240px" size="small" clearable | ||
111 | + v-model="routingKey_addForm.exchangeId" | ||
112 | + :options="routingKey_config.cascade.server_host_exchangeList" | ||
113 | + :show-all-levels="false" | ||
114 | + :change-on-select="false" | ||
115 | + @change="cascadeAddChange" | ||
116 | + :props="routingKey_config.cascade.defaultParams" | ||
117 | + placeholder="请选择所属交换机"></el-cascader> | ||
118 | + </el-form-item> | ||
119 | + <el-form-item label="相关描述:" prop="description"> | ||
120 | + <el-input v-model="routingKey_addForm.description" style="width:240px" clearable | ||
121 | + size="small" | ||
122 | + placeholder="相关描述"> | ||
123 | + </el-input> | ||
124 | + </el-form-item> | ||
125 | + </el-form> | ||
126 | + <div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -20px"> | ||
127 | + <el-button type="info" @click="routingKey_dialog.addDialog = false" size="medium" | ||
128 | + style="width: 100px">取消 | ||
129 | + </el-button> | ||
130 | + <el-button type="primary" @click="routingKey_add" :loading="routingKey_loading.addLoading" | ||
131 | + size="medium" style="width: 100px">添加 | ||
132 | + </el-button> | ||
133 | + </div> | ||
134 | + </el-dialog> | ||
135 | + </div> | ||
136 | + <!-- 编辑,对话框区域 --> | ||
137 | + <div> | ||
138 | + <el-dialog title="编辑交换机" | ||
139 | + :visible.sync="routingKey_dialog.editDialog" | ||
140 | + style="margin-top: -50px" text-align="center" width="50%" | ||
141 | + @close="routingKey_editDialogClosed"> | ||
142 | + <el-form :inline="true" label-width="120px" status-icon style="margin-top: -10px" align="center" | ||
143 | + :model="routingKey_editForm" :rules="routingKey_editFormRules" ref="routingKey_editFormRef"> | ||
144 | + <el-form-item label="路由键名称:" prop="routingKeyName"> | ||
145 | + <el-input v-model="routingKey_editForm.routingKeyName" placeholder="请输入路由键名称" | ||
146 | + style="width:240px" size="small" clearable> | ||
147 | + </el-input> | ||
148 | + </el-form-item> | ||
149 | + <el-form-item label="所属交换机:" prop="exchangeId"> | ||
150 | + <el-cascader | ||
151 | + style="width:240px" size="small" clearable | ||
152 | + v-model="routingKey_editForm.exchangeId" | ||
153 | + :options="routingKey_config.cascade.server_host_exchangeList" | ||
154 | + :show-all-levels="false" | ||
155 | + :change-on-select="false" | ||
156 | + @change="cascadeEditChange" | ||
157 | + :props="routingKey_config.cascade.defaultParams" | ||
158 | + placeholder="请选择所属交换机"></el-cascader> | ||
159 | + </el-form-item> | ||
160 | + <el-form-item label="相关描述:" prop="description"> | ||
161 | + <el-input v-model="routingKey_editForm.description" style="width:240px" clearable | ||
162 | + size="small" | ||
163 | + placeholder="相关描述"> | ||
164 | + </el-input> | ||
165 | + </el-form-item> | ||
166 | + </el-form> | ||
167 | + | ||
168 | + <div slot="footer" class="dialog-footer" style="text-align: center"> | ||
169 | + <el-button type="info" @click="routingKey_dialog.editDialog = false" size="medium" | ||
170 | + style="width: 100px">取消 | ||
171 | + </el-button> | ||
172 | + <el-button type="primary" @click="routingKey_edit" :loading="routingKey_loading.addLoading" | ||
173 | + size="medium" | ||
174 | + style="width: 100px"> | ||
175 | + 编辑 | ||
176 | + </el-button> | ||
177 | + </div> | ||
178 | + </el-dialog> | ||
179 | + </div> | ||
180 | + | ||
181 | + </el-main> | ||
182 | + </el-container> | ||
183 | +</template> | ||
184 | + | ||
185 | +<script> | ||
186 | + import { | ||
187 | + selectRoutingKeyList, | ||
188 | + insertRoutingKey, | ||
189 | + updateRoutingKey, | ||
190 | + deleteRoutingKey, | ||
191 | + batchRemoveRoutingKey, | ||
192 | + getServerAndHostAndExchangeList, | ||
193 | + } from "../../api/message_bus"; | ||
194 | + | ||
195 | + export default { | ||
196 | + name: "RoutingKey", | ||
197 | + | ||
198 | + data() { | ||
199 | + return { | ||
200 | + /** | ||
201 | + * routingKey,配置与参数 | ||
202 | + */ | ||
203 | + routingKey_config: { | ||
204 | + // 级联显示 | ||
205 | + cascade: { | ||
206 | + // 服务器及虚拟主机列表 | ||
207 | + server_host_exchangeList: [], | ||
208 | + defaultParams: { | ||
209 | + label: 'aliasName', | ||
210 | + value: 'id', | ||
211 | + children: 'aliasList' | ||
212 | + } | ||
213 | + }, | ||
214 | + }, | ||
215 | + /** | ||
216 | + * routingKey,搜索参数 | ||
217 | + */ | ||
218 | + routingKey_queryInfo: { | ||
219 | + // 路由键名称 | ||
220 | + routingKeyName: '', | ||
221 | + // 所属交换机id | ||
222 | + exchangeId: '', | ||
223 | + // 当前页数 | ||
224 | + pageNum: 1, | ||
225 | + // 每页条数 | ||
226 | + pageSize: 10 | ||
227 | + }, | ||
228 | + /** | ||
229 | + * routingKey,分页 | ||
230 | + */ | ||
231 | + routingKey_page: { | ||
232 | + // 路由键列表 | ||
233 | + routingKeyList: [], | ||
234 | + // 总条数 | ||
235 | + total: 0, | ||
236 | + // 批量删除,选中列表 | ||
237 | + selectList: [], | ||
238 | + }, | ||
239 | + /** | ||
240 | + * routingKey,新增表单 | ||
241 | + */ | ||
242 | + routingKey_addForm: { | ||
243 | + // 路由键名称 | ||
244 | + routingKeyName: '', | ||
245 | + // 所属交换机id | ||
246 | + exchangeId: '', | ||
247 | + // 相关描述 | ||
248 | + description: '', | ||
249 | + }, | ||
250 | + /** | ||
251 | + * routingKey,编辑表单 | ||
252 | + */ | ||
253 | + routingKey_editForm: {} | ||
254 | + , | ||
255 | + /** | ||
256 | + * routingKey,加载 | ||
257 | + */ | ||
258 | + routingKey_loading: { | ||
259 | + // 列表加载 | ||
260 | + listLoading: false, | ||
261 | + // 添加加载 | ||
262 | + addLoading: false, | ||
263 | + // 编辑加载 | ||
264 | + editLoading: false, | ||
265 | + // 删除加载 | ||
266 | + delLoading: false, | ||
267 | + // 批量删除加载 | ||
268 | + batchDelLoading: false, | ||
269 | + }, | ||
270 | + /** | ||
271 | + * routingKey,对话框管理 | ||
272 | + */ | ||
273 | + routingKey_dialog: { | ||
274 | + // 添加对话框 | ||
275 | + addDialog: false, | ||
276 | + // 编辑对话框 | ||
277 | + editDialog: false, | ||
278 | + }, | ||
279 | + | ||
280 | + /** | ||
281 | + * routingKey,添加表单,验证规则 | ||
282 | + */ | ||
283 | + routingKey_addFormRules: { | ||
284 | + // 路由键名称 | ||
285 | + routingKeyName: [ | ||
286 | + {required: true, message: '请输入路由键名称', trigger: ['blur', 'change']}, | ||
287 | + ], | ||
288 | + // 所属交换机id | ||
289 | + exchangeId: [ | ||
290 | + {required: true, message: '请选择所属交换机', trigger: ['blur', 'change']}, | ||
291 | + ], | ||
292 | + // 相关描述 | ||
293 | + description: [ | ||
294 | + {required: true, message: '请输入相关描述', trigger: ['blur', 'change']}, | ||
295 | + ], | ||
296 | + }, | ||
297 | + | ||
298 | + /** | ||
299 | + * routingKey,编辑表单,验证规则 | ||
300 | + */ | ||
301 | + routingKey_editFormRules: { | ||
302 | + // 路由键名称 | ||
303 | + routingKeyName: [ | ||
304 | + {required: true, message: '请输入路由键名称', trigger: ['blur', 'change']}, | ||
305 | + ], | ||
306 | + // 所属交换机id | ||
307 | + exchangeId: [ | ||
308 | + {required: true, message: '请选择所属交换机', trigger: ['blur', 'change']}, | ||
309 | + ], | ||
310 | + // 相关描述 | ||
311 | + description: [ | ||
312 | + {required: true, message: '请输入相关描述', trigger: ['blur', 'change']}, | ||
313 | + ], | ||
314 | + }, | ||
315 | + | ||
316 | + /** | ||
317 | + * Boolean属性,选择列表 | ||
318 | + */ | ||
319 | + booleanList: [ | ||
320 | + { | ||
321 | + value: true, | ||
322 | + label: '是' | ||
323 | + }, | ||
324 | + { | ||
325 | + value: false, | ||
326 | + label: '否' | ||
327 | + }, | ||
328 | + ], | ||
329 | + } | ||
330 | + }, | ||
331 | + methods: { | ||
332 | + /** | ||
333 | + * 分页查询,监听 pageSize 改变的事件 | ||
334 | + */ | ||
335 | + routingKey_handleSizeChange(newSize) { | ||
336 | + this.routingKey_queryInfo.pageSize = newSize; | ||
337 | + //刷新列表 | ||
338 | + this.routingKey_getList(); | ||
339 | + }, | ||
340 | + /** | ||
341 | + * 分页查询,监听 pageNum 改变的事件 | ||
342 | + */ | ||
343 | + routingKey_handleCurrentChange(newPage) { | ||
344 | + this.routingKey_queryInfo.pageNum = newPage; | ||
345 | + //刷新列表 | ||
346 | + this.routingKey_getList(); | ||
347 | + }, | ||
348 | + /** | ||
349 | + * routingKey,分页查询 | ||
350 | + */ | ||
351 | + routingKey_getList() { | ||
352 | + // 开启加载 | ||
353 | + this.routingKey_loading.listLoading = true; | ||
354 | + selectRoutingKeyList(this.routingKey_queryInfo).then((response) => { | ||
355 | + let res = response.data; | ||
356 | + if (res.code !== '200') { | ||
357 | + // 关闭加载 | ||
358 | + this.routingKey_loading.listLoading = false; | ||
359 | + return this.$message.error('获取路由键列表,失败!'); | ||
360 | + } | ||
361 | + // 获取列表数据 | ||
362 | + this.routingKey_page.routingKeyList = res.data.list; | ||
363 | + // 获取列表的总记录数 | ||
364 | + this.routingKey_page.total = res.data.total; | ||
365 | + // 关闭加载 | ||
366 | + this.routingKey_loading.listLoading = false; | ||
367 | + this.$message.success('获取路由键列表,成功!'); | ||
368 | + }).catch(error => { | ||
369 | + // 关闭加载 | ||
370 | + this.routingKey_loading.listLoading = false; | ||
371 | + this.$message.error(error.toString()); | ||
372 | + }); | ||
373 | + }, | ||
374 | + | ||
375 | + /** | ||
376 | + * routingKey,添加对话框,打开事件 | ||
377 | + */ | ||
378 | + routingKey_toAddDialog() { | ||
379 | + this.routingKey_dialog.addDialog = true; | ||
380 | + }, | ||
381 | + /** | ||
382 | + * routingKey,添加对话框,关闭事件 | ||
383 | + */ | ||
384 | + routingKey_addDialogClosed() { | ||
385 | + // 重置对话框 | ||
386 | + this.$refs.routingKey_addFormRef.resetFields(); | ||
387 | + }, | ||
388 | + /** | ||
389 | + * routingKey,添加功能 | ||
390 | + */ | ||
391 | + routingKey_add() { | ||
392 | + // 进行表单的预验证 | ||
393 | + this.$refs.routingKey_addFormRef.validate(valid => { | ||
394 | + // 未通过,表单预校验 | ||
395 | + if (!valid) return; | ||
396 | + // 通过,表单预检验 | ||
397 | + this.routingKey_loading.addLoading = true; | ||
398 | + insertRoutingKey(this.routingKey_addForm).then((response) => { | ||
399 | + let res = response.data; | ||
400 | + // 添加失败 | ||
401 | + if (res.code !== '200') { | ||
402 | + if (res.code === '400') { | ||
403 | + // 关闭加载 | ||
404 | + this.routingKey_loading.addLoading = false; | ||
405 | + return this.$message.error('该路由键,已存在'); | ||
406 | + } | ||
407 | + if (res.code === '999') { | ||
408 | + // 关闭加载 | ||
409 | + this.routingKey_loading.addLoading = false; | ||
410 | + return this.$message.error('未知异常,添加路由键,失败'); | ||
411 | + } | ||
412 | + // 关闭加载 | ||
413 | + this.routingKey_loading.addLoading = false; | ||
414 | + return this.$message.error('添加路由键,失败'); | ||
415 | + } | ||
416 | + // 添加,成功 | ||
417 | + this.$message.success('添加路由键,成功'); | ||
418 | + // 关闭加载 | ||
419 | + this.routingKey_loading.addLoading = false; | ||
420 | + // 隐藏对话框 | ||
421 | + this.routingKey_dialog.addDialog = false; | ||
422 | + // 刷新列表 | ||
423 | + this.routingKey_getList(); | ||
424 | + }).catch(error => { | ||
425 | + // 关闭加载 | ||
426 | + this.routingKey_loading.addLoading = false; | ||
427 | + this.$message.error(error.toString()); | ||
428 | + }); | ||
429 | + }) | ||
430 | + }, | ||
431 | + | ||
432 | + /** | ||
433 | + * routingKey,编辑对话框,打开事件 | ||
434 | + */ | ||
435 | + routingKey_toEditDialog(index, row) { | ||
436 | + this.routingKey_editForm = Object.assign({}, row); | ||
437 | + this.routingKey_dialog.editDialog = true; | ||
438 | + }, | ||
439 | + /** | ||
440 | + * routingKey,编辑对话框,关闭事件 | ||
441 | + */ | ||
442 | + routingKey_editDialogClosed() { | ||
443 | + //重置对话框 | ||
444 | + this.$refs.routingKey_editFormRef.resetFields(); | ||
445 | + }, | ||
446 | + /** | ||
447 | + * routingKey,编辑功能 | ||
448 | + */ | ||
449 | + routingKey_edit() { | ||
450 | + //进行表单的预验证 | ||
451 | + this.$refs.routingKey_editFormRef.validate(valid => { | ||
452 | + // 未通过,表单预校验 | ||
453 | + if (!valid) return; | ||
454 | + // 通过,表单预检验 | ||
455 | + this.routingKey_loading.editLoading = true; | ||
456 | + updateRoutingKey(this.routingKey_editForm).then((response) => { | ||
457 | + let res = response.data; | ||
458 | + if (res.code !== '200') { | ||
459 | + if (res.code === '400') { | ||
460 | + // 关闭加载 | ||
461 | + this.routingKey_loading.editLoading = false; | ||
462 | + return this.$message.error('该路由键,已存在'); | ||
463 | + } | ||
464 | + if (res.code === '999') { | ||
465 | + // 关闭加载 | ||
466 | + this.routingKey_loading.editLoading = false; | ||
467 | + return this.$message.error('未知异常,编辑路由键信息,失败'); | ||
468 | + } | ||
469 | + //关闭加载 | ||
470 | + this.routingKey_loading.editLoading = false; | ||
471 | + return this.$message.error('编辑路由键信息,失败'); | ||
472 | + } | ||
473 | + // 关闭加载 | ||
474 | + this.routingKey_loading.editLoading = false; | ||
475 | + this.$message.success('编辑路由键信息,成功!'); | ||
476 | + // 隐藏对话框 | ||
477 | + this.routingKey_dialog.editDialog = false; | ||
478 | + // 刷新列表 | ||
479 | + this.routingKey_getList(); | ||
480 | + }).catch(error => { | ||
481 | + // 关闭加载 | ||
482 | + this.routingKey_loading.editLoading = false; | ||
483 | + this.$message.error(error.toString()); | ||
484 | + }); | ||
485 | + }) | ||
486 | + }, | ||
487 | + | ||
488 | + /** | ||
489 | + * routingKey,删除功能 | ||
490 | + */ | ||
491 | + routingKey_remove(index, row) { | ||
492 | + // 弹框询问是否删除? | ||
493 | + this.$confirm('此操作永久删除该路由键信息, 是否继续?', '警告', { | ||
494 | + confirmButtonText: '确定删除', | ||
495 | + cancelButtonText: '取消', | ||
496 | + type: 'warning' | ||
497 | + } | ||
498 | + ).then(() => { | ||
499 | + // 开启加载 | ||
500 | + this.routingKey_loading.delLoading = true; | ||
501 | + deleteRoutingKey(row).then((response) => { | ||
502 | + let res = response.data; | ||
503 | + if (res.code !== '200') { | ||
504 | + // 关闭加载 | ||
505 | + this.routingKey_loading.delLoading = false; | ||
506 | + return this.$message.error('删除路由键信息,失败'); | ||
507 | + } | ||
508 | + // 关闭加载 | ||
509 | + this.routingKey_loading.delLoading = false; | ||
510 | + this.$message.success('删除路由键信息,成功!'); | ||
511 | + // 刷新列表 | ||
512 | + this.routingKey_getList(); | ||
513 | + }).catch(error => { | ||
514 | + // 关闭加载 | ||
515 | + this.routingKey_loading.delLoading = false; | ||
516 | + this.$message.error(error.toString()); | ||
517 | + }); | ||
518 | + }).catch(() => { | ||
519 | + }); | ||
520 | + }, | ||
521 | + | ||
522 | + /** | ||
523 | + * 批量删除---选中 | ||
524 | + */ | ||
525 | + routingKey_selectChange: function (selectList) { | ||
526 | + this.routingKey_page.selectList = selectList; | ||
527 | + }, | ||
528 | + /** | ||
529 | + * routingKey,批量删除功能 | ||
530 | + */ | ||
531 | + routingKey_batchRemove() { | ||
532 | + const ids = this.routingKey_page.selectList.map(item => item.id).toString(); | ||
533 | + this.$confirm('此操作将永久删除选中的路由键信息, 是否继续?', '警告', { | ||
534 | + confirmButtonText: '确定删除', | ||
535 | + cancelButtonText: '取消', | ||
536 | + type: 'warning' | ||
537 | + } | ||
538 | + ).then(() => { | ||
539 | + // 开启加载 | ||
540 | + this.routingKey_loading.batchDelLoading = true; | ||
541 | + let params = {ids: ids}; | ||
542 | + batchRemoveRoutingKey(params).then(response => { | ||
543 | + let res = response.data; | ||
544 | + if (res.code !== '200') { | ||
545 | + // 关闭加载 | ||
546 | + this.routingKey_loading.batchDelLoading = false; | ||
547 | + return this.$message.error('批量删除路由键信息,失败'); | ||
548 | + } | ||
549 | + this.$message.success('批量删除路由键信息,成功!'); | ||
550 | + // 关闭加载 | ||
551 | + this.routingKey_loading.batchDelLoading = false; | ||
552 | + // 刷新列表 | ||
553 | + this.routingKey_getList(); | ||
554 | + }).catch(error => { | ||
555 | + // 关闭加载 | ||
556 | + this.routingKey_loading.batchDelLoading = false; | ||
557 | + this.$message.error(error.toString()); | ||
558 | + }); | ||
559 | + }).catch(() => { | ||
560 | + }); | ||
561 | + }, | ||
562 | + /** | ||
563 | + * 服务器与虚拟主机 1:n | ||
564 | + * 虚拟主机与交换机 1: n | ||
565 | + * 获取列表 | ||
566 | + */ | ||
567 | + selectServerAndHostAndExchangeList() { | ||
568 | + getServerAndHostAndExchangeList().then((response) => { | ||
569 | + let res = response.data; | ||
570 | + if (res.code !== '200') { | ||
571 | + return this.$message.error('获取服务器与虚拟主机与交换机信息,失败!'); | ||
572 | + } | ||
573 | + // 获取列表数据 | ||
574 | + this.routingKey_config.cascade.server_host_exchangeList = res.data; | ||
575 | + // this.$message.success('获取虚拟主机列表,成功!'); | ||
576 | + }).catch(error => { | ||
577 | + this.$message.error(error.toString()); | ||
578 | + }); | ||
579 | + }, | ||
580 | + | ||
581 | + /** | ||
582 | + * 查询,级联。值改变激发的方法 | ||
583 | + * @param value 改变后的值 | ||
584 | + */ | ||
585 | + cascadeQueryChange(value) { | ||
586 | + let ids = value.join().split(","); | ||
587 | + this.routingKey_queryInfo.exchangeId = ids[ids.length - 1]; | ||
588 | + }, | ||
589 | + /** | ||
590 | + * 添加,级联。值改变激发的方法 | ||
591 | + * @param value 改变后的值 | ||
592 | + */ | ||
593 | + cascadeAddChange(value) { | ||
594 | + let ids = value.join().split(","); | ||
595 | + this.routingKey_addForm.exchangeId = ids[ids.length - 1]; | ||
596 | + }, | ||
597 | + cascadeEditChange(value) { | ||
598 | + let ids = value.join().split(","); | ||
599 | + this.routingKey_editForm.exchangeId = ids[ids.length - 1]; | ||
600 | + }, | ||
601 | + }, | ||
602 | + created() { | ||
603 | + if (this.$route.params.exchange_scopeRow !== undefined) { | ||
604 | + // 参数,交换机id | ||
605 | + this.routingKey_queryInfo.exchangeId = this.$route.params.exchange_scopeRow.id; | ||
606 | + // 刷新列表 | ||
607 | + this.routingKey_getList(); | ||
608 | + } else { | ||
609 | + // 刷新列表 | ||
610 | + this.routingKey_getList(); | ||
611 | + } | ||
612 | + }, | ||
613 | + mounted() { | ||
614 | + // 获取,服务器、虚拟主机、交换机的级联列表 | ||
615 | + this.selectServerAndHostAndExchangeList(); | ||
616 | + }, | ||
617 | + computed: {}, | ||
618 | + } | ||
619 | +</script> | ||
620 | + | ||
621 | +<style scoped> | ||
622 | + | ||
623 | +</style> |
src/views/bus/Server.vue
0 → 100644
1 | +<template> | ||
2 | + <el-container> | ||
3 | + <el-main> | ||
4 | + <el-card style="background-color: #F5F7FA"> | ||
5 | + <!-- 搜素区域 --> | ||
6 | + <div> | ||
7 | + <el-row :gutter="24"> | ||
8 | + <el-col :span="4"> | ||
9 | + <el-input v-model="queryInfo.serverName" prefix-icon="el-icon-search" size="medium" | ||
10 | + placeholder="服务器名称" clearable style="width:180px"></el-input> | ||
11 | + </el-col> | ||
12 | + <el-col :span="15"> | ||
13 | + <el-button type="success" style="width:150px" size="medium" @click="getServerList"> | ||
14 | + 查询服务器信息 | ||
15 | + </el-button> | ||
16 | + <el-button type="primary" style="width:150px" size="medium" @click="toAddDialog"> | ||
17 | + 添加服务器信息 | ||
18 | + </el-button> | ||
19 | + </el-col> | ||
20 | + </el-row> | ||
21 | + </div> | ||
22 | + <!--服务器信息列表区域--> | ||
23 | + <div style="margin-top: 20px;"> | ||
24 | + <el-table :data="serverList" border v-loading="server_loading.listLoading" | ||
25 | + @selection-change="selectChange" | ||
26 | + element-loading-text="获取服务器列表,拼命加载中"> | ||
27 | + <el-table-column type="selection" width="55" align="center"></el-table-column> | ||
28 | + <el-table-column type="index" align="center"></el-table-column> | ||
29 | + <el-table-column label="服务器名称" prop="serverName" align="center" width="150"></el-table-column> | ||
30 | + <el-table-column label="服务器地址" prop="serverIp" align="center" width="150"></el-table-column> | ||
31 | + <el-table-column label="服务器端口号" prop="serverPort" align="center" width="150"></el-table-column> | ||
32 | + <el-table-column label="相关描述" prop="description" align="center" width="200"></el-table-column> | ||
33 | + <el-table-column label="操作" width="300px" align="center" fixed="right"> | ||
34 | + <template slot-scope="scope"> | ||
35 | + <!-- 虚拟主机 --> | ||
36 | + <el-tooltip effect="dark" content="虚拟主机" placement="top-start" :enterable="false"> | ||
37 | + <el-button type="warning" icon="el-icon-link" size="mini" | ||
38 | + @click="toVirtualHost(scope.$index,scope.row)">虚拟主机 | ||
39 | + </el-button> | ||
40 | + </el-tooltip> | ||
41 | + | ||
42 | + <!-- 编辑按钮 --> | ||
43 | + <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false"> | ||
44 | + <el-button type="primary" icon="el-icon-edit" size="mini" | ||
45 | + @click="toEditDialog(scope.$index,scope.row)">编辑 | ||
46 | + </el-button> | ||
47 | + </el-tooltip> | ||
48 | + <!-- 删除按钮 --> | ||
49 | + <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false"> | ||
50 | + <el-button type="danger" icon="el-icon-delete" size="mini" | ||
51 | + :loading="server_loading.delLoading" | ||
52 | + @click="removeServerInfo(scope.$index,scope.row)">删除 | ||
53 | + </el-button> | ||
54 | + </el-tooltip> | ||
55 | + </template> | ||
56 | + </el-table-column> | ||
57 | + </el-table> | ||
58 | + <!--分页区域--> | ||
59 | + <div style="margin-top: 10px"> | ||
60 | + <el-row :gutter="24"> | ||
61 | + <el-col :span="5"> | ||
62 | + <el-button type="danger" icon="el-icon-delete" | ||
63 | + :disabled="this.selectList.length===0" | ||
64 | + @click="batchRemoveServer">批量删除 | ||
65 | + </el-button> | ||
66 | + </el-col> | ||
67 | + <el-col :span="10" style="margin-top: 5px"> | ||
68 | + <el-pagination | ||
69 | + @size-change="handleSizeChange" | ||
70 | + @current-change="handleCurrentChange" | ||
71 | + :current-page="queryInfo.pageNum" | ||
72 | + :page-sizes="[10,20,30,50]" | ||
73 | + :page-size="queryInfo.pageSize" | ||
74 | + layout="total, sizes, prev, pager, next, jumper" | ||
75 | + :total="total"> | ||
76 | + </el-pagination> | ||
77 | + </el-col> | ||
78 | + </el-row> | ||
79 | + </div> | ||
80 | + </div> | ||
81 | + </el-card> | ||
82 | + <!-- 对话框 —> 添加服务器信息 --> | ||
83 | + <div> | ||
84 | + <el-dialog title="添加服务器信息" | ||
85 | + :visible.sync="serverDialog.addDialog" | ||
86 | + style="margin-top: -50px" | ||
87 | + width="50%" text-align="center" @close="serverAddDialogClosed"> | ||
88 | + <el-form :inline="true" :model="addServerForm" label-width="120px" status-icon | ||
89 | + :rules="addServerFormRules" ref="addServerFormRef" | ||
90 | + align="center"> | ||
91 | + <el-form-item label="服务器名称:" prop="serverName"> | ||
92 | + <el-input v-model="addServerForm.serverName" style="width:270px" clearable | ||
93 | + placeholder="请输入服务器名称"></el-input> | ||
94 | + </el-form-item> | ||
95 | + <el-form-item label="IP地址:" prop="serverIp"> | ||
96 | + <el-input v-model="addServerForm.serverIp" style="width:270px" clearable | ||
97 | + placeholder="请输入服务器IP地址"></el-input> | ||
98 | + </el-form-item> | ||
99 | + <el-form-item label="端口号:" prop="serverPort"> | ||
100 | + <el-input v-model="addServerForm.serverPort" style="width:270px" clearable | ||
101 | + placeholder="请输入服务器端口号"></el-input> | ||
102 | + </el-form-item> | ||
103 | + <el-form-item label="相关描述:" prop="description"> | ||
104 | + <el-input v-model="addServerForm.description" style="width:270px" clearable | ||
105 | + placeholder="请输入相关描述"></el-input> | ||
106 | + </el-form-item> | ||
107 | + </el-form> | ||
108 | + | ||
109 | + <div slot="footer" class="dialog-footer" style="text-align: center"> | ||
110 | + <el-button type="info" @click="serverDialog.addDialog = false" size="medium" | ||
111 | + style="width: 100px">取消 | ||
112 | + </el-button> | ||
113 | + <el-button type="primary" @click="addServerInfo" :loading="server_loading.addLoading" | ||
114 | + size="medium" | ||
115 | + style="width: 100px"> | ||
116 | + 添加 | ||
117 | + </el-button> | ||
118 | + </div> | ||
119 | + </el-dialog> | ||
120 | + </div> | ||
121 | + <!-- 对话框 —> 编辑服务器信息 --> | ||
122 | + <div> | ||
123 | + <el-dialog title="编辑服务器信息" | ||
124 | + :visible.sync="serverDialog.editDialog" | ||
125 | + style="margin-top: -50px" | ||
126 | + width="50%" text-align="center" @close="serverEditDialogClosed"> | ||
127 | + <el-form :inline="true" :model="editServerForm" label-width="120px" status-icon | ||
128 | + :rules="editServerFormRules" ref="editServerFormRef" | ||
129 | + align="center"> | ||
130 | + <el-form-item label="服务器名称:" prop="serverName"> | ||
131 | + <el-input v-model="editServerForm.serverName" style="width:270px" clearable | ||
132 | + placeholder="请输入服务器名称"></el-input> | ||
133 | + </el-form-item> | ||
134 | + <el-form-item label="IP地址:" prop="serverIp"> | ||
135 | + <el-input v-model="editServerForm.serverIp" style="width:270px" clearable | ||
136 | + placeholder="请输入服务器IP地址"></el-input> | ||
137 | + </el-form-item> | ||
138 | + <el-form-item label="端口号:" prop="serverPort"> | ||
139 | + <el-input v-model="editServerForm.serverPort" style="width:270px" clearable | ||
140 | + placeholder="请输入服务器端口号"></el-input> | ||
141 | + </el-form-item> | ||
142 | + <el-form-item label="相关描述:" prop="description"> | ||
143 | + <el-input v-model="editServerForm.description" style="width:270px" clearable | ||
144 | + placeholder="请输入相关描述"></el-input> | ||
145 | + </el-form-item> | ||
146 | + </el-form> | ||
147 | + | ||
148 | + <div slot="footer" class="dialog-footer" style="text-align: center"> | ||
149 | + <el-button type="info" @click="serverDialog.editDialog = false" size="medium" style="width: 100px">取消 | ||
150 | + </el-button> | ||
151 | + <el-button type="primary" @click="editServerInfo" :loading="server_loading.addLoading" | ||
152 | + size="medium" | ||
153 | + style="width: 100px"> | ||
154 | + 编辑 | ||
155 | + </el-button> | ||
156 | + </div> | ||
157 | + </el-dialog> | ||
158 | + </div> | ||
159 | + </el-main> | ||
160 | + </el-container> | ||
161 | +</template> | ||
162 | + | ||
163 | +<script> | ||
164 | + import { | ||
165 | + selectBusServerList, | ||
166 | + insertBusServer, | ||
167 | + updateBusServer, | ||
168 | + deleteBusServer, | ||
169 | + batchRemoveBusServer | ||
170 | + } from "../../api/message_bus"; | ||
171 | + | ||
172 | + export default { | ||
173 | + name: "Server", | ||
174 | + | ||
175 | + data() { | ||
176 | + // 验证IP地址的自定义规则 | ||
177 | + const serverIpValid = (rule, value, callback) => { | ||
178 | + // 验证IP地址的正则表达式 | ||
179 | + const regMobile = /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/; | ||
180 | + if (regMobile.test(value)) { | ||
181 | + // 合法的IP地址 | ||
182 | + return callback(); | ||
183 | + } | ||
184 | + callback(new Error('请输入合法的IP地址')); | ||
185 | + }; | ||
186 | + return { | ||
187 | + /** | ||
188 | + * 搜索参数 | ||
189 | + */ | ||
190 | + queryInfo: { | ||
191 | + // 服务器名称 | ||
192 | + serverName: '', | ||
193 | + // 当前页数 | ||
194 | + pageNum: 1, | ||
195 | + // 每页条数 | ||
196 | + pageSize: 10 | ||
197 | + }, | ||
198 | + | ||
199 | + /** | ||
200 | + * 添加服务器信息的表单 | ||
201 | + */ | ||
202 | + addServerForm: { | ||
203 | + // 服务器名称 | ||
204 | + serverName: '', | ||
205 | + // 服务器IP | ||
206 | + serverIp: '', | ||
207 | + // 服务器端口号 | ||
208 | + serverPort: '', | ||
209 | + // 相关描述 | ||
210 | + description: '', | ||
211 | + }, | ||
212 | + | ||
213 | + /** | ||
214 | + * 列表记录的总条数 | ||
215 | + */ | ||
216 | + total: 0, | ||
217 | + | ||
218 | + /** | ||
219 | + * 服务器列表 | ||
220 | + */ | ||
221 | + serverList: [], | ||
222 | + | ||
223 | + /** | ||
224 | + * 编辑服务器,表单 | ||
225 | + */ | ||
226 | + editServerForm: {}, | ||
227 | + | ||
228 | + /** | ||
229 | + * 批量删除的选中列表 | ||
230 | + */ | ||
231 | + selectList: [], | ||
232 | + | ||
233 | + /** | ||
234 | + * Server,对话框管理 | ||
235 | + */ | ||
236 | + serverDialog: { | ||
237 | + // 添加对话框 | ||
238 | + addDialog: false, | ||
239 | + // 编辑对话框 | ||
240 | + editDialog: false, | ||
241 | + }, | ||
242 | + | ||
243 | + /** | ||
244 | + * 加载 | ||
245 | + */ | ||
246 | + server_loading: { | ||
247 | + // 列表加载 | ||
248 | + listLoading: false, | ||
249 | + // 添加加载 | ||
250 | + addLoading: false, | ||
251 | + // 编辑加载 | ||
252 | + editLoading: false, | ||
253 | + // 删除加载 | ||
254 | + delLoading: false, | ||
255 | + // 批量删除加载 | ||
256 | + batchDelLoading: false, | ||
257 | + }, | ||
258 | + | ||
259 | + /** | ||
260 | + * 添加服务器,表单的验证规则对象 | ||
261 | + */ | ||
262 | + addServerFormRules: { | ||
263 | + serverName: [ | ||
264 | + {required: true, message: '请输入服务器名称', trigger: ['blur', 'change']}, | ||
265 | + ], | ||
266 | + serverIp: [ | ||
267 | + {required: true, message: '请输入服务器IP地址', trigger: ['blur', 'change']}, | ||
268 | + {validator: serverIpValid, trigger: 'blur'} | ||
269 | + ], | ||
270 | + serverPort: [ | ||
271 | + {required: true, message: '请输入服务器端口号', trigger: ['blur', 'change']}, | ||
272 | + ], | ||
273 | + description: [ | ||
274 | + {required: true, message: '请输入服务器相关描述', trigger: ['blur', 'change']}, | ||
275 | + ], | ||
276 | + }, | ||
277 | + /** | ||
278 | + * 编辑服务器,表单的验证规则对象 | ||
279 | + */ | ||
280 | + editServerFormRules: { | ||
281 | + serverName: [ | ||
282 | + {required: true, message: '请输入服务器名称', trigger: ['blur', 'change']}, | ||
283 | + ], | ||
284 | + serverIp: [ | ||
285 | + {required: true, message: '请输入服务器IP地址', trigger: ['blur', 'change']}, | ||
286 | + {validator: serverIpValid, trigger: 'blur'} | ||
287 | + ], | ||
288 | + serverPort: [ | ||
289 | + {required: true, message: '请输入服务器端口号', trigger: ['blur', 'change']}, | ||
290 | + ], | ||
291 | + description: [ | ||
292 | + {required: true, message: '请输入服务器相关描述', trigger: ['blur', 'change']}, | ||
293 | + ], | ||
294 | + }, | ||
295 | + } | ||
296 | + }, | ||
297 | + methods: { | ||
298 | + /** | ||
299 | + * 分页查询,监听 pageSize 改变的事件 | ||
300 | + */ | ||
301 | + handleSizeChange(newSize) { | ||
302 | + this.queryInfo.pageSize = newSize; | ||
303 | + // 刷新列表 | ||
304 | + this.getServerList(); | ||
305 | + }, | ||
306 | + /** | ||
307 | + * 分页查询,监听 pageNum 改变的事件 | ||
308 | + */ | ||
309 | + handleCurrentChange(newPage) { | ||
310 | + this.queryInfo.pageNum = newPage; | ||
311 | + // 刷新列表 | ||
312 | + this.getServerList(); | ||
313 | + }, | ||
314 | + /** | ||
315 | + * 查询,服务器列表 | ||
316 | + */ | ||
317 | + getServerList() { | ||
318 | + // 开启加载 | ||
319 | + this.server_loading.listLoading = true; | ||
320 | + selectBusServerList(this.queryInfo).then((response) => { | ||
321 | + let res = response.data; | ||
322 | + if (res.code !== '200') { | ||
323 | + // 关闭加载 | ||
324 | + this.server_loading.listLoading = false; | ||
325 | + return this.$message.error('获取服务器列表,失败!'); | ||
326 | + } | ||
327 | + // 获取服务器列表数据 | ||
328 | + this.serverList = res.data.list; | ||
329 | + // 获取列表的总记录数 | ||
330 | + this.total = res.data.total; | ||
331 | + // 关闭加载 | ||
332 | + this.server_loading.listLoading = false; | ||
333 | + this.$message.success('获取服务器列表,成功!'); | ||
334 | + | ||
335 | + if (this.queryInfo.serverId !== undefined && this.queryInfo.serverId !== '') { | ||
336 | + // 重置所属服务器id | ||
337 | + this.queryInfo.serverId = undefined; | ||
338 | + } | ||
339 | + }).catch(error => { | ||
340 | + // 关闭加载 | ||
341 | + this.server_loading.listLoading = false; | ||
342 | + this.$message.error(error.toString()); | ||
343 | + }); | ||
344 | + }, | ||
345 | + | ||
346 | + /** | ||
347 | + * 打开 添加服务器信息 对话框 | ||
348 | + */ | ||
349 | + toAddDialog() { | ||
350 | + this.serverDialog.addDialog = true; | ||
351 | + }, | ||
352 | + /** | ||
353 | + * 服务器信息,添加对话框,关闭事件 | ||
354 | + */ | ||
355 | + serverAddDialogClosed() { | ||
356 | + //重置对话框 | ||
357 | + this.$refs.addServerFormRef.resetFields(); | ||
358 | + }, | ||
359 | + /** | ||
360 | + * 服务器信息,添加功能 | ||
361 | + */ | ||
362 | + addServerInfo() { | ||
363 | + // 进行表单的预验证 | ||
364 | + this.$refs.addServerFormRef.validate(valid => { | ||
365 | + // 未通过,表单预校验 | ||
366 | + if (!valid) return; | ||
367 | + // 通过,表单预检验 | ||
368 | + this.server_loading.addLoading = true; | ||
369 | + insertBusServer(this.addServerForm).then((response) => { | ||
370 | + let res = response.data; | ||
371 | + // 添加失败 | ||
372 | + if (res.code !== '200') { | ||
373 | + if (res.code === '402') { | ||
374 | + // 关闭加载 | ||
375 | + this.server_loading.addLoading = false; | ||
376 | + return this.$message.error('服务器名称,已存在'); | ||
377 | + } | ||
378 | + if (res.code === '400') { | ||
379 | + // 关闭加载 | ||
380 | + this.server_loading.addLoading = false; | ||
381 | + return this.$message.error('该服务器信息,已存在'); | ||
382 | + } | ||
383 | + if (res.code === '999') { | ||
384 | + // 关闭加载 | ||
385 | + this.server_loading.addLoading = false; | ||
386 | + return this.$message.error('未知异常,添加服务器信息,失败'); | ||
387 | + } | ||
388 | + // 关闭加载 | ||
389 | + this.server_loading.addLoading = false; | ||
390 | + return this.$message.error('添加服务器信息,失败'); | ||
391 | + } | ||
392 | + // 添加,成功 | ||
393 | + this.$message.success('添加服务器信息,成功'); | ||
394 | + // 关闭加载 | ||
395 | + this.server_loading.addLoading = false; | ||
396 | + // 隐藏对话框 | ||
397 | + this.serverDialog.addDialog = false; | ||
398 | + // 刷新列表 | ||
399 | + this.getServerList(); | ||
400 | + }).catch(error => { | ||
401 | + this.server_loading.addLoading = false; | ||
402 | + this.$message.error(error.toString()); | ||
403 | + }); | ||
404 | + }) | ||
405 | + }, | ||
406 | + | ||
407 | + /** | ||
408 | + * 打开编辑服务器信息对话框 | ||
409 | + */ | ||
410 | + toEditDialog(index, row) { | ||
411 | + this.editServerForm = Object.assign({}, row); | ||
412 | + this.serverDialog.editDialog = true; | ||
413 | + }, | ||
414 | + | ||
415 | + /** | ||
416 | + * 服务器信息,编辑对话框,关闭事件 | ||
417 | + */ | ||
418 | + serverEditDialogClosed() { | ||
419 | + //重置对话框 | ||
420 | + this.$refs.editServerFormRef.resetFields(); | ||
421 | + }, | ||
422 | + | ||
423 | + /** | ||
424 | + * 编辑服务器信息,编辑功能 | ||
425 | + */ | ||
426 | + editServerInfo() { | ||
427 | + //进行表单的预验证 | ||
428 | + this.$refs.editServerFormRef.validate(valid => { | ||
429 | + // 未通过,表单预校验 | ||
430 | + if (!valid) return; | ||
431 | + // 通过,表单预检验 | ||
432 | + this.server_loading.editLoading = true; | ||
433 | + updateBusServer(this.editServerForm).then((response) => { | ||
434 | + let res = response.data; | ||
435 | + if (res.code !== '200') { | ||
436 | + | ||
437 | + if (res.code === '402') { | ||
438 | + // 关闭加载 | ||
439 | + this.server_loading.editLoading = false; | ||
440 | + return this.$message.error('服务器名称,已存在'); | ||
441 | + } | ||
442 | + if (res.code === '400') { | ||
443 | + // 关闭加载 | ||
444 | + this.server_loading.editLoading = false; | ||
445 | + return this.$message.error('该服务器信息,已存在'); | ||
446 | + } | ||
447 | + if (res.code === '999') { | ||
448 | + // 关闭加载 | ||
449 | + this.server_loading.editLoading = false; | ||
450 | + return this.$message.error('未知异常,编辑服务器信息,失败'); | ||
451 | + } | ||
452 | + //关闭加载 | ||
453 | + this.server_loading.editLoading = false; | ||
454 | + return this.$message.error('编辑服务器信息,失败'); | ||
455 | + } | ||
456 | + // 关闭加载 | ||
457 | + this.server_loading.editLoading = false; | ||
458 | + this.$message.success('编辑服务器信息,成功!'); | ||
459 | + // 隐藏对话框 | ||
460 | + this.serverDialog.editDialog = false; | ||
461 | + // 刷新列表 | ||
462 | + this.getServerList(); | ||
463 | + }).catch(error => { | ||
464 | + this.server_loading.editLoading = false; | ||
465 | + this.$message.error(error.toString()); | ||
466 | + }); | ||
467 | + }) | ||
468 | + }, | ||
469 | + | ||
470 | + /** | ||
471 | + * 删除服务器信息 | ||
472 | + */ | ||
473 | + removeServerInfo(index, row) { | ||
474 | + //弹框询问是否删除服务器信息 | ||
475 | + this.$confirm('此操作永久删除该服务器信息, 是否继续?', '警告', { | ||
476 | + confirmButtonText: '确定删除', | ||
477 | + cancelButtonText: '取消', | ||
478 | + type: 'warning' | ||
479 | + } | ||
480 | + ).then(() => { | ||
481 | + //开启加载 | ||
482 | + this.server_loading.delLoading = true; | ||
483 | + deleteBusServer(row).then((response) => { | ||
484 | + let res = response.data; | ||
485 | + if (res.code !== '200') { | ||
486 | + //关闭加载 | ||
487 | + this.server_loading.delLoading = false; | ||
488 | + return this.$message.error('删除服务器信息,失败'); | ||
489 | + } | ||
490 | + //关闭加载 | ||
491 | + this.server_loading.delLoading = false; | ||
492 | + this.$message.success('删除服务器信息,成功!'); | ||
493 | + //刷新列表 | ||
494 | + this.getServerList(); | ||
495 | + }).catch(error => { | ||
496 | + this.server_loading.delLoading = false; | ||
497 | + this.$message.error(error.toString()); | ||
498 | + }); | ||
499 | + }).catch(() => { | ||
500 | + }); | ||
501 | + }, | ||
502 | + | ||
503 | + /** | ||
504 | + * 批量删除,之前的选中 | ||
505 | + */ | ||
506 | + selectChange: function (selectList) { | ||
507 | + this.selectList = selectList; | ||
508 | + }, | ||
509 | + /** | ||
510 | + * 批量删除-服务器信息 | ||
511 | + */ | ||
512 | + batchRemoveServer() { | ||
513 | + const ids = this.selectList.map(item => item.id).toString(); | ||
514 | + // console.log(ids); | ||
515 | + this.$confirm('此操作将永久删除选中的服务器信息, 是否继续?', '警告', { | ||
516 | + confirmButtonText: '确定删除', | ||
517 | + cancelButtonText: '取消', | ||
518 | + type: 'warning' | ||
519 | + } | ||
520 | + ).then(() => { | ||
521 | + // 开启加载 | ||
522 | + this.server_loading.batchDelLoading = true; | ||
523 | + let params = {ids: ids}; | ||
524 | + batchRemoveBusServer(params).then(response => { | ||
525 | + let res = response.data; | ||
526 | + if (res.code !== '200') { | ||
527 | + this.server_loading.batchDelLoading = false; | ||
528 | + return this.$message.error('批量删除服务器信息,失败'); | ||
529 | + } | ||
530 | + this.$message.success('批量删除服务器信息,成功!'); | ||
531 | + this.server_loading.batchDelLoading = false; | ||
532 | + // 刷新列表 | ||
533 | + this.getServerList(); | ||
534 | + }).catch(error => { | ||
535 | + this.server_loading.batchDelLoading = false; | ||
536 | + this.$message.error(error.toString()); | ||
537 | + }); | ||
538 | + }).catch(() => { | ||
539 | + }); | ||
540 | + }, | ||
541 | + /** | ||
542 | + * 携带参数,跳转至虚拟主机界面 | ||
543 | + */ | ||
544 | + toVirtualHost(index, row) { | ||
545 | + this.$confirm('查看该服务器下的虚拟主机, 是否继续?', '提示', { | ||
546 | + confirmButtonText: '查看', | ||
547 | + cancelButtonText: '取消', | ||
548 | + type: 'warning' | ||
549 | + } | ||
550 | + ).then(() => { | ||
551 | + this.$router.push({name: "虚拟主机管理", params: {server_scopeRow: row}}) | ||
552 | + }).catch(() => { | ||
553 | + }); | ||
554 | + } | ||
555 | + }, | ||
556 | + created() { | ||
557 | + this.getServerList(); | ||
558 | + }, | ||
559 | + mounted() { | ||
560 | + | ||
561 | + }, | ||
562 | + computed: {} | ||
563 | + } | ||
564 | +</script> | ||
565 | + | ||
566 | +<style scoped> | ||
567 | + | ||
568 | +</style> |
src/views/bus/UserMessageBinding.vue
0 → 100644
1 | +<template> | ||
2 | + <div>用户消息绑定配置</div> | ||
3 | +</template> | ||
4 | + | ||
5 | +<script> | ||
6 | + export default { | ||
7 | + name: "UserMessageBinding", | ||
8 | + | ||
9 | + data() { | ||
10 | + return { | ||
11 | + | ||
12 | + } | ||
13 | + }, | ||
14 | + methods: { | ||
15 | + | ||
16 | + }, | ||
17 | + created() { | ||
18 | + | ||
19 | + }, | ||
20 | + mounted() { | ||
21 | + | ||
22 | + }, | ||
23 | + computed: { | ||
24 | + | ||
25 | + }, | ||
26 | + } | ||
27 | +</script> | ||
28 | + | ||
29 | +<style scoped> | ||
30 | + | ||
31 | +</style> |
src/views/bus/VirtualHost.vue
0 → 100644
1 | +<template> | ||
2 | + <el-container> | ||
3 | + <el-main> | ||
4 | + <el-card style="background-color: #F5F7FA"> | ||
5 | + <!-- 搜素区域 --> | ||
6 | + <div> | ||
7 | + <el-row :gutter="24"> | ||
8 | + <el-col :span="4"> | ||
9 | + <el-input v-model="queryInfo.virtualHostName" prefix-icon="el-icon-search" size="medium" | ||
10 | + placeholder="虚拟主机名称" clearable style="width:180px"></el-input> | ||
11 | + </el-col> | ||
12 | + <el-col :span="4"> | ||
13 | + <el-select v-model="queryInfo.serverId" prefix-icon="el-icon-search" clearable size="medium" | ||
14 | + style="width:180px" | ||
15 | + placeholder="请选择服务器名称"> | ||
16 | + <el-option | ||
17 | + v-for="item in (virtualHost_config.serverList)" | ||
18 | + :key="item.id" | ||
19 | + :label="item.serverName" | ||
20 | + :value="item.id"> | ||
21 | + </el-option> | ||
22 | + </el-select> | ||
23 | + </el-col> | ||
24 | + | ||
25 | + <el-col :span="10"> | ||
26 | + <el-button type="success" style="width:150px" size="medium" @click="getVirtualHostList"> | ||
27 | + 查询虚拟主机 | ||
28 | + </el-button> | ||
29 | + <el-button type="primary" style="width:150px" size="medium" @click="toAddDialog"> | ||
30 | + 添加虚拟主机 | ||
31 | + </el-button> | ||
32 | + </el-col> | ||
33 | + </el-row> | ||
34 | + </div> | ||
35 | + <div style="margin-top: 20px;"> | ||
36 | + <el-table :data="virtualHostList" border v-loading="virtualHost_loading.listLoading" | ||
37 | + @selection-change="selectChange" | ||
38 | + element-loading-text="获取虚拟主机列表,拼命加载中"> | ||
39 | + <el-table-column type="selection" width="55" align="center"></el-table-column> | ||
40 | + <el-table-column type="index" align="center"></el-table-column> | ||
41 | + <el-table-column label="虚拟主机名称" prop="virtualHostName" align="center" | ||
42 | + width="220"></el-table-column> | ||
43 | + <el-table-column label="所属服务器" prop="busServer.serverName" align="center" width="220"> | ||
44 | + </el-table-column> | ||
45 | + <el-table-column label="相关描述" prop="description" align="center" width="260"></el-table-column> | ||
46 | + <el-table-column label="操作" width="250px" align="center" fixed="right"> | ||
47 | + <template slot-scope="scope"> | ||
48 | + <!-- 交换机--> | ||
49 | + <el-tooltip effect="dark" content="交换机" placement="top-start" :enterable="false"> | ||
50 | + <el-button type="warning" icon="el-icon-link" size="small" | ||
51 | + style="width:97px;margin-left: 1px;" | ||
52 | + @click="toExchange(scope.$index,scope.row)">交换机 | ||
53 | + </el-button> | ||
54 | + </el-tooltip> | ||
55 | + | ||
56 | + <!-- 编辑按钮--> | ||
57 | + <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false"> | ||
58 | + <el-button type="primary" icon="el-icon-edit" size="small" | ||
59 | + style="width:97px;margin-left: 1px;" | ||
60 | + @click="toEditDialog(scope.$index,scope.row)">编辑 | ||
61 | + </el-button> | ||
62 | + </el-tooltip> | ||
63 | + <!-- 队列--> | ||
64 | + <el-tooltip effect="dark" content="队列" placement="top-start" :enterable="false"> | ||
65 | + <el-button type="warning" icon="el-icon-link" size="small" | ||
66 | + style="width:97px;margin-left: 1px;margin-top: 3px;" | ||
67 | + @click="toQueue(scope.$index,scope.row)">队列 | ||
68 | + </el-button> | ||
69 | + </el-tooltip> | ||
70 | + <!-- 删除按钮--> | ||
71 | + <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false"> | ||
72 | + <el-button type="danger" icon="el-icon-delete" size="small" | ||
73 | + style="width:97px;margin-left: 1px;" | ||
74 | + :loading="virtualHost_loading.delLoading" | ||
75 | + @click="removeVirtualHostInfo(scope.$index,scope.row)">删除 | ||
76 | + </el-button> | ||
77 | + </el-tooltip> | ||
78 | + </template> | ||
79 | + </el-table-column> | ||
80 | + </el-table> | ||
81 | + <!--分页区域--> | ||
82 | + <div style="margin-top: 10px"> | ||
83 | + <el-row :gutter="24"> | ||
84 | + <el-col :span="5"> | ||
85 | + <el-button type="danger" icon="el-icon-delete" | ||
86 | + :disabled="this.selectList.length===0" | ||
87 | + @click="batchDeleteVirtualHost">批量删除 | ||
88 | + </el-button> | ||
89 | + </el-col> | ||
90 | + <el-col :span="10" style="margin-top: 5px"> | ||
91 | + <el-pagination | ||
92 | + @size-change="handleSizeChange" | ||
93 | + @current-change="handleCurrentChange" | ||
94 | + :current-page="queryInfo.pageNum" | ||
95 | + :page-sizes="[10,20,30,50]" | ||
96 | + :page-size="queryInfo.pageSize" | ||
97 | + layout="total, sizes, prev, pager, next, jumper" | ||
98 | + :total="total"> | ||
99 | + </el-pagination> | ||
100 | + </el-col> | ||
101 | + </el-row> | ||
102 | + </div> | ||
103 | + </div> | ||
104 | + </el-card> | ||
105 | + | ||
106 | + <!-- 对话框 —> 添加虚拟主机信息 --> | ||
107 | + <div> | ||
108 | + <el-dialog title="添加虚拟主机信息" | ||
109 | + :visible.sync="virtualHostDialog.addDialog" | ||
110 | + style="margin-top: -50px" | ||
111 | + width="50%" text-align="center" @close="virtualHostAddDialogClosed"> | ||
112 | + <el-form :inline="true" :model="addVirtualHostForm" label-width="120px" status-icon | ||
113 | + :rules="addVirtualHostFormRules" ref="addVirtualHostRef" | ||
114 | + align="center"> | ||
115 | + <el-form-item label="虚拟主机名称:" prop="virtualHostName"> | ||
116 | + <el-input v-model="addVirtualHostForm.virtualHostName" style="width:270px" clearable | ||
117 | + placeholder="请输入虚拟主机名称"></el-input> | ||
118 | + </el-form-item> | ||
119 | + <el-form-item label="所属服务器:" prop="serverId"> | ||
120 | + <el-select v-model="addVirtualHostForm.serverId" clearable style="width:270px" | ||
121 | + placeholder="请选择服务器名称"> | ||
122 | + <el-option | ||
123 | + v-for="item in (virtualHost_config.serverList)" | ||
124 | + :key="item.id" | ||
125 | + :label="item.serverName" | ||
126 | + :value="item.id"> | ||
127 | + </el-option> | ||
128 | + </el-select> | ||
129 | + </el-form-item> | ||
130 | + | ||
131 | + <el-form-item label="相关描述:" prop="description"> | ||
132 | + <el-input v-model="addVirtualHostForm.description" style="width:270px" clearable | ||
133 | + placeholder="请输入相关描述"></el-input> | ||
134 | + </el-form-item> | ||
135 | + </el-form> | ||
136 | + | ||
137 | + <div slot="footer" class="dialog-footer" style="text-align: center"> | ||
138 | + <el-button type="info" @click="virtualHostDialog.addDialog = false" size="medium" | ||
139 | + style="width: 100px">取消 | ||
140 | + </el-button> | ||
141 | + <el-button type="primary" @click="addVirtualHostInfo" :loading="virtualHost_loading.addLoading" | ||
142 | + size="medium" | ||
143 | + style="width: 100px"> | ||
144 | + 添加 | ||
145 | + </el-button> | ||
146 | + </div> | ||
147 | + </el-dialog> | ||
148 | + </div> | ||
149 | + <!-- 对话框 —> 编辑虚拟主机信息 --> | ||
150 | + <div> | ||
151 | + <el-dialog title="编辑虚拟主机" | ||
152 | + :visible.sync="virtualHostDialog.editDialog" | ||
153 | + style="margin-top: -50px" | ||
154 | + width="50%" text-align="center" @close="virtualHostEditDialogClosed"> | ||
155 | + <el-form :inline="true" :model="editVirtualHostForm" label-width="120px" status-icon | ||
156 | + :rules="editVirtualHostFormRules" ref="editVirtualHostRef" | ||
157 | + align="center"> | ||
158 | + <el-form-item label="虚拟主机名称:" prop="virtualHostName"> | ||
159 | + <el-input v-model="editVirtualHostForm.virtualHostName" style="width:270px" clearable | ||
160 | + placeholder="请输入虚拟主机名称"></el-input> | ||
161 | + </el-form-item> | ||
162 | + <el-form-item label="所属服务器:" prop="serverId"> | ||
163 | + <el-select v-model="editVirtualHostForm.serverId" clearable style="width:270px" | ||
164 | + placeholder="请选择服务器名称"> | ||
165 | + <el-option | ||
166 | + v-for="item in (virtualHost_config.serverList)" | ||
167 | + :key="item.id" | ||
168 | + :label="item.serverName" | ||
169 | + :value="item.id"> | ||
170 | + </el-option> | ||
171 | + </el-select> | ||
172 | + </el-form-item> | ||
173 | + | ||
174 | + <el-form-item label="相关描述:" prop="description"> | ||
175 | + <el-input v-model="editVirtualHostForm.description" style="width:270px" clearable | ||
176 | + placeholder="请输入相关描述"></el-input> | ||
177 | + </el-form-item> | ||
178 | + </el-form> | ||
179 | + | ||
180 | + <div slot="footer" class="dialog-footer" style="text-align: center"> | ||
181 | + <el-button type="info" @click="virtualHostDialog.editDialog = false" size="medium" | ||
182 | + style="width: 100px">取消 | ||
183 | + </el-button> | ||
184 | + <el-button type="primary" @click="editVirtualHostInfo" :loading="virtualHost_loading.addLoading" | ||
185 | + size="medium" | ||
186 | + style="width: 100px"> | ||
187 | + 编辑 | ||
188 | + </el-button> | ||
189 | + </div> | ||
190 | + </el-dialog> | ||
191 | + </div> | ||
192 | + </el-main> | ||
193 | + </el-container> | ||
194 | +</template> | ||
195 | + | ||
196 | +<script> | ||
197 | + import { | ||
198 | + selectVirtualHostList, | ||
199 | + insertVirtualHost, | ||
200 | + updateVirtualHost, | ||
201 | + deleteVirtualHost, | ||
202 | + batchRemoveVirtualHost, | ||
203 | + getServerList, | ||
204 | + } from "../../api/message_bus"; | ||
205 | + | ||
206 | + export default { | ||
207 | + name: "VirtualHost", | ||
208 | + | ||
209 | + data() { | ||
210 | + return { | ||
211 | + /** | ||
212 | + * 搜索参数 | ||
213 | + */ | ||
214 | + queryInfo: { | ||
215 | + // 所属服务器ID | ||
216 | + serverId: '', | ||
217 | + // 虚拟主机名称 | ||
218 | + virtualHostName: '', | ||
219 | + // 当前页数 | ||
220 | + pageNum: 1, | ||
221 | + // 每页条数 | ||
222 | + pageSize: 10 | ||
223 | + }, | ||
224 | + /** | ||
225 | + * 虚拟机,配置参数 | ||
226 | + */ | ||
227 | + virtualHost_config: { | ||
228 | + // 所属服务器的名称 | ||
229 | + serverName: '', | ||
230 | + serverList: [], | ||
231 | + }, | ||
232 | + | ||
233 | + /** | ||
234 | + * 添加虚拟主机的表单 | ||
235 | + */ | ||
236 | + addVirtualHostForm: { | ||
237 | + // 虚拟主机名称 | ||
238 | + virtualHostName: '', | ||
239 | + // 所属服务器ID | ||
240 | + serverId: '', | ||
241 | + // 相关描述 | ||
242 | + description: '', | ||
243 | + }, | ||
244 | + /** | ||
245 | + * 列表记录的总条数 | ||
246 | + */ | ||
247 | + total: 0, | ||
248 | + /** | ||
249 | + * 批量删除的选中列表 | ||
250 | + */ | ||
251 | + selectList: [], | ||
252 | + /** | ||
253 | + * 虚拟主机列表 | ||
254 | + */ | ||
255 | + virtualHostList: [], | ||
256 | + | ||
257 | + /** | ||
258 | + * 编辑虚拟主机,表单 | ||
259 | + */ | ||
260 | + editVirtualHostForm: {}, | ||
261 | + /** | ||
262 | + * virtualHost,对话框管理 | ||
263 | + */ | ||
264 | + virtualHostDialog: { | ||
265 | + // 添加对话框 | ||
266 | + addDialog: false, | ||
267 | + // 编辑对话框 | ||
268 | + editDialog: false, | ||
269 | + }, | ||
270 | + /** | ||
271 | + * virtualHost,加载 | ||
272 | + */ | ||
273 | + virtualHost_loading: { | ||
274 | + // 列表加载 | ||
275 | + listLoading: false, | ||
276 | + // 添加加载 | ||
277 | + addLoading: false, | ||
278 | + // 编辑加载 | ||
279 | + editLoading: false, | ||
280 | + // 删除加载 | ||
281 | + delLoading: false, | ||
282 | + // 批量删除加载 | ||
283 | + batchDelLoading: false, | ||
284 | + }, | ||
285 | + /** | ||
286 | + * 添加虚拟主机,表单的验证规则对象 | ||
287 | + */ | ||
288 | + addVirtualHostFormRules: { | ||
289 | + virtualHostName: [ | ||
290 | + {required: true, message: '请输入虚拟主机名称', trigger: ['blur', 'change']}, | ||
291 | + ], | ||
292 | + serverId: [ | ||
293 | + {required: true, message: '请选择所属服务器', trigger: ['blur']}, | ||
294 | + ], | ||
295 | + description: [ | ||
296 | + {required: true, message: '请输入虚拟主机相关描述', trigger: ['blur', 'change']}, | ||
297 | + ], | ||
298 | + }, | ||
299 | + /** | ||
300 | + * 编辑虚拟主机,表单的验证规则对象 | ||
301 | + */ | ||
302 | + editVirtualHostFormRules: { | ||
303 | + virtualHostName: [ | ||
304 | + {required: true, message: '请输入虚拟主机名称', trigger: ['blur', 'change']}, | ||
305 | + ], | ||
306 | + serverId: [ | ||
307 | + {required: true, message: '请选择所属服务器', trigger: ['blur', 'change']}, | ||
308 | + ], | ||
309 | + description: [ | ||
310 | + {required: true, message: '请输入虚拟主机相关描述', trigger: ['blur', 'change']}, | ||
311 | + ], | ||
312 | + }, | ||
313 | + } | ||
314 | + }, | ||
315 | + methods: { | ||
316 | + /** | ||
317 | + * 分页查询,监听 pageSize 改变的事件 | ||
318 | + */ | ||
319 | + handleSizeChange(newSize) { | ||
320 | + this.queryInfo.pageSize = newSize; | ||
321 | + //刷新列表 | ||
322 | + this.getVirtualHostList(); | ||
323 | + }, | ||
324 | + /** | ||
325 | + * 分页查询,监听 pageNum 改变的事件 | ||
326 | + */ | ||
327 | + handleCurrentChange(newPage) { | ||
328 | + this.queryInfo.pageNum = newPage; | ||
329 | + //刷新列表 | ||
330 | + this.getVirtualHostList(); | ||
331 | + }, | ||
332 | + /** | ||
333 | + * 分页查询,虚拟主机 | ||
334 | + */ | ||
335 | + getVirtualHostList() { | ||
336 | + if (this.virtualHost_config.serverName !== undefined) { | ||
337 | + this.virtualHost_config.serverName = undefined; | ||
338 | + } | ||
339 | + // 开启加载 | ||
340 | + this.virtualHost_loading.listLoading = true; | ||
341 | + selectVirtualHostList(this.queryInfo).then((response) => { | ||
342 | + let res = response.data; | ||
343 | + if (res.code !== '200') { | ||
344 | + // 关闭加载 | ||
345 | + this.virtualHost_loading.listLoading = false; | ||
346 | + return this.$message.error('获取虚拟主机列表,失败!'); | ||
347 | + } | ||
348 | + | ||
349 | + console.log(res.data.list); | ||
350 | + // 获取列表数据 | ||
351 | + this.virtualHostList = res.data.list; | ||
352 | + // 获取列表的总记录数 | ||
353 | + this.total = res.data.total; | ||
354 | + // 关闭加载 | ||
355 | + this.virtualHost_loading.listLoading = false; | ||
356 | + this.$message.success('获取虚拟主机列表,成功!'); | ||
357 | + }).catch(error => { | ||
358 | + // 关闭加载 | ||
359 | + this.virtualHost_loading.listLoading = false; | ||
360 | + this.$message.error(error.toString()); | ||
361 | + }); | ||
362 | + }, | ||
363 | + /** | ||
364 | + * 虚拟主机信息,添加对话框,打开事件 | ||
365 | + */ | ||
366 | + toAddDialog() { | ||
367 | + this.virtualHostDialog.addDialog = true; | ||
368 | + }, | ||
369 | + /** | ||
370 | + * 虚拟主机信息,添加对话框,关闭事件 | ||
371 | + */ | ||
372 | + virtualHostAddDialogClosed() { | ||
373 | + //重置对话框 | ||
374 | + this.$refs.addVirtualHostRef.resetFields(); | ||
375 | + }, | ||
376 | + /** | ||
377 | + * 虚拟主机信息,添加功能 | ||
378 | + */ | ||
379 | + addVirtualHostInfo() { | ||
380 | + // 进行表单的预验证 | ||
381 | + this.$refs.addVirtualHostRef.validate(valid => { | ||
382 | + // 未通过,表单预校验 | ||
383 | + if (!valid) return; | ||
384 | + // 通过,表单预检验 | ||
385 | + this.virtualHost_loading.addLoading = true; | ||
386 | + insertVirtualHost(this.addVirtualHostForm).then((response) => { | ||
387 | + let res = response.data; | ||
388 | + // 添加失败 | ||
389 | + if (res.code !== '200') { | ||
390 | + if (res.code === '400') { | ||
391 | + // 关闭加载 | ||
392 | + this.virtualHost_loading.addLoading = false; | ||
393 | + return this.$message.error('该虚拟主机,已存在'); | ||
394 | + } | ||
395 | + if (res.code === '999') { | ||
396 | + // 关闭加载 | ||
397 | + this.virtualHost_loading.addLoading = false; | ||
398 | + return this.$message.error('未知异常,添加虚拟主机,失败'); | ||
399 | + } | ||
400 | + // 关闭加载 | ||
401 | + this.virtualHost_loading.addLoading = false; | ||
402 | + return this.$message.error('添加虚拟主机,失败'); | ||
403 | + } | ||
404 | + // 添加,成功 | ||
405 | + this.$message.success('添加虚拟主机,成功'); | ||
406 | + // 关闭加载 | ||
407 | + this.virtualHost_loading.addLoading = false; | ||
408 | + // 隐藏对话框 | ||
409 | + this.virtualHostDialog.addDialog = false; | ||
410 | + // 刷新列表 | ||
411 | + this.getVirtualHostList(); | ||
412 | + }).catch(error => { | ||
413 | + this.virtualHost_loading.addLoading = false; | ||
414 | + this.$message.error(error.toString()); | ||
415 | + }); | ||
416 | + }) | ||
417 | + }, | ||
418 | + | ||
419 | + /** | ||
420 | + * 虚拟主机信息,编辑对话框,打开事件 | ||
421 | + */ | ||
422 | + toEditDialog(index, row) { | ||
423 | + this.editVirtualHostForm = Object.assign({}, row); | ||
424 | + this.virtualHostDialog.editDialog = true; | ||
425 | + }, | ||
426 | + | ||
427 | + /** | ||
428 | + * 虚拟主机信息,编辑对话框,关闭事件 | ||
429 | + */ | ||
430 | + virtualHostEditDialogClosed() { | ||
431 | + //重置对话框 | ||
432 | + this.$refs.editVirtualHostRef.resetFields(); | ||
433 | + }, | ||
434 | + /** | ||
435 | + * 虚拟主机信息,编辑功能 | ||
436 | + */ | ||
437 | + editVirtualHostInfo() { | ||
438 | + //进行表单的预验证 | ||
439 | + this.$refs.editVirtualHostRef.validate(valid => { | ||
440 | + // 未通过,表单预校验 | ||
441 | + if (!valid) return; | ||
442 | + // 通过,表单预检验 | ||
443 | + this.virtualHost_loading.editLoading = true; | ||
444 | + updateVirtualHost(this.editVirtualHostForm).then((response) => { | ||
445 | + let res = response.data; | ||
446 | + if (res.code !== '200') { | ||
447 | + if (res.code === '400') { | ||
448 | + // 关闭加载 | ||
449 | + this.virtualHost_loading.editLoading = false; | ||
450 | + return this.$message.error('该虚拟主机,已存在'); | ||
451 | + } | ||
452 | + if (res.code === '999') { | ||
453 | + // 关闭加载 | ||
454 | + this.virtualHost_loading.editLoading = false; | ||
455 | + return this.$message.error('未知异常,编辑虚拟主机信息,失败'); | ||
456 | + } | ||
457 | + //关闭加载 | ||
458 | + this.virtualHost_loading.editLoading = false; | ||
459 | + return this.$message.error('编辑虚拟主机信息,失败'); | ||
460 | + } | ||
461 | + // 关闭加载 | ||
462 | + this.virtualHost_loading.editLoading = false; | ||
463 | + this.$message.success('编辑虚拟主机信息,成功!'); | ||
464 | + // 隐藏对话框 | ||
465 | + this.virtualHostDialog.editDialog = false; | ||
466 | + // 刷新列表 | ||
467 | + this.getVirtualHostList(); | ||
468 | + }).catch(error => { | ||
469 | + this.virtualHost_loading.editLoading = false; | ||
470 | + this.$message.error(error.toString()); | ||
471 | + }); | ||
472 | + }) | ||
473 | + }, | ||
474 | + | ||
475 | + | ||
476 | + /** | ||
477 | + * 虚拟主机信息,删除 | ||
478 | + */ | ||
479 | + removeVirtualHostInfo(index, row) { | ||
480 | + // 弹框询问是否删除? | ||
481 | + this.$confirm('此操作永久删除该虚拟主机信息, 是否继续?', '警告', { | ||
482 | + confirmButtonText: '确定删除', | ||
483 | + cancelButtonText: '取消', | ||
484 | + type: 'warning' | ||
485 | + } | ||
486 | + ).then(() => { | ||
487 | + // 开启加载 | ||
488 | + this.virtualHost_loading.delLoading = true; | ||
489 | + deleteVirtualHost(row).then((response) => { | ||
490 | + let res = response.data; | ||
491 | + if (res.code !== '200') { | ||
492 | + //关闭加载 | ||
493 | + this.virtualHost_loading.delLoading = false; | ||
494 | + return this.$message.error('删除虚拟主机信息,失败'); | ||
495 | + } | ||
496 | + //关闭加载 | ||
497 | + this.virtualHost_loading.delLoading = false; | ||
498 | + this.$message.success('删除虚拟主机信息,成功!'); | ||
499 | + //刷新列表 | ||
500 | + this.getVirtualHostList(); | ||
501 | + }).catch(error => { | ||
502 | + this.virtualHost_loading.delLoading = false; | ||
503 | + this.$message.error(error.toString()); | ||
504 | + }); | ||
505 | + }).catch(() => { | ||
506 | + }); | ||
507 | + }, | ||
508 | + /** | ||
509 | + * 批量删除,之前的选中 | ||
510 | + */ | ||
511 | + selectChange: function (selectList) { | ||
512 | + this.selectList = selectList; | ||
513 | + }, | ||
514 | + /** | ||
515 | + * 批量删除-虚拟主机 | ||
516 | + */ | ||
517 | + batchDeleteVirtualHost() { | ||
518 | + const ids = this.selectList.map(item => item.id).toString(); | ||
519 | + this.$confirm('此操作将永久删除选中的虚拟主机信息, 是否继续?', '警告', { | ||
520 | + confirmButtonText: '确定删除', | ||
521 | + cancelButtonText: '取消', | ||
522 | + type: 'warning' | ||
523 | + } | ||
524 | + ).then(() => { | ||
525 | + // 开启加载 | ||
526 | + this.virtualHost_loading.batchDelLoading = true; | ||
527 | + let params = {ids: ids}; | ||
528 | + batchRemoveVirtualHost(params).then(response => { | ||
529 | + let res = response.data; | ||
530 | + if (res.code !== '200') { | ||
531 | + // 关闭加载 | ||
532 | + this.virtualHost_loading.batchDelLoading = false; | ||
533 | + return this.$message.error('批量删除服务器信息,失败'); | ||
534 | + } | ||
535 | + this.$message.success('批量删除服务器信息,成功!'); | ||
536 | + // 关闭加载 | ||
537 | + this.virtualHost_loading.batchDelLoading = false; | ||
538 | + // 刷新列表 | ||
539 | + this.getVirtualHostList(); | ||
540 | + }).catch(error => { | ||
541 | + // 关闭加载 | ||
542 | + this.virtualHost_loading.batchDelLoading = false; | ||
543 | + this.$message.error(error.toString()); | ||
544 | + }); | ||
545 | + }).catch(() => { | ||
546 | + }); | ||
547 | + }, | ||
548 | + | ||
549 | + /** | ||
550 | + * 获取服务器列表 | ||
551 | + */ | ||
552 | + selectServerList() { | ||
553 | + getServerList().then((response) => { | ||
554 | + let res = response.data; | ||
555 | + if (res.code !== '200') { | ||
556 | + return this.$message.error('获取服务器列表,失败!'); | ||
557 | + } | ||
558 | + // 获取服务器列表数据 | ||
559 | + this.virtualHost_config.serverList = res.data; | ||
560 | + // this.$message.success('获取服务器列表,成功!'); | ||
561 | + }).catch(error => { | ||
562 | + this.$message.error(error.toString()); | ||
563 | + }); | ||
564 | + }, | ||
565 | + | ||
566 | + /** | ||
567 | + * 携带参数,跳转至交换机界面 | ||
568 | + */ | ||
569 | + toExchange(index, row) { | ||
570 | + this.$confirm('查看该虚拟主机下的交换机, 是否继续?', '提示', { | ||
571 | + confirmButtonText: '查看', | ||
572 | + cancelButtonText: '取消', | ||
573 | + type: 'warning' | ||
574 | + } | ||
575 | + ).then(() => { | ||
576 | + this.$router.push({name: "交换机管理", params: {virtualHost_scopeRow: row}}) | ||
577 | + }).catch(() => { | ||
578 | + }); | ||
579 | + }, | ||
580 | + /** | ||
581 | + * 携带参数,跳转至队列界面 | ||
582 | + */ | ||
583 | + toQueue(index, row) { | ||
584 | + this.$confirm('查看该交换机下的队列, 是否继续?', '提示', { | ||
585 | + confirmButtonText: '查看', | ||
586 | + cancelButtonText: '取消', | ||
587 | + type: 'warning' | ||
588 | + } | ||
589 | + ).then(() => { | ||
590 | + this.$router.push({name: "队列管理", params: {virtualHost_scopeRow: row}}) | ||
591 | + }).catch(() => { | ||
592 | + }); | ||
593 | + }, | ||
594 | + }, | ||
595 | + created() { | ||
596 | + if (this.$route.params.server_scopeRow !== undefined) { | ||
597 | + // 参数,服务器id | ||
598 | + this.queryInfo.serverId = this.$route.params.server_scopeRow.id; | ||
599 | + // 刷新列表 | ||
600 | + this.getVirtualHostList(); | ||
601 | + // 参数,服务器名称 | ||
602 | + this.virtualHost_config.serverName = this.$route.params.server_scopeRow.serverName; | ||
603 | + } else { | ||
604 | + // 刷新列表 | ||
605 | + this.getVirtualHostList(); | ||
606 | + } | ||
607 | + }, | ||
608 | + mounted() { | ||
609 | + this.selectServerList(); | ||
610 | + }, | ||
611 | + computed: {}, | ||
612 | + } | ||
613 | +</script> | ||
614 | + | ||
615 | +<style scoped> | ||
616 | + | ||
617 | +</style> |
@@ -21,31 +21,31 @@ | @@ -21,31 +21,31 @@ | ||
21 | border | 21 | border |
22 | :tree-props="{children: 'children', hasChildren: 'hasChildren'}" | 22 | :tree-props="{children: 'children', hasChildren: 'hasChildren'}" |
23 | > | 23 | > |
24 | - <el-table-column type="selection" width="55"> | 24 | + <el-table-column type="selection" width="55" align="center"> |
25 | </el-table-column> | 25 | </el-table-column> |
26 | <!--<el-table-column type="index" width="60">--> | 26 | <!--<el-table-column type="index" width="60">--> |
27 | <!--</el-table-column>--> | 27 | <!--</el-table-column>--> |
28 | - <el-table-column prop="permissionId" label="ID" width="130" sortable> | 28 | + <el-table-column prop="permissionId" label="ID" width="130" align="center" sortable> |
29 | </el-table-column> | 29 | </el-table-column> |
30 | - <el-table-column prop="name" label="权限名称" min-width="150" sortable> | 30 | + <el-table-column prop="name" label="权限名称" min-width="150" align="center" sortable> |
31 | </el-table-column> | 31 | </el-table-column> |
32 | - <el-table-column prop="description" label="描述" min-width="120" sortable> | 32 | + <el-table-column prop="description" label="描述" min-width="120" align="center" sortable> |
33 | </el-table-column> | 33 | </el-table-column> |
34 | - <el-table-column prop="ismenu" label="是否目录" width="100" :formatter="formatState" sortable> | 34 | + <el-table-column prop="ismenu" label="是否目录" width="120" :formatter="formatState" align="center" sortable> |
35 | </el-table-column> | 35 | </el-table-column> |
36 | - <el-table-column prop="url" label="访问路径" width="300" sortable> | 36 | + <el-table-column prop="url" label="访问路径" width="250" align="center" sortable> |
37 | </el-table-column> | 37 | </el-table-column> |
38 | - <el-table-column label="操作" min-width="100"> | 38 | + <el-table-column label="操作" min-width="150" align="center"> |
39 | <template slot-scope="scope"> | 39 | <template slot-scope="scope"> |
40 | - <el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> | ||
41 | - <el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> | 40 | + <el-button size="small" type="success" icon="el-icon-check" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
41 | + <el-button type="danger" icon="el-icon-delete" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> | ||
42 | </template> | 42 | </template> |
43 | </el-table-column> | 43 | </el-table-column> |
44 | </el-table> | 44 | </el-table> |
45 | 45 | ||
46 | <!--工具条--> | 46 | <!--工具条--> |
47 | <el-col :span="24" class="toolbar"> | 47 | <el-col :span="24" class="toolbar"> |
48 | - <el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> | 48 | + <el-button type="danger" icon="el-icon-delete" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> |
49 | <el-pagination layout="total, prev, pager, next" @current-change="handleCurrentChange" :page-size="pageSize" :total="total" style="float:right;"> | 49 | <el-pagination layout="total, prev, pager, next" @current-change="handleCurrentChange" :page-size="pageSize" :total="total" style="float:right;"> |
50 | </el-pagination> | 50 | </el-pagination> |
51 | </el-col> | 51 | </el-col> |
@@ -147,7 +147,7 @@ | @@ -147,7 +147,7 @@ | ||
147 | tableList: [], | 147 | tableList: [], |
148 | total: 0, | 148 | total: 0, |
149 | pageNum: 1, | 149 | pageNum: 1, |
150 | - pageSize: 100, | 150 | + pageSize: 10000, |
151 | listLoading: false, | 151 | listLoading: false, |
152 | sels: [],//列表选中列 | 152 | sels: [],//列表选中列 |
153 | //编辑界面是否显示 | 153 | //编辑界面是否显示 |
@@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
10 | <el-button type="primary" v-on:click="getRoles()">查询</el-button> | 10 | <el-button type="primary" v-on:click="getRoles()">查询</el-button> |
11 | </el-form-item> | 11 | </el-form-item> |
12 | <el-form-item> | 12 | <el-form-item> |
13 | - <el-button type="primary" @click="handleAdd">新增</el-button> | 13 | + <el-button type="success" @click="handleAdd">新增</el-button> |
14 | </el-form-item> | 14 | </el-form-item> |
15 | </el-form> | 15 | </el-form> |
16 | </el-col> | 16 | </el-col> |
@@ -21,32 +21,32 @@ | @@ -21,32 +21,32 @@ | ||
21 | row-key="roleId" | 21 | row-key="roleId" |
22 | border | 22 | border |
23 | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> | 23 | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
24 | - <el-table-column type="selection" width="55"> | 24 | + <el-table-column type="selection" width="60" align="center"> |
25 | </el-table-column> | 25 | </el-table-column> |
26 | <!--<el-table-column type="index" width="60">--> | 26 | <!--<el-table-column type="index" width="60">--> |
27 | <!--</el-table-column>--> | 27 | <!--</el-table-column>--> |
28 | - <el-table-column prop="roleId" label="ID" width="120"> | 28 | + <el-table-column prop="roleId" label="ID" width="110" align="center"> |
29 | </el-table-column> | 29 | </el-table-column> |
30 | - <el-table-column prop="roleName" label="岗位/角色名称" min-width="200" sortable> | 30 | + <el-table-column prop="roleName" label="岗位/角色名称" width="180" sortable align="center"> |
31 | </el-table-column> | 31 | </el-table-column> |
32 | <!--<el-table-column prop="departmentName" label="部门名称" min-width="200" sortable>--> | 32 | <!--<el-table-column prop="departmentName" label="部门名称" min-width="200" sortable>--> |
33 | <!--</el-table-column>--> | 33 | <!--</el-table-column>--> |
34 | - <el-table-column prop="description" label="描述" min-width="160" > | 34 | + <el-table-column prop="description" label="描述" min-width="100" align="center" > |
35 | </el-table-column> | 35 | </el-table-column> |
36 | - <el-table-column prop="type" label="类型" min-width="80" sortable> | 36 | + <el-table-column prop="type" label="类型" min-width="100" sortable align="center"> |
37 | </el-table-column> | 37 | </el-table-column> |
38 | - <el-table-column prop="businessLicense" label="工商代码" min-width="180" > | ||
39 | - </el-table-column> | ||
40 | - <el-table-column prop="customsRegCode" label="海关备案代码" min-width="150" > | ||
41 | - </el-table-column> | ||
42 | - <el-table-column prop="mqcode" label="海关通道编号" min-width="150" > | ||
43 | - </el-table-column> | ||
44 | - <el-table-column label="操作" min-width="260"> | 38 | +<!-- <el-table-column prop="businessLicense" label="工商代码" min-width="180" align="center">--> |
39 | +<!-- </el-table-column>--> | ||
40 | +<!-- <el-table-column prop="customsRegCode" label="海关备案代码" min-width="150" align="center" >--> | ||
41 | +<!-- </el-table-column>--> | ||
42 | +<!-- <el-table-column prop="mqcode" label="海关通道编号" min-width="150" align="center">--> | ||
43 | +<!-- </el-table-column>--> | ||
44 | + <el-table-column label="操作" width="230px" fixed="right" align="center"> | ||
45 | <template slot-scope="scope"> | 45 | <template slot-scope="scope"> |
46 | - <el-button type="primary" size="small" @click="handleAdd(scope.$index, scope.row)">新增下级</el-button> | ||
47 | - <el-button size="small" @click="setPerm(scope.$index, scope.row)">设置权限</el-button> | ||
48 | - <el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> | ||
49 | - <el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> | 46 | + <el-button type="success" size="small" @click="handleAdd(scope.$index, scope.row)" style="width:97px;margin-left: 1px;">新增下级</el-button> |
47 | + <el-button type="warning" size="small" @click="setPerm(scope.$index, scope.row)" style="width:97px;margin-left: 1px;">设置权限</el-button> | ||
48 | + <el-button type="primary" style="width:97px;margin-left: 1px;margin-top: 3px;" size="small" @click="handleEdit(scope.$index, scope.row)" >编辑</el-button> | ||
49 | + <el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)" style="width:97px;margin-left: 1px;">删除</el-button> | ||
50 | </template> | 50 | </template> |
51 | </el-table-column> | 51 | </el-table-column> |
52 | </el-table> | 52 | </el-table> |
@@ -84,15 +84,15 @@ | @@ -84,15 +84,15 @@ | ||
84 | </el-option> | 84 | </el-option> |
85 | </el-select> | 85 | </el-select> |
86 | </el-form-item> | 86 | </el-form-item> |
87 | - <el-form-item label="工商企业代码" prop="businessLicense"> | ||
88 | - <el-input v-model="addForm.businessLicense" auto-complete="off" placeholder="社会信用代码或者组织机构代码"></el-input> | ||
89 | - </el-form-item> | ||
90 | - <el-form-item label="海关备案代码" prop="customsRegCode"> | ||
91 | - <el-input v-model="addForm.customsRegCode" auto-complete="off" placeholder="海关备案后返回的备案代码"></el-input> | ||
92 | - </el-form-item> | ||
93 | - <el-form-item label="海关通道编号" prop="mqcode"> | ||
94 | - <el-input v-model="addForm.mqcode" auto-complete="off" placeholder="海关通道编号"></el-input> | ||
95 | - </el-form-item> | 87 | +<!-- <el-form-item label="工商企业代码" prop="businessLicense">--> |
88 | +<!-- <el-input v-model="addForm.businessLicense" auto-complete="off" placeholder="社会信用代码或者组织机构代码"></el-input>--> | ||
89 | +<!-- </el-form-item>--> | ||
90 | +<!-- <el-form-item label="海关备案代码" prop="customsRegCode">--> | ||
91 | +<!-- <el-input v-model="addForm.customsRegCode" auto-complete="off" placeholder="海关备案后返回的备案代码"></el-input>--> | ||
92 | +<!-- </el-form-item>--> | ||
93 | +<!-- <el-form-item label="海关通道编号" prop="mqcode">--> | ||
94 | +<!-- <el-input v-model="addForm.mqcode" auto-complete="off" placeholder="海关通道编号"></el-input>--> | ||
95 | +<!-- </el-form-item>--> | ||
96 | </el-form> | 96 | </el-form> |
97 | <div slot="footer" class="dialog-footer"> | 97 | <div slot="footer" class="dialog-footer"> |
98 | <el-button @click.native="addFormVisible = false">取消</el-button> | 98 | <el-button @click.native="addFormVisible = false">取消</el-button> |
@@ -264,7 +264,7 @@ | @@ -264,7 +264,7 @@ | ||
264 | getPermList() { | 264 | getPermList() { |
265 | let para = { | 265 | let para = { |
266 | pageNum: 1, | 266 | pageNum: 1, |
267 | - pageSize: 700 | 267 | + pageSize: 2000 |
268 | }; | 268 | }; |
269 | NProgress.start(); | 269 | NProgress.start(); |
270 | permList(para).then((res) => { | 270 | permList(para).then((res) => { |
@@ -19,44 +19,46 @@ | @@ -19,44 +19,46 @@ | ||
19 | </el-col> | 19 | </el-col> |
20 | 20 | ||
21 | <!--列表--> | 21 | <!--列表--> |
22 | - <el-table :data="users" highlight-current-row border v-loading="listLoading" @selection-change="selsChange" style="width: 100%;"> | ||
23 | - <el-table-column type="selection" width="55"> | 22 | + <el-table :data="users" highlight-current-row border v-loading="listLoading" @selection-change="selsChange" |
23 | + style="width: 100%;"> | ||
24 | + <el-table-column type="selection" width="55" align="center"> | ||
24 | </el-table-column> | 25 | </el-table-column> |
25 | <!--<el-table-column type="index" width="60">--> | 26 | <!--<el-table-column type="index" width="60">--> |
26 | <!--</el-table-column>--> | 27 | <!--</el-table-column>--> |
27 | - <el-table-column prop="userId" label="ID" width="100" sortable> | 28 | + <el-table-column prop="userId" label="ID" width="100" align="center" sortable> |
28 | </el-table-column> | 29 | </el-table-column> |
29 | - <el-table-column prop="username" label="账号" width="120" sortable> | 30 | + <el-table-column prop="username" label="账号" width="120" align="center" sortable> |
30 | </el-table-column> | 31 | </el-table-column> |
31 | - <el-table-column prop="realname" label="姓名" width="120" sortable> | 32 | + <el-table-column prop="realname" label="姓名" width="120" align="center" sortable> |
32 | </el-table-column> | 33 | </el-table-column> |
33 | - <el-table-column prop="sex" label="性别" width="100" :formatter="formatSex" sortable> | 34 | + <el-table-column prop="sex" label="性别" width="100" :formatter="formatSex" align="center" sortable> |
34 | </el-table-column> | 35 | </el-table-column> |
35 | - <el-table-column prop="mobilephone" label="电话" width="125"> | 36 | + <el-table-column prop="mobilephone" label="电话" width="130" align="center"> |
36 | </el-table-column> | 37 | </el-table-column> |
37 | - <el-table-column prop="creattime" label="创建时间" width="170" sortable> | 38 | + <el-table-column prop="creattime" label="创建时间" width="175" align="center" sortable> |
38 | </el-table-column> | 39 | </el-table-column> |
39 | - <el-table-column prop="updatetime" label="更新时间" width="170" sortable> | 40 | + <el-table-column prop="updatetime" label="更新时间" width="175" align="center" sortable> |
40 | </el-table-column> | 41 | </el-table-column> |
41 | - <el-table-column prop="address" label="地址" min-width="180"> | 42 | + <el-table-column prop="address" label="地址" min-width="180" align="center"> |
42 | </el-table-column> | 43 | </el-table-column> |
43 | - <el-table-column prop="email" label="Email" min-width="180"> | 44 | + <el-table-column prop="email" label="Email" min-width="180" align="center"> |
44 | </el-table-column> | 45 | </el-table-column> |
45 | - <el-table-column prop="state" label="启用" width="100" :formatter="formatState" sortable> | 46 | + <el-table-column prop="state" label="启用" width="100" :formatter="formatState" align="center" sortable> |
46 | </el-table-column> | 47 | </el-table-column> |
47 | - <el-table-column label="操作" width="250"> | 48 | + <el-table-column label="操作" width="300px" fixed="right" align="center"> |
48 | <template slot-scope="scope"> | 49 | <template slot-scope="scope"> |
49 | - <el-button size="small" @click="roleEdit(scope.$index, scope.row)">角色配置</el-button> | ||
50 | - <el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> | ||
51 | - <el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> | 50 | + <el-button type="primary" icon="el-icon-setting" size="small" @click="roleEdit(scope.$index, scope.row)">角色配置</el-button> |
51 | + <el-button size="small" type="success" icon="el-icon-check" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> | ||
52 | + <el-button type="danger" icon="el-icon-delete" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> | ||
52 | </template> | 53 | </template> |
53 | </el-table-column> | 54 | </el-table-column> |
54 | </el-table> | 55 | </el-table> |
55 | 56 | ||
56 | <!--工具条--> | 57 | <!--工具条--> |
57 | <el-col :span="24" class="toolbar"> | 58 | <el-col :span="24" class="toolbar"> |
58 | - <el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> | ||
59 | - <el-pagination layout="total, prev, pager, next" @current-change="handleCurrentChange" :page-size="10" :total="total" style="float:right;"> | 59 | + <el-button type="danger" icon="el-icon-delete" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> |
60 | + <el-pagination layout="total, prev, pager, next" @current-change="handleCurrentChange" :page-size="10" | ||
61 | + :total="total" style="float:right;"> | ||
60 | </el-pagination> | 62 | </el-pagination> |
61 | </el-col> | 63 | </el-col> |
62 | 64 | ||
@@ -69,9 +71,9 @@ | @@ -69,9 +71,9 @@ | ||
69 | <el-form-item label="账号"> | 71 | <el-form-item label="账号"> |
70 | <span>{{editForm.username}}</span> | 72 | <span>{{editForm.username}}</span> |
71 | </el-form-item> | 73 | </el-form-item> |
72 | - <el-form-item label="密码" prop="password"> | ||
73 | - <el-input v-model="editForm.password" auto-complete="off" type="password" show-password></el-input> | ||
74 | - </el-form-item> | 74 | +<!-- <el-form-item label="密码" prop="password">--> |
75 | +<!-- <el-input v-model="editForm.password" auto-complete="off" type="password" show-password></el-input>--> | ||
76 | +<!-- </el-form-item>--> | ||
75 | <el-form-item label="姓名" prop="realname"> | 77 | <el-form-item label="姓名" prop="realname"> |
76 | <el-input v-model="editForm.realname" auto-complete="off"></el-input> | 78 | <el-input v-model="editForm.realname" auto-complete="off"></el-input> |
77 | </el-form-item> | 79 | </el-form-item> |
@@ -83,8 +85,8 @@ | @@ -83,8 +85,8 @@ | ||
83 | </el-form-item> | 85 | </el-form-item> |
84 | <el-form-item label="性别"> | 86 | <el-form-item label="性别"> |
85 | <el-radio-group v-model="editForm.sex"> | 87 | <el-radio-group v-model="editForm.sex"> |
86 | - <el-radio class="radio" label="1" >男</el-radio> | ||
87 | - <el-radio class="radio" label="0" >女</el-radio> | 88 | + <el-radio class="radio" label="1">男</el-radio> |
89 | + <el-radio class="radio" label="0">女</el-radio> | ||
88 | </el-radio-group> | 90 | </el-radio-group> |
89 | </el-form-item> | 91 | </el-form-item> |
90 | <el-form-item label="年龄"> | 92 | <el-form-item label="年龄"> |
@@ -98,8 +100,8 @@ | @@ -98,8 +100,8 @@ | ||
98 | </el-form-item> | 100 | </el-form-item> |
99 | <el-form-item label="启用"> | 101 | <el-form-item label="启用"> |
100 | <el-radio-group v-model="editForm.state"> | 102 | <el-radio-group v-model="editForm.state"> |
101 | - <el-radio class="radio" label="true" >是</el-radio> | ||
102 | - <el-radio class="radio" label="false" >否</el-radio> | 103 | + <el-radio class="radio" label="true">是</el-radio> |
104 | + <el-radio class="radio" label="false">否</el-radio> | ||
103 | </el-radio-group> | 105 | </el-radio-group> |
104 | </el-form-item> | 106 | </el-form-item> |
105 | <el-form-item lable="头像"> | 107 | <el-form-item lable="头像"> |
@@ -161,14 +163,15 @@ | @@ -161,14 +163,15 @@ | ||
161 | 163 | ||
162 | <!--权限设置--> | 164 | <!--权限设置--> |
163 | <el-dialog title="权限设置" :visible.sync="roleFormVisible" :close-on-click-modal="false"> | 165 | <el-dialog title="权限设置" :visible.sync="roleFormVisible" :close-on-click-modal="false"> |
164 | - <el-form :model="roleEditForm" label-width="80px" ref="roleEditForm" > | 166 | + <el-form :model="roleEditForm" label-width="80px" ref="roleEditForm"> |
165 | <el-form-item label="ID"> | 167 | <el-form-item label="ID"> |
166 | <span>{{roleEditForm.userId}}</span> | 168 | <span>{{roleEditForm.userId}}</span> |
167 | </el-form-item> | 169 | </el-form-item> |
168 | <el-form-item label="账号"> | 170 | <el-form-item label="账号"> |
169 | <span>{{roleEditForm.username}}</span> | 171 | <span>{{roleEditForm.username}}</span> |
170 | </el-form-item> | 172 | </el-form-item> |
171 | - <el-tree :data="roles" :props="treeDefaultProps" default-expand-all show-checkbox highlight-current check-strictly node-key="roleId" ref="tree" @check-change="treeHandleCheckChange"> | 173 | + <el-tree :data="roles" :props="treeDefaultProps" default-expand-all show-checkbox highlight-current |
174 | + check-strictly node-key="roleId" ref="tree" @check-change="treeHandleCheckChange"> | ||
172 | </el-tree> | 175 | </el-tree> |
173 | </el-form> | 176 | </el-form> |
174 | 177 | ||
@@ -183,9 +186,10 @@ | @@ -183,9 +186,10 @@ | ||
183 | <script> | 186 | <script> |
184 | import util from '../../common/js/util' | 187 | import util from '../../common/js/util' |
185 | import NProgress from 'nprogress' | 188 | import NProgress from 'nprogress' |
186 | - import { getUserList, removeUser, batchRemoveUser, editUser, addUser, setUserRole } from '../../api/user'; | ||
187 | - import { getList} from '../../api/role_api'; | 189 | + import {getUserList, removeUser, batchRemoveUser, editUser, addUser, setUserRole} from '../../api/user'; |
190 | + import {getList} from '../../api/role_api'; | ||
188 | import moment from 'moment' | 191 | import moment from 'moment' |
192 | + | ||
189 | export default { | 193 | export default { |
190 | data() { | 194 | data() { |
191 | return { | 195 | return { |
@@ -209,7 +213,10 @@ | @@ -209,7 +213,10 @@ | ||
209 | editLoading: false, | 213 | editLoading: false, |
210 | editFormRules: { | 214 | editFormRules: { |
211 | name: [ | 215 | name: [ |
212 | - { required: true, message: '请输入姓名', trigger: 'blur' } | 216 | + {required: true, message: '请输入姓名', trigger: 'blur'} |
217 | + ], | ||
218 | + mobilephone: [ | ||
219 | + {required: true, message: '请输入手机号码', trigger: ['blur', 'change']} | ||
213 | ] | 220 | ] |
214 | }, | 221 | }, |
215 | //编辑界面数据 | 222 | //编辑界面数据 |
@@ -217,24 +224,27 @@ | @@ -217,24 +224,27 @@ | ||
217 | userId: 1, | 224 | userId: 1, |
218 | username: '', | 225 | username: '', |
219 | password: '', | 226 | password: '', |
220 | - sex: 1, | ||
221 | - creattime: '', | 227 | + sex: '1', |
228 | + creattime: undefined, | ||
222 | address: '', | 229 | address: '', |
223 | realname: '', | 230 | realname: '', |
224 | email: '', | 231 | email: '', |
225 | mobilephone: '', | 232 | mobilephone: '', |
226 | - state: 'true' | 233 | + state: true |
227 | }, | 234 | }, |
228 | 235 | ||
229 | addFormVisible: false,//新增界面是否显示 | 236 | addFormVisible: false,//新增界面是否显示 |
230 | addLoading: false, | 237 | addLoading: false, |
231 | addFormRules: { | 238 | addFormRules: { |
232 | username: [ | 239 | username: [ |
233 | - { required: true, message: '请输入姓名,用户名长度在5-11位,支持英文和数字', trigger: 'blur' }, | 240 | + {required: true, message: '请输入姓名,用户名长度在5-11位,支持英文和数字', trigger: 'blur'}, |
234 | ], | 241 | ], |
235 | password: [ | 242 | password: [ |
236 | - { required: true, message: '请输入密码,用户名长度在6-18位,支持英文和数字和非空字符', trigger: 'blur'} | ||
237 | - ] | 243 | + {required: true, message: '请输入密码,用户名长度在6-18位,支持英文和数字和非空字符', trigger: 'blur'} |
244 | + ], | ||
245 | + mobilephone: [ | ||
246 | + {required: true, message: '请输入手机号码', trigger: ['blur', 'change']}, | ||
247 | + ], | ||
238 | }, | 248 | }, |
239 | //用户角色配置 | 249 | //用户角色配置 |
240 | roleFormVisible: false, | 250 | roleFormVisible: false, |
@@ -272,7 +282,7 @@ | @@ -272,7 +282,7 @@ | ||
272 | this.getUsers(); | 282 | this.getUsers(); |
273 | }, | 283 | }, |
274 | //获取用户列表 | 284 | //获取用户列表 |
275 | - getUsers:function() { | 285 | + getUsers: function () { |
276 | let para = { | 286 | let para = { |
277 | pageNum: this.pageNum, | 287 | pageNum: this.pageNum, |
278 | pageSize: this.pageSize, | 288 | pageSize: this.pageSize, |
@@ -299,7 +309,7 @@ | @@ -299,7 +309,7 @@ | ||
299 | }).then(() => { | 309 | }).then(() => { |
300 | this.listLoading = true; | 310 | this.listLoading = true; |
301 | //NProgress.start(); | 311 | //NProgress.start(); |
302 | - let para = { userId: row.userId }; | 312 | + let para = {userId: row.userId}; |
303 | removeUser(para).then((res) => { | 313 | removeUser(para).then((res) => { |
304 | this.listLoading = false; | 314 | this.listLoading = false; |
305 | //NProgress.done(); | 315 | //NProgress.done(); |
@@ -331,8 +341,8 @@ | @@ -331,8 +341,8 @@ | ||
331 | this.roleEditForm = Object.assign({}, row); | 341 | this.roleEditForm = Object.assign({}, row); |
332 | let roles = this.roleEditForm.roles; | 342 | let roles = this.roleEditForm.roles; |
333 | 343 | ||
334 | - if (util.checkNull(roles)){ | ||
335 | - roles.forEach(function (role,v_index,v_arr) { | 344 | + if (util.checkNull(roles)) { |
345 | + roles.forEach(function (role, v_index, v_arr) { | ||
336 | if (util.checkNull(role)) { | 346 | if (util.checkNull(role)) { |
337 | _this.roleIds[v_index] = role.roleId; | 347 | _this.roleIds[v_index] = role.roleId; |
338 | } | 348 | } |
@@ -353,11 +363,11 @@ | @@ -353,11 +363,11 @@ | ||
353 | this.roles = res.data.list; | 363 | this.roles = res.data.list; |
354 | NProgress.done(); | 364 | NProgress.done(); |
355 | }).catch((error) => { | 365 | }).catch((error) => { |
356 | - if(null!= error.response && error.response!==undefined){ | ||
357 | - let status= error.response.status; | 366 | + if (null != error.response && error.response !== undefined) { |
367 | + let status = error.response.status; | ||
358 | let msg = error.response.statusText; | 368 | let msg = error.response.statusText; |
359 | - alert(status+msg); | ||
360 | - }else { | 369 | + alert(status + msg); |
370 | + } else { | ||
361 | alert(error); | 371 | alert(error); |
362 | } | 372 | } |
363 | }); | 373 | }); |
@@ -385,11 +395,11 @@ | @@ -385,11 +395,11 @@ | ||
385 | this.$confirm('确认提交吗?', '提示', {}).then(() => { | 395 | this.$confirm('确认提交吗?', '提示', {}).then(() => { |
386 | this.editLoading = true; | 396 | this.editLoading = true; |
387 | //NProgress.start(); | 397 | //NProgress.start(); |
388 | - let para = Object.assign({}, this.editForm); | 398 | + // let para = Object.assign({}, this.editForm); |
389 | //不需要提交的 去掉,后端不好接收 | 399 | //不需要提交的 去掉,后端不好接收 |
390 | - para.authorities = null; | ||
391 | - para.permissions = null; | ||
392 | - para.roles = null; | 400 | + this.editForm.authorities = null; |
401 | + this.editForm.permissions = null; | ||
402 | + this.editForm.roles = null; | ||
393 | // para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd'); | 403 | // para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd'); |
394 | /* | 404 | /* |
395 | 查询之后格式this.filters.column.create_start_date中日期发生变化; | 405 | 查询之后格式this.filters.column.create_start_date中日期发生变化; |
@@ -400,7 +410,7 @@ | @@ -400,7 +410,7 @@ | ||
400 | /*moment 安装 npm install moment --save*/ | 410 | /*moment 安装 npm install moment --save*/ |
401 | // para.creattime = moment(para.creattime).format('YYYY-MM-DD HH:mm:ss'); | 411 | // para.creattime = moment(para.creattime).format('YYYY-MM-DD HH:mm:ss'); |
402 | this.editLoading = false; | 412 | this.editLoading = false; |
403 | - editUser(para).then((res) => { | 413 | + editUser(this.editForm).then((res) => { |
404 | 414 | ||
405 | //NProgress.done(); | 415 | //NProgress.done(); |
406 | this.$message({ | 416 | this.$message({ |
@@ -455,7 +465,7 @@ | @@ -455,7 +465,7 @@ | ||
455 | }).then(() => { | 465 | }).then(() => { |
456 | this.listLoading = true; | 466 | this.listLoading = true; |
457 | //NProgress.start(); | 467 | //NProgress.start(); |
458 | - let para = { ids: ids }; | 468 | + let para = {ids: ids}; |
459 | batchRemoveUser(para).then((res) => { | 469 | batchRemoveUser(para).then((res) => { |
460 | this.listLoading = false; | 470 | this.listLoading = false; |
461 | //NProgress.done(); | 471 | //NProgress.done(); |
@@ -474,9 +484,9 @@ | @@ -474,9 +484,9 @@ | ||
474 | // this.editLoading = true; | 484 | // this.editLoading = true; |
475 | let userId = this.roleEditForm.userId; | 485 | let userId = this.roleEditForm.userId; |
476 | let roleIds = this.$refs.tree.getCheckedKeys(); | 486 | let roleIds = this.$refs.tree.getCheckedKeys(); |
477 | - let para = {userId,roleIds}; | 487 | + let para = {userId, roleIds}; |
478 | setUserRole(para).then((res) => { | 488 | setUserRole(para).then((res) => { |
479 | - if (res.status ===200) { | 489 | + if (res.status === 200) { |
480 | this.$message({ | 490 | this.$message({ |
481 | message: '岗位设置成功', | 491 | message: '岗位设置成功', |
482 | type: 'success' | 492 | type: 'success' |
@@ -490,17 +500,17 @@ | @@ -490,17 +500,17 @@ | ||
490 | console.log(para); | 500 | console.log(para); |
491 | }); | 501 | }); |
492 | }, | 502 | }, |
493 | - handleAvatarSuccess: function(response){ | ||
494 | - this.faceImageUrl = 'http://127.0.0.1:7003/'+response.data; | 503 | + handleAvatarSuccess: function (response) { |
504 | + this.faceImageUrl = 'http://127.0.0.1:7003/' + response.data; | ||
495 | }, | 505 | }, |
496 | beforeAvatarUpload: function () { | 506 | beforeAvatarUpload: function () { |
497 | 507 | ||
498 | }, | 508 | }, |
499 | treeHandleCheckChange: function (data, checked, indeterminate) { | 509 | treeHandleCheckChange: function (data, checked, indeterminate) { |
500 | - if(checked) { | 510 | + if (checked) { |
501 | this.roleIds.push(data.roleId); | 511 | this.roleIds.push(data.roleId); |
502 | - }else { | ||
503 | - this.roleIds.splice(this.roleIds.contains(data.roleId),1); | 512 | + } else { |
513 | + this.roleIds.splice(this.roleIds.contains(data.roleId), 1); | ||
504 | } | 514 | } |
505 | // console.log(data, checked, indeterminate); | 515 | // console.log(data, checked, indeterminate); |
506 | console.log(this.roleIds); | 516 | console.log(this.roleIds); |
-
请 注册 或 登录 后发表评论