Compare commits
517 Commits
master
...
hi-ucs-pre
Author | SHA1 | Date |
---|---|---|
wuhongjian | ce685dfb36 | |
gongjiale | 2b972db97f | |
gongjiale | 399355bd63 | |
wuhongjian | fa809a37e0 | |
wuhongjian | 4c1c3ff628 | |
unknown | 37aa68ba7a | |
a0049873 | ac7f284645 | |
a0049873 | f7becc09f5 | |
a0049873 | 42bba89d54 | |
a0049873 | f25e57e9b1 | |
a0049873 | 0941a3c92b | |
a0049873 | df915acc06 | |
guoyue | c19e1ac231 | |
guoyue | 02de5ba910 | |
a0049873 | b10158ce02 | |
a0049873 | 63267ed67e | |
gongjiale | e915396532 | |
unknown | 9ae72f0b9d | |
guoyue | d21697d3aa | |
a0049873 | c463250fae | |
a0049873 | 96b3f3197e | |
guoyue | 492360166c | |
guoyue | a6a7d467e6 | |
guoyue | a157cc24e7 | |
a0049873 | 759cc667f6 | |
unknown | 9d4aa897ee | |
unknown | 9a5b1732c5 | |
a0049873 | cab45f5558 | |
a0049873 | 97e17115c4 | |
gongjiale | 562c57e783 | |
gongjiale | 2689f95272 | |
gongjiale | 5ecd94df32 | |
a0049873 | 962740bde6 | |
a0049873 | ca603957cb | |
gongjiale | ef095da37f | |
gongjiale | 952db84e29 | |
guoyue | 14cac6c190 | |
guoyue | 14813c1f4d | |
unknown | e4cdac8bb9 | |
unknown | af4ba480cb | |
unknown | d4d2b06e1d | |
gongjiale | 6eae78fd3b | |
gongjiale | fc74f6a769 | |
gongjiale | 27cb8bd7d3 | |
wuhongjian | 47ba0c8b14 | |
wuhongjian | c6c2fa57cc | |
a0049873 | 72229ea4fb | |
guoyue | 5c6ad1a4eb | |
guoyue | 0dc6bb2012 | |
a0049873 | c8813f9688 | |
a0049873 | b755a35565 | |
a0049873 | 3950122864 | |
a0049873 | 33e9cfe960 | |
a0049873 | 2a2eb0fbc3 | |
a0049873 | 4281bc5156 | |
a0049873 | abd89f6eeb | |
a0049873 | 9eba41250e | |
a0049873 | ad6a1c14de | |
a0049873 | 493151d9f0 | |
wuhongjian | abc8bf3dd5 | |
gongjiale | 61bb1291c2 | |
gongjiale | d130bcf1aa | |
gongjiale | 2156e70433 | |
unknown | 1ad52d954c | |
a0049873 | 15426bccdc | |
guoyue | 76a7be9f48 | |
gongjiale | 511f4690c1 | |
a0049873 | 3c134e0949 | |
unknown | a680dbaa74 | |
guoyue | 50c2d6264d | |
guoyue | 5f155dc69a | |
a0049873 | 97eaa4e9d2 | |
guoyue | b67fa140cf | |
guoyue | b6f26564c4 | |
guoyue | e0f0365dab | |
guoyue | 4341f143f4 | |
gongjiale | 3180324cd2 | |
gongjiale | 7e53463eaf | |
guoyue | 2774650d96 | |
gongjiale | 90237e4f6d | |
gongjiale | 23a885e051 | |
gongjiale | 6967b3f1da | |
unknown | dd38eba69b | |
unknown | 7e6fb8417a | |
guoyue | 04a2f613e8 | |
guoyue | 43bc0dd992 | |
wuhongjian | ed6a7e85b2 | |
wuhongjian | 04fcdfde08 | |
guoyue | 2f34e4acbc | |
guoyue | cc00873328 | |
a0049873 | fbcd40f2a6 | |
a0049873 | f837060104 | |
wuhongjian | 9a2c2c07d1 | |
wuhongjian | 09d56091fa | |
guoyue | 7e0cebdda3 | |
guoyue | c1da555ceb | |
a0049873 | 140f927763 | |
guoyue | 3e310fb7ea | |
guoyue | a864842957 | |
guoyue | e29e0f0526 | |
guoyue | 3e1b6b8a22 | |
a0049873 | f36e2bbffc | |
a0049873 | 4930027d67 | |
guoyue | 46ad5e747d | |
guoyue | 5132d3ec60 | |
guoyue | b61722857d | |
guoyue | 6b509a61d2 | |
gongjiale | c5e48f69f5 | |
gongjiale | 474292f532 | |
guoyue | 355ee77e79 | |
guoyue | fef67d9cc4 | |
gongjiale | 98bdfd71f3 | |
a0049873 | 1e3b315d35 | |
gongjiale | 4ed1d18cb3 | |
guoyue | 82718e3d02 | |
guoyue | d28628f35a | |
a0049873 | ccebe3d09c | |
a0049873 | 3ef7da2d6c | |
a0049873 | 94a940a1ab | |
gongjiale | c6313796bb | |
a0049873 | 42b7ec1129 | |
guoyue | f93550990f | |
guoyue | 76e1fb7e1b | |
guoyue | 4c77943db2 | |
guoyue | c65dac78ea | |
a0049873 | 330f8de5e4 | |
guoyue | 02925c3282 | |
a0049873 | d8a08c6470 | |
wuhongjian | 00e4e9671b | |
wuhongjian | c634d85688 | |
a0049873 | 1f727a6cbd | |
a0049873 | b600caa357 | |
guoyue | 5fea910701 | |
guoyue | 05899ab616 | |
guoyue | b561eff3ea | |
guoyue | 24dc1d09cd | |
guoyue | 7ff2d13afe | |
a0049873 | 983b2c0534 | |
wuhongjian | 8f33c9f375 | |
a0049873 | 5cbeba19b8 | |
a0049873 | b30a72555f | |
wuhongjian | 11b42afde3 | |
guoyue | 79ee811854 | |
guoyue | 1a40a09286 | |
guoyue | e4437ac420 | |
a0049873 | 0726f4a927 | |
a0049873 | 8a31a4e285 | |
a0049873 | 314b68b3a3 | |
guoyue | 99f57e3335 | |
guoyue | f6eca9013c | |
wuhongjian | 84f1b03c42 | |
wuhongjian | aaa16a1105 | |
a0049873 | e1a805d4bd | |
a0049873 | 98a420f0c3 | |
a0049873 | 52be0acd83 | |
wuhongjian | a8aba6b4f1 | |
wuhongjian | e0481ba5a5 | |
gongjiale | 70a015cb01 | |
gongjiale | 1427424073 | |
guoyue | 6b1fc28b4b | |
guoyue | 49b41ce8e6 | |
guoyue | b226e777f7 | |
a0049873 | 30328e575d | |
a0049873 | a296f5a0d6 | |
a0049873 | 7e9108e7d6 | |
guoyue | 0461d44c85 | |
guoyue | f4a53c91b1 | |
wuhongjian | 67574732c7 | |
unknown | 44da94a71e | |
a0049873 | bd036feee2 | |
guoyue | b5f9531943 | |
guoyue | 549dda54b3 | |
a0049873 | 672e6164ba | |
gongjiale | ec1f832617 | |
gongjiale | a9aef58f6c | |
gongjiale | 002cbdd6f0 | |
a0049873 | 1e855be058 | |
a0049873 | 82f007aa40 | |
gongjiale | 30a8641929 | |
gongjiale | 5d0a02a364 | |
wuhongjian | 1a96e4e6a2 | |
wuhongjian | 1f3116f402 | |
guoyue | ba5526d7d8 | |
guoyue | 33ba30d97f | |
a0049873 | 188d9bb85a | |
a0049873 | 6a6d1fc473 | |
a0049873 | 04ad7eb6ed | |
a0049873 | fe1f6dc08d | |
gongjiale | 56c4393f2e | |
gongjiale | f541f61409 | |
a0049873 | 6b1c3f30a4 | |
a0049873 | c6429869a4 | |
unknown | a12d0aa6ff | |
unknown | 02d70b4b8d | |
guoyue | 4e271b6aa7 | |
guoyue | 4d59133942 | |
unknown | 1a23d64064 | |
unknown | 04471a122e | |
gongjiale | 906a2aad94 | |
gongjiale | b24e925c5a | |
a0049873 | e6a102ce3f | |
gongjiale | 7a0d2ba101 | |
gongjiale | 55398620f0 | |
guoyue | 2af92a6f8f | |
a0049873 | d3466d4521 | |
wuhongjian | 2258b05184 | |
guoyue | 3f22be0d8d | |
guoyue | cdb47c705b | |
guoyue | 2ee2d988cc | |
wuhongjian | 107e6205a2 | |
wuhongjian | 8e6fac427b | |
a0049873 | c41028ffaa | |
wuhongjian | a139bd809b | |
wuhongjian | b13577d4b4 | |
wuhongjian | e96c0c11b1 | |
wuhongjian | 3f6e432d0b | |
wuhongjian | 811e80a27c | |
unknown | 71041b60f2 | |
guoyue | a7ac2e8a1e | |
guoyue | 42af2e980b | |
guoyue | dd100d3867 | |
unknown | 05964a73e8 | |
a0049873 | c5fc29a498 | |
guoyue | 5f3aad2539 | |
guoyue | 2ebec87514 | |
guoyue | 0974118d3b | |
guoyue | adf964a400 | |
guoyue | 8db5b8bee5 | |
a0049873 | 21431958f0 | |
guoyue | b66a781b81 | |
guoyue | 587c728a74 | |
guoyue | ea2afd08c9 | |
guoyue | e0bde554b9 | |
guoyue | 98d1b070ab | |
guoyue | 5ac06ce8d6 | |
unknown | f20aac7430 | |
unknown | e26937bc37 | |
a0049873 | 4d65cc11e9 | |
a0049873 | 2c1070d4e2 | |
guoyue | 29ace46c69 | |
guoyue | fe85cd370f | |
guoyue | 0d402302f7 | |
guoyue | 34ac0b016b | |
guoyue | 4354abdf25 | |
gongjiale | 033e123edc | |
gongjiale | 2484cda43d | |
guoyue | 9c8785b8ce | |
guoyue | e34f47680b | |
guoyue | a71fc5326e | |
guoyue | 9bba3077ca | |
guoyue | 4580df0182 | |
unknown | ae046a6f82 | |
gongjiale | 3d69aa5922 | |
gongjiale | 259f82362a | |
gongjiale | 9df921cbe3 | |
wuhongjian | 7210d77314 | |
wuhongjian | 79cdaa1146 | |
gongjiale | d06bf23062 | |
gongjiale | aecfba1391 | |
unknown | 9243c94e8d | |
a0049873 | 1a530271c5 | |
a0049873 | 32d7f38e80 | |
a0049873 | c583569868 | |
gongjiale | b51e66f54e | |
a0049873 | 23eff2d365 | |
a0049873 | aeed2b27e3 | |
a0049873 | 678b60374e | |
unknown | 5ec0d81181 | |
gongjiale | eb563cd3dd | |
gongjiale | 23210070cd | |
wuhongjian | b79797b09a | |
unknown | 8ec209162c | |
unknown | d278b2194c | |
wuhongjian | 2c4752c97b | |
wuhongjian | 0c83991e6c | |
gongjiale | a900c4c332 | |
gongjiale | a6ab3b9194 | |
a0049873 | 2a05650b26 | |
a0049873 | cfe88605cc | |
a0049873 | 78aabf704b | |
wuhongjian | 5568f82e52 | |
wuhongjian | 7abf71a6fb | |
unknown | f4f5292540 | |
gongjiale | 6d45680b9a | |
unknown | 07a924cce4 | |
unknown | 10fe94fbfa | |
wuhongjian | 4d003421fe | |
wuhongjian | 7877cd2474 | |
unknown | 09cc87a095 | |
gongjiale | e58b788f09 | |
gongjiale | 48393700ed | |
unknown | feed3a454c | |
wuhongjian | 54aa64de64 | |
a0049873 | 75299e8648 | |
gongjiale | c2c5c30122 | |
gongjiale | 17d08d399f | |
wuhongjian | e5fdaa744a | |
gongjiale | dbfdfd6285 | |
gongjiale | 1fa11e3358 | |
unknown | bff7f51467 | |
unknown | a0e38bd312 | |
wuhongjian | ce50c9221e | |
gongjiale | b57d9c5b11 | |
gongjiale | 7f662ee870 | |
wuhongjian | 720b26a902 | |
wuhongjian | 8f1658f2eb | |
guoyue | 56696c6266 | |
guoyue | 85fa71f4b9 | |
guoyue | f2a6e2ffc9 | |
guoyue | adcb0cdbf0 | |
gongjiale | fe17edeb39 | |
gongjiale | e0ca9166e4 | |
guoyue | 5f8659f7f4 | |
gongjiale | 6d3d16bbdf | |
guoyue | f198ad5f5a | |
wuhongjian | 672981d051 | |
guoyue | ae252efcc0 | |
guoyue | 6f1550734d | |
guoyue | 61592ceaea | |
guoyue | edf1cb5af9 | |
guoyue | 140ff7f92c | |
a0049873 | 66df6d8c76 | |
wuhongjian | 70bb06cba6 | |
guoyue | 240784a3b2 | |
guoyue | 177cc4e9c7 | |
guoyue | 1382f22cb5 | |
guoyue | e4ad24ba8c | |
guoyue | ba597c1da4 | |
guoyue | b5ad10130f | |
a0049873 | 8f6ef3d8f9 | |
a0049873 | be971b7112 | |
guoyue | 05c93f9dd9 | |
guoyue | 37347b3de2 | |
a0049873 | 9c3a8495c0 | |
a0049873 | 6203566058 | |
guoyue | 8940dc4e24 | |
guoyue | 9f111d3336 | |
guoyue | c5ae492e70 | |
a0049873 | c95d9ac76e | |
unknown | 0ba3526904 | |
unknown | 4c4fe02f74 | |
gongjiale | a5a76110f0 | |
guoyue | 5db6afcb6c | |
guoyue | a04241c9a5 | |
guoyue | 4a104177bf | |
gongjiale | fe1ac7cfbc | |
gongjiale | c9da08b40d | |
gongjiale | c09299175a | |
gongjiale | 4094c3afc4 | |
guoyue | af1c03d3ed | |
guoyue | c4ae6d603a | |
gongjiale | 06d16202a2 | |
guoyue | e83ddfe47e | |
guoyue | d6c971ab23 | |
unknown | 4a78bfa72e | |
guoyue | b2c2958fdb | |
guoyue | 7d513edafc | |
guoyue | c71784567c | |
guoyue | f727efbdcd | |
guoyue | 7b4b410538 | |
guoyue | 667d53484e | |
guoyue | d13dbbb09a | |
guoyue | 14aa35bd11 | |
guoyue | 0103444cb8 | |
guoyue | aec249624a | |
guoyue | 608b6d10ff | |
guoyue | 1ae5dda1a7 | |
gongjiale | ca9244ed80 | |
gongjiale | 82cbe0aecb | |
gongjiale | e01788b7b0 | |
guoyue | 251c3d33d6 | |
guoyue | 58e045e862 | |
guoyue | c1c4eaf4d6 | |
guoyue | cdb0ed10ea | |
guoyue | ad34e10710 | |
guoyue | 1d5d4845c2 | |
guoyue | 12d3cc221c | |
guoyue | c23d0aeee7 | |
gongjiale | aa6022f599 | |
guoyue | ded5cfed22 | |
guoyue | d549a7f73d | |
guoyue | c183ee883d | |
851673013@qq.com | 1bff4a6f85 | |
851673013@qq.com | cce81f9ece | |
851673013@qq.com | a906b433f2 | |
851673013@qq.com | cba2a5c089 | |
851673013@qq.com | a3c6162592 | |
guoyue | 166e5e119e | |
于秀圆 | 3dcb9b8778 | |
于秀圆 | bcbafaf9f0 | |
guoyue | 057b926183 | |
guoyue | 39547f16e4 | |
guoyue | f0df682cc6 | |
guoyue | 98f0c360d4 | |
guoyue | bafe53bc67 | |
guoyue | 48bfe71c6f | |
851673013@qq.com | e477b3f90e | |
851673013@qq.com | 9e5bd33650 | |
851673013@qq.com | 7918e07b6c | |
guoyue | 3f4e27177c | |
guoyue | a7d7431c75 | |
guoyue | a7da8b013e | |
guoyue | f86d40feda | |
于秀圆 | a4259cf2d9 | |
guoyue | f79b43d261 | |
guoyue | 9c93864e38 | |
guoyue | 9023a44715 | |
guoyue | 787ceeef3f | |
a0049873 | 55da389003 | |
a0049873 | 1066a00154 | |
a0049873 | 7952f20beb | |
a0049873 | a02926006a | |
guoyue | fc8f43b94c | |
guoyue | 2df958d69e | |
guoyue | cf7d85060c | |
a0049873 | 18f911bd16 | |
guoyue | f071abfcf7 | |
guoyue | 0b401f5741 | |
a0049873 | ccbb53093f | |
a0049873 | 8782498104 | |
guoyue | 2f752de364 | |
guoyue | ae5978f408 | |
guoyue | 479c2791f3 | |
guoyue | 653559e727 | |
guoyue | cecba03c6e | |
guoyue | 5c6d90d912 | |
guoyue | 076d84bd0a | |
guoyue | eab0eb374a | |
guoyue | 4e3fa20984 | |
a0049873 | 432ba890f6 | |
unknown | 186184c14f | |
a0049873 | 67e009d110 | |
guoyue | 2688b764e5 | |
guoyue | 5e31517f1d | |
guoyue | 5e2b32f62a | |
guoyue | 4dc1525520 | |
guoyue | f26afc84c7 | |
guoyue | 1d61355bc6 | |
guoyue | 4a28789464 | |
guoyue | 10fdc587a2 | |
guoyue | fe3eb0aa68 | |
guoyue | 05d2ad1a45 | |
guoyue | 7594c9cb51 | |
guoyue | 85b515acf8 | |
guoyue | b1f17ca5bb | |
guoyue | 4296677fcd | |
guoyue | 2d32d735a5 | |
guoyue | 6f6ec109e4 | |
guoyue | c55eedc5b4 | |
guoyue | e906d9adc5 | |
guoyue | e077a04c08 | |
guoyue | a5df439fd0 | |
guoyue | cce7cb3be9 | |
guoyue | 495ed477f8 | |
guoyue | 8f56c1680d | |
guoyue | 14978ef490 | |
guoyue | 44525afeb8 | |
guoyue | f1de06b5ad | |
guoyue | cc330f2b60 | |
guoyue | f6b6c4713d | |
guoyue | b8eda12e43 | |
lizhicheng2 | 83eb319d28 | |
guoyue | bcef134cf9 | |
guoyue | 7ea1bc972b | |
guoyue | b17f4a3056 | |
guoyue | 560e6af900 | |
guoyue | e7a5a21430 | |
guoyue | 11f4c3fe25 | |
yuhan_jiang | 6827b2ebe5 | |
guoyue | b3b35d21b3 | |
guoyue | 21adcb62c8 | |
guoyue | 5387d6a7a3 | |
guoyue | 8b9e11b0a0 | |
guoyue | 8cb2f83fb5 | |
guoyue | 3e6f875728 | |
guoyue | 856cf3e41f | |
guoyue | 7f884528e9 | |
guoyue | 07fff52e43 | |
guoyue | c35398209b | |
guoyue | bff2aa9f97 | |
guoyue | 1455e2e0d7 | |
guoyue | 47871e8a02 | |
guoyue | c6d456055e | |
guoyue | 18578c1a58 | |
guoyue | b2abd5f16e | |
guoyue | 253b9f511a | |
lizhicheng2 | 576790ad9d | |
lizhicheng2 | f3973fe28d | |
a0049873 | 6ef87c3c79 | |
guoyue | de605dd446 | |
guoyue | 1b26210e01 | |
851673013@qq.com | f2e68d0105 | |
guoyue | dfba732000 | |
guoyue | 0661a53d79 | |
guoyue | fb0a5e1f38 | |
guoyue | 31a809f9d9 | |
guoyue | 90a3aa8e37 | |
guoyue | 1cba78f8e1 | |
guoyue | 7996d8a701 | |
guoyue | 1e06abbf11 | |
guoyue | 59abe1614c | |
guoyue | 59cc6d93fc | |
guoyue | 9df17910ee | |
guoyue | 715792aa7d | |
guoyue | 510e72f35e | |
guoyue | 43aec16d92 | |
guoyue | 5eefd4d306 | |
guoyue | 7f3c5c0921 | |
guoyue | 84e3f220dd | |
guoyue | 2e17b5cf80 | |
zhangzhuliang | 205cb756be | |
gaoyuanwei | c3bc043228 | |
a0049873 | 3b09661496 | |
gaoyuanwei | 619fc10627 | |
gaoyuanwei | 2ff89ea6e4 | |
zhangzhuliang | 7ff222761c | |
zhangzhuliang | c1643e3cb0 |
|
@ -9,4 +9,5 @@ front/public/index.html
|
|||
back/dist-西海岸-后台管理-v0.8.2.1.zip
|
||||
back/dist-市局-后台管理-v0.8.2.3.zip
|
||||
back/dist-西海岸-后台管理-v0.8.2.4.d.zip
|
||||
*.zip
|
||||
*.zip
|
||||
front/public/static/config/basicConfig.js
|
||||
|
|
|
@ -1,47 +1,50 @@
|
|||
/*
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-08-25 14:37:49
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-27 14:25:39
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-11-03 14:33:57
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
var _global = {}
|
||||
var CONFIGITEM = {
|
||||
version: 'qingdao', // 青岛
|
||||
// version: 'qingdao', // 青岛
|
||||
// version: 'xihaian', // 西海岸
|
||||
// version: 'test', // 测试
|
||||
version: 'dev', // 测试
|
||||
// version: 'frp', // 内网穿透
|
||||
// version: 'dev', // 开发
|
||||
// version: 'xihaian', // 开发
|
||||
vNum: 'v0.8.7.2',
|
||||
configData: {
|
||||
// 青岛市大数据局
|
||||
qingdao: {
|
||||
previewUrl: 'http://15.72.183.90:7008/',
|
||||
apiURL: 'http://15.72.183.90:8000/renren-admin',
|
||||
websocketURL: 'ws://15.72.183.90:8000/renren-admin/websocket'
|
||||
apiURL: 'http://15.72.183.90:8000/ucs-admin',
|
||||
websocketURL: 'ws://15.72.183.90:8000/ucs-admin/websocket'
|
||||
},
|
||||
// 西海岸大数据局
|
||||
xihaian: {
|
||||
previewUrl: 'http://10.134.135.9:9796/',
|
||||
apiURL: 'http://10.134.135.9:8888/renren-admin',
|
||||
websocketURL: 'ws://10.134.135.9:8888/renren-admin/websocket'
|
||||
// apiURL: 'http://10.134.135.9:8888/ucs-admin',
|
||||
// apiURL: 'http://10.16.5.35:8888/ucs-admin', // 李志成-研发
|
||||
apiURL: 'http://192.168.124.236:8888/ucs-admin',
|
||||
// apiURL: 'http://192.168.124.254:8888/ucs-admin', // 李志成-远雄
|
||||
websocketURL: 'ws://10.134.135.9:8888/ucs-admin/websocket'
|
||||
},
|
||||
// 测试
|
||||
test: {
|
||||
previewUrl: 'http://192.168.124.243:9796/',
|
||||
apiURL: 'http://192.168.124.243:8888/renren-admin',
|
||||
websocketURL: 'ws://192.168.124.243:8888/renren-admin/websocket'
|
||||
apiURL: 'http://192.168.124.243:8888/ucs-admin',
|
||||
websocketURL: 'ws://192.168.124.243:8888/ucs-admin/websocket'
|
||||
},
|
||||
// 内网穿透
|
||||
frp: {
|
||||
previewUrl: 'http://124.222.94.39:9796/',
|
||||
apiURL: 'http://124.222.94.39:8888/renren-admin',
|
||||
websocketURL: 'ws://124.222.94.39:8888/renren-admin/websocket'
|
||||
apiURL: 'http://124.222.94.39:8888/ucs-admin',
|
||||
websocketURL: 'ws://124.222.94.39:8888/ucs-admin/websocket'
|
||||
},
|
||||
dev: {
|
||||
previewUrl: 'http://localhost:8080/',
|
||||
apiURL: 'http://192.168.124.236:8888/renren-admin',
|
||||
websocketURL: 'ws://192.168.124.236:8888/renren-admin/websocket'
|
||||
apiURL: 'http://192.168.124.233:8888/ucs-admin',
|
||||
websocketURL: 'ws://192.168.124.236:8888/ucs-admin/websocket'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
After Width: | Height: | Size: 366 B |
After Width: | Height: | Size: 637 B |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 5.2 KiB |
|
@ -714,4 +714,15 @@ img {
|
|||
|
||||
.aui-navbar__header {
|
||||
width: 268px;
|
||||
}
|
||||
|
||||
// 统一更改弹框高度、树形控件高度
|
||||
.el-dialog__body {
|
||||
max-height: 600px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.el-tree {
|
||||
max-height: 450px;
|
||||
overflow-y: auto;
|
||||
}
|
|
@ -1,42 +1,37 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-input v-model="showDeptName" :placeholder="placeholder" @focus="deptDialog">
|
||||
<el-button slot="append" icon="el-icon-search" @click="deptDialog"></el-button>
|
||||
</el-input>
|
||||
<el-input :value="value" style="display: none"></el-input>
|
||||
<el-dialog :visible.sync="visibleDept" width="30%" :modal="false" :title="placeholder" :close-on-click-modal="false" :close-on-press-escape="false">
|
||||
<el-form size="mini" :inline="true">
|
||||
<el-form-item :label="$t('keyword')">
|
||||
<el-input v-model="filterText"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!-- <el-button type="default">{{ $t('query') }}</el-button> -->
|
||||
<el-button type="default">{{ $t('query') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-tree
|
||||
class="filter-tree"
|
||||
:data="deptList"
|
||||
:default-expanded-keys="expandedKeys"
|
||||
:props="{ label: 'name', children: 'children' }"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="filterNode"
|
||||
:highlight-current="true"
|
||||
node-key="id"
|
||||
ref="tree">
|
||||
</el-tree>
|
||||
<template slot="footer">
|
||||
<el-button type="default" @click="cancelHandle()" size="mini">{{ $t('cancel') }}</el-button>
|
||||
<el-button v-if="query" type="info" @click="clearHandle()" size="mini">{{ $t('clear') }}</el-button>
|
||||
<el-button type="primary" @click="commitHandle()" size="mini">{{ $t('confirm') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-input v-model="showDeptName" :placeholder="placeholder" @focus="deptDialog" readonly
|
||||
@paste.native.capture.prevent="handlePaste">
|
||||
<el-button slot="append" icon="el-icon-search" @click="deptDialog"></el-button>
|
||||
</el-input>
|
||||
<el-input :value="value" style="display: none"></el-input>
|
||||
<el-dialog :visible.sync="visibleDept" width="30%" :modal="false" :title="placeholder" :close-on-click-modal="false"
|
||||
:close-on-press-escape="false">
|
||||
<el-form size="mini" :inline="true">
|
||||
<el-form-item :label="$t('keyword')">
|
||||
<el-input v-model="filterText"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!-- <el-button type="default">{{ $t('query') }}</el-button> -->
|
||||
<el-button type="default">{{ $t('query') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-tree class="filter-tree" :data="deptList" :default-expanded-keys="expandedKeys"
|
||||
:props="{ label: 'name', children: 'children' }" :expand-on-click-node="false" :filter-node-method="filterNode"
|
||||
:highlight-current="true" node-key="id" ref="tree">
|
||||
</el-tree>
|
||||
<template slot="footer">
|
||||
<el-button type="default" @click="cancelHandle()" size="mini">{{ $t('cancel') }}</el-button>
|
||||
<el-button v-if="query" type="info" @click="clearHandle()" size="mini">{{ $t('clear') }}</el-button>
|
||||
<el-button type="primary" @click="commitHandle()" size="mini">{{ $t('confirm') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'RenDeptTree',
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
filterText: '',
|
||||
visibleDept: false,
|
||||
|
@ -56,15 +51,23 @@ export default {
|
|||
placeholder: String
|
||||
},
|
||||
watch: {
|
||||
filterText (val) {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val)
|
||||
},
|
||||
deptName (val) {
|
||||
deptName(val) {
|
||||
this.showDeptName = val
|
||||
},
|
||||
visibleDept(val) {
|
||||
if (!val) {
|
||||
this.filterText = ''
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deptDialog () {
|
||||
handlePaste() {
|
||||
return false
|
||||
},
|
||||
deptDialog() {
|
||||
this.expandedKeys = null
|
||||
if (this.$refs.tree) {
|
||||
this.$refs.tree.setCurrentKey(null)
|
||||
|
@ -72,11 +75,11 @@ export default {
|
|||
this.visibleDept = true
|
||||
this.getDeptList(this.value)
|
||||
},
|
||||
filterNode (value, data) {
|
||||
filterNode(value, data) {
|
||||
if (!value) return true
|
||||
return data.name.indexOf(value) !== -1
|
||||
},
|
||||
getDeptList (id) {
|
||||
getDeptList(id) {
|
||||
return this.$http.get('/sys/dept/list').then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
|
@ -86,14 +89,14 @@ export default {
|
|||
this.$refs.tree.setCurrentKey(id)
|
||||
this.expandedKeys = [id]
|
||||
})
|
||||
}).catch(() => {})
|
||||
}).catch(() => { })
|
||||
},
|
||||
cancelHandle () {
|
||||
cancelHandle() {
|
||||
this.visibleDept = false
|
||||
this.deptList = []
|
||||
this.filterText = ''
|
||||
},
|
||||
clearHandle () {
|
||||
clearHandle() {
|
||||
this.$emit('input', '')
|
||||
this.$emit('update:deptName', '')
|
||||
this.showDeptName = ''
|
||||
|
@ -101,7 +104,7 @@ export default {
|
|||
this.deptList = []
|
||||
this.filterText = ''
|
||||
},
|
||||
commitHandle () {
|
||||
commitHandle() {
|
||||
const node = this.$refs.tree.getCurrentNode()
|
||||
if (!node) {
|
||||
this.$message.error(this.$t('dept.chooseerror'))
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-04-11 16:30:04
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-16 15:07:44
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-10-26 11:05:07
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<template>
|
||||
|
@ -31,7 +31,7 @@
|
|||
<!-- 审核意见 -->
|
||||
<el-table-column prop="comment" :label="$t('process.comment')" header-align="center" align="center"></el-table-column>
|
||||
<!-- 任务时长(秒) -->
|
||||
<el-table-column prop="durationInSeconds" :label="$t('task.durationInSeconds')" header-align="center" align="center" width="180"></el-table-column>
|
||||
<el-table-column prop="duration" :label="$t('task.durationInSeconds')" header-align="center" align="center" width="180"></el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
v-if="dataForm.pid === '0'"
|
||||
|
|
|
@ -9,13 +9,14 @@
|
|||
</el-form>
|
||||
<template slot="footer">
|
||||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
|
||||
<el-button type="primary" @click="entrustTask()">{{ $t('confirm') }}</el-button>
|
||||
<el-button type="primary" @click="entrustTask($store.state.contentTabsActiveName)">{{ $t('confirm') }}</el-button>
|
||||
</template>
|
||||
<select-user v-if="selectUserVisible" ref="selectUser" ></select-user>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import bus from '@/views/bus.js'
|
||||
import SelectUser from './select-user'
|
||||
import qs from 'qs'
|
||||
export default {
|
||||
|
@ -52,11 +53,11 @@ export default {
|
|||
init () {
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
this.$refs.dataForm.resetFields()
|
||||
})
|
||||
},
|
||||
// 委托
|
||||
entrustTask () {
|
||||
entrustTask (data) {
|
||||
if (!this.dataForm.entrustUserId) {
|
||||
this.$message.error(this.$t('process.entrustError'))
|
||||
return
|
||||
|
@ -65,9 +66,11 @@ export default {
|
|||
taskId: this.dataForm.taskId,
|
||||
assignee: this.dataForm.entrustUserId
|
||||
})
|
||||
this.$http['post']('/act/task/entrust', task).then(({ data: res }) => {
|
||||
this.$http.post('/act/task/entrust', task).then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
this.$message.error(res.msg)
|
||||
this.tabRemoveHandle(data)
|
||||
bus.$emit('updateTaskNum')
|
||||
if (this.callbacks.taskHandleErrorCallback) {
|
||||
this.callbacks.taskHandleErrorCallback(res)
|
||||
}
|
||||
|
@ -79,6 +82,8 @@ export default {
|
|||
duration: 500,
|
||||
onClose: () => {
|
||||
this.visible = false
|
||||
this.tabRemoveHandle(data)
|
||||
bus.$emit('updateTaskNum')
|
||||
if (this.callbacks.taskHandleSuccessCallback) {
|
||||
this.callbacks.taskHandleSuccessCallback(res)
|
||||
}
|
||||
|
@ -93,6 +98,33 @@ export default {
|
|||
this.$refs.selectUser.init(this.setUserInfo)
|
||||
})
|
||||
},
|
||||
|
||||
tabRemoveHandle (tabName) {
|
||||
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
if (tabName === 'home') {
|
||||
return false
|
||||
}
|
||||
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
|
||||
(item) => item.name !== tabName
|
||||
)
|
||||
if (this.$store.state.contentTabs.length <= 0) {
|
||||
this.$store.state.sidebarMenuActiveName =
|
||||
this.$store.state.contentTabsActiveName = 'home'
|
||||
return false
|
||||
}
|
||||
// 当前选中tab被删除
|
||||
if (tabName === this.$store.state.contentTabsActiveName) {
|
||||
const tab =
|
||||
this.$store.state.contentTabs[
|
||||
this.$store.state.contentTabs.length - 1
|
||||
]
|
||||
this.$router.push({
|
||||
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
|
||||
params: { ...tab.params },
|
||||
query: { ...tab.query }
|
||||
})
|
||||
}
|
||||
},
|
||||
setUserInfo (userInfo) {
|
||||
this.dataForm.entrustUserId = userInfo.id
|
||||
this.dataForm.entrustUserName = userInfo.realName
|
||||
|
|
|
@ -3,8 +3,8 @@ const t = {}
|
|||
t.loading = '加载中...'
|
||||
|
||||
t.brand = {}
|
||||
t.brand.lg = '能力管理中心'
|
||||
t.brand.mini = '一体化综合指挥'
|
||||
t.brand.lg = '生态运营平台'
|
||||
t.brand.mini = '政务信息系统'
|
||||
|
||||
t.add = '新增'
|
||||
t.delete = '删除'
|
||||
|
@ -576,4 +576,4 @@ t.infrastructure.street = '所在街道'
|
|||
t.infrastructure.department = '所属部门'
|
||||
t.infrastructure.associatedApplication = '关联应用'
|
||||
|
||||
export default t
|
||||
export default t
|
|
@ -3,8 +3,8 @@ const t = {}
|
|||
t.loading = '加載中...'
|
||||
|
||||
t.brand = {}
|
||||
t.brand.lg = '能力管理中心'
|
||||
t.brand.mini = '一体化综合指挥'
|
||||
t.brand.lg = '生态运营平台'
|
||||
t.brand.mini = '政务信息系统'
|
||||
|
||||
t.add = '新增'
|
||||
t.delete = '刪除'
|
||||
|
@ -25,7 +25,7 @@ t.choose = '請選擇'
|
|||
t.fileName = '文件名'
|
||||
t.design = '在線設計'
|
||||
t.preview = '預覽'
|
||||
t.reset='重置'
|
||||
t.reset = '重置'
|
||||
|
||||
t.prompt = {}
|
||||
t.prompt.title = '提示'
|
||||
|
@ -544,4 +544,4 @@ t.notice.new = '有新通知'
|
|||
t.notice.disconnect = '連接斷開'
|
||||
t.notice.disconnectMessage = 'WebSocket連接已斷開,請檢查網絡'
|
||||
|
||||
export default t
|
||||
export default t
|
|
@ -4,39 +4,36 @@ import { deepClone } from '@/utils/form-generator/index'
|
|||
export default {
|
||||
data () {
|
||||
/* eslint-disable */
|
||||
return {
|
||||
// 设置属性
|
||||
mixinViewModuleOptions: {
|
||||
createdIsNeed: true, // 此页面是否在创建时,调用查询数据列表接口?
|
||||
activatedIsNeed: false, // 此页面是否在激活(进入)时,调用查询数据列表接口?
|
||||
getDataListURL: '', // 数据列表接口,API地址
|
||||
getDataListIsPage: false, // 数据列表接口,是否需要分页?
|
||||
deleteURL: '', // 删除接口,API地址
|
||||
deleteIsBatch: false, // 删除接口,是否需要批量?
|
||||
deleteIsBatchKey: 'id', // 删除接口,批量状态下由那个key进行标记操作?比如:pid,uid...
|
||||
exportURL: '', // 导出接口,API地址
|
||||
requestCallback: null // 获取列表以后执行的回调
|
||||
},
|
||||
flag: false,
|
||||
time: null,
|
||||
// 默认属性
|
||||
dataForm: {
|
||||
}, // 查询条件
|
||||
dataList: [
|
||||
{
|
||||
infoList: []
|
||||
return {
|
||||
// 设置属性
|
||||
mixinViewModuleOptions: {
|
||||
createdIsNeed: true, // 此页面是否在创建时,调用查询数据列表接口?
|
||||
activatedIsNeed: false, // 此页面是否在激活(进入)时,调用查询数据列表接口?
|
||||
getDataListURL: '', // 数据列表接口,API地址
|
||||
getDataListIsPage: false, // 数据列表接口,是否需要分页?
|
||||
deleteURL: '', // 删除接口,API地址
|
||||
deleteIsBatch: false, // 删除接口,是否需要批量?
|
||||
deleteIsBatchKey: 'id', // 删除接口,批量状态下由那个key进行标记操作?比如:pid,uid...
|
||||
exportURL: '', // 导出接口,API地址
|
||||
requestCallback: null // 获取列表以后执行的回调
|
||||
},
|
||||
flag: false,
|
||||
time: null,
|
||||
// 默认属性
|
||||
dataForm: {}, // 查询条件
|
||||
dataList: [{
|
||||
infoList: []
|
||||
}], // 数据列表
|
||||
order: '', // 排序,asc/desc
|
||||
orderField: '', // 排序,字段
|
||||
page: 1, // 当前页码
|
||||
limit: 10, // 每页数
|
||||
total: 0, // 总条数
|
||||
dataListLoading: false, // 数据列表,loading状态
|
||||
dataListSelections: [], // 数据列表,多选项
|
||||
addOrUpdateVisible: false // 新增/更新,弹窗visible状态
|
||||
}
|
||||
], // 数据列表
|
||||
order: '', // 排序,asc/desc
|
||||
orderField: '', // 排序,字段
|
||||
page: 1, // 当前页码
|
||||
limit: 10, // 每页数
|
||||
total: 0, // 总条数
|
||||
dataListLoading: false, // 数据列表,loading状态
|
||||
dataListSelections: [], // 数据列表,多选项
|
||||
addOrUpdateVisible: false // 新增/更新,弹窗visible状态
|
||||
}
|
||||
/* eslint-enable */
|
||||
/* eslint-enable */
|
||||
},
|
||||
created () {
|
||||
if (this.mixinViewModuleOptions.createdIsNeed) {
|
||||
|
@ -73,41 +70,41 @@ export default {
|
|||
this.dataList.map((item, index) => {
|
||||
if (this.dataList[index].type != null) {
|
||||
switch (item.type) {
|
||||
case 1: this.dataList[index].type = '省'; break
|
||||
case 2: this.dataList[index].type = '市'; break
|
||||
case 3: this.dataList[index].type = '区'; break
|
||||
case 4: this.dataList[index].type = '企业'; break
|
||||
case 1:
|
||||
this.dataList[index].type = '省'
|
||||
break
|
||||
case 2:
|
||||
this.dataList[index].type = '市'
|
||||
break
|
||||
case 3:
|
||||
this.dataList[index].type = '区'
|
||||
break
|
||||
case 4:
|
||||
this.dataList[index].type = '企业'
|
||||
break
|
||||
}
|
||||
}
|
||||
if (item.children != null) {
|
||||
item.children.map((item2, index2) => {
|
||||
switch (item2.type) {
|
||||
case 1: this.dataList[index].children[index2].type = '省'; break
|
||||
case 2: this.dataList[index].children[index2].type = '市'; break
|
||||
case 3: this.dataList[index].children[index2].type = '区'; break
|
||||
case 4: this.dataList[index].children[index2].type = '企业'; break
|
||||
case 1:
|
||||
this.dataList[index].children[index2].type = '省'
|
||||
break
|
||||
case 2:
|
||||
this.dataList[index].children[index2].type = '市'
|
||||
break
|
||||
case 3:
|
||||
this.dataList[index].children[index2].type = '区'
|
||||
break
|
||||
case 4:
|
||||
this.dataList[index].children[index2].type = '企业'
|
||||
break
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
// 我的代办特殊处理
|
||||
if (this.mixinViewModuleOptions.getDataListURL === '/act/task/myToDoTaskPage') {
|
||||
this.$http.get('/sys/user/info').then(userRes => {
|
||||
console.log('当前用户信息===========>', userRes.data.data.id)
|
||||
const userId = userRes.data.data.id
|
||||
this.dataList = this.dataList.filter(item => {
|
||||
// userId creator
|
||||
console.log(item.params.creator)
|
||||
if (!(item.params.creator === userId) && !(item.params.userId === userId)) {
|
||||
return item
|
||||
}
|
||||
})
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
|
||||
})
|
||||
} else {
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
|
||||
}
|
||||
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
|
||||
console.log('数据列表', this.dataList, this.mixinViewModuleOptions.getDataListURL)
|
||||
if (this.dataList[0].type === '组件服务') {
|
||||
this.dataList.map(val => {
|
||||
|
@ -117,6 +114,14 @@ export default {
|
|||
this.dataList.map(val => {
|
||||
val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域')
|
||||
})
|
||||
} else if (this.dataList[0].type === '应用系统') {
|
||||
this.dataList.forEach((item) => {
|
||||
item.belongProject = '城市信息模型'
|
||||
item.belongSystem = '信息模型技术平台'
|
||||
})
|
||||
this.dataList.map(val => {
|
||||
val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域')
|
||||
})
|
||||
}
|
||||
if (this.mixinViewModuleOptions.requestCallback) {
|
||||
this.mixinViewModuleOptions.requestCallback(res.data)
|
||||
|
@ -183,7 +188,7 @@ export default {
|
|||
options.push(val.dictLabel)
|
||||
})
|
||||
item2.options = options
|
||||
}).catch(() => { })
|
||||
}).catch(() => {})
|
||||
}
|
||||
item2.note1 = ''
|
||||
// if (item.name !== '必填信息' && item.name !== '服务接口信息') {
|
||||
|
@ -199,7 +204,7 @@ export default {
|
|||
})
|
||||
console.log(res, showList)
|
||||
this.flag = true
|
||||
}).catch(() => { })
|
||||
}).catch(() => {})
|
||||
|
||||
// 定时器
|
||||
this.time = setInterval(() => {
|
||||
|
@ -241,7 +246,7 @@ export default {
|
|||
options.push(val.dictLabel)
|
||||
})
|
||||
item2.options = options
|
||||
}).catch(() => { })
|
||||
}).catch(() => {})
|
||||
}
|
||||
item2.note1 = ''
|
||||
// if (item.name !== '必填信息' && item.name !== '服务接口信息') {
|
||||
|
@ -257,7 +262,7 @@ export default {
|
|||
})
|
||||
console.log(res, showList)
|
||||
this.flag = true
|
||||
}).catch(() => { })
|
||||
}).catch(() => {})
|
||||
|
||||
// 定时器
|
||||
this.time = setInterval(() => {
|
||||
|
@ -335,10 +340,10 @@ export default {
|
|||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http.delete(
|
||||
`${this.mixinViewModuleOptions.deleteURL}${this.mixinViewModuleOptions.deleteIsBatch ? '' : '/' + id}`,
|
||||
this.mixinViewModuleOptions.deleteIsBatch ? {
|
||||
data: id ? [id] : this.dataListSelections.map(item => item[this.mixinViewModuleOptions.deleteIsBatchKey])
|
||||
} : {}
|
||||
`${this.mixinViewModuleOptions.deleteURL}${this.mixinViewModuleOptions.deleteIsBatch ? '' : '/' + id}`,
|
||||
this.mixinViewModuleOptions.deleteIsBatch ? {
|
||||
data: id ? [id] : this.dataListSelections.map(item => item[this.mixinViewModuleOptions.deleteIsBatchKey])
|
||||
} : {}
|
||||
).then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
|
@ -351,8 +356,8 @@ export default {
|
|||
this.query()
|
||||
}
|
||||
})
|
||||
}).catch(() => { })
|
||||
}).catch(() => { })
|
||||
}).catch(() => {})
|
||||
}).catch(() => {})
|
||||
},
|
||||
|
||||
deleteHandle2 (id) {
|
||||
|
|
|
@ -104,7 +104,7 @@ router.beforeEach((to, from, next) => {
|
|||
Vue.prototype.$message.error(res.msg)
|
||||
return next({ name: 'login' })
|
||||
}
|
||||
window.SITE_CONFIG.menuList = res.data
|
||||
window.SITE_CONFIG.menuList = res.data.filter(item => item.site === 0)
|
||||
fnAddDynamicMenuRoutes(window.SITE_CONFIG.menuList)
|
||||
next({ ...to, replace: true })
|
||||
}).catch(() => {
|
||||
|
@ -187,6 +187,7 @@ function fnAddDynamicMenuRoutes (menuList = [], routes = []) {
|
|||
},
|
||||
{ path: '*', redirect: { name: '404' } }
|
||||
])
|
||||
console.log('查询路由', routes)
|
||||
window.SITE_CONFIG.dynamicMenuRoutes = routes
|
||||
window.SITE_CONFIG.dynamicMenuRoutesHasAdded = true
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
/*
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Author: hisense.guoyue
|
||||
* @Date: 2022-08-23 10:30:11
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-25 21:05:18
|
||||
* @Description: 告诉大家这是什么
|
||||
* @LastEditTime: 2022-10-18 17:44:33
|
||||
* @Description: 判断当前环境是西海岸还是青岛市局
|
||||
*/
|
||||
const returnLocationStr = () => {
|
||||
return 'qingdao1'
|
||||
return CONFIGITEM.version === 'xihaian' ? 'xihaian' : 'qingdao'
|
||||
}
|
||||
|
||||
export default returnLocationStr
|
||||
|
|
|
@ -14,7 +14,7 @@ import isPlainObject from 'lodash/isPlainObject'
|
|||
|
||||
const http = axios.create({
|
||||
baseURL: window.SITE_CONFIG.apiURL,
|
||||
// baseURL: 'http://15.2.21.238:8888/renren-admin/',
|
||||
// baseURL: 'http://15.2.21.238:8888/ucs-admin/',
|
||||
timeout: 1000 * 180,
|
||||
withCredentials: true
|
||||
})
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
$t("brand.lg")
|
||||
}}</a>
|
||||
<span>——</span>
|
||||
<span class="back-title-text">后台管理系统</span>
|
||||
<span class="back-title-text">能力知识库</span>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="aui-navbar__body">
|
||||
|
@ -41,7 +41,8 @@
|
|||
</el-menu-item> -->
|
||||
</el-menu>
|
||||
<el-menu class="aui-navbar__menu" mode="horizontal">
|
||||
<el-menu-item index="1">
|
||||
<!-- 暂时隐藏切换语言--勿删 -->
|
||||
<!-- <el-menu-item index="1">
|
||||
<el-dropdown placement="bottom" :show-timeout="0">
|
||||
<el-button size="mini">{{ $t("_lang") }}</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
|
@ -53,14 +54,14 @@
|
|||
>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="2">
|
||||
</el-menu-item> -->
|
||||
<!-- <el-menu-item index="2">
|
||||
<a href="//115.28.200.119:9091" target="_blank">
|
||||
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true">
|
||||
<use xlink:href="#icon-earth"></use>
|
||||
</svg>
|
||||
</a>
|
||||
</el-menu-item>
|
||||
</el-menu-item> -->
|
||||
<el-menu-item index="3" v-if="$hasPermission('sys:notice:all')">
|
||||
<el-badge :is-dot="messageTip">
|
||||
<a href="#" @click="myNoticeRouter()"
|
||||
|
@ -221,7 +222,7 @@ export default {
|
|||
.aui-navbar__header {
|
||||
width: 25%;
|
||||
.aui-navbar__brand {
|
||||
margin-left: 20px;
|
||||
margin-left: -30px;
|
||||
a {
|
||||
font-size: 22px;
|
||||
color: #ffffff;
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<use :xlink:href="`#${menu.icon}`"></use>
|
||||
</svg>
|
||||
<span class="first-level-text">{{ menu.name }}</span>
|
||||
<span class="tabNum" v-if="menu.total && menu.total !==0">{{menu.total}}</span>
|
||||
</template>
|
||||
<sub-menu
|
||||
v-for="item in menu.children"
|
||||
|
@ -32,84 +33,88 @@
|
|||
<use :xlink:href="`#${menu.icon}`"></use>
|
||||
</svg>
|
||||
<span>{{ menu.name }}</span>
|
||||
<span class="tabNum" v-if="menu.total && menu.total !==0 ">{{menu.total}}</span>
|
||||
</a>
|
||||
</el-menu-item>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SubMenu from "./main-sidebar-sub-menu";
|
||||
import SubMenu from './main-sidebar-sub-menu'
|
||||
export default {
|
||||
name: "sub-menu",
|
||||
data() {
|
||||
name: 'sub-menu',
|
||||
data () {
|
||||
return {
|
||||
browserTabOpenList: ["1156748733921165314"],
|
||||
};
|
||||
browserTabOpenList: ['1156748733921165314']
|
||||
}
|
||||
},
|
||||
props: {
|
||||
menu: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
required: true
|
||||
}
|
||||
},
|
||||
components: {
|
||||
SubMenu,
|
||||
SubMenu
|
||||
},
|
||||
created() {
|
||||
created () {
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.li) {
|
||||
let $li = this.$refs.li.$el;
|
||||
let $a = $li.firstElementChild;
|
||||
const $li = this.$refs.li.$el
|
||||
const $a = $li.firstElementChild
|
||||
if ($a) {
|
||||
let pl = "0",
|
||||
pr = "0";
|
||||
let pl = '0'
|
||||
let pr = '0'
|
||||
if ($li.currentStyle) {
|
||||
pl = $li.currentStyle["paddingLeft"];
|
||||
pr = $li.currentStyle["paddingRight"];
|
||||
pl = $li.currentStyle.paddingLeft
|
||||
pr = $li.currentStyle.paddingRight
|
||||
} else {
|
||||
pl = window.document.defaultView.getComputedStyle($li, null)[
|
||||
"paddingLeft"
|
||||
];
|
||||
pr = window.document.defaultView.getComputedStyle($li, null)[
|
||||
"paddingRight"
|
||||
];
|
||||
pl = window.document.defaultView.getComputedStyle($li, null).paddingLeft
|
||||
pr = window.document.defaultView.getComputedStyle($li, null).paddingRight
|
||||
}
|
||||
$li.setAttribute("style", `padding-left: 0; padding-right: 0;`);
|
||||
$li.setAttribute('style', 'padding-left: 0; padding-right: 0;')
|
||||
$a.setAttribute(
|
||||
"style",
|
||||
'style',
|
||||
`padding-left: ${pl}; padding-right: ${pr};`
|
||||
);
|
||||
)
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 是否通过浏览器Tab打开菜单
|
||||
isBrowserTabOpen(menuId) {
|
||||
isBrowserTabOpen (menuId) {
|
||||
return (
|
||||
this.browserTabOpenList.filter((item) => item === menuId).length >= 1
|
||||
);
|
||||
)
|
||||
},
|
||||
// 获取浏览器Tab打开菜单URL
|
||||
getBrowserTabOpenURL(menuId) {
|
||||
var route = window.SITE_CONFIG["dynamicMenuRoutes"].filter(
|
||||
getBrowserTabOpenURL (menuId) {
|
||||
var route = window.SITE_CONFIG.dynamicMenuRoutes.filter(
|
||||
(item) => item.meta.menuId === menuId
|
||||
)[0];
|
||||
return route ? route.meta.iframeURL : "";
|
||||
)[0]
|
||||
return route ? route.meta.iframeURL : ''
|
||||
},
|
||||
// 通过menuId与动态(菜单)路由进行匹配跳转至指定路由
|
||||
gotoRouteHandle(menuId) {
|
||||
var route = window.SITE_CONFIG["dynamicMenuRoutes"].filter(
|
||||
gotoRouteHandle (menuId) {
|
||||
var route = window.SITE_CONFIG.dynamicMenuRoutes.filter(
|
||||
(item) => item.meta.menuId === menuId
|
||||
)[0];
|
||||
)[0]
|
||||
if (route) {
|
||||
this.$router.push({ name: route.name });
|
||||
this.$router.push({ name: route.name })
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.tabNum{
|
||||
color: #ffffff;
|
||||
margin-left: 5px;
|
||||
background: red;
|
||||
padding:1px 4px;
|
||||
border-radius:5px;
|
||||
}
|
||||
.aui-sidebar__menu {
|
||||
.first-level-text {
|
||||
font-size: 16px;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: kongjun qdkongjun@gmail.com
|
||||
* @Date: 2022-06-20 09:29:59
|
||||
* @LastEditors: kongjun qdkongjun@gmail.com
|
||||
* @LastEditTime: 2022-06-22 10:04:56
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-11-04 15:21:13
|
||||
* @FilePath: \back\src\views\main-sidebar.vue
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
-->
|
||||
|
@ -18,29 +18,92 @@
|
|||
:collapseTransition="false"
|
||||
class="aui-sidebar__menu"
|
||||
>
|
||||
<div >
|
||||
<sub-menu
|
||||
v-for="menu in $store.state.sidebarMenuList"
|
||||
v-for="menu in $store.state.sidebarMenuList"
|
||||
:key="menu.id"
|
||||
:menu="menu"
|
||||
/>
|
||||
>
|
||||
<span>sdddd</span>
|
||||
|
||||
</sub-menu>
|
||||
</div>
|
||||
</el-menu>
|
||||
</div>
|
||||
</aside>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SubMenu from "./main-sidebar-sub-menu";
|
||||
import http from '@/utils/request'
|
||||
import SubMenu from './main-sidebar-sub-menu'
|
||||
import returnLocationStr from '@/utils/location'
|
||||
import bus from '@/views/bus.js'
|
||||
export default {
|
||||
data() {
|
||||
return {};
|
||||
data () {
|
||||
return {
|
||||
numObject: {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
SubMenu,
|
||||
SubMenu
|
||||
},
|
||||
created() {
|
||||
this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
|
||||
created () {
|
||||
this.getNum()
|
||||
// this.$store.state.sidebarMenuList = window.SITE_CONFIG.menuList
|
||||
// 更新我的待办得数量
|
||||
bus.$off('updateTaskNum')
|
||||
bus.$on('updateTaskNum', () => {
|
||||
this.getNum()
|
||||
})
|
||||
},
|
||||
};
|
||||
methods: {
|
||||
getNum () {
|
||||
http.get('/act/task/myToDoTaskNum').then(({ data: res }) => {
|
||||
this.numObject = res.data
|
||||
const menuList = window.SITE_CONFIG.menuList
|
||||
console.log('menuList====>', menuList)
|
||||
console.log('this.numObject====>', this.numObject)
|
||||
for (var i = 0; i < menuList.length; i++) {
|
||||
const menu = menuList[i]
|
||||
if (menu.id == '1541261628388888578') { // 我的待办
|
||||
let daibanNum = 0
|
||||
for (let j = 0; j < menu.children.length; j++) {
|
||||
const children = menu.children[j]
|
||||
if (children.id == '1541261780432408577') { // 能力申请 v2
|
||||
// 西海岸 v2 市局v3
|
||||
children.total = returnLocationStr() == 'qingdao' ? Number(this.numObject.abilityprocess_v3) : Number(this.numObject.abilityprocess_v2)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
} if (children.id == '1559376285703081986') { // 会议室审核
|
||||
children.total = Number(this.numObject.meetingroom_book)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
} if (children.id == '1545292602084827138') { // 能力资源上架
|
||||
children.total = Number(this.numObject.resourcemountapply)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
} if (children.id == '1545312045695377410') { // 能力需求申请
|
||||
children.total = Number(this.numObject.abilitydemandapply)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
} if (children.id == '1545313018614521857') { // 能力需求下架
|
||||
children.total = Number(this.numObject.resourcundercarriageapply)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
} if (children.id == '1545313754106699777') { // 评论审核
|
||||
children.total = Number(this.numObject.comment_review)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
} if (children.id == '1554294862931562498') { // 会议室 暂无
|
||||
children.total = 0
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
}
|
||||
}
|
||||
menu.total = daibanNum
|
||||
}
|
||||
if (menu.id == '1588427411604197378') {
|
||||
menu.total = Number(this.numObject.resourcemountapply)
|
||||
}
|
||||
}
|
||||
this.$store.state.sidebarMenuList = menuList
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.aui-sidebar {
|
||||
|
@ -64,5 +127,12 @@ export default {
|
|||
width: 266px;
|
||||
}
|
||||
}
|
||||
.tabNum{
|
||||
color: #ffffff;
|
||||
margin-left: 5px;
|
||||
background: red;
|
||||
padding:1px 4px;
|
||||
border-radius:5px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
-->
|
||||
<template>
|
||||
<div class="aui-theme-tools" :class="{ 'aui-theme-tools--open': isOpen }">
|
||||
<div class="aui-theme-tools__toggle" @click="isOpen = !isOpen">
|
||||
<!-- <div class="aui-theme-tools__toggle" @click="isOpen = !isOpen">
|
||||
<svg class="icon-svg" aria-hidden="true">
|
||||
<use xlink:href="#icon-setting"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="aui-theme-tools__content">
|
||||
<div class="aui-theme-tools__item">
|
||||
<h3>Navbar</h3>
|
||||
|
|
|
@ -55,10 +55,19 @@
|
|||
</div>
|
||||
<InfrastructureModal v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="基础设施"
|
||||
:modalType="modalType" ref="jcssDom"></InfrastructureModal>
|
||||
<el-form-item label="基础设施总数" >
|
||||
<el-input v-model="dataForm.infrastructureCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||
</el-form-item>
|
||||
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="数据资源" ref="sjzyDom"
|
||||
:getDataParams="getListParams['数据资源']"></combine-ability>
|
||||
<el-form-item label="数据资源总数" >
|
||||
<el-input v-model="dataForm.dataSourceCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入数据资源总数"></el-input>
|
||||
</el-form-item>
|
||||
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="组件服务" ref="zjfwDom"
|
||||
:getDataParams="getListParams['组件服务']"></combine-ability>
|
||||
<el-form-item label="组件服务总数" >
|
||||
<el-input v-model="dataForm.componentCount" placeholder="请输入组件服务总数"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
|
@ -96,6 +105,9 @@ export default {
|
|||
return {
|
||||
fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload',
|
||||
dataForm: {
|
||||
"infrastructureCount":null,
|
||||
"dataSourceCount":null,
|
||||
"componentCount":null,
|
||||
"name": "",
|
||||
"applicationArea": "",
|
||||
"description": "",
|
||||
|
|
|
@ -27,10 +27,14 @@
|
|||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="dataForm.name" placeholder="请输入名称" style="width:90%"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="描述" prop="description">
|
||||
<el-input type="textarea" :rows="3" v-model="dataForm.description" placeholder="请输入描述" style="width:90%">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="场景入口">
|
||||
<el-input v-model="dataForm.sceneUrl" placeholder="请输入场景入口" style="width:90%"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="图片">
|
||||
<el-upload ref="editUpload" class="upload-demo" :action="fileUploadUrl"
|
||||
|
@ -63,10 +67,19 @@
|
|||
</div>
|
||||
<InfrastructureModal v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="基础设施"
|
||||
:modalType="modalType" ref="jcssDom"></InfrastructureModal>
|
||||
<el-form-item label="基础设施总数" >
|
||||
<el-input v-model="dataForm.infrastructureCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||
</el-form-item>
|
||||
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="数据资源" ref="sjzyDom"
|
||||
:getDataParams="getListParams['数据资源']"></combine-ability>
|
||||
<el-form-item label="数据资源总数" >
|
||||
<el-input v-model="dataForm.dataSourceCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||
</el-form-item>
|
||||
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="组件服务" ref="zjfwDom"
|
||||
:getDataParams="getListParams['组件服务']"></combine-ability>
|
||||
<el-form-item label="组件服务总数" >
|
||||
<el-input v-model="dataForm.componentCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<!-- 更多能力 -->
|
||||
|
@ -103,7 +116,6 @@ import CommonQuestion from '../components/common-question.vue'
|
|||
import InfrastructureModal from './components/infrastructure-modal.vue'
|
||||
import Cookies from 'js-cookie'
|
||||
import upload from '@/views/modules/components/upload'
|
||||
|
||||
const btnArray = ['基本信息', '场景痛点', '解决方案', '组合能力', '更多能力', '使用步骤']
|
||||
// 数据资源\组件服务
|
||||
export const getJson = (type) => {
|
||||
|
@ -155,7 +167,19 @@ export const getFuseResourceList = (abilityListObj) => {
|
|||
for (const key in abilityListObj) {
|
||||
if (Object.hasOwnProperty.call(abilityListObj, key)) {
|
||||
const itemArray = abilityListObj[key]
|
||||
itemArray.map((v, i) => {
|
||||
if(key=='数据资源'){
|
||||
itemArray.map((v, i) => {
|
||||
const index = (i + 1) + length
|
||||
arr.push({
|
||||
resourceId: v.id,
|
||||
type: key,
|
||||
sequence: index,
|
||||
resourceName:v.resourceName|| v.name ,
|
||||
deptName:v.deptName,
|
||||
})
|
||||
})
|
||||
}else{
|
||||
itemArray.map((v, i) => {
|
||||
const index = (i + 1) + length
|
||||
arr.push({
|
||||
resourceId: v,
|
||||
|
@ -163,6 +187,8 @@ export const getFuseResourceList = (abilityListObj) => {
|
|||
sequence: index
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
length = itemArray.length
|
||||
}
|
||||
}
|
||||
|
@ -191,9 +217,13 @@ export default {
|
|||
painKeyTextObj: getDescJson('痛点'),
|
||||
solutionKeyTextObj: getDescJson('方案'),
|
||||
dataForm: {
|
||||
infrastructureCount:null,
|
||||
dataSourceCount:null,
|
||||
componentCount:null,
|
||||
name: '',
|
||||
applicationArea: '',
|
||||
description: '',
|
||||
sceneUrl: '',
|
||||
fuseAttrList: [
|
||||
{
|
||||
attrType: '使用步骤',
|
||||
|
@ -299,8 +329,10 @@ export default {
|
|||
},
|
||||
// 更新表单
|
||||
updateDataForm (data) {
|
||||
//console.log('datadatadata',data);
|
||||
if (Object.keys(this.getListParams).includes(data.title)) {
|
||||
this.abilityListObj[data.title] = data.list
|
||||
console.log(' this.abilityListObj[data.title]3333', this.abilityListObj[data.title]);
|
||||
} else {
|
||||
// 更多能力、使用步骤
|
||||
this.operateFuseAttrList(data.title, data)
|
||||
|
@ -330,6 +362,7 @@ export default {
|
|||
// 表单提交
|
||||
dataFormSubmitHandle: debounce(
|
||||
function () {
|
||||
console.log('this.dataForm------表单提交------>111111', this.dataForm)
|
||||
this.$refs.dataForm.validate((valid) => {
|
||||
if (!valid) {
|
||||
this.$message.error('请检查表单是否填写完整')
|
||||
|
@ -340,10 +373,10 @@ export default {
|
|||
update: 'put'
|
||||
}
|
||||
this.dataForm.fuseResourceList = this.getFuseResourceList()
|
||||
if (this.imageUrl == '') {
|
||||
this.$message.error('请上传图片!')
|
||||
return
|
||||
}
|
||||
// if (this.imageUrl == '') {
|
||||
// this.$message.error('请上传图片!')
|
||||
// return
|
||||
// }
|
||||
this.dataForm.fuseAttrList.find(v => v.attrType == '服务图片').attrValue = this.imageUrl || ''
|
||||
const _obj = Object.assign({}, this.dataForm, {
|
||||
type: '赋能场景'
|
||||
|
@ -387,11 +420,15 @@ export default {
|
|||
|
||||
// 组合能力--特殊处理
|
||||
Object.keys(this.getListParams).map(k => {
|
||||
const arr = data.fuseResourceList.filter(v => v.type == k)
|
||||
const arr2 = []
|
||||
let arr = data.fuseResourceList.filter(v => v.type == k)
|
||||
let arr2 = [];
|
||||
if(k === "数据资源"){
|
||||
arr2 = JSON.parse(JSON.stringify(arr));
|
||||
}else{
|
||||
arr.map(v => {
|
||||
arr2.push(v.resourceId)
|
||||
})
|
||||
}
|
||||
this.abilityListObj[k] = arr2
|
||||
})
|
||||
})
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
style="width: 100%" :height="qp ? '810px' : '650px'">
|
||||
<el-table-column prop="name" label="名称" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="description" label="描述" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="sceneUrl" label="场景入口" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="240" right="0">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="$hasPermission('ability:bsabilityai:update')" type="text" size="small"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div>
|
||||
<el-dialog
|
||||
:visible.sync="visible"
|
||||
title="关联应用"
|
||||
title="关联标签"
|
||||
@close="close"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
|
@ -13,7 +13,7 @@
|
|||
v-model="transferValue"
|
||||
filterable
|
||||
:filter-method="filterMethod"
|
||||
filter-placeholder="请输入应用名称"
|
||||
filter-placeholder="请输入标签名称"
|
||||
:titles="nameArray"
|
||||
:props="{
|
||||
key: 'id',
|
||||
|
@ -24,7 +24,7 @@
|
|||
</div>
|
||||
<template slot="footer">
|
||||
<el-button @click="visible = false">{{ $t("cancel") }}</el-button>
|
||||
<el-button type="primary" @click="confirmSubmitHandle()">{{
|
||||
<el-button type="primary" @click="visible = false">{{
|
||||
$t("confirm")
|
||||
}}</el-button>
|
||||
</template>
|
||||
|
@ -42,6 +42,140 @@ export default {
|
|||
visible: true,
|
||||
transferData: [], //穿梭框所有数据
|
||||
transferValue: [], //已关联的数据id
|
||||
linkedData:[
|
||||
{
|
||||
id: "1534805370156834818",
|
||||
dictTypeId: "1534805229031088130",
|
||||
name: "视频类",
|
||||
dictValue: "1",
|
||||
remark: "",
|
||||
sort: 0,
|
||||
createDate: "2022-06-09 15:51:30",
|
||||
updateDate: "2022-07-01 14:20:04",
|
||||
status: 1
|
||||
},
|
||||
{
|
||||
id: "1536670196898336769",
|
||||
dictTypeId: "1534805229031088130",
|
||||
name: "图片类",
|
||||
dictValue: "2",
|
||||
remark: "",
|
||||
sort: 1,
|
||||
createDate: "2022-06-14 19:21:40",
|
||||
updateDate: "2022-07-01 14:20:27",
|
||||
status: 1
|
||||
},
|
||||
{
|
||||
id: "1534805309289095170",
|
||||
dictTypeId: "1534805229031088130",
|
||||
name: "文本类",
|
||||
dictValue: "3",
|
||||
remark: "",
|
||||
sort: 2,
|
||||
createDate: "2022-06-09 15:51:16",
|
||||
updateDate: "2022-07-01 14:19:52",
|
||||
status: 1
|
||||
},
|
||||
{
|
||||
id: "1542753737822306305",
|
||||
dictTypeId: "1534805229031088130",
|
||||
name: "语音类",
|
||||
dictValue: "4",
|
||||
remark: "",
|
||||
sort: 3,
|
||||
createDate: "2022-07-01 14:15:29",
|
||||
updateDate: "2022-07-01 14:15:29",
|
||||
status: 1
|
||||
},
|
||||
{
|
||||
id: "1536670305505644545",
|
||||
dictTypeId: "1534805229031088130",
|
||||
name: "其他",
|
||||
dictValue: "5",
|
||||
remark: "",
|
||||
sort: 4,
|
||||
createDate: "2022-06-14 19:22:05",
|
||||
updateDate: "2022-07-01 14:15:11",
|
||||
status: 1
|
||||
}
|
||||
],//已关联标签
|
||||
labelData:[{
|
||||
id: "1513714443263451137",
|
||||
dictTypeId: "1513714403530809346",
|
||||
name: "接口",
|
||||
dictValue: "1",
|
||||
remark: "",
|
||||
sort: 1,
|
||||
createDate: "2022-04-12 11:03:41",
|
||||
updateDate: "2022-04-12 11:03:41",
|
||||
status: 1
|
||||
},
|
||||
{
|
||||
id: "1513714474334855170",
|
||||
dictTypeId: "1513714403530809346",
|
||||
name: "SDK",
|
||||
dictValue: "2",
|
||||
remark: "",
|
||||
sort: 2,
|
||||
createDate: "2022-04-12 11:03:49",
|
||||
updateDate: "2022-04-12 11:03:49",
|
||||
status: 1
|
||||
},
|
||||
{
|
||||
id: "1513714504261214210",
|
||||
dictTypeId: "1513714403530809346",
|
||||
name: "Web页面",
|
||||
dictValue: "3",
|
||||
remark: "",
|
||||
sort: 3,
|
||||
createDate: "2022-04-12 11:03:56",
|
||||
updateDate: "2022-04-12 11:03:56",
|
||||
status: 1
|
||||
},
|
||||
{
|
||||
id: "1513714541603102722",
|
||||
dictTypeId: "1513714403530809346",
|
||||
name: "其他",
|
||||
dictValue: "99",
|
||||
remark: "",
|
||||
sort: 99,
|
||||
createDate: "2022-04-12 11:04:05",
|
||||
updateDate: "2022-04-12 11:04:05",
|
||||
status: 1
|
||||
}, {
|
||||
id: "1539453444552638466",
|
||||
dictTypeId: "1539453183746621441",
|
||||
name: "视频资源",
|
||||
dictValue: "1",
|
||||
remark: "",
|
||||
sort: 0,
|
||||
createDate: "2022-06-22 11:41:18",
|
||||
updateDate: "2022-06-22 11:41:18",
|
||||
status: 1
|
||||
},
|
||||
{
|
||||
id: "1539453481407987714",
|
||||
dictTypeId: "1539453183746621441",
|
||||
name: "感知资源",
|
||||
dictValue: "2",
|
||||
remark: "",
|
||||
sort: 0,
|
||||
createDate: "2022-06-22 11:41:26",
|
||||
updateDate: "2022-06-22 11:41:26",
|
||||
status: 1
|
||||
},
|
||||
{
|
||||
id: "1539453516610781185",
|
||||
dictTypeId: "1539453183746621441",
|
||||
name: "云资源",
|
||||
dictValue: "3",
|
||||
remark: "",
|
||||
sort: 0,
|
||||
createDate: "2022-06-22 11:41:35",
|
||||
updateDate: "2022-06-22 11:41:35",
|
||||
status: 1
|
||||
}
|
||||
]
|
||||
};
|
||||
},
|
||||
props: {
|
||||
|
@ -51,7 +185,7 @@ export default {
|
|||
},
|
||||
nameArray: {
|
||||
type: Array,
|
||||
default: ["未关联应用名称", "已关联应用名称"],
|
||||
default: ["未关联标签名称", "已关联标签名称"],
|
||||
},
|
||||
},
|
||||
computed: {},
|
||||
|
@ -86,16 +220,15 @@ export default {
|
|||
},
|
||||
},
|
||||
mounted() {
|
||||
if (this.relateInfo && this.relateInfo.responseData) {
|
||||
const alreadLinkedArr = this.relateInfo.responseData.alreadLinked || [];
|
||||
this.transferData = alreadLinkedArr.concat(
|
||||
this.relateInfo.responseData.notLinked || []
|
||||
);
|
||||
alreadLinkedArr.length &&
|
||||
alreadLinkedArr.forEach((item) => {
|
||||
this.transferValue.push(item.id);
|
||||
});
|
||||
}
|
||||
if (this.relateInfo) {
|
||||
const alreadLinkedArr = this.linkedData;
|
||||
this.transferData = alreadLinkedArr.concat(
|
||||
this.labelData
|
||||
);
|
||||
alreadLinkedArr.length &&
|
||||
alreadLinkedArr.forEach((item) => {
|
||||
this.transferValue.push(item.id);
|
||||
}); }
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<el-form-item>
|
||||
<el-input
|
||||
v-model="dataForm.name"
|
||||
placeholder="名称"
|
||||
placeholder="图层名称"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
@ -14,12 +14,12 @@
|
|||
$t('query')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!--<el-form-item>
|
||||
<el-button type="info" @click="exportHandle()">{{
|
||||
$t('export')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:save')"
|
||||
type="primary"
|
||||
|
@ -29,7 +29,7 @@
|
|||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="showPutOnTheShelf()"
|
||||
>上架</el-button
|
||||
>盘点入库</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
@ -48,9 +48,8 @@
|
|||
v-loading="dataListLoading"
|
||||
:data="dataList"
|
||||
border
|
||||
@selection-change="dataListSelectionChangeHandle"
|
||||
style="width: 100%"
|
||||
height="650px"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
|
@ -58,123 +57,95 @@
|
|||
align="center"
|
||||
width="50"
|
||||
></el-table-column>
|
||||
<af-table-column
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="name"
|
||||
label="组件名称"
|
||||
label="图层名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<af-table-column
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="description"
|
||||
label="组件描述"
|
||||
label="能力描述"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<af-table-column
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
prop="belongProject"
|
||||
label="归属项目"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
prop="belongSystem"
|
||||
label="归属系统"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="deptName"
|
||||
label="归属部门"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<af-table-column
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="deptContacts"
|
||||
label="部门联系人"
|
||||
label="注册者"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<af-table-column
|
||||
></el-table-column>
|
||||
<!-- <el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="deptPhone"
|
||||
label="部门联系人电话"
|
||||
label="联系人电话"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<af-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="shareCondition"
|
||||
label="共享条件"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<template v-if="dataList[0] && dataList[0].infoList2">
|
||||
<af-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
v-for="(item, index) in dataList[0].infoList2"
|
||||
:key="index"
|
||||
:label="item.attrType"
|
||||
header-align="center"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ findValue(scope.row.infoList2, item.attrType) }}
|
||||
</template>
|
||||
</af-table-column>
|
||||
</template>
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('handle')"
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="updateDate"
|
||||
label="上架时间"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column> -->
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-if="scope.row.infoList.filter(val=>val.attrType=='组件类型')[0].attrValue == '智能算法'"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="toppingCapacity(scope.row)"
|
||||
>置顶</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:update')"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="UpdateData(scope.row)"
|
||||
>{{ $t('update') }}</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:delete')"
|
||||
<!-- <el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="deleteHandle2(scope.row.id)"
|
||||
>{{ $t('delete') }}</el-button
|
||||
>
|
||||
> -->
|
||||
<el-button type="text" size="small" @click="showDetail(scope.row)"
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button type="text" size="small" @click="showDocument(scope.row)"
|
||||
>技术文档</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="showRelateApplication(scope.row)"
|
||||
>关联应用</el-button
|
||||
<el-button type="text" size="small"
|
||||
>标签化</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="Number(total)"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle"
|
||||
>
|
||||
</el-pagination>
|
||||
<el-pagination @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper"
|
||||
:total="total" :page-size="pageSize" :current-page="currentPage">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update
|
||||
:disabled="disabled"
|
||||
|
@ -199,9 +170,9 @@
|
|||
width="30%"
|
||||
>
|
||||
<el-radio v-model="radio" label="智能算法">智能算法</el-radio>
|
||||
<el-radio v-model="radio" label="图层服务">图层服务</el-radio>
|
||||
<el-radio v-model="radio" label="开发组件">开发组件</el-radio>
|
||||
<el-radio v-model="radio" label="业务组件">业务组件</el-radio>
|
||||
<el-radio v-model="radio" label="图层服务">GIS图层</el-radio>
|
||||
<el-radio v-model="radio" label="开发组件">通用能力组件</el-radio>
|
||||
<el-radio v-model="radio" label="业务组件">业务能力组件</el-radio>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="clear">取 消</el-button>
|
||||
<el-button type="primary" @click="showPutOnTheShelfVue"
|
||||
|
@ -210,7 +181,7 @@
|
|||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
:title="submitFrom.id ? '修改' + radio : '上架' + radio"
|
||||
title="盘点入库"
|
||||
:visible.sync="showPutOnTheShelfFlag2"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
|
@ -237,7 +208,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
//import mixinViewModule from '@/mixins/view-module'
|
||||
import AddOrUpdate from './bsabilityai-add-or-update'
|
||||
import dictionaries from '@/utils/dictionaries'
|
||||
import qs from 'qs'
|
||||
|
@ -245,7 +216,7 @@ import { pinyin } from 'pinyin-pro'
|
|||
import RelateApplication from './bsabilityai-relate-application.vue'
|
||||
import putOnTheShelf from '@/views/modules/putOnTheShelf'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
// mixins: [mixinViewModule], @selection-change="dataListSelectionChangeHandle"
|
||||
data () {
|
||||
return {
|
||||
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '算法名称', '算法描述', '图层名称', '图层描述', '组件名称', '组件描述', '组件地址', '服务地址', '服务接口', '接口请求方式', '算法类别'],
|
||||
|
@ -262,8 +233,8 @@ export default {
|
|||
infoList: [
|
||||
{
|
||||
attrType: '组件类型',
|
||||
attrValue: '',
|
||||
delFlag: 0
|
||||
attrValue: '图层服务',
|
||||
delFlag: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -296,7 +267,14 @@ export default {
|
|||
typeInput: '组件服务',
|
||||
uuidOne: '',
|
||||
uuidTwo: '',
|
||||
uuidSnum: ''
|
||||
uuidSnum: '',
|
||||
addOrUpdateVisible:false,
|
||||
dataList:[],
|
||||
dataListLoading:false,
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
total: null,
|
||||
dataListSelections:[]
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
|
@ -310,10 +288,61 @@ export default {
|
|||
this.dataForm.type = '组件服务'
|
||||
},
|
||||
mounted () {
|
||||
// window.addEventListener('resize', this.a)
|
||||
// this.fullScreen()
|
||||
this.getDataList();
|
||||
},
|
||||
methods: {
|
||||
//获取图层服务列表数据
|
||||
getDataList(){
|
||||
//console.log('开始获取列表数据');
|
||||
let params = {
|
||||
deptIds: [],
|
||||
districtId: '',
|
||||
infoList: [{ attrType: '组件类型', attrValue: '图层服务' }],
|
||||
name: '',
|
||||
orderField: 'total',
|
||||
orderType: 'DESC',
|
||||
pageNum: this.currentPage,
|
||||
pageSize: 10,
|
||||
type: 'GIS图层',
|
||||
};
|
||||
this.$http.post(`/resource/pageWithAttrs`, params).then((res) => {
|
||||
this.dataList = res.data.data.records;
|
||||
if(this.dataList.length>0){
|
||||
this.dataList.forEach((item)=>{
|
||||
item.belongProject = "城市信息模型";
|
||||
item.belongSystem = "信息模型技术平台";
|
||||
});
|
||||
}
|
||||
this.total = parseInt(res.data.data.total);
|
||||
})
|
||||
},
|
||||
handleCurrentChange (val) {
|
||||
console.log('val------------>', val)
|
||||
this.currentPage = val;
|
||||
this.getDataList();
|
||||
},
|
||||
//删除,可以批量删除
|
||||
deleteHandle2 (id) {
|
||||
console.log('删除========================》', id, this.dataListSelections)
|
||||
const ids = []
|
||||
if (id) {
|
||||
ids.push(id)
|
||||
} else {
|
||||
if (this.dataListSelections.length > 0) {
|
||||
this.dataListSelections.forEach(item => {
|
||||
ids.push(item.id)
|
||||
})
|
||||
}
|
||||
}
|
||||
this.$http.post('/resource/delete', { ids: ids }).then(res => {
|
||||
console.log('删除成功', res)
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
//多选多选
|
||||
handleSelectionChange(val){
|
||||
this.dataListSelections = val;
|
||||
},
|
||||
// 置顶
|
||||
toppingCapacity (item) {
|
||||
this.$http.put('/resource/pin_top/' + item.id).then(res => {
|
||||
|
@ -332,57 +361,7 @@ export default {
|
|||
})
|
||||
},
|
||||
reset () {
|
||||
this.$http
|
||||
.get(
|
||||
this.mixinViewModuleOptions.getDataListURL +
|
||||
'?' +
|
||||
qs.stringify({
|
||||
// order: this.order,
|
||||
// orderField: this.orderField,
|
||||
// type: '组件服务',
|
||||
page: 1,
|
||||
limit: 10,
|
||||
creator: '',
|
||||
selectType: 0,
|
||||
delFlag: 0,
|
||||
type: '组件服务',
|
||||
name: ''
|
||||
})
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
this.dataForm.name = ''
|
||||
if (res.code !== 0) {
|
||||
this.dataList = []
|
||||
this.total = 0
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.list
|
||||
: res.data
|
||||
this.dataList.map((item, index) => {
|
||||
const dataListSinforList = []
|
||||
item.infoList.map((itemson, indexson) => {
|
||||
if (
|
||||
itemson.attrType === '应用领域' ||
|
||||
itemson.attrType === '组件类型'
|
||||
) {
|
||||
dataListSinforList.push(itemson)
|
||||
}
|
||||
})
|
||||
this.dataList[index].infoList2 = dataListSinforList
|
||||
})
|
||||
console.log('this.dataList', this.dataList)
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.total
|
||||
: 0
|
||||
if (this.mixinViewModuleOptions.requestCallback) {
|
||||
this.mixinViewModuleOptions.requestCallback(res.data)
|
||||
}
|
||||
this.dataListLoading = false
|
||||
})
|
||||
.catch(() => {
|
||||
this.dataListLoading = false
|
||||
})
|
||||
this.getDataList();
|
||||
},
|
||||
findValue (list, type) {
|
||||
const found = list.find((item) => item.attrType === type)
|
||||
|
@ -505,7 +484,7 @@ export default {
|
|||
creator: '',
|
||||
selectType: 0,
|
||||
delFlag: 0,
|
||||
name: names
|
||||
name: names,
|
||||
})
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
|
@ -514,7 +493,7 @@ export default {
|
|||
this.total = 0
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
if (res.data.list.length !== 0) {
|
||||
if (res.data.list.length >= 0) {
|
||||
this.dataList = res.data.list
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.total
|
||||
|
@ -596,7 +575,7 @@ export default {
|
|||
infoList: [
|
||||
{
|
||||
attrType: '组件类型',
|
||||
attrValue: '',
|
||||
attrValue: '图层服务',
|
||||
delFlag: 0
|
||||
}
|
||||
]
|
||||
|
@ -604,6 +583,7 @@ export default {
|
|||
this.reset()
|
||||
},
|
||||
showPutOnTheShelf () {
|
||||
// :title="submitFrom.id ? '修改' + radio : '上架' + radio"
|
||||
this.showPutOnTheShelfFlag = true
|
||||
this.$http.get('/category/getCategoryTree').then((res) => {
|
||||
this.insertList = res.data.data.filter(
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<el-button
|
||||
type="primary"
|
||||
@click="showPutOnTheShelf()"
|
||||
>上架</el-button
|
||||
>盘点入库</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
@ -51,7 +51,6 @@
|
|||
:data="dataList"
|
||||
border
|
||||
@selection-change="dataListSelectionChangeHandle"
|
||||
style="width: 100%"
|
||||
height="650px"
|
||||
>
|
||||
<el-table-column
|
||||
|
@ -62,56 +61,58 @@
|
|||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="name"
|
||||
label="应用名称"
|
||||
label="系统名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<af-table-column
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="description"
|
||||
label="应用描述"
|
||||
label="能力描述"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<af-table-column
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
prop="belongProject"
|
||||
label="归属项目"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
prop="belongSystem"
|
||||
label="归属系统"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="deptName"
|
||||
label="归属部门"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<af-table-column
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="deptContacts"
|
||||
label="部门联系人"
|
||||
label="注册者"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<af-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="deptPhone"
|
||||
label="部门联系人电话"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
<af-table-column
|
||||
></el-table-column>
|
||||
<!-- <el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="shareCondition"
|
||||
label="共享条件"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></af-table-column>
|
||||
></el-table-column>
|
||||
<template v-if="dataList[0] && dataList[0].infoList2">
|
||||
<el-table-column
|
||||
v-for="(item, index) in dataList[0].infoList2"
|
||||
:key="index"
|
||||
:key="Math.random()"
|
||||
:label="item.attrType"
|
||||
header-align="center"
|
||||
align="center"
|
||||
|
@ -122,58 +123,28 @@
|
|||
{{ findValue(scope.row.infoList2, item.attrType) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</template>-->
|
||||
<el-table-column
|
||||
:label="$t('handle')"
|
||||
label="操作"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="300"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:update')"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="UpdateData(scope.row)"
|
||||
>{{ $t("update") }}</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:delete')"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="deleteHandle2(scope.row.id)"
|
||||
>{{ $t("delete") }}</el-button
|
||||
>
|
||||
<el-button type="text" size="small" @click="showDetail(scope.row)"
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button type="text" size="small" @click="showDocument(scope.row)"
|
||||
>技术文档</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="applyAndAssembly(scope.row)"
|
||||
>应用与组件</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="applyAndDataResource(scope.row)"
|
||||
>应用与数据资源</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="applyAndProject(scope.row)"
|
||||
>应用与项目</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="applyAndInfrastructure(scope.row)"
|
||||
>应用与基础设施</el-button
|
||||
>标签化</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -204,7 +175,7 @@
|
|||
></relate-application>
|
||||
</div>
|
||||
<el-dialog
|
||||
:title="submitFrom.id?'修改'+radio:'上架'+radio"
|
||||
title="盘点入库"
|
||||
:visible.sync="showPutOnTheShelfFlag2"
|
||||
:close-on-click-modal='false'
|
||||
:close-on-press-escape='false'
|
||||
|
@ -251,18 +222,18 @@ export default {
|
|||
creator: '',
|
||||
selectType: 0,
|
||||
delFlag: 0,
|
||||
type: '应用资源'
|
||||
type: '应用系统'
|
||||
},
|
||||
qp: false,
|
||||
relateApplicationResourceVisible: false,
|
||||
relationData: {}, // 打开穿梭框时传递的参数
|
||||
topNameArray: [], //
|
||||
radio: '应用资源',
|
||||
radio: '应用系统',
|
||||
insertList: [],
|
||||
putOnTheShelfList: [],
|
||||
showPutOnTheShelfFlag2: false,
|
||||
submitFrom: {
|
||||
type: '应用资源',
|
||||
type: '应用系统',
|
||||
deptId: '',
|
||||
delFlag: 0,
|
||||
infoList: [
|
||||
|
@ -273,7 +244,7 @@ export default {
|
|||
// }
|
||||
]
|
||||
},
|
||||
typeInput: '应用资源'
|
||||
typeInput: '应用系统'
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
|
@ -284,7 +255,7 @@ export default {
|
|||
},
|
||||
created () {
|
||||
this.dataForm.name = ''
|
||||
this.dataForm.type = '应用资源'
|
||||
this.dataForm.type = '应用系统'
|
||||
},
|
||||
mounted () {
|
||||
// window.addEventListener('resize', this.a)
|
||||
|
@ -305,7 +276,7 @@ export default {
|
|||
limit: 10,
|
||||
delFlag: 0,
|
||||
creator: '',
|
||||
type: '应用资源',
|
||||
type: '应用系统',
|
||||
name: ''
|
||||
})
|
||||
)
|
||||
|
@ -322,6 +293,12 @@ export default {
|
|||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.total
|
||||
: 0
|
||||
if (this.dataList.length > 0) {
|
||||
this.dataList.forEach((item) => {
|
||||
item.belongProject = '城市信息模型'
|
||||
item.belongSystem = '信息模型技术平台'
|
||||
})
|
||||
}
|
||||
if (this.mixinViewModuleOptions.requestCallback) {
|
||||
this.mixinViewModuleOptions.requestCallback(res.data)
|
||||
}
|
||||
|
@ -380,7 +357,7 @@ export default {
|
|||
// type: '组件服务',
|
||||
pageNum: 1,
|
||||
pageSize: this.limit,
|
||||
type: '应用资源',
|
||||
type: '应用系统',
|
||||
creator: '',
|
||||
selectType: 0,
|
||||
delFlag: 0,
|
||||
|
@ -393,7 +370,7 @@ export default {
|
|||
this.total = 0
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
if (res.data.list.length !== 0) {
|
||||
if (res.data.list.length >= 0) {
|
||||
this.dataList = res.data.list
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.total
|
||||
|
@ -482,7 +459,7 @@ export default {
|
|||
linkType: '1',
|
||||
responseData: res.data
|
||||
}
|
||||
this.topNameArray = ['未关联组件名称', '已关联组件名称']
|
||||
this.topNameArray = ['未关联标签名称', '已关联标签名称']
|
||||
console.log(' this.relationData', this.relationData)
|
||||
// 将数据传递给引入的组件
|
||||
})
|
||||
|
@ -555,9 +532,9 @@ export default {
|
|||
this.showPutOnTheShelfFlag2 = false
|
||||
this.insertList = []
|
||||
this.putOnTheShelfList = []
|
||||
this.radio = '应用资源'
|
||||
this.radio = '应用系统'
|
||||
this.submitFrom = {
|
||||
type: '应用资源',
|
||||
type: '应用系统',
|
||||
deptId: '',
|
||||
delFlag: 0,
|
||||
infoList: [
|
||||
|
@ -572,6 +549,7 @@ export default {
|
|||
},
|
||||
// 上架
|
||||
showPutOnTheShelf () {
|
||||
// :title="submitFrom.id?'修改'+radio:'上架'+radio"
|
||||
this.showPutOnTheShelfFlag2 = true
|
||||
this.$http.get('/category/getCategoryTree').then(res => {
|
||||
this.insertList = res.data.data.filter(item => item.name === '应用资源一')[0]
|
||||
|
@ -729,15 +707,38 @@ export default {
|
|||
.catch(() => {})
|
||||
} else {
|
||||
this.$http
|
||||
.post('/resource/insert?source= b', this.submitFrom)
|
||||
.post('/resource/insert?source= f', this.submitFrom)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
this.$message.error('上架失败!')
|
||||
this.showPutOnTheShelfFlag2 = false
|
||||
} else {
|
||||
this.$message.success('上架成功!')
|
||||
this.showPutOnTheShelfFlag2 = false
|
||||
this.clear()
|
||||
const instanceId = res.data
|
||||
this.submitFrom.id = res.data
|
||||
this.$http.get('/sys/user/info').then(info => {
|
||||
this.$http.get('sys/user/' + info.data.data.id).then(user => {
|
||||
const insertDeptId = this.submitFrom.deptId
|
||||
const userId = user.data.data.id
|
||||
const userName = user.data.data.realName
|
||||
const params = {
|
||||
instanceId: instanceId,
|
||||
deptId: insertDeptId,
|
||||
userId: userId,
|
||||
userName: userName,
|
||||
resourceDTO: [this.submitFrom]
|
||||
}
|
||||
this.$http.post('/resource/center/apply', params).then(res3 => {
|
||||
if (res3.data.code == 0) {
|
||||
this.$message.success('上架成功!')
|
||||
this.showPutOnTheShelfFlag2 = false
|
||||
this.clear()
|
||||
} else {
|
||||
this.$message.error('上架失败!')
|
||||
this.showPutOnTheShelfFlag2 = false
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
|
@ -748,8 +749,8 @@ export default {
|
|||
UpdateData (item) {
|
||||
this.$http.get('/category/getCategoryTree').then(res => {
|
||||
this.insertList = res.data.data.filter(item => item.name === '应用资源一')[0]
|
||||
this.radio = '应用资源'
|
||||
// this.radio = item.infoList.filter(val => val.attrType === '应用资源')[0].attrValue
|
||||
this.radio = '应用系统'
|
||||
// this.radio = item.infoList.filter(val => val.attrType === '应用系统')[0].attrValue
|
||||
this.putOnTheShelfList = this.insertList.children
|
||||
// this.putOnTheShelfList = this.insertList.children.filter(item => item.name === this.radio)[0].children
|
||||
this.putOnTheShelfList.map(parent => {
|
||||
|
|
|
@ -0,0 +1,940 @@
|
|||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<div class="mod-ability__bsabilityai">
|
||||
<el-form :inline="true" :model="dataForm">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="dataForm.name"
|
||||
placeholder="图层名称"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getDataList2(dataForm.name)">{{
|
||||
$t('query')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<!--<el-form-item>
|
||||
<el-button type="info" @click="exportHandle()">{{
|
||||
$t('export')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:save')"
|
||||
type="primary"
|
||||
@click="addOrUpdateHandleAI()"
|
||||
>挂接</el-button
|
||||
>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="showPutOnTheShelf()"
|
||||
>盘点入库</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:delete')"
|
||||
type="danger"
|
||||
@click="deleteHandle2()"
|
||||
>{{ $t('deleteBatch') }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="reset">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
v-loading="dataListLoading"
|
||||
:data="dataList"
|
||||
border
|
||||
height="650px"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="50"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
prop="name"
|
||||
label="组件名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
prop="description"
|
||||
label="能力描述"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
prop="deptName"
|
||||
label="归属部门"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
prop="deptContacts"
|
||||
label="注册者"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<!-- <el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="deptPhone"
|
||||
label="联系人电话"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="updateDate"
|
||||
label="上架时间"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column> -->
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="UpdateData(scope.row)"
|
||||
>{{ $t('update') }}</el-button
|
||||
>
|
||||
<!-- <el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="deleteHandle2(scope.row.id)"
|
||||
>{{ $t('delete') }}</el-button
|
||||
> -->
|
||||
<el-button type="text" size="small" @click="showDetail(scope.row)"
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button type="text" size="small"
|
||||
>标签化</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper"
|
||||
:total="total" :page-size="pageSize" :current-page="currentPage">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update
|
||||
:disabled="disabled"
|
||||
v-if="addOrUpdateVisible"
|
||||
ref="addOrUpdate"
|
||||
@refreshDataList="getDataList"
|
||||
></add-or-update>
|
||||
<relate-application
|
||||
v-if="relateApplicationVisible"
|
||||
ref="relateApplication"
|
||||
:nameArray="['未关联应用名称', '已关联应用名称']"
|
||||
:relateInfo="relateInfo"
|
||||
@isShowRelatePopup="handleIsShowRelatePopup"
|
||||
></relate-application>
|
||||
</div>
|
||||
<el-dialog
|
||||
title="选择组件类型"
|
||||
:visible.sync="showPutOnTheShelfFlag"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
:before-close="clear"
|
||||
width="30%"
|
||||
>
|
||||
<el-radio v-model="radio" label="智能算法">智能算法</el-radio>
|
||||
<el-radio v-model="radio" label="图层服务">GIS图层</el-radio>
|
||||
<el-radio v-model="radio" label="开发组件">通用能力组件</el-radio>
|
||||
<el-radio v-model="radio" label="业务组件">业务能力组件</el-radio>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="clear">取 消</el-button>
|
||||
<el-button type="primary" @click="showPutOnTheShelfVue"
|
||||
>确 定</el-button
|
||||
>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
title="盘点入库"
|
||||
:visible.sync="showPutOnTheShelfFlag2"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
:destroy-on-close="true"
|
||||
:before-close="clear"
|
||||
width="50%"
|
||||
>
|
||||
<putOnTheShelf
|
||||
ref="putOnTheShelf"
|
||||
:putOnTheShelfList="putOnTheShelfList"
|
||||
@changeInfoList="changeInfoList"
|
||||
:type="radio"
|
||||
:typeInput="typeInput"
|
||||
:required="required"
|
||||
:notFilled="notFilled"
|
||||
@submitData="submitData"
|
||||
></putOnTheShelf>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="clear">取 消</el-button>
|
||||
<el-button type="primary" @click="submitData">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//import mixinViewModule from '@/mixins/view-module'
|
||||
import AddOrUpdate from './bsabilityai-add-or-update'
|
||||
import dictionaries from '@/utils/dictionaries'
|
||||
import qs from 'qs'
|
||||
import { pinyin } from 'pinyin-pro'
|
||||
import RelateApplication from './bsabilityai-relate-application.vue'
|
||||
import putOnTheShelf from '@/views/modules/putOnTheShelf'
|
||||
export default {
|
||||
// mixins: [mixinViewModule], @selection-change="dataListSelectionChangeHandle"
|
||||
data () {
|
||||
return {
|
||||
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '算法名称', '算法描述', '图层名称', '图层描述', '组件名称', '组件描述', '组件地址', '服务地址', '服务接口', '接口请求方式', '算法类别'],
|
||||
notFilled: [],
|
||||
insertList: [],
|
||||
putOnTheShelfList: [],
|
||||
radio: '',
|
||||
showPutOnTheShelfFlag: false,
|
||||
showPutOnTheShelfFlag2: false,
|
||||
submitFrom: {
|
||||
type: '组件服务',
|
||||
deptId: '',
|
||||
delFlag: 0,
|
||||
infoList: [
|
||||
{
|
||||
attrType: '组件类型',
|
||||
attrValue: '图层服务',
|
||||
delFlag: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/resource/page',
|
||||
getDataListIsPage: true,
|
||||
exportURL: '/ability/bsabilityai/export',
|
||||
deleteURL: '/resource/delete',
|
||||
deleteIsBatch: true
|
||||
},
|
||||
disabled: false,
|
||||
sceneArr: dictionaries.sceneArr,
|
||||
fieldArr: dictionaries.fieldArr,
|
||||
shareFormArr: dictionaries.shareFormArr,
|
||||
dataForm: {
|
||||
name: '',
|
||||
creator: '',
|
||||
delFlag: 0,
|
||||
selectType: 0,
|
||||
type: '组件服务'
|
||||
},
|
||||
// qp: false,
|
||||
// 关联应用弹窗
|
||||
relateApplicationVisible: false,
|
||||
relateInfo: {
|
||||
id: '',
|
||||
responseData: {},
|
||||
linkType: ''
|
||||
},
|
||||
typeInput: '组件服务',
|
||||
uuidOne: '',
|
||||
uuidTwo: '',
|
||||
uuidSnum: '',
|
||||
addOrUpdateVisible:false,
|
||||
dataList:[],
|
||||
dataListLoading:false,
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
total: null,
|
||||
dataListSelections:[]
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
components: {
|
||||
AddOrUpdate,
|
||||
RelateApplication,
|
||||
putOnTheShelf
|
||||
},
|
||||
created () {
|
||||
this.dataForm.name = ''
|
||||
this.dataForm.type = '组件服务'
|
||||
},
|
||||
mounted () {
|
||||
this.getDataList();
|
||||
},
|
||||
methods: {
|
||||
//获取图层服务列表数据
|
||||
getDataList(){
|
||||
//console.log('开始获取列表数据');
|
||||
let params = {
|
||||
deptIds: [],
|
||||
districtId: '',
|
||||
infoList: [{ attrType: '组件类型', attrValue: '业务组件' }],
|
||||
name: '',
|
||||
orderField: 'total',
|
||||
orderType: 'DESC',
|
||||
pageNum: this.currentPage,
|
||||
pageSize: 10,
|
||||
type: 'GIS图层',
|
||||
};
|
||||
this.$http.post(`/resource/pageWithAttrs`, params).then((res) => {
|
||||
this.dataList = res.data.data.records;
|
||||
this.total = parseInt(res.data.data.total);
|
||||
})
|
||||
},
|
||||
handleCurrentChange (val) {
|
||||
console.log('val------------>', val)
|
||||
this.currentPage = val;
|
||||
this.getDataList();
|
||||
},
|
||||
//删除,可以批量删除
|
||||
deleteHandle2 (id) {
|
||||
console.log('删除========================》', id, this.dataListSelections)
|
||||
const ids = []
|
||||
if (id) {
|
||||
ids.push(id)
|
||||
} else {
|
||||
if (this.dataListSelections.length > 0) {
|
||||
this.dataListSelections.forEach(item => {
|
||||
ids.push(item.id)
|
||||
})
|
||||
}
|
||||
}
|
||||
this.$http.post('/resource/delete', { ids: ids }).then(res => {
|
||||
console.log('删除成功', res)
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
//多选多选
|
||||
handleSelectionChange(val){
|
||||
this.dataListSelections = val;
|
||||
},
|
||||
// 置顶
|
||||
toppingCapacity (item) {
|
||||
this.$http.put('/resource/pin_top/' + item.id).then(res => {
|
||||
console.log('置顶', res.data.code)
|
||||
if (res.data.code == 0) {
|
||||
this.$message({
|
||||
message: '置顶成功',
|
||||
type: 'success'
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: '置顶失败',
|
||||
type: 'warning'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
reset () {
|
||||
this.getDataList();
|
||||
},
|
||||
findValue (list, type) {
|
||||
const found = list.find((item) => item.attrType === type)
|
||||
if (found) {
|
||||
return found.attrValue
|
||||
} else {
|
||||
return '暂无数据'
|
||||
}
|
||||
},
|
||||
showDetail (val) {
|
||||
console.log(val)
|
||||
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id)
|
||||
// this.addOrUpdateHandle(id)
|
||||
// this.addOrUpdateVisible = true
|
||||
// this.disabled = false
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.addOrUpdate.UpdateState = false
|
||||
// this.$refs.addOrUpdate.dataFormShowDetails = val
|
||||
// this.$refs.addOrUpdate.init()
|
||||
// })
|
||||
// this.disabled = true
|
||||
},
|
||||
// 创建uuid
|
||||
uuid (len, radix) {
|
||||
var chars =
|
||||
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
|
||||
var uuid = []
|
||||
var i
|
||||
radix = radix || chars.length
|
||||
|
||||
if (len) {
|
||||
// Compact form
|
||||
for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)]
|
||||
} else {
|
||||
// rfc4122, version 4 form
|
||||
var r
|
||||
|
||||
// rfc4122 requires these characters
|
||||
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
|
||||
uuid[14] = '4'
|
||||
|
||||
// Fill in random data. At i==19 set the high bits of clock sequence as
|
||||
// per rfc4122, sec. 4.1.5
|
||||
for (i = 0; i < 36; i++) {
|
||||
if (!uuid[i]) {
|
||||
r = 0 | (Math.random() * 16)
|
||||
uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return uuid.join('')
|
||||
},
|
||||
uuidSplice () {
|
||||
this.uuidOne = this.uuid(13, 16)
|
||||
this.uuidTwo = this.uuid(13, 16)
|
||||
this.uuidSnum = this.uuidOne + this.uuidTwo
|
||||
this.uuidSnum = this.uuidSnum.replace(/\s+/g, '')
|
||||
console.log('this.uuidOne', this.uuidSnum)
|
||||
},
|
||||
showDocument (val) {
|
||||
// 第一步:创建文档
|
||||
// 不存在文档时创建空文档
|
||||
this.uuidSplice()
|
||||
const uuidParam = val.infoList.filter((item) => {
|
||||
if (item.attrType === '技术文档') {
|
||||
return item
|
||||
}
|
||||
})
|
||||
if (uuidParam.length > 0) {
|
||||
this.uuidSnum = uuidParam[0].attrValue.split('/')[1].split('.')[0]
|
||||
} else {
|
||||
const type = pinyin(val.type, {
|
||||
pattern: 'initial'
|
||||
}).replace(/\s*/g, '')
|
||||
const obj = {
|
||||
attrType: '技术文档',
|
||||
attrValue: type + '/' + this.uuidSnum + '.md',
|
||||
delFlag: 0
|
||||
}
|
||||
val.infoList.push(obj)
|
||||
}
|
||||
|
||||
// 存在时加入文档
|
||||
this.$http
|
||||
.put('/resource/update', val)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
duration: 500,
|
||||
onClose: () => {
|
||||
// 打开这个空的开发文档
|
||||
window.open(
|
||||
window.SITE_CONFIG.frontUrl + '?id=' + this.uuidSnum + '&&type=' + val.type,
|
||||
'_blank'
|
||||
)
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
// 第二部,update列数据,成功后打开文档编辑
|
||||
},
|
||||
getDataList2 (names) {
|
||||
if (names != null) {
|
||||
this.$http
|
||||
.get(
|
||||
this.mixinViewModuleOptions.getDataListURL +
|
||||
'?' +
|
||||
qs.stringify({
|
||||
// order: this.order,
|
||||
// orderField: this.orderField,
|
||||
// type: '组件服务',
|
||||
pageNum: 1,
|
||||
pageSize: this.limit,
|
||||
type: '组件服务',
|
||||
creator: '',
|
||||
selectType: 0,
|
||||
delFlag: 0,
|
||||
name: names,
|
||||
})
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
this.dataList = []
|
||||
this.total = 0
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
if (res.data.list.length !== 0) {
|
||||
this.dataList = res.data.list
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.total
|
||||
: 0
|
||||
if (this.mixinViewModuleOptions.requestCallback) {
|
||||
this.mixinViewModuleOptions.requestCallback(res.data)
|
||||
}
|
||||
this.dataListLoading = false
|
||||
this.dataList.map((item, index) => {
|
||||
const dataListSinforList = []
|
||||
item.infoList.map((itemson, indexson) => {
|
||||
if (
|
||||
itemson.attrType === '应用领域' ||
|
||||
itemson.attrType === '组件类型'
|
||||
) {
|
||||
dataListSinforList.push(itemson)
|
||||
}
|
||||
})
|
||||
this.dataList[index].infoList2 = dataListSinforList
|
||||
})
|
||||
} else {
|
||||
this.$message.error('未查询到相关信息')
|
||||
this.reset()
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
this.dataListLoading = false
|
||||
})
|
||||
} else {
|
||||
this.$message.error('查询信息不能为空')
|
||||
}
|
||||
},
|
||||
// fullScreen () {
|
||||
// if (window.outerHeight === screen.availHeight) {
|
||||
// if (window.outerWidth === screen.availWidth) {
|
||||
// this.qp = false
|
||||
// } else {
|
||||
// this.qp = true
|
||||
// }
|
||||
// } else {
|
||||
// this.qp = true
|
||||
// }
|
||||
// },
|
||||
// 点击关联应用按钮
|
||||
showRelateApplication (row) {
|
||||
this.$http
|
||||
.get(
|
||||
`dataResourceRel/queryApplicationRelByResourceId?referenceId=${row.id}`
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
if (res && res.data) {
|
||||
this.relateApplicationVisible = true
|
||||
this.relateInfo = {
|
||||
id: row.id,
|
||||
responseData: res.data,
|
||||
linkType: '2'
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
// 是否展示关联应用弹窗
|
||||
handleIsShowRelatePopup (type) {
|
||||
this.relateApplicationVisible = type
|
||||
},
|
||||
// 新上架
|
||||
clear () {
|
||||
console.log('清空----------------------------------------')
|
||||
this.notFilled = []
|
||||
this.showPutOnTheShelfFlag = false
|
||||
this.showPutOnTheShelfFlag2 = false
|
||||
this.insertList = []
|
||||
this.putOnTheShelfList = []
|
||||
this.radio = ''
|
||||
this.submitFrom = {
|
||||
type: '组件服务',
|
||||
deptId: '',
|
||||
delFlag: 0,
|
||||
infoList: [
|
||||
{
|
||||
attrType: '组件类型',
|
||||
attrValue: '图层服务',
|
||||
delFlag: 0
|
||||
}
|
||||
]
|
||||
}
|
||||
this.reset()
|
||||
},
|
||||
showPutOnTheShelf () {
|
||||
this.showPutOnTheShelfFlag = true
|
||||
this.$http.get('/category/getCategoryTree').then((res) => {
|
||||
this.insertList = res.data.data.filter(
|
||||
(item) => item.name === '组件服务一'
|
||||
)[0]
|
||||
})
|
||||
},
|
||||
showPutOnTheShelfVue () {
|
||||
this.showPutOnTheShelfFlag = false
|
||||
this.showPutOnTheShelfFlag2 = true
|
||||
this.submitFrom.infoList[0].attrValue = this.radio
|
||||
this.putOnTheShelfList = this.insertList.children.filter(
|
||||
(item) => item.name === this.radio
|
||||
)[0].children
|
||||
},
|
||||
changeInfoList (obj) {
|
||||
console.log(obj, this.submitFrom)
|
||||
this.submitFrom.infoList = this.submitFrom.infoList.filter(
|
||||
(item) => item.attrType !== obj.attrType
|
||||
)
|
||||
this.submitFrom.infoList.push(obj)
|
||||
},
|
||||
changeAdd () {
|
||||
const arr = []
|
||||
switch (this.radio) {
|
||||
case '智能算法':
|
||||
arr.push('算法优势')
|
||||
arr.push('计费标准信息')
|
||||
break
|
||||
case '开发组件':
|
||||
case '业务组件':
|
||||
arr.push('功能介绍')
|
||||
break
|
||||
}
|
||||
arr.push('应用场景')
|
||||
arr.push('常见问题')
|
||||
this.$refs.putOnTheShelf.submit(arr)
|
||||
},
|
||||
submitData () {
|
||||
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
|
||||
const arr = []
|
||||
this.putOnTheShelfList.map((item) => {
|
||||
item.children.map((child) => {
|
||||
if (child.children) {
|
||||
if (
|
||||
child.name === '算法优势' ||
|
||||
child.name === '应用场景' ||
|
||||
child.name === '功能介绍'
|
||||
) {
|
||||
arr.push(child.name)
|
||||
if (
|
||||
this.submitFrom.infoList.filter(
|
||||
(value) => value.attrType === child.name
|
||||
).length === 0
|
||||
) {
|
||||
this.submitFrom.infoList.push({
|
||||
attrType: child.name,
|
||||
attrValue: child.note1,
|
||||
delFlag: 0
|
||||
})
|
||||
}
|
||||
}
|
||||
child.children.map((val) => {
|
||||
arr.push(val.name)
|
||||
if (
|
||||
val.type === 'input' ||
|
||||
val.type === 'textArea' ||
|
||||
val.type === 'select' ||
|
||||
val.type === 'checkBox' ||
|
||||
val.type === 'radio'
|
||||
) {
|
||||
this.submitFrom.infoList = this.submitFrom.infoList.filter(
|
||||
(item) => item.attrType !== val.name
|
||||
)
|
||||
}
|
||||
if (val.note1 == '' || val.note1) {
|
||||
switch (val.name) {
|
||||
case '算法名称':
|
||||
case '应用名称':
|
||||
case '组件名称':
|
||||
case '图层名称':
|
||||
this.submitFrom.name = val.note1
|
||||
break
|
||||
case '算法描述':
|
||||
case '应用描述':
|
||||
case '组件描述':
|
||||
case '图层描述':
|
||||
this.submitFrom.description = val.note1
|
||||
break
|
||||
case '共享条件':
|
||||
this.submitFrom.shareCondition = val.note1
|
||||
break
|
||||
case '共享类型':
|
||||
this.submitFrom.shareType = val.note1
|
||||
break
|
||||
case '服务接口':
|
||||
this.submitFrom.apiUrl = val.note1
|
||||
break
|
||||
case '接口请求方式':
|
||||
this.submitFrom.apiMethodType = val.note1
|
||||
break
|
||||
case '访问地址':
|
||||
this.submitFrom.link = val.note1
|
||||
break
|
||||
case '部门联系人':
|
||||
this.submitFrom.deptContacts = val.note1
|
||||
break
|
||||
case '部门联系人电话':
|
||||
this.submitFrom.deptPhone = val.note1
|
||||
break
|
||||
case '归属部门':
|
||||
this.submitFrom.deptId = val.note1
|
||||
break
|
||||
case '能力类型':
|
||||
this.submitFrom.type = val.note1
|
||||
break
|
||||
default:
|
||||
if (
|
||||
val.type !== 'image' &&
|
||||
val.type !== 'file' &&
|
||||
val.type !== 'video'
|
||||
) {
|
||||
this.submitFrom.infoList.push({
|
||||
attrType: val.name,
|
||||
attrValue: val.note1,
|
||||
delFlag: 0
|
||||
})
|
||||
} else {
|
||||
if (
|
||||
this.submitFrom.infoList.filter(
|
||||
(value) => value.attrType === val.name
|
||||
).length === 0
|
||||
) {
|
||||
this.submitFrom.infoList.push({
|
||||
attrType: val.name,
|
||||
attrValue: val.note1,
|
||||
delFlag: 0,
|
||||
note2: val.note2 || null
|
||||
})
|
||||
}
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
this.submitFrom.infoList = this.submitFrom.infoList.sort(
|
||||
(a, b) => arr.indexOf(a.attrType) - arr.indexOf(b.attrType)
|
||||
)
|
||||
this.notFilled = []
|
||||
if (!this.submitFrom.name) {
|
||||
this.notFilled.push('算法名称')
|
||||
this.notFilled.push('图层名称')
|
||||
this.notFilled.push('组件名称')
|
||||
}
|
||||
if (!this.submitFrom.description) {
|
||||
this.notFilled.push('算法描述')
|
||||
this.notFilled.push('图层描述')
|
||||
this.notFilled.push('组件描述')
|
||||
}
|
||||
if (!this.submitFrom.shareCondition) {
|
||||
this.notFilled.push('共享条件')
|
||||
}
|
||||
if (!this.submitFrom.deptContacts) {
|
||||
this.notFilled.push('部门联系人')
|
||||
}
|
||||
if (!this.submitFrom.deptId) {
|
||||
this.notFilled.push('归属部门')
|
||||
}
|
||||
if (!this.submitFrom.deptPhone) {
|
||||
this.notFilled.push('部门联系人电话')
|
||||
}
|
||||
if (this.radio === '智能算法' && !this.submitFrom.apiUrl) {
|
||||
if ((this.submitFrom.infoList.filter(val => val.attrType === '使用方式')[0].attrValue === '调用接口')) {
|
||||
this.notFilled.push('服务接口')
|
||||
}
|
||||
}
|
||||
if (this.radio === '智能算法' && !this.submitFrom.apiMethodType) {
|
||||
if ((this.submitFrom.infoList.filter(val => val.attrType === '使用方式')[0].attrValue === '调用接口')) {
|
||||
this.notFilled.push('接口请求方式')
|
||||
}
|
||||
}
|
||||
if (this.radio === '智能算法' && (!this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0].attrValue)) {
|
||||
this.notFilled.push('算法类别')
|
||||
}
|
||||
if (!this.submitFrom.infoList.filter(val => val.attrType === '应用领域')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '应用领域')[0].attrValue) {
|
||||
this.notFilled.push('应用领域')
|
||||
}
|
||||
if (this.radio === '图层服务' && (!this.submitFrom.infoList.filter(val => val.attrType === '服务地址')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '服务地址')[0].attrValue)) {
|
||||
this.notFilled.push('服务地址')
|
||||
}
|
||||
if ((this.radio === '业务组件' || this.radio === '开发组件') && (!this.submitFrom.infoList.filter(val => val.attrType === '组件地址')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '组件地址')[0].attrValue)) {
|
||||
this.notFilled.push('组件地址')
|
||||
}
|
||||
console.log(this.submitFrom, this.notFilled, '表单验证')
|
||||
if (this.notFilled.length > 0) {
|
||||
this.$message({
|
||||
message: '请填写必填字段!',
|
||||
type: 'warning'
|
||||
})
|
||||
} else {
|
||||
if (this.submitFrom.id) {
|
||||
// 解决编辑无组件类型
|
||||
this.submitFrom.infoList.map((val) => {
|
||||
if (val.attrType === '组件类型') {
|
||||
val.attrValue = this.radio
|
||||
}
|
||||
})
|
||||
console.log('编辑===============>', this.submitFrom)
|
||||
console.log(this.submitFrom.infoList, '===============abc')
|
||||
// 去重
|
||||
const newArr = this.submitFrom.infoList.filter(
|
||||
(element, index, self) => {
|
||||
return (
|
||||
self.findIndex((x) => x.attrType === element.attrType) === index
|
||||
)
|
||||
}
|
||||
)
|
||||
this.submitFrom.infoList = newArr
|
||||
// 检验是否有空值
|
||||
this.submitFrom.infoList = this.submitFrom.infoList.filter(item => item.attrValue)
|
||||
this.$http
|
||||
.put('/resource/update', this.submitFrom)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
this.$message.error('修改失败!')
|
||||
} else {
|
||||
this.$message.success('修改成功!')
|
||||
this.clear()
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
} else {
|
||||
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
|
||||
this.$http
|
||||
.post('/resource/insert?source= b', this.submitFrom)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
this.$message.error('上架失败!')
|
||||
} else {
|
||||
this.$message.success('上架成功!')
|
||||
this.clear()
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
}
|
||||
},
|
||||
// 新修改
|
||||
UpdateData (item) {
|
||||
this.$http.get('/category/getCategoryTree').then((res) => {
|
||||
this.insertList = res.data.data.filter(
|
||||
(item) => item.name === '组件服务一'
|
||||
)[0]
|
||||
this.radio = item.infoList.filter(
|
||||
(val) => val.attrType === '组件类型'
|
||||
)[0].attrValue
|
||||
this.putOnTheShelfList = this.insertList.children.filter(
|
||||
(item) => item.name === this.radio
|
||||
)[0].children
|
||||
this.putOnTheShelfList.map((parent) => {
|
||||
parent.children.map((child) => {
|
||||
if (
|
||||
child.name === '算法优势' ||
|
||||
child.name === '应用场景' ||
|
||||
child.name === '功能介绍'
|
||||
) {
|
||||
const obj = item.infoList.filter(
|
||||
(val) => val.attrType === child.name
|
||||
)[0]
|
||||
if (obj) {
|
||||
child.note1 = obj.attrValue
|
||||
}
|
||||
} else {
|
||||
if (child.children) {
|
||||
child.children.map((data) => {
|
||||
if (
|
||||
data.name === '计费标准信息' ||
|
||||
data.name === '常见问题'
|
||||
) {
|
||||
const obj = item.infoList.filter(
|
||||
(val) => val.attrType === child.name
|
||||
)[0]
|
||||
if (obj) {
|
||||
data.note1 = obj.attrValue
|
||||
}
|
||||
} else {
|
||||
switch (data.name) {
|
||||
case '算法名称':
|
||||
case '应用名称':
|
||||
case '组件名称':
|
||||
case '图层名称':
|
||||
data.note1 = item.name
|
||||
break
|
||||
case '算法描述':
|
||||
case '应用描述':
|
||||
case '组件描述':
|
||||
case '图层描述':
|
||||
data.note1 = item.description
|
||||
break
|
||||
case '共享条件':
|
||||
data.note1 = item.shareCondition
|
||||
break
|
||||
case '共享类型':
|
||||
data.note1 = item.shareType
|
||||
break
|
||||
case '服务接口':
|
||||
data.note1 = item.apiUrl
|
||||
break
|
||||
case '接口请求方式':
|
||||
data.note1 = item.apiMethodType
|
||||
break
|
||||
case '访问地址':
|
||||
data.note1 = item.link
|
||||
break
|
||||
case '部门联系人':
|
||||
data.note1 = item.deptContacts
|
||||
break
|
||||
case '部门联系人电话':
|
||||
data.note1 = item.deptPhone
|
||||
break
|
||||
case '归属部门':
|
||||
data.note1 = item.deptId
|
||||
break
|
||||
case '能力类型':
|
||||
data.note1 = item.type
|
||||
break
|
||||
default:
|
||||
// eslint-disable-next-line no-case-declarations
|
||||
const obj1 = item.infoList.filter(
|
||||
(val) => val.attrType === data.name
|
||||
)[0]
|
||||
if (obj1) {
|
||||
data.note1 = obj1.attrValue
|
||||
}
|
||||
break
|
||||
}
|
||||
if (
|
||||
data.type === 'image' ||
|
||||
data.type === 'file' ||
|
||||
data.type === 'video'
|
||||
) {
|
||||
const obj1 = item.infoList.filter(
|
||||
(val) => val.attrType === data.name
|
||||
)[0]
|
||||
if (obj1) {
|
||||
data.note2 = obj1.note2
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
this.submitFrom.id = item.id
|
||||
this.showPutOnTheShelfFlag2 = true
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.el-tooltip__popper {
|
||||
max-width: 50%;
|
||||
}
|
||||
// ::v-deep .el-table .cell {
|
||||
// width: 200px;
|
||||
// }
|
||||
::v-deep .el-upload-list__item-name {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,944 @@
|
|||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<div class="mod-ability__bsabilityai">
|
||||
<el-form :inline="true" :model="dataForm">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="dataForm.name"
|
||||
placeholder="名称"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getDataList2(dataForm.name)">{{
|
||||
$t('query')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<!--<el-form-item>
|
||||
<el-button type="info" @click="exportHandle()">{{
|
||||
$t('export')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:save')"
|
||||
type="primary"
|
||||
@click="addOrUpdateHandleAI()"
|
||||
>挂接</el-button
|
||||
>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="showPutOnTheShelf()"
|
||||
>盘点入库</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:delete')"
|
||||
type="danger"
|
||||
@click="deleteHandle2()"
|
||||
>{{ $t('deleteBatch') }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="reset">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
v-loading="dataListLoading"
|
||||
:data="dataList"
|
||||
border
|
||||
height="650px"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="50"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
prop="name"
|
||||
label="组件名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
|
||||
prop="description"
|
||||
label="能力描述"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
|
||||
prop="deptName"
|
||||
label="归属部门"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
|
||||
prop="deptContacts"
|
||||
label="注册者"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<!-- <el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="deptPhone"
|
||||
label="联系人电话"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
width="280"
|
||||
prop="updateDate"
|
||||
label="上架时间"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column> -->
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="UpdateData(scope.row)"
|
||||
>{{ $t('update') }}</el-button
|
||||
>
|
||||
<!-- <el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="deleteHandle2(scope.row.id)"
|
||||
>{{ $t('delete') }}</el-button
|
||||
> -->
|
||||
<el-button type="text" size="small" @click="showDetail(scope.row)"
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button type="text" size="small"
|
||||
>标签化</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper"
|
||||
:total="total" :page-size="pageSize" :current-page="currentPage">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update
|
||||
:disabled="disabled"
|
||||
v-if="addOrUpdateVisible"
|
||||
ref="addOrUpdate"
|
||||
@refreshDataList="getDataList"
|
||||
></add-or-update>
|
||||
<relate-application
|
||||
v-if="relateApplicationVisible"
|
||||
ref="relateApplication"
|
||||
:nameArray="['未关联应用名称', '已关联应用名称']"
|
||||
:relateInfo="relateInfo"
|
||||
@isShowRelatePopup="handleIsShowRelatePopup"
|
||||
></relate-application>
|
||||
</div>
|
||||
<el-dialog
|
||||
title="选择组件类型"
|
||||
:visible.sync="showPutOnTheShelfFlag"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
:before-close="clear"
|
||||
width="30%"
|
||||
>
|
||||
<el-radio v-model="radio" label="智能算法">智能算法</el-radio>
|
||||
<el-radio v-model="radio" label="图层服务">GIS图层</el-radio>
|
||||
<el-radio v-model="radio" label="开发组件">通用能力组件</el-radio>
|
||||
<el-radio v-model="radio" label="业务组件">业务能力组件</el-radio>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="clear">取 消</el-button>
|
||||
<el-button type="primary" @click="showPutOnTheShelfVue"
|
||||
>确 定</el-button
|
||||
>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
title="盘点入库"
|
||||
:visible.sync="showPutOnTheShelfFlag2"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
:destroy-on-close="true"
|
||||
:before-close="clear"
|
||||
width="50%"
|
||||
>
|
||||
<putOnTheShelf
|
||||
ref="putOnTheShelf"
|
||||
:putOnTheShelfList="putOnTheShelfList"
|
||||
@changeInfoList="changeInfoList"
|
||||
:type="radio"
|
||||
:typeInput="typeInput"
|
||||
:required="required"
|
||||
:notFilled="notFilled"
|
||||
@submitData="submitData"
|
||||
></putOnTheShelf>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="clear">取 消</el-button>
|
||||
<el-button type="primary" @click="submitData">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//import mixinViewModule from '@/mixins/view-module'
|
||||
import AddOrUpdate from './bsabilityai-add-or-update'
|
||||
import dictionaries from '@/utils/dictionaries'
|
||||
import qs from 'qs'
|
||||
import { pinyin } from 'pinyin-pro'
|
||||
import RelateApplication from './bsabilityai-relate-application.vue'
|
||||
import putOnTheShelf from '@/views/modules/putOnTheShelf'
|
||||
export default {
|
||||
// mixins: [mixinViewModule], @selection-change="dataListSelectionChangeHandle"
|
||||
data () {
|
||||
return {
|
||||
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '算法名称', '算法描述', '图层名称', '图层描述', '组件名称', '组件描述', '组件地址', '服务地址', '服务接口', '接口请求方式', '算法类别'],
|
||||
notFilled: [],
|
||||
insertList: [],
|
||||
putOnTheShelfList: [],
|
||||
radio: '',
|
||||
showPutOnTheShelfFlag: false,
|
||||
showPutOnTheShelfFlag2: false,
|
||||
submitFrom: {
|
||||
type: '组件服务',
|
||||
deptId: '',
|
||||
delFlag: 0,
|
||||
infoList: [
|
||||
{
|
||||
attrType: '组件类型',
|
||||
attrValue: '图层服务',
|
||||
delFlag: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/resource/page',
|
||||
getDataListIsPage: true,
|
||||
exportURL: '/ability/bsabilityai/export',
|
||||
deleteURL: '/resource/delete',
|
||||
deleteIsBatch: true
|
||||
},
|
||||
disabled: false,
|
||||
sceneArr: dictionaries.sceneArr,
|
||||
fieldArr: dictionaries.fieldArr,
|
||||
shareFormArr: dictionaries.shareFormArr,
|
||||
dataForm: {
|
||||
name: '',
|
||||
creator: '',
|
||||
delFlag: 0,
|
||||
selectType: 0,
|
||||
type: '组件服务'
|
||||
},
|
||||
// qp: false,
|
||||
// 关联应用弹窗
|
||||
relateApplicationVisible: false,
|
||||
relateInfo: {
|
||||
id: '',
|
||||
responseData: {},
|
||||
linkType: ''
|
||||
},
|
||||
typeInput: '组件服务',
|
||||
uuidOne: '',
|
||||
uuidTwo: '',
|
||||
uuidSnum: '',
|
||||
addOrUpdateVisible:false,
|
||||
dataList:[],
|
||||
dataListLoading:false,
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
total: null,
|
||||
dataListSelections:[]
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
components: {
|
||||
AddOrUpdate,
|
||||
RelateApplication,
|
||||
putOnTheShelf
|
||||
},
|
||||
created () {
|
||||
this.dataForm.name = ''
|
||||
this.dataForm.type = '组件服务'
|
||||
},
|
||||
mounted () {
|
||||
this.getDataList();
|
||||
},
|
||||
methods: {
|
||||
//获取图层服务列表数据
|
||||
getDataList(){
|
||||
//console.log('开始获取列表数据');
|
||||
let params = {
|
||||
deptIds: [],
|
||||
districtId: '',
|
||||
infoList: [{ attrType: '组件类型', attrValue: '开发组件' }],
|
||||
name: '',
|
||||
orderField: 'total',
|
||||
orderType: 'DESC',
|
||||
pageNum: this.currentPage,
|
||||
pageSize: 10,
|
||||
type: 'GIS图层',
|
||||
};
|
||||
this.$http.post(`/resource/pageWithAttrs`, params).then((res) => {
|
||||
this.dataList = res.data.data.records;
|
||||
this.total = parseInt(res.data.data.total);
|
||||
})
|
||||
},
|
||||
handleCurrentChange (val) {
|
||||
console.log('val------------>', val)
|
||||
this.currentPage = val;
|
||||
this.getDataList();
|
||||
},
|
||||
//删除,可以批量删除
|
||||
deleteHandle2 (id) {
|
||||
console.log('删除========================》', id, this.dataListSelections)
|
||||
const ids = []
|
||||
if (id) {
|
||||
ids.push(id)
|
||||
} else {
|
||||
if (this.dataListSelections.length > 0) {
|
||||
this.dataListSelections.forEach(item => {
|
||||
ids.push(item.id)
|
||||
})
|
||||
}
|
||||
}
|
||||
this.$http.post('/resource/delete', { ids: ids }).then(res => {
|
||||
console.log('删除成功', res)
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
//多选多选
|
||||
handleSelectionChange(val){
|
||||
this.dataListSelections = val;
|
||||
},
|
||||
// 置顶
|
||||
toppingCapacity (item) {
|
||||
this.$http.put('/resource/pin_top/' + item.id).then(res => {
|
||||
console.log('置顶', res.data.code)
|
||||
if (res.data.code == 0) {
|
||||
this.$message({
|
||||
message: '置顶成功',
|
||||
type: 'success'
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: '置顶失败',
|
||||
type: 'warning'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
reset () {
|
||||
this.getDataList();
|
||||
},
|
||||
findValue (list, type) {
|
||||
const found = list.find((item) => item.attrType === type)
|
||||
if (found) {
|
||||
return found.attrValue
|
||||
} else {
|
||||
return '暂无数据'
|
||||
}
|
||||
},
|
||||
showDetail (val) {
|
||||
console.log(val)
|
||||
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id)
|
||||
// this.addOrUpdateHandle(id)
|
||||
// this.addOrUpdateVisible = true
|
||||
// this.disabled = false
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.addOrUpdate.UpdateState = false
|
||||
// this.$refs.addOrUpdate.dataFormShowDetails = val
|
||||
// this.$refs.addOrUpdate.init()
|
||||
// })
|
||||
// this.disabled = true
|
||||
},
|
||||
// 创建uuid
|
||||
uuid (len, radix) {
|
||||
var chars =
|
||||
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
|
||||
var uuid = []
|
||||
var i
|
||||
radix = radix || chars.length
|
||||
|
||||
if (len) {
|
||||
// Compact form
|
||||
for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)]
|
||||
} else {
|
||||
// rfc4122, version 4 form
|
||||
var r
|
||||
|
||||
// rfc4122 requires these characters
|
||||
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
|
||||
uuid[14] = '4'
|
||||
|
||||
// Fill in random data. At i==19 set the high bits of clock sequence as
|
||||
// per rfc4122, sec. 4.1.5
|
||||
for (i = 0; i < 36; i++) {
|
||||
if (!uuid[i]) {
|
||||
r = 0 | (Math.random() * 16)
|
||||
uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return uuid.join('')
|
||||
},
|
||||
uuidSplice () {
|
||||
this.uuidOne = this.uuid(13, 16)
|
||||
this.uuidTwo = this.uuid(13, 16)
|
||||
this.uuidSnum = this.uuidOne + this.uuidTwo
|
||||
this.uuidSnum = this.uuidSnum.replace(/\s+/g, '')
|
||||
console.log('this.uuidOne', this.uuidSnum)
|
||||
},
|
||||
showDocument (val) {
|
||||
// 第一步:创建文档
|
||||
// 不存在文档时创建空文档
|
||||
this.uuidSplice()
|
||||
const uuidParam = val.infoList.filter((item) => {
|
||||
if (item.attrType === '技术文档') {
|
||||
return item
|
||||
}
|
||||
})
|
||||
if (uuidParam.length > 0) {
|
||||
this.uuidSnum = uuidParam[0].attrValue.split('/')[1].split('.')[0]
|
||||
} else {
|
||||
const type = pinyin(val.type, {
|
||||
pattern: 'initial'
|
||||
}).replace(/\s*/g, '')
|
||||
const obj = {
|
||||
attrType: '技术文档',
|
||||
attrValue: type + '/' + this.uuidSnum + '.md',
|
||||
delFlag: 0
|
||||
}
|
||||
val.infoList.push(obj)
|
||||
}
|
||||
|
||||
// 存在时加入文档
|
||||
this.$http
|
||||
.put('/resource/update', val)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
duration: 500,
|
||||
onClose: () => {
|
||||
// 打开这个空的开发文档
|
||||
window.open(
|
||||
window.SITE_CONFIG.frontUrl + '?id=' + this.uuidSnum + '&&type=' + val.type,
|
||||
'_blank'
|
||||
)
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
// 第二部,update列数据,成功后打开文档编辑
|
||||
},
|
||||
getDataList2 (names) {
|
||||
if (names != null) {
|
||||
this.$http
|
||||
.get(
|
||||
this.mixinViewModuleOptions.getDataListURL +
|
||||
'?' +
|
||||
qs.stringify({
|
||||
// order: this.order,
|
||||
// orderField: this.orderField,
|
||||
// type: '组件服务',
|
||||
pageNum: 1,
|
||||
pageSize: this.limit,
|
||||
type: '组件服务',
|
||||
creator: '',
|
||||
selectType: 0,
|
||||
delFlag: 0,
|
||||
name: names,
|
||||
})
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
this.dataList = []
|
||||
this.total = 0
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
if (res.data.list.length !== 0) {
|
||||
this.dataList = res.data.list
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.total
|
||||
: 0
|
||||
if (this.mixinViewModuleOptions.requestCallback) {
|
||||
this.mixinViewModuleOptions.requestCallback(res.data)
|
||||
}
|
||||
this.dataListLoading = false
|
||||
this.dataList.map((item, index) => {
|
||||
const dataListSinforList = []
|
||||
item.infoList.map((itemson, indexson) => {
|
||||
if (
|
||||
itemson.attrType === '应用领域' ||
|
||||
itemson.attrType === '组件类型'
|
||||
) {
|
||||
dataListSinforList.push(itemson)
|
||||
}
|
||||
})
|
||||
this.dataList[index].infoList2 = dataListSinforList
|
||||
})
|
||||
} else {
|
||||
this.$message.error('未查询到相关信息')
|
||||
this.reset()
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
this.dataListLoading = false
|
||||
})
|
||||
} else {
|
||||
this.$message.error('查询信息不能为空')
|
||||
}
|
||||
},
|
||||
// fullScreen () {
|
||||
// if (window.outerHeight === screen.availHeight) {
|
||||
// if (window.outerWidth === screen.availWidth) {
|
||||
// this.qp = false
|
||||
// } else {
|
||||
// this.qp = true
|
||||
// }
|
||||
// } else {
|
||||
// this.qp = true
|
||||
// }
|
||||
// },
|
||||
// 点击关联应用按钮
|
||||
showRelateApplication (row) {
|
||||
this.$http
|
||||
.get(
|
||||
`dataResourceRel/queryApplicationRelByResourceId?referenceId=${row.id}`
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
if (res && res.data) {
|
||||
this.relateApplicationVisible = true
|
||||
this.relateInfo = {
|
||||
id: row.id,
|
||||
responseData: res.data,
|
||||
linkType: '2'
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
// 是否展示关联应用弹窗
|
||||
handleIsShowRelatePopup (type) {
|
||||
this.relateApplicationVisible = type
|
||||
},
|
||||
// 新上架
|
||||
clear () {
|
||||
console.log('清空----------------------------------------')
|
||||
this.notFilled = []
|
||||
this.showPutOnTheShelfFlag = false
|
||||
this.showPutOnTheShelfFlag2 = false
|
||||
this.insertList = []
|
||||
this.putOnTheShelfList = []
|
||||
this.radio = ''
|
||||
this.submitFrom = {
|
||||
type: '组件服务',
|
||||
deptId: '',
|
||||
delFlag: 0,
|
||||
infoList: [
|
||||
{
|
||||
attrType: '组件类型',
|
||||
attrValue: '图层服务',
|
||||
delFlag: 0
|
||||
}
|
||||
]
|
||||
}
|
||||
this.reset()
|
||||
},
|
||||
showPutOnTheShelf () {
|
||||
this.showPutOnTheShelfFlag = true
|
||||
this.$http.get('/category/getCategoryTree').then((res) => {
|
||||
this.insertList = res.data.data.filter(
|
||||
(item) => item.name === '组件服务一'
|
||||
)[0]
|
||||
})
|
||||
},
|
||||
showPutOnTheShelfVue () {
|
||||
this.showPutOnTheShelfFlag = false
|
||||
this.showPutOnTheShelfFlag2 = true
|
||||
this.submitFrom.infoList[0].attrValue = this.radio
|
||||
this.putOnTheShelfList = this.insertList.children.filter(
|
||||
(item) => item.name === this.radio
|
||||
)[0].children
|
||||
},
|
||||
changeInfoList (obj) {
|
||||
console.log(obj, this.submitFrom)
|
||||
this.submitFrom.infoList = this.submitFrom.infoList.filter(
|
||||
(item) => item.attrType !== obj.attrType
|
||||
)
|
||||
this.submitFrom.infoList.push(obj)
|
||||
},
|
||||
changeAdd () {
|
||||
const arr = []
|
||||
switch (this.radio) {
|
||||
case '智能算法':
|
||||
arr.push('算法优势')
|
||||
arr.push('计费标准信息')
|
||||
break
|
||||
case '开发组件':
|
||||
case '业务组件':
|
||||
arr.push('功能介绍')
|
||||
break
|
||||
}
|
||||
arr.push('应用场景')
|
||||
arr.push('常见问题')
|
||||
this.$refs.putOnTheShelf.submit(arr)
|
||||
},
|
||||
submitData () {
|
||||
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
|
||||
const arr = []
|
||||
this.putOnTheShelfList.map((item) => {
|
||||
item.children.map((child) => {
|
||||
if (child.children) {
|
||||
if (
|
||||
child.name === '算法优势' ||
|
||||
child.name === '应用场景' ||
|
||||
child.name === '功能介绍'
|
||||
) {
|
||||
arr.push(child.name)
|
||||
if (
|
||||
this.submitFrom.infoList.filter(
|
||||
(value) => value.attrType === child.name
|
||||
).length === 0
|
||||
) {
|
||||
this.submitFrom.infoList.push({
|
||||
attrType: child.name,
|
||||
attrValue: child.note1,
|
||||
delFlag: 0
|
||||
})
|
||||
}
|
||||
}
|
||||
child.children.map((val) => {
|
||||
arr.push(val.name)
|
||||
if (
|
||||
val.type === 'input' ||
|
||||
val.type === 'textArea' ||
|
||||
val.type === 'select' ||
|
||||
val.type === 'checkBox' ||
|
||||
val.type === 'radio'
|
||||
) {
|
||||
this.submitFrom.infoList = this.submitFrom.infoList.filter(
|
||||
(item) => item.attrType !== val.name
|
||||
)
|
||||
}
|
||||
if (val.note1 == '' || val.note1) {
|
||||
switch (val.name) {
|
||||
case '算法名称':
|
||||
case '应用名称':
|
||||
case '组件名称':
|
||||
case '图层名称':
|
||||
this.submitFrom.name = val.note1
|
||||
break
|
||||
case '算法描述':
|
||||
case '应用描述':
|
||||
case '组件描述':
|
||||
case '图层描述':
|
||||
this.submitFrom.description = val.note1
|
||||
break
|
||||
case '共享条件':
|
||||
this.submitFrom.shareCondition = val.note1
|
||||
break
|
||||
case '共享类型':
|
||||
this.submitFrom.shareType = val.note1
|
||||
break
|
||||
case '服务接口':
|
||||
this.submitFrom.apiUrl = val.note1
|
||||
break
|
||||
case '接口请求方式':
|
||||
this.submitFrom.apiMethodType = val.note1
|
||||
break
|
||||
case '访问地址':
|
||||
this.submitFrom.link = val.note1
|
||||
break
|
||||
case '部门联系人':
|
||||
this.submitFrom.deptContacts = val.note1
|
||||
break
|
||||
case '部门联系人电话':
|
||||
this.submitFrom.deptPhone = val.note1
|
||||
break
|
||||
case '归属部门':
|
||||
this.submitFrom.deptId = val.note1
|
||||
break
|
||||
case '能力类型':
|
||||
this.submitFrom.type = val.note1
|
||||
break
|
||||
default:
|
||||
if (
|
||||
val.type !== 'image' &&
|
||||
val.type !== 'file' &&
|
||||
val.type !== 'video'
|
||||
) {
|
||||
this.submitFrom.infoList.push({
|
||||
attrType: val.name,
|
||||
attrValue: val.note1,
|
||||
delFlag: 0
|
||||
})
|
||||
} else {
|
||||
if (
|
||||
this.submitFrom.infoList.filter(
|
||||
(value) => value.attrType === val.name
|
||||
).length === 0
|
||||
) {
|
||||
this.submitFrom.infoList.push({
|
||||
attrType: val.name,
|
||||
attrValue: val.note1,
|
||||
delFlag: 0,
|
||||
note2: val.note2 || null
|
||||
})
|
||||
}
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
this.submitFrom.infoList = this.submitFrom.infoList.sort(
|
||||
(a, b) => arr.indexOf(a.attrType) - arr.indexOf(b.attrType)
|
||||
)
|
||||
this.notFilled = []
|
||||
if (!this.submitFrom.name) {
|
||||
this.notFilled.push('算法名称')
|
||||
this.notFilled.push('图层名称')
|
||||
this.notFilled.push('组件名称')
|
||||
}
|
||||
if (!this.submitFrom.description) {
|
||||
this.notFilled.push('算法描述')
|
||||
this.notFilled.push('图层描述')
|
||||
this.notFilled.push('组件描述')
|
||||
}
|
||||
if (!this.submitFrom.shareCondition) {
|
||||
this.notFilled.push('共享条件')
|
||||
}
|
||||
if (!this.submitFrom.deptContacts) {
|
||||
this.notFilled.push('部门联系人')
|
||||
}
|
||||
if (!this.submitFrom.deptId) {
|
||||
this.notFilled.push('归属部门')
|
||||
}
|
||||
if (!this.submitFrom.deptPhone) {
|
||||
this.notFilled.push('部门联系人电话')
|
||||
}
|
||||
if (this.radio === '智能算法' && !this.submitFrom.apiUrl) {
|
||||
if ((this.submitFrom.infoList.filter(val => val.attrType === '使用方式')[0].attrValue === '调用接口')) {
|
||||
this.notFilled.push('服务接口')
|
||||
}
|
||||
}
|
||||
if (this.radio === '智能算法' && !this.submitFrom.apiMethodType) {
|
||||
if ((this.submitFrom.infoList.filter(val => val.attrType === '使用方式')[0].attrValue === '调用接口')) {
|
||||
this.notFilled.push('接口请求方式')
|
||||
}
|
||||
}
|
||||
if (this.radio === '智能算法' && (!this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0].attrValue)) {
|
||||
this.notFilled.push('算法类别')
|
||||
}
|
||||
if (!this.submitFrom.infoList.filter(val => val.attrType === '应用领域')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '应用领域')[0].attrValue) {
|
||||
this.notFilled.push('应用领域')
|
||||
}
|
||||
if (this.radio === '图层服务' && (!this.submitFrom.infoList.filter(val => val.attrType === '服务地址')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '服务地址')[0].attrValue)) {
|
||||
this.notFilled.push('服务地址')
|
||||
}
|
||||
if ((this.radio === '业务组件' || this.radio === '开发组件') && (!this.submitFrom.infoList.filter(val => val.attrType === '组件地址')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '组件地址')[0].attrValue)) {
|
||||
this.notFilled.push('组件地址')
|
||||
}
|
||||
console.log(this.submitFrom, this.notFilled, '表单验证')
|
||||
if (this.notFilled.length > 0) {
|
||||
this.$message({
|
||||
message: '请填写必填字段!',
|
||||
type: 'warning'
|
||||
})
|
||||
} else {
|
||||
if (this.submitFrom.id) {
|
||||
// 解决编辑无组件类型
|
||||
this.submitFrom.infoList.map((val) => {
|
||||
if (val.attrType === '组件类型') {
|
||||
val.attrValue = this.radio
|
||||
}
|
||||
})
|
||||
console.log('编辑===============>', this.submitFrom)
|
||||
console.log(this.submitFrom.infoList, '===============abc')
|
||||
// 去重
|
||||
const newArr = this.submitFrom.infoList.filter(
|
||||
(element, index, self) => {
|
||||
return (
|
||||
self.findIndex((x) => x.attrType === element.attrType) === index
|
||||
)
|
||||
}
|
||||
)
|
||||
this.submitFrom.infoList = newArr
|
||||
// 检验是否有空值
|
||||
this.submitFrom.infoList = this.submitFrom.infoList.filter(item => item.attrValue)
|
||||
this.$http
|
||||
.put('/resource/update', this.submitFrom)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
this.$message.error('修改失败!')
|
||||
} else {
|
||||
this.$message.success('修改成功!')
|
||||
this.clear()
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
} else {
|
||||
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
|
||||
this.$http
|
||||
.post('/resource/insert?source= b', this.submitFrom)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
this.$message.error('上架失败!')
|
||||
} else {
|
||||
this.$message.success('上架成功!')
|
||||
this.clear()
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
}
|
||||
},
|
||||
// 新修改
|
||||
UpdateData (item) {
|
||||
this.$http.get('/category/getCategoryTree').then((res) => {
|
||||
this.insertList = res.data.data.filter(
|
||||
(item) => item.name === '组件服务一'
|
||||
)[0]
|
||||
this.radio = item.infoList.filter(
|
||||
(val) => val.attrType === '组件类型'
|
||||
)[0].attrValue
|
||||
this.putOnTheShelfList = this.insertList.children.filter(
|
||||
(item) => item.name === this.radio
|
||||
)[0].children
|
||||
this.putOnTheShelfList.map((parent) => {
|
||||
parent.children.map((child) => {
|
||||
if (
|
||||
child.name === '算法优势' ||
|
||||
child.name === '应用场景' ||
|
||||
child.name === '功能介绍'
|
||||
) {
|
||||
const obj = item.infoList.filter(
|
||||
(val) => val.attrType === child.name
|
||||
)[0]
|
||||
if (obj) {
|
||||
child.note1 = obj.attrValue
|
||||
}
|
||||
} else {
|
||||
if (child.children) {
|
||||
child.children.map((data) => {
|
||||
if (
|
||||
data.name === '计费标准信息' ||
|
||||
data.name === '常见问题'
|
||||
) {
|
||||
const obj = item.infoList.filter(
|
||||
(val) => val.attrType === child.name
|
||||
)[0]
|
||||
if (obj) {
|
||||
data.note1 = obj.attrValue
|
||||
}
|
||||
} else {
|
||||
switch (data.name) {
|
||||
case '算法名称':
|
||||
case '应用名称':
|
||||
case '组件名称':
|
||||
case '图层名称':
|
||||
data.note1 = item.name
|
||||
break
|
||||
case '算法描述':
|
||||
case '应用描述':
|
||||
case '组件描述':
|
||||
case '图层描述':
|
||||
data.note1 = item.description
|
||||
break
|
||||
case '共享条件':
|
||||
data.note1 = item.shareCondition
|
||||
break
|
||||
case '共享类型':
|
||||
data.note1 = item.shareType
|
||||
break
|
||||
case '服务接口':
|
||||
data.note1 = item.apiUrl
|
||||
break
|
||||
case '接口请求方式':
|
||||
data.note1 = item.apiMethodType
|
||||
break
|
||||
case '访问地址':
|
||||
data.note1 = item.link
|
||||
break
|
||||
case '部门联系人':
|
||||
data.note1 = item.deptContacts
|
||||
break
|
||||
case '部门联系人电话':
|
||||
data.note1 = item.deptPhone
|
||||
break
|
||||
case '归属部门':
|
||||
data.note1 = item.deptId
|
||||
break
|
||||
case '能力类型':
|
||||
data.note1 = item.type
|
||||
break
|
||||
default:
|
||||
// eslint-disable-next-line no-case-declarations
|
||||
const obj1 = item.infoList.filter(
|
||||
(val) => val.attrType === data.name
|
||||
)[0]
|
||||
if (obj1) {
|
||||
data.note1 = obj1.attrValue
|
||||
}
|
||||
break
|
||||
}
|
||||
if (
|
||||
data.type === 'image' ||
|
||||
data.type === 'file' ||
|
||||
data.type === 'video'
|
||||
) {
|
||||
const obj1 = item.infoList.filter(
|
||||
(val) => val.attrType === data.name
|
||||
)[0]
|
||||
if (obj1) {
|
||||
data.note2 = obj1.note2
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
this.submitFrom.id = item.id
|
||||
this.showPutOnTheShelfFlag2 = true
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.el-tooltip__popper {
|
||||
max-width: 50%;
|
||||
}
|
||||
// ::v-deep .el-table .cell {
|
||||
// width: 200px;
|
||||
// }
|
||||
::v-deep .el-upload-list__item-name {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
|
@ -16,7 +16,7 @@
|
|||
</el-transfer>
|
||||
</div>
|
||||
<div v-else-if="type==='数据资源'" class="dataTransfer">
|
||||
<el-transfer v-model="selectedArray" filter-placeholder="请输入名称"
|
||||
<!-- <el-transfer v-model="selectedArray" filter-placeholder="请输入名称"
|
||||
:titles="nameArray" :props="{
|
||||
key: 'id',
|
||||
label: 'name',
|
||||
|
@ -26,9 +26,10 @@
|
|||
v-model="searchValue"
|
||||
placeholder="请输入名称"
|
||||
></el-input>
|
||||
<el-button @click="rest" class="restClick">重置</el-button>
|
||||
<el-button @click="rest" class="restClick">重置</el-button> -->
|
||||
<data-resource-tranfer @updateData="updateResourceDataForm" :selected-data="selectedData" :type="type"></data-resource-tranfer>
|
||||
</div>
|
||||
<el-pagination
|
||||
<!-- <el-pagination
|
||||
v-if="type==='数据资源'"
|
||||
:current-page="currentPage"
|
||||
:page-size="15"
|
||||
|
@ -36,7 +37,7 @@
|
|||
:total="total"
|
||||
@current-change="pageCurrentChangeHandle"
|
||||
>
|
||||
</el-pagination>
|
||||
</el-pagination> -->
|
||||
<template slot="footer">
|
||||
<el-button @click="showModal = false">{{ $t("cancel") }}</el-button>
|
||||
<el-button type="primary" @click="confirmSubmitHandle()">{{
|
||||
|
@ -52,7 +53,7 @@
|
|||
<script>
|
||||
import InfrastructureModal from '../assignedScene/components/infrastructure-modal.vue'
|
||||
import DisplayList from '../assignedScene/components/display-list.vue'
|
||||
|
||||
import dataResourceTranfer from './data-resource-tranfer.vue'
|
||||
const sjzyArray = [
|
||||
{
|
||||
zyname: '城阳区图书馆总分馆、社区图书室明细信息',
|
||||
|
@ -199,7 +200,9 @@ export default {
|
|||
total: 0,
|
||||
currentPage: 1,
|
||||
newNum: 1,
|
||||
searchValue: ''
|
||||
searchValue: '',
|
||||
selectedData:[],
|
||||
newResourceData:[]
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
@ -223,22 +226,34 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
async getDataInfo (dataForm) {
|
||||
console.log('dataForm-----====',dataForm);
|
||||
console.log('this.type',this.type);
|
||||
await this.getData()
|
||||
const arr = []
|
||||
const attrValue = dataForm.fuseResourceList.filter(v => v.type == this.type)
|
||||
const attrValue = dataForm.fuseResourceList.filter(v => v.type == this.type);
|
||||
this.selectedData = attrValue;
|
||||
if (attrValue.length > 0) {
|
||||
attrValue.map(val => {
|
||||
const _obj = {
|
||||
if(val.type==="数据资源"){
|
||||
const _obj = {
|
||||
type: val.type,
|
||||
id: val.resourceId,
|
||||
name: val.resource && val.resource.name
|
||||
name: val.resource && val.resource.resourceName,
|
||||
}
|
||||
arr.push(_obj)
|
||||
}else{
|
||||
const _obj = {
|
||||
type: val.type,
|
||||
id: val.resourceId,
|
||||
name: val.resource && val.resource.name,
|
||||
}
|
||||
arr.push(_obj)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 展示
|
||||
this.displayList = JSON.parse(JSON.stringify(arr))
|
||||
this.displayList = JSON.parse(JSON.stringify(arr));
|
||||
this.displayList = Array.from(new Set(this.displayList))
|
||||
// 已选中
|
||||
this.selectedArray = arr.map(v => v.id)
|
||||
this.$nextTick(() => {
|
||||
|
@ -277,7 +292,7 @@ export default {
|
|||
this.$http[this.getDataParams.methods](this.getDataParams.url,
|
||||
this.getDataParams.postData
|
||||
).then(res => {
|
||||
console.log('res.data----获取列表-------->', res.data)
|
||||
console.log('res.data----数据资源获取列表-------->', res.data)
|
||||
this.total = Number(res.data.data.rows)
|
||||
if (res.data.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
|
@ -288,20 +303,61 @@ export default {
|
|||
this.transferData.push({
|
||||
type: this.type,
|
||||
id: v.guid,
|
||||
name: v.zyname || '--'
|
||||
name: v.zyname || '--',
|
||||
deptName:v.TGBM,
|
||||
resourceName:v.zyname
|
||||
})
|
||||
})
|
||||
this.allData = JSON.parse(JSON.stringify(this.transferData))
|
||||
this.allData = JSON.parse(JSON.stringify(this.transferData));
|
||||
//console.log('this.transferData======43434',this.transferData);
|
||||
//console.log('res.data----retretryry-------->', this.transferData)
|
||||
}).catch(err => {
|
||||
this.$message.error(err)
|
||||
this.$message.error('未搜索到相关数据资源')
|
||||
})
|
||||
}
|
||||
},
|
||||
//接受数据资源数据
|
||||
updateResourceDataForm(data){
|
||||
let obj = {};
|
||||
data = data.list.reduce(function(item, next) {
|
||||
obj[next.id] ? '' : obj[next.id] = true && item.push(next);
|
||||
return item;
|
||||
}, []);
|
||||
console.log('变化后的数据222',data);
|
||||
this.newResourceData = data;
|
||||
},
|
||||
filterMethod (query, item) {
|
||||
console.log('1111111111111111111111111')
|
||||
return item.name && item.name.indexOf(query) > -1
|
||||
},
|
||||
confirmSubmitHandle () {
|
||||
if(this.type === "数据资源"){
|
||||
//通过选中的数据去查找原始列表数据
|
||||
// let selectedObjectList = [];
|
||||
// this.selectedArray.forEach((item)=>{
|
||||
// let filterData = [];
|
||||
// filterData = this.allData.filter(v => v.id == item);
|
||||
// //console.log('filterDatafilterData',filterData);
|
||||
// selectedObjectList.push(filterData[0]);
|
||||
// });
|
||||
// this.$emit('update', {
|
||||
// title: this.type,
|
||||
// list: selectedObjectList
|
||||
// })
|
||||
if (this.newResourceData.length > this.maxNum) {
|
||||
return this.$message.error('最多选择十条数据!')
|
||||
}
|
||||
this.$emit('update', {
|
||||
title: this.type,
|
||||
list: this.newResourceData
|
||||
});
|
||||
this.displayList = this.newResourceData;
|
||||
this.showModal = false
|
||||
}else{
|
||||
this.$emit('update', {
|
||||
title: this.type,
|
||||
list: this.selectedArray
|
||||
})
|
||||
if (this.selectedArray.length > this.maxNum) {
|
||||
return this.$message.error('最多选择十条数据!')
|
||||
}
|
||||
|
@ -312,10 +368,12 @@ export default {
|
|||
this.displayList.push(v)
|
||||
}
|
||||
})
|
||||
this.$emit('update', {
|
||||
title: this.type,
|
||||
list: this.selectedArray
|
||||
})
|
||||
this.displayList = Array.from(new Set(this.displayList))
|
||||
console.log(this.selectedArray, this.displayList, 'this.displayList')
|
||||
}
|
||||
},
|
||||
handleChange(){
|
||||
//console.log('222222',this.selectedArray);
|
||||
},
|
||||
getDisplay (displayList) {
|
||||
this.displayList = []
|
||||
|
@ -345,9 +403,10 @@ export default {
|
|||
this.getData()
|
||||
}
|
||||
},
|
||||
components: { InfrastructureModal, DisplayList },
|
||||
components: { InfrastructureModal, DisplayList,dataResourceTranfer },
|
||||
mounted () {
|
||||
console.log(this.type, 'this.type')
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,415 @@
|
|||
<template>
|
||||
<div class="transfer">
|
||||
<div class="leftTransfer">
|
||||
<div class="leftTransfer_title">
|
||||
<el-checkbox
|
||||
:indeterminate="left.isIndeterminate"
|
||||
v-model="left.checkAll"
|
||||
@change="leftHandleCheckAllChange"
|
||||
>{{ titles[0] }}</el-checkbox
|
||||
>
|
||||
<span
|
||||
>{{ left.transferDataChecked.length }}/{{
|
||||
left.transferData.length
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
<el-input
|
||||
@input="transferInputLeft"
|
||||
class="transfer_input"
|
||||
placeholder="请输入内容"
|
||||
prefix-icon="el-icon-search"
|
||||
v-model="left.inputValue"
|
||||
>
|
||||
</el-input>
|
||||
<el-checkbox-group
|
||||
class="transfer_group"
|
||||
v-model="left.transferDataChecked"
|
||||
@change="leftHandleCheckedCitiesChange"
|
||||
>
|
||||
<el-checkbox
|
||||
v-for="item in left.transferData"
|
||||
:label="item"
|
||||
:key="item[defaultProps.id]"
|
||||
>{{ item[defaultProps.label] }}</el-checkbox
|
||||
>
|
||||
</el-checkbox-group>
|
||||
<el-pagination
|
||||
:current-page="currentPage"
|
||||
:page-size="15"
|
||||
layout="total, prev, pager, next"
|
||||
:total="total"
|
||||
@current-change="handleCurrentChange"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
<div class="transferButton">
|
||||
<el-button type="primary" @click="push">></el-button>
|
||||
<el-button type="primary" @click="del">{{ "<" }}</el-button>
|
||||
</div>
|
||||
<div class="rightTransfer">
|
||||
<div class="rightTransfer_title">
|
||||
<el-checkbox
|
||||
:indeterminate="right.isIndeterminate"
|
||||
v-model="right.checkAll"
|
||||
@change="rightHandleCheckAllChange"
|
||||
>{{ titles[1] }}</el-checkbox
|
||||
>
|
||||
<span
|
||||
>{{ right.transferDataChecked.length }}/{{
|
||||
right.transferData.length
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
<el-input
|
||||
@input="transferInputRight"
|
||||
class="transfer_input"
|
||||
placeholder="请输入内容"
|
||||
prefix-icon="el-icon-search"
|
||||
v-model="right.inputValue"
|
||||
>
|
||||
</el-input>
|
||||
<div style="margin: 5px 0"></div>
|
||||
<el-checkbox-group
|
||||
class="transfer_group"
|
||||
v-model="right.transferDataChecked"
|
||||
@change="rightHandleCheckedCitiesChange"
|
||||
>
|
||||
<el-checkbox
|
||||
v-for="item in right.transferData"
|
||||
:label="item"
|
||||
:key="item[defaultProps.id]"
|
||||
>{{ item[defaultProps.label] }}</el-checkbox
|
||||
>
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//import { listUser } from "@/api/system/user";
|
||||
export default {
|
||||
name: "transferPage",
|
||||
props: {
|
||||
titles: {
|
||||
type: Array,
|
||||
default: () => ["待选列表", "已选列表"],
|
||||
},
|
||||
selectedData: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
left: {
|
||||
inputValue: "",
|
||||
isIndeterminate: false, //半选按钮
|
||||
checkAll: false, //是否点击全选
|
||||
transferData: [], //穿梭框左侧全部数据
|
||||
transferDataAll: [], //穿梭框左侧全部数据记录
|
||||
transferDataChecked: [], //穿梭框左侧选中数据
|
||||
},
|
||||
right: {
|
||||
inputValue: "",
|
||||
isIndeterminate: false, //半选按钮
|
||||
checkAll: false, //是否点击全选
|
||||
transferData: [], //穿梭框右侧全部数据
|
||||
transferDataAll: [], //穿梭框左侧全部数据记录
|
||||
transferDataChecked: [], //穿梭框右侧选中数据
|
||||
},
|
||||
total: 0,
|
||||
currentPage: 1,
|
||||
queryParams: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
},
|
||||
getDataParams:{
|
||||
methods: "post",
|
||||
url: "/resource/getDataResource",
|
||||
postData: {
|
||||
serviceName: "",
|
||||
orderField: "fbrq",
|
||||
orderType: "desc",
|
||||
pageNum: 1,
|
||||
pageSize: 15
|
||||
}
|
||||
},
|
||||
defaultProps: {
|
||||
label: "name",
|
||||
id: "id",
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.initTransferData();
|
||||
},
|
||||
watch: {
|
||||
// selectedData:{
|
||||
// handler (newName, oldName) {
|
||||
// console.log('接受到的已经选中的值',newName);
|
||||
// this.right.transferData = newName
|
||||
// }
|
||||
// },
|
||||
right: {
|
||||
handler (newName, oldName) {
|
||||
//console.log('nnnnnn传递过去的值',newName);
|
||||
this.$emit('updateData', {
|
||||
title: "选中的数据资源",
|
||||
list: newName.transferData
|
||||
})
|
||||
},
|
||||
immediate: false,
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 初始化数据
|
||||
initTransferData() {
|
||||
this.$http[this.getDataParams.methods](this.getDataParams.url,
|
||||
this.getDataParams.postData
|
||||
).then(response => {
|
||||
console.log('数据资源response---->',response.data.data.data);
|
||||
let responseDataList = [];
|
||||
(response.data.data.data || []).map(v => {
|
||||
responseDataList.push({
|
||||
type: this.type,
|
||||
id: v.guid,
|
||||
name: v.zyname || '--',
|
||||
deptName:v.TGBM,
|
||||
resourceName:v.zyname
|
||||
})
|
||||
});
|
||||
this.left.transferData = responseDataList;
|
||||
this.left.transferData.map((item, index) => {
|
||||
item.current = this.currentPage;
|
||||
});
|
||||
this.total = Number(response.data.data.rows);
|
||||
this.left.transferDataAll = this.left.transferData;
|
||||
// 获得一个右边的数据,只有纯id
|
||||
let checkedIdArr = this.right.transferData.map((item) => {
|
||||
return item[this.defaultProps.id];
|
||||
});
|
||||
// 左侧数据删除
|
||||
this.left.transferData = this.left.transferData.filter((item) => {
|
||||
if (!checkedIdArr.includes(item[this.defaultProps.id])) {
|
||||
return item;
|
||||
}
|
||||
});
|
||||
});
|
||||
let selectedDataRight = [];
|
||||
this.selectedData = JSON.parse(JSON.stringify(this.selectedData));
|
||||
(this.selectedData || []).map(v => {
|
||||
selectedDataRight.push({
|
||||
type: v.resource.type,
|
||||
id: v.resource.resourceId,
|
||||
name: v.resource.resourceName,
|
||||
deptName:v.resource.deptName,
|
||||
})
|
||||
});
|
||||
selectedDataRight.map(v => {
|
||||
this.right.transferData.push(v);
|
||||
});
|
||||
let obj = {};
|
||||
this.right.transferData = this.right.transferData.reduce(function(item, next) {
|
||||
obj[next.id] ? '' : obj[next.id] = true && item.push(next);
|
||||
return item;
|
||||
}, []);
|
||||
this.right.transferDataAll = this.right.transferData;
|
||||
//console.log('this.selectedData',this.selectedData);
|
||||
//console.log('left',this.left);
|
||||
//console.log('rigth',this.right);
|
||||
},
|
||||
// 左侧是否点击全选
|
||||
leftHandleCheckAllChange(val) {
|
||||
this.left.transferDataChecked = val ? this.left.transferData : [];
|
||||
this.left.isIndeterminate = false;
|
||||
},
|
||||
// 左侧勾选数据
|
||||
leftHandleCheckedCitiesChange(value) {
|
||||
let checkedCount = value.length;
|
||||
this.left.checkAll = checkedCount === this.left.transferData.length;
|
||||
this.left.isIndeterminate =
|
||||
checkedCount > 0 && checkedCount < this.left.transferData.length;
|
||||
},
|
||||
// 左侧是否点击全选
|
||||
rightHandleCheckAllChange(val) {
|
||||
this.right.transferDataChecked = val ? this.right.transferData : [];
|
||||
this.right.isIndeterminate = false;
|
||||
},
|
||||
// 右侧勾选数据
|
||||
rightHandleCheckedCitiesChange(value) {
|
||||
let checkedCount = value.length;
|
||||
this.right.checkAll = checkedCount === this.right.transferData.length;
|
||||
this.right.isIndeterminate =
|
||||
checkedCount > 0 && checkedCount < this.right.transferData.length;
|
||||
},
|
||||
// 穿梭框选中数据
|
||||
push() {
|
||||
// 数据移到右侧
|
||||
this.right.transferData = [
|
||||
...this.right.transferData,
|
||||
...this.left.transferDataChecked,
|
||||
].sort((a, b) => {
|
||||
return a[this.defaultProps.id] - b[this.defaultProps.id];
|
||||
});
|
||||
this.right.transferDataAll = this.right.transferData;
|
||||
// 获得一个右边的数据,只有纯id
|
||||
let checkedIdArr = this.right.transferData.map((item) => {
|
||||
return item[this.defaultProps.id];
|
||||
});
|
||||
// 左侧数据删除
|
||||
this.left.transferData = this.left.transferData.filter((item) => {
|
||||
if (!checkedIdArr.includes(item[this.defaultProps.id])) {
|
||||
return item;
|
||||
}
|
||||
});
|
||||
this.left.transferDataAll = this.left.transferData;
|
||||
// 每次推送完之后,重置选中框
|
||||
this.left.transferDataChecked = [];
|
||||
this.left.isIndeterminate = false;
|
||||
this.left.checkAll = false;
|
||||
},
|
||||
// 穿梭框删除数据 回显的时候根据current回显到当前
|
||||
del() {
|
||||
//过滤当前页选中的数据
|
||||
let arr = this.right.transferDataChecked.filter((item) => {
|
||||
if (this.queryParams.current == item.current) {
|
||||
return item;
|
||||
}
|
||||
});
|
||||
// 数据移到左侧
|
||||
this.left.transferData = [...this.left.transferData, ...arr].sort(
|
||||
(a, b) => {
|
||||
return a[this.defaultProps.id] - b[this.defaultProps.id];
|
||||
}
|
||||
);
|
||||
this.left.transferDataAll = this.left.transferData;
|
||||
// 获得一个右边的数据,只有纯id
|
||||
let checkedIdArr = this.right.transferDataChecked.map((item) => {
|
||||
return item[this.defaultProps.id];
|
||||
});
|
||||
// 删除选中的数据
|
||||
this.right.transferData = this.right.transferData.filter((item) => {
|
||||
if (!checkedIdArr.includes(item[this.defaultProps.id])) {
|
||||
return item;
|
||||
}
|
||||
});
|
||||
this.right.transferDataAll = this.right.transferData;
|
||||
// 每次推送完之后,重置选中框
|
||||
this.right.transferDataChecked = [];
|
||||
this.right.isIndeterminate = false;
|
||||
this.right.checkAll = false;
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
//console.log('valval',val);
|
||||
this.getDataParams.postData.pageNum = val;
|
||||
this.initTransferData();
|
||||
},
|
||||
transferInputLeft() {
|
||||
if (this.left.inputValue) {
|
||||
this.left.transferData = this.left.transferData.filter(
|
||||
(p) => p[this.defaultProps.label].indexOf(this.left.inputValue) !== -1
|
||||
);
|
||||
} else {
|
||||
this.left.transferData = this.left.transferDataAll;
|
||||
}
|
||||
},
|
||||
transferInputRight() {
|
||||
if (this.right.inputValue) {
|
||||
this.right.transferData = this.right.transferData.filter(
|
||||
(p) =>
|
||||
p[this.defaultProps.label].indexOf(this.right.inputValue) !== -1
|
||||
);
|
||||
} else {
|
||||
this.right.transferData = this.right.transferDataAll;
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.transfer {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin: 0 auto;
|
||||
.transferButton {
|
||||
.el-button {
|
||||
display: block;
|
||||
margin: 10px 0;
|
||||
}
|
||||
}
|
||||
.el-checkbox {
|
||||
line-height: 30px;
|
||||
}
|
||||
.transfer_input {
|
||||
margin: 10px 15px 0 15px;
|
||||
width: 85%;
|
||||
.el-input--medium .el-input__inner {
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
}
|
||||
.leftTransfer,
|
||||
.rightTransfer {
|
||||
height: 510px;
|
||||
border: 1px solid #e6ebf5;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
background: #ffffff;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 360px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
margin: 0 10px;
|
||||
|
||||
.el-checkbox {
|
||||
display: block;
|
||||
}
|
||||
.el-input {
|
||||
position: absolute;
|
||||
font-size: 14px;
|
||||
display: inline-block;
|
||||
width: 70%;
|
||||
top: 40px;
|
||||
}
|
||||
.pagination {
|
||||
position: absolute;
|
||||
bottom: -8px;
|
||||
right: 0;
|
||||
}
|
||||
.leftTransfer_title,
|
||||
.rightTransfer_title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
background: #f5f7fa;
|
||||
margin: 0;
|
||||
padding-left: 15px;
|
||||
border-bottom: 1px solid #e6ebf5;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
color: #000000;
|
||||
padding-right: 15px;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
.transfer_group {
|
||||
padding-left: 15px;
|
||||
margin-top: 50px;
|
||||
height: 390px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,172 @@
|
|||
<template>
|
||||
<div class="tag-directory-box">
|
||||
<div class="left-tree-box">
|
||||
<el-form :inline="true" :model="dataForm" style="margin-left:10px">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.dictLabel" placeholder="标签名称" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="query">标签检索</el-button>
|
||||
</el-form-item>
|
||||
<div class="tree-box">
|
||||
<el-tree ref="treeDom" class="filter-tree" :data="dataListCopy" :props="defaultProps" node-key="id"
|
||||
:highlight-current="true" :default-expanded-keys="[defaultNode]" @node-click="handleNodeClick"
|
||||
:filter-node-method="filterNode">
|
||||
</el-tree>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="right-detail">
|
||||
<div class="title">标签详情查看</div>
|
||||
<el-form :model="rowData" label-width="120px">
|
||||
<el-form-item prop="dictName" label="标签名称">
|
||||
<el-input v-model="rowData.dictName" :placeholder="$t('dict.dictName')"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="dictType" label="标签编号">
|
||||
<el-input v-model="rowData.dictType" placeholder="标签编号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="dictType" label="标签分类" style="width:100%">
|
||||
<el-input v-model="rowData.dictType" placeholder="标签分类"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="remark" :label="$t('dict.remark')" style="width:100%">
|
||||
<el-input type="textarea" :rows="4" v-model="rowData.remark" :placeholder="$t('dict.remark')">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/sys/dict/type/page',
|
||||
getDataListIsPage: true,
|
||||
deleteURL: '/sys/dict/type',
|
||||
deleteIsBatch: true
|
||||
},
|
||||
dataForm: {
|
||||
id: '0',
|
||||
dictName: '',
|
||||
dictType: '',
|
||||
dictLabel: '',
|
||||
limit: 99999999,
|
||||
},
|
||||
filterText: '',
|
||||
dataList: [],
|
||||
dataListCopy: [],
|
||||
defaultProps: {
|
||||
children: 'sysDictDataDTOList',
|
||||
label: 'dictName'
|
||||
},
|
||||
defaultNode: '',
|
||||
rowData: {},
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.treeDom.filter(val);
|
||||
},
|
||||
dataList: {
|
||||
handler(newVal) {
|
||||
this.dataListCopy = [];
|
||||
this.defaultNode = null;
|
||||
this.rowData = {};
|
||||
newVal.map((v, i) => {
|
||||
v.id = `${v.id}`;
|
||||
if (i == 0) {
|
||||
this.defaultNode = v.id;
|
||||
this.rowData = v;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.treeDom.setCurrentKey(this.defaultNode); //一定要加这个选中了否则样式没有出来
|
||||
});
|
||||
}
|
||||
if (v.sysDictDataDTOList && v.sysDictDataDTOList.length && v.sysDictDataDTOList.length > 0) {
|
||||
v.sysDictDataDTOList.map(x => {
|
||||
x.id = `${x.id}`;
|
||||
x.dictName = x.dictLabel;
|
||||
return x
|
||||
})
|
||||
}
|
||||
this.dataListCopy.push(v)
|
||||
})
|
||||
},
|
||||
deep: true,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
filterNode(value, data) {
|
||||
if (!value) return true;
|
||||
return data.label.indexOf(value) !== -1;
|
||||
},
|
||||
handleNodeClick(data) {
|
||||
this.rowData = data
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.tag-directory-box {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
::v-deep .el-tree {
|
||||
min-height: calc(calc(100vh - 50px - 38px - 30px) - 164px);
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
::v-deep .el-tree-node__content {
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
::v-deep .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
|
||||
background: #0058e1;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.left-tree-box {
|
||||
// width: 350px;
|
||||
padding: 20px 0;
|
||||
// min-height: calc(calc(100vh - 50px - 38px - 30px) - 62px);
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.right-detail {
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
padding: 20px;
|
||||
min-height: calc(calc(100vh - 50px - 38px - 30px) - 62px);
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.right-detail {
|
||||
|
||||
.el-form {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.el-form-item {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
line-height: 24px;
|
||||
font-size: 20px;
|
||||
color: #303133;
|
||||
padding-bottom: 25px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
<template>
|
||||
<el-dialog :visible.sync="visible" title="生命周期管理" :close-on-click-modal="false" :close-on-press-escape="false">
|
||||
<div class="title">{{ rowData.dictName }}</div>
|
||||
<el-table :data="dataList" border style="width: 100%;">
|
||||
<el-table-column prop="status" label="状态" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="time" label="时间" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="remark" label="备注" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="operator" label="操作者" header-align="center" align="center"></el-table-column>
|
||||
</el-table>
|
||||
<template slot="footer">
|
||||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
dataList: [
|
||||
{
|
||||
status: '创建',
|
||||
time: '2022-10-11',
|
||||
remark: '创建',
|
||||
operator: '管理员'
|
||||
},
|
||||
{
|
||||
status: '修改',
|
||||
time: '2022-09-24',
|
||||
remark: '修改标签描述',
|
||||
operator: '管理员'
|
||||
},
|
||||
{
|
||||
status: '修改',
|
||||
time: '2022-09-19',
|
||||
remark: '补充城市管理标签页',
|
||||
operator: '城管账号'
|
||||
},
|
||||
{
|
||||
status: '删除',
|
||||
time: '2022-08-11',
|
||||
remark: '停止使用',
|
||||
operator: '管理员'
|
||||
},
|
||||
],
|
||||
rowData: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.title {
|
||||
line-height: 24px;
|
||||
font-size: 20px;
|
||||
color: #303133;
|
||||
padding-bottom: 25px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,102 @@
|
|||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<div class="mod-sys__dict">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.dictName" placeholder="分类名称" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="addOrUpdateHandle()">新增标签分类</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border
|
||||
@selection-change="dataListSelectionChangeHandle" @sort-change="dataListSortChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column prop="dictName" label="分类名称" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="remark" label="描述" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="dictType" label="编号" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="状态" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.status == 1 ? '启用' : '禁用' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" header-align="center" align="center" width="280">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
|
||||
<el-button type="text" size="small" @click="handleClick()">{{ scope.row.status
|
||||
== 1 ? '禁用' : '启用'
|
||||
}}</el-button>
|
||||
<el-button type="text" @click="childHandle(scope.row)">新建标签</el-button>
|
||||
<el-button type="text" size="small" @click="showLife(scope.row)">生命周期管理</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
<!-- 生命周期管理 -->
|
||||
<TagSysBuildLife ref="lifeModal" @refreshDataList="getDataList"></TagSysBuildLife>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import AddOrUpdate from '../tag-type-add-or-update'
|
||||
import TagSysBuildLife from './tag-sys-build-life'
|
||||
import { addDynamicRoute } from '@/router'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/sys/dict/type/page',
|
||||
getDataListIsPage: true,
|
||||
// deleteURL: '/sys/dict/type',
|
||||
deleteIsBatch: false
|
||||
},
|
||||
dataForm: {
|
||||
id: '0',
|
||||
dictName: '',
|
||||
dictType: '',
|
||||
dictLabel: '',
|
||||
},
|
||||
rowClickData: {},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
AddOrUpdate, TagSysBuildLife
|
||||
},
|
||||
methods: {
|
||||
// 子级
|
||||
childHandle(row) {
|
||||
// 路由参数
|
||||
const routeParams = {
|
||||
routeName: `${this.$route.name}__${row.id}`,
|
||||
title: `${this.$route.meta.title} - ${row.dictType}`,
|
||||
path: 'ability/tag-data',
|
||||
params: {
|
||||
dictTypeId: row.id
|
||||
}
|
||||
}
|
||||
// 动态路由
|
||||
addDynamicRoute(routeParams, this.$router)
|
||||
},
|
||||
// 生命周期管理
|
||||
showLife(row) {
|
||||
this.$refs.lifeModal.visible = true;
|
||||
this.$refs.lifeModal.rowData = row;
|
||||
},
|
||||
handleClick() {
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,357 @@
|
|||
<template>
|
||||
<div>
|
||||
<div class="mod-ability__bsabilityai">
|
||||
<el-form :inline="true" :model="dataForm">
|
||||
<el-form-item label="资源名称">
|
||||
<el-input
|
||||
v-model="dataForm.name"
|
||||
placeholder="请输入资源名称"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="query(dataForm.name)">{{
|
||||
$t("query")
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="reset">重置</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="yunadd('add',null)"
|
||||
>上架</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:delete')"
|
||||
type="danger"
|
||||
@click="reset"
|
||||
>{{ $t('deleteBatch') }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList1"
|
||||
border
|
||||
@selection-change="dataListSelectionChangeHandle"
|
||||
style="width: 100%"
|
||||
height="650px"
|
||||
>
|
||||
<el-table-column
|
||||
prop="a"
|
||||
label="摄像头名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="b"
|
||||
label="摄像头编号"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="c"
|
||||
label="位置"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="d"
|
||||
label="提供部门"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="e"
|
||||
label="提供地市"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="yunadd('update',scope.row)"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="yunadd('detail',scope.row)"
|
||||
>详情</el-button
|
||||
>
|
||||
|
||||
<!-- <el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="reset"
|
||||
>删除</el-button
|
||||
> -->
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="reset"
|
||||
>标签化</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="Number(10)"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
||||
<!--新增-->
|
||||
<el-dialog title="视频资源" :visible.sync="yunshow" width="720px" class="status_change">
|
||||
<el-form :inline="true" label-width="120px">
|
||||
<div class="form-minwidth-style">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="摄像头名称:">
|
||||
<el-input v-model="yunaddForm.a"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="摄像头编号:">
|
||||
<el-input v-model="yunaddForm.b"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="位置:">
|
||||
<el-input v-model="yunaddForm.a"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="提供部门:">
|
||||
<el-input v-model="yunaddForm.b"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="提供地市:">
|
||||
<el-input v-model="yunaddForm.d"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="yunshow = false">取 消</el-button>
|
||||
<el-button type="primary" @click="yunshow = false">确 定</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mixinViewModule from "@/mixins/view-module";
|
||||
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data() {
|
||||
return {
|
||||
yunaddForm: {
|
||||
a: "",
|
||||
b: "",
|
||||
c: "",
|
||||
d: "",
|
||||
e: "",
|
||||
f: "",
|
||||
g:"",
|
||||
h:"",
|
||||
i:"",
|
||||
j:"",
|
||||
},
|
||||
|
||||
total: 10,
|
||||
choose: 1,
|
||||
yunshow: false,
|
||||
wangshow:false,
|
||||
dataList1: [
|
||||
{
|
||||
"a": "市北区顺昌路改造项目大门",
|
||||
"b": "101_37020201581314000511",
|
||||
"c": "市北区顺昌路",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
},
|
||||
{
|
||||
"a": "青城建设蚌埠路以北宁乡路以西门",
|
||||
"b": "101_37020201581314000514",
|
||||
"c": "青城建设蚌埠路以北宁乡路",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
},
|
||||
{
|
||||
"a": "青房建安幸福家园三期现场",
|
||||
"b": "101_37020201581314000518",
|
||||
"c": "青房建安幸福家园",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
},
|
||||
{
|
||||
"a": "一建公共卫生中心大门",
|
||||
"b": "101_37020201581314000519",
|
||||
"c": "一建公共卫生中心",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
},
|
||||
{
|
||||
"a": "中建筑港中国钢研院一钢一研塔吊",
|
||||
"b": "101_37020201581314000529",
|
||||
"c": "市北区顺昌路",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
},
|
||||
{
|
||||
"a": "现场",
|
||||
"b": "101_37020201581314001008",
|
||||
"c": "市北区顺昌路",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
},
|
||||
{
|
||||
"a": "高位1",
|
||||
"b": "101_37020201581314001037",
|
||||
"c": "市北区顺昌路",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
},
|
||||
{
|
||||
"a": "门口洗车",
|
||||
"b": "101_37020201581314001038",
|
||||
"c": "市北区顺昌路",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
},
|
||||
{
|
||||
"a": "大门口",
|
||||
"b": "101_37020201581314001039",
|
||||
"c": "市北区顺昌路",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
},
|
||||
{
|
||||
"a": "中青建安隆德花园现场",
|
||||
"b": "101_37020201581314001359",
|
||||
"c": "市北区顺昌路",
|
||||
"d": "市住房城乡建设局",
|
||||
"e": "市南区"
|
||||
}
|
||||
],
|
||||
dataForm: {
|
||||
name: "",
|
||||
},
|
||||
};
|
||||
},
|
||||
watch: {},
|
||||
components: {},
|
||||
created() {},
|
||||
mounted() {},
|
||||
methods: {
|
||||
handleChose(index) {
|
||||
this.choose = index;
|
||||
},
|
||||
reset() {},
|
||||
query() {},
|
||||
//云资源新增
|
||||
yunadd(type,row) {
|
||||
if(type=='add'){
|
||||
this.yunaddForm.a=""
|
||||
this.yunaddForm.b=""
|
||||
this.yunaddForm.c=""
|
||||
this.yunaddForm.d=""
|
||||
this.yunaddForm.e=""
|
||||
this.yunaddForm.f=""
|
||||
this.yunaddForm.g=""
|
||||
}else{
|
||||
this.yunaddForm.a=row.a
|
||||
this.yunaddForm.b=row.b
|
||||
this.yunaddForm.c=row.c
|
||||
this.yunaddForm.d=row.d
|
||||
this.yunaddForm.e=row.e
|
||||
this.yunaddForm.f=row.f
|
||||
this.yunaddForm.g=row.g
|
||||
}
|
||||
this.yunshow = true;
|
||||
},
|
||||
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.status_change {
|
||||
::v-deep .el-dialog__header{
|
||||
background-color:#0058e1;
|
||||
padding: 10px 10px 10px;
|
||||
.el-dialog__title,.el-dialog__headerbtn i{
|
||||
color: white;
|
||||
}
|
||||
|
||||
}
|
||||
.dialog-footer{
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.form-minwidth-style {
|
||||
width: 660px;
|
||||
}
|
||||
.second-title {
|
||||
border-radius: 2px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 22px;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
background: #ebe5e5;
|
||||
width: 200px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
display: table;
|
||||
}
|
||||
|
||||
.departmentStyle {
|
||||
display: table-cell;
|
||||
width: 50%;
|
||||
color: #fff;
|
||||
background-color: #0058e1;
|
||||
font-weight: bolder;
|
||||
}
|
||||
.departmentStyle1 {
|
||||
display: table-cell;
|
||||
width: 50%;
|
||||
}
|
||||
.el-tooltip__popper {
|
||||
max-width: 50%;
|
||||
}
|
||||
// ::v-deep .el-table .cell {
|
||||
// width: 200px;
|
||||
// }
|
||||
::v-deep .el-upload-list__item-name {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,386 @@
|
|||
<template>
|
||||
<div>
|
||||
<div class="mod-ability__bsabilityai">
|
||||
<el-form :inline="true" :model="dataForm">
|
||||
<el-form-item label="资源名称">
|
||||
<el-input
|
||||
v-model="dataForm.name"
|
||||
placeholder="请输入资源名称"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="query(dataForm.name)">{{
|
||||
$t("query")
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="reset">重置</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="yunadd('add',null)"
|
||||
>盘点入库</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('ability:bsabilityai:delete')"
|
||||
type="danger"
|
||||
@click="reset"
|
||||
>{{ $t('deleteBatch') }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList1"
|
||||
border
|
||||
@selection-change="dataListSelectionChangeHandle"
|
||||
style="width: 100%"
|
||||
height="650px"
|
||||
>
|
||||
<el-table-column
|
||||
prop="a"
|
||||
label="数据名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="b"
|
||||
label="数据代码"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="c"
|
||||
label="能力描述"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="d"
|
||||
label="归属部门"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="e"
|
||||
label="注册者"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
>
|
||||
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="yunadd('update',scope.row)"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="yunadd('detail',scope.row)"
|
||||
>详情</el-button
|
||||
>
|
||||
|
||||
<!-- <el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="reset"
|
||||
>删除</el-button
|
||||
> -->
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="reset"
|
||||
>标签化</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="Number(10)"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
||||
<!--新增-->
|
||||
<el-dialog title="数据资源" :visible.sync="yunshow" width="720px" class="status_change">
|
||||
<el-form :inline="true" label-width="120px">
|
||||
<div class="form-minwidth-style">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数据名称:">
|
||||
<el-input v-model="yunaddForm.a"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数据代码:">
|
||||
<el-input v-model="yunaddForm.b"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数据描述:">
|
||||
<el-input v-model="yunaddForm.a"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数据存储方式:">
|
||||
<el-input v-model="yunaddForm.b"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数据量:">
|
||||
<el-input v-model="yunaddForm.d"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="提供方式:">
|
||||
<el-input v-model="yunaddForm.e"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="服务地址:">
|
||||
<el-input v-model="yunaddForm.f"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="提供部门:">
|
||||
<el-input v-model="yunaddForm.g"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人:">
|
||||
<el-input v-model="yunaddForm.f"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系方式:">
|
||||
<el-input v-model="yunaddForm.g"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="yunshow = false">取 消</el-button>
|
||||
<el-button type="primary" @click="yunshow = false">确 定</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mixinViewModule from "@/mixins/view-module";
|
||||
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data() {
|
||||
return {
|
||||
yunaddForm: {
|
||||
a: "",
|
||||
b: "",
|
||||
c: "",
|
||||
d: "",
|
||||
e: "",
|
||||
f: "",
|
||||
g:"",
|
||||
h:"",
|
||||
i:"",
|
||||
j:"",
|
||||
},
|
||||
|
||||
total: 10,
|
||||
choose: 1,
|
||||
yunshow: false,
|
||||
wangshow:false,
|
||||
dataList1: [
|
||||
{
|
||||
"a": "供水营业网点信息",
|
||||
"b": "307013109015000204",
|
||||
"c": "供水营业网点信息",
|
||||
"d": "西海岸新区城市管理局(区水务局)",
|
||||
"e": "张虎"
|
||||
},
|
||||
{
|
||||
"a": "新建体育公园、笼式场地",
|
||||
"b": "307013100673000036",
|
||||
"c": "新建体育公园、笼式场地",
|
||||
"d": "体育局",
|
||||
"e": "张虎"
|
||||
},
|
||||
{
|
||||
"a": "西海岸新区供水领域自然人欠费信息",
|
||||
"b": "307013109015000211",
|
||||
"c": "西海岸新区供水领域自然人欠费信息",
|
||||
"d": "西海岸新区城市管理局(区水务局)",
|
||||
"e": "李阳"
|
||||
},
|
||||
{
|
||||
"a": "西海岸新区交通运输局",
|
||||
"b": "307013109071000108",
|
||||
"c": "公交站点查询",
|
||||
"d": "西海岸新区交通运输局",
|
||||
"e": "李阳"
|
||||
},
|
||||
{
|
||||
"a": "全市主要经济指标",
|
||||
"b": "307013107004000062",
|
||||
"c": "胶州市国民经济分行业数据",
|
||||
"d": "胶州市统计局",
|
||||
"e": "李阳"
|
||||
},
|
||||
{
|
||||
"a": "乡村之星信息",
|
||||
"b": "307013100000000187",
|
||||
"c": "乡村之星信息",
|
||||
"d": "农业农村局",
|
||||
"e": "李阳"
|
||||
},
|
||||
{
|
||||
"a": "建设项目环境影响评价审批信息",
|
||||
"b": "307013107777000033",
|
||||
"c": "建设单位、建设项目、审批文号",
|
||||
"d": "生态环境局胶州分局",
|
||||
"e": "王二生"
|
||||
},
|
||||
{
|
||||
"a": "新时代文明实践阵地信息表",
|
||||
"b": "307013108760000022",
|
||||
"c": "镇街、阵地名称、专管员、联系电话",
|
||||
"d": "莱西市夏格庄镇人民政府",
|
||||
"e": "王二生"
|
||||
},
|
||||
{
|
||||
"a": "泊里镇非物质文化遗产信息",
|
||||
"b": "307013109000000067",
|
||||
"c": "泊里镇非物质文化遗产的名称、简介等信息",
|
||||
"d": "黄岛区泊里镇人民政府",
|
||||
"e": "王二生"
|
||||
},
|
||||
{
|
||||
"a": "人才住房建设情况",
|
||||
"b": "307013100482000025",
|
||||
"c": "人才住房项目数量、人才住房房屋套数、人才住房面积、人才住房目标任务房屋套数、人才住房房屋总面积",
|
||||
"d": "住房和城乡建设局",
|
||||
"e": "王二生"
|
||||
}
|
||||
],
|
||||
|
||||
dataForm: {
|
||||
name: "",
|
||||
},
|
||||
};
|
||||
},
|
||||
watch: {},
|
||||
components: {},
|
||||
created() {},
|
||||
mounted() {},
|
||||
methods: {
|
||||
handleChose(index) {
|
||||
this.choose = index;
|
||||
},
|
||||
reset() {},
|
||||
query() {},
|
||||
//云资源新增
|
||||
yunadd(type,row) {
|
||||
if(type=='add'){
|
||||
this.yunaddForm.a=""
|
||||
this.yunaddForm.b=""
|
||||
this.yunaddForm.c=""
|
||||
this.yunaddForm.d=""
|
||||
this.yunaddForm.e=""
|
||||
this.yunaddForm.f=""
|
||||
this.yunaddForm.g=""
|
||||
}else{
|
||||
this.yunaddForm.a=row.a
|
||||
this.yunaddForm.b=row.b
|
||||
this.yunaddForm.c=row.c
|
||||
this.yunaddForm.d=row.d
|
||||
this.yunaddForm.e=row.e
|
||||
this.yunaddForm.f=row.f
|
||||
this.yunaddForm.g=row.g
|
||||
}
|
||||
this.yunshow = true;
|
||||
},
|
||||
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.status_change {
|
||||
::v-deep .el-dialog__header{
|
||||
background-color:#0058e1;
|
||||
padding: 10px 10px 10px;
|
||||
.el-dialog__title,.el-dialog__headerbtn i{
|
||||
color: white;
|
||||
}
|
||||
|
||||
}
|
||||
.dialog-footer{
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.form-minwidth-style {
|
||||
width: 660px;
|
||||
}
|
||||
.second-title {
|
||||
border-radius: 2px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 22px;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
background: #ebe5e5;
|
||||
width: 200px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
display: table;
|
||||
}
|
||||
|
||||
.departmentStyle {
|
||||
display: table-cell;
|
||||
width: 50%;
|
||||
color: #fff;
|
||||
background-color: #0058e1;
|
||||
font-weight: bolder;
|
||||
}
|
||||
.departmentStyle1 {
|
||||
display: table-cell;
|
||||
width: 50%;
|
||||
}
|
||||
.el-tooltip__popper {
|
||||
max-width: 50%;
|
||||
}
|
||||
// ::v-deep .el-table .cell {
|
||||
// width: 200px;
|
||||
// }
|
||||
::v-deep .el-upload-list__item-name {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,100 @@
|
|||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<div class="mod-sys__dict">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.dictValue" :placeholder="$t('dict.dictValue')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.dictLabel" :placeholder="$t('dict.dictLabel')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:dict:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:dict:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"
|
||||
@sort-change="dataListSortChangeHandle" style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="dictValue" :label="$t('dict.dictValue')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="dictLabel" :label="$t('dict.dictLabel')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="sort" :label="$t('dict.sort')" sortable="custom" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="禁用/启用" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.status == 1 ? '启用' : '禁用' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" :label="$t('dict.remark')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="createDate" :label="$t('dict.createDate')" sortable="custom" header-align="center"
|
||||
align="center" width="180"></el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="$hasPermission('sys:dict:update')" type="text" size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:dict:delete')" type="text" size="small"
|
||||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import AddOrUpdate from './tag-type-add-or-update'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
createdIsNeed: false,
|
||||
getDataListURL: '/sys/dict/data/page',
|
||||
getDataListIsPage: true,
|
||||
deleteURL: '/sys/dict/data',
|
||||
deleteIsBatch: true
|
||||
},
|
||||
dataForm: {
|
||||
dictTypeId: '0',
|
||||
dictLabel: '',
|
||||
dictValue: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
created() {
|
||||
this.dataForm.dictTypeId = this.$route.params.dictTypeId || '0'
|
||||
this.getDataList()
|
||||
},
|
||||
methods: {
|
||||
// 新增 / 修改
|
||||
addOrUpdateHandle(id) {
|
||||
this.addOrUpdateVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.dataForm.id = id
|
||||
this.$refs.addOrUpdate.dataForm.dictTypeId = this.dataForm.dictTypeId
|
||||
this.$refs.addOrUpdate.init()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,84 @@
|
|||
<template>
|
||||
<el-dialog :visible.sync="visible" title="标签体系分类" :close-on-click-modal="false"
|
||||
:close-on-press-escape="false">
|
||||
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()"
|
||||
label-width="120px">
|
||||
<el-form-item prop="dictName" label="标签分类名称">
|
||||
<el-input v-model="dataForm.dictName" placeholder="标签分类名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="dictType" label="编号">
|
||||
<el-input v-model="dataForm.dictType" placeholder="编号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="remark" label="描述">
|
||||
<el-input type="textarea" :rows="4" v-model="dataForm.remark" placeholder="描述"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template slot="footer">
|
||||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
|
||||
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import debounce from 'lodash/debounce'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
dataForm: {
|
||||
id: '',
|
||||
dictName: '',
|
||||
dictType: '',
|
||||
sort: 0,
|
||||
remark: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
if (this.dataForm.id) {
|
||||
this.getInfo()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取信息
|
||||
getInfo() {
|
||||
this.$http.get(`/sys/dict/type/${this.dataForm.id}`).then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.dataForm = {
|
||||
...this.dataForm,
|
||||
...res.data
|
||||
}
|
||||
}).catch(() => { })
|
||||
},
|
||||
// 表单提交
|
||||
dataFormSubmitHandle: debounce(function () {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
this.$http[!this.dataForm.id ? 'post' : 'put']('/sys/dict/type', this.dataForm).then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
duration: 500,
|
||||
onClose: () => {
|
||||
this.visible = false
|
||||
this.$emit('refreshDataList')
|
||||
}
|
||||
})
|
||||
}).catch(() => { })
|
||||
})
|
||||
}, 1000, { 'leading': true, 'trailing': false })
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,83 @@
|
|||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill" style="background:transparent">
|
||||
<div class="tab-box">
|
||||
<div class="tab-item" v-for="(tab, i) in tabList" :key="i" @click="selectTab = tab.key"
|
||||
:class="[selectTab == tab.key ? 'tab-active' : '', i == 0 ? 'no-border-right' : '']">
|
||||
{{ tab.name }}
|
||||
</div>
|
||||
</div>
|
||||
<!-- 标签体系分类 -->
|
||||
<TagSysBuild v-if="selectTab == 'build'"></TagSysBuild>
|
||||
<!-- 标签目录管理 -->
|
||||
<TagDirectory v-if="selectTab == 'directory'"></TagDirectory>
|
||||
</el-card>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TagSysBuild from './components/tag-sys-build'
|
||||
import TagDirectory from './components/tag-directory'
|
||||
import { addDynamicRoute } from '@/router'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabList: [
|
||||
{
|
||||
name: '标签体系分类',
|
||||
key: 'build'
|
||||
}, {
|
||||
name: '标签目录管理',
|
||||
key: 'directory'
|
||||
},
|
||||
],
|
||||
selectTab: 'build'
|
||||
}
|
||||
},
|
||||
components: {
|
||||
TagSysBuild,
|
||||
TagDirectory
|
||||
},
|
||||
methods: {
|
||||
// 子级
|
||||
childHandle(row) {
|
||||
// 路由参数
|
||||
const routeParams = {
|
||||
routeName: `${this.$route.name}__${row.id}`,
|
||||
title: `${this.$route.meta.title} - ${row.dictType}`,
|
||||
// path: 'ability/tag-data',
|
||||
path: 'ability/tag',
|
||||
params: {
|
||||
dictTypeId: row.id
|
||||
}
|
||||
}
|
||||
// 动态路由
|
||||
addDynamicRoute(routeParams, this.$router)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.tab-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.tab-item {
|
||||
display: inline-block;
|
||||
padding: 10px 20px;
|
||||
cursor: pointer;
|
||||
border: 1px solid #e0e0e0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.no-border-right {
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.tab-active {
|
||||
background: #0058e1;
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,662 @@
|
|||
<template>
|
||||
<div>
|
||||
<div class="second-title">
|
||||
<div
|
||||
style="margin-right: 30px"
|
||||
:class="[choose === 1 ? 'departmentStyle' : 'departmentStyle1']"
|
||||
@click="handleChose(1)"
|
||||
>
|
||||
云资源
|
||||
</div>
|
||||
<div
|
||||
:class="[choose === 2 ? 'departmentStyle' : 'departmentStyle1']"
|
||||
@click="handleChose(2)"
|
||||
>
|
||||
网络资源
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="choose === 1" class="mod-ability__bsabilityai">
|
||||
<el-form :inline="true" :model="dataForm">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="dataForm.name"
|
||||
placeholder="请输入资源名称"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="query(dataForm.name)">{{
|
||||
$t("query")
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="yunadd('add',null)">新增</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList1"
|
||||
border
|
||||
@selection-change="dataListSelectionChangeHandle"
|
||||
style="width: 100%"
|
||||
height="650px"
|
||||
>
|
||||
<el-table-column
|
||||
prop="a"
|
||||
label="项目名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="b"
|
||||
label="主机名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="c"
|
||||
label="用途"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="d"
|
||||
label="网络区域"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="e"
|
||||
label="配置"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="f"
|
||||
label="系统盘"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="g"
|
||||
label="数据盘"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="yunadd('detail',scope.row)"
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="yunadd('update',scope.row)"
|
||||
>修改</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="Number(10)"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
<div v-if="choose === 2" class="mod-ability__bsabilityai">
|
||||
<el-form :inline="true" :model="dataForm">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="dataForm.name"
|
||||
placeholder="请输入资源名称"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="query(dataForm.name)">{{
|
||||
$t("query")
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="wangadd('add',null)"
|
||||
>新增</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList2"
|
||||
border
|
||||
@selection-change="dataListSelectionChangeHandle"
|
||||
style="width: 100%"
|
||||
height="650px"
|
||||
>
|
||||
<el-table-column
|
||||
prop="a"
|
||||
label="项目名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="b"
|
||||
label="网络名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="c"
|
||||
label="用途"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="d"
|
||||
label="网络区域"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="e"
|
||||
label="网络类型"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="f"
|
||||
label="宽带峰值"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="g"
|
||||
label="IP"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="wangadd('detail',scope.row)"
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="wangadd('update',scope.row)"
|
||||
>修改</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="Number(total)"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
||||
<!--云资源新增-->
|
||||
<el-dialog title="云资源" :visible.sync="yunshow" width="640px" class="status_change">
|
||||
<el-form :inline="true" label-width="100px">
|
||||
<div class="form-minwidth-style">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称:">
|
||||
<el-input v-model="yunaddForm.a"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="主机名称:">
|
||||
<el-input v-model="yunaddForm.b"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="用途:">
|
||||
<el-input v-model="yunaddForm.c" style="width:490px;"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="网络区域:">
|
||||
<el-input v-model="yunaddForm.d"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="配置:">
|
||||
<el-input v-model="yunaddForm.e"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="网络盘:">
|
||||
<el-input v-model="yunaddForm.f"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数据盘:">
|
||||
<el-input v-model="yunaddForm.g"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="yunshow = false">取 消</el-button>
|
||||
<el-button type="primary" @click="yunshow = false">确 定</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
|
||||
<!--网资源新增-->
|
||||
<el-dialog title="网络资源" :visible.sync="wangshow" width="640px" class="status_change">
|
||||
<el-form :inline="true" label-width="100px">
|
||||
<div class="form-minwidth-style">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称:">
|
||||
<el-input v-model="wangaddForm.a"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="网络名称:">
|
||||
<el-input v-model="wangaddForm.b"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="用途:">
|
||||
<el-input v-model="wangaddForm.c" style="width:490px;"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="网络区域:">
|
||||
<el-input v-model="wangaddForm.d"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="网络类型:">
|
||||
<el-input v-model="wangaddForm.e"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="宽带峰值:">
|
||||
<el-input v-model="wangaddForm.f"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="IP:">
|
||||
<el-input v-model="wangaddForm.g"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="yunshow = false">取 消</el-button>
|
||||
<el-button type="primary" @click="yunshow = false">确 定</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mixinViewModule from "@/mixins/view-module";
|
||||
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data() {
|
||||
return {
|
||||
yunaddForm: {
|
||||
a: "",
|
||||
b: "",
|
||||
c: "",
|
||||
d: "",
|
||||
e: "",
|
||||
f: "",
|
||||
g:"",
|
||||
},
|
||||
wangaddForm:{
|
||||
a: "",
|
||||
b: "",
|
||||
c: "",
|
||||
d: "",
|
||||
e: "",
|
||||
f: "",
|
||||
g: "",
|
||||
},
|
||||
total: 10,
|
||||
choose: 1,
|
||||
yunshow: false,
|
||||
wangshow:false,
|
||||
dataList1: [
|
||||
{
|
||||
"a": "数字底座",
|
||||
"b": "数字底座数据库服务器",
|
||||
"c": "数据库服务器",
|
||||
"d": "政务外网公共服务域",
|
||||
"e": "CPU:8核;内存:15G",
|
||||
"f": "50G",
|
||||
"g": "150G"
|
||||
},
|
||||
{
|
||||
"a": "数字底座",
|
||||
"b": "数字底座应用服务器",
|
||||
"c": "应用服务器",
|
||||
"d": "政务外网公共服务域",
|
||||
"e": "CPU:8核;内存:16G",
|
||||
"f": "30G",
|
||||
"g": "100G"
|
||||
},
|
||||
{
|
||||
"a": "数字底座",
|
||||
"b": "算法仓01服务器",
|
||||
"c": "应用服务器",
|
||||
"d": "政务外网公共服务域",
|
||||
"e": "CPU:8核;内存:15G",
|
||||
"f": "40G",
|
||||
"g": "170G"
|
||||
},
|
||||
{
|
||||
"a": "数字底座",
|
||||
"b": "算法仓02服务器",
|
||||
"c": "应用服务器",
|
||||
"d": "政务外网公共服务域",
|
||||
"e": "CPU:16核;内存:32G",
|
||||
"f": "80G",
|
||||
"g": "600G"
|
||||
},
|
||||
{
|
||||
"a": "数字底座",
|
||||
"b": "算法仓03服务器",
|
||||
"c": "应用服务器",
|
||||
"d": "政务外网公共服务域",
|
||||
"e": "CPU:32核;内存:64G",
|
||||
"f": "120G",
|
||||
"g": "1024G"
|
||||
},
|
||||
{
|
||||
"a": "应急一体化综合指挥平台",
|
||||
"b": "一体化api服务器2",
|
||||
"c": "应用服务器",
|
||||
"d": "金宏网",
|
||||
"e": "CPU:2核;内存:4G",
|
||||
"f": "150G",
|
||||
"g": "400G"
|
||||
},
|
||||
{
|
||||
"a": "应急一体化综合指挥平台",
|
||||
"b": "一体化api服务器1",
|
||||
"c": "应用服务器",
|
||||
"d": "金宏网",
|
||||
"e": "CPU:1核;内存:2G",
|
||||
"f": "130G",
|
||||
"g": "200G"
|
||||
},
|
||||
{
|
||||
"a": "应急一体化综合指挥平台",
|
||||
"b": "一体化管理节点服务器1",
|
||||
"c": "应用服务器",
|
||||
"d": "政务外网公共服务域",
|
||||
"e": "CPU:8核;内存:16G",
|
||||
"f": "200G",
|
||||
"g": "600G"
|
||||
},
|
||||
{
|
||||
"a": "应急一体化综合指挥平台",
|
||||
"b": "一体化管理节点服务器2",
|
||||
"c": "应用服务器",
|
||||
"d": "政务外网公共服务域",
|
||||
"e": "CPU:4核;内存:8G",
|
||||
"f": "50G",
|
||||
"g": "500G"
|
||||
},
|
||||
{
|
||||
"a": "应急一体化综合指挥平台",
|
||||
"b": "一体化管理节点服务器3",
|
||||
"c": "应用服务器",
|
||||
"d": "政务外网公共服务域",
|
||||
"e": "CPU:16核;内存:32G",
|
||||
"f": "160G",
|
||||
"g": "500G"
|
||||
}
|
||||
],
|
||||
dataList2: [
|
||||
{
|
||||
"a": "数字底座",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "1600MB/s",
|
||||
"g": "15.72.183.90"
|
||||
},
|
||||
{
|
||||
"a": "数字底座",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "2100MB/s",
|
||||
"g": "15.72.183.91"
|
||||
},
|
||||
{
|
||||
"a": "填报系统",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "800MB/s",
|
||||
"g": "15.72.184.9"
|
||||
},
|
||||
{
|
||||
"a": "领导驾驶舱",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "1600MB/s",
|
||||
"g": "15.72.184.10"
|
||||
},
|
||||
{
|
||||
"a": "区市指挥室",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "1200MB/s",
|
||||
"g": "15.72.184.11"
|
||||
},
|
||||
{
|
||||
"a": "应急一体化综合指挥平台",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "1200MB/s",
|
||||
"g": "15.72.184.12"
|
||||
},
|
||||
{
|
||||
"a": "消防一览",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "1064MB/s",
|
||||
"g": "15.72.182.107"
|
||||
},
|
||||
{
|
||||
"a": "政务云系统",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "1200MB/s",
|
||||
"g": "15.72.182.108"
|
||||
},
|
||||
{
|
||||
"a": "数字监控平台",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "1064MB/s",
|
||||
"g": "15.72.182.109"
|
||||
},
|
||||
{
|
||||
"a": "应急一体化综合指挥平台",
|
||||
"b": "金宏网",
|
||||
"c": "",
|
||||
"d": "内网",
|
||||
"e": "专线",
|
||||
"f": "800MB/s",
|
||||
"g": "15.72.182.110"
|
||||
}
|
||||
],
|
||||
dataForm: {
|
||||
name: "",
|
||||
},
|
||||
};
|
||||
},
|
||||
watch: {},
|
||||
components: {},
|
||||
created() {},
|
||||
mounted() {},
|
||||
methods: {
|
||||
handleChose(index) {
|
||||
this.choose = index;
|
||||
},
|
||||
reset() {},
|
||||
query() {},
|
||||
//云资源新增
|
||||
yunadd(type,row) {
|
||||
if(type=='add'){
|
||||
this.yunaddForm.a=""
|
||||
this.yunaddForm.b=""
|
||||
this.yunaddForm.c=""
|
||||
this.yunaddForm.d=""
|
||||
this.yunaddForm.e=""
|
||||
this.yunaddForm.f=""
|
||||
this.yunaddForm.g=""
|
||||
}else{
|
||||
this.yunaddForm.a=row.a
|
||||
this.yunaddForm.b=row.b
|
||||
this.yunaddForm.c=row.c
|
||||
this.yunaddForm.d=row.d
|
||||
this.yunaddForm.e=row.e
|
||||
this.yunaddForm.f=row.f
|
||||
this.yunaddForm.g=row.g
|
||||
}
|
||||
this.yunshow = true;
|
||||
},
|
||||
//网资源新增
|
||||
wangadd(type,row) {
|
||||
if(type=='add'){
|
||||
this.wangaddForm.a=""
|
||||
this.wangaddForm.b=""
|
||||
this.wangaddForm.c=""
|
||||
this.wangaddForm.d=""
|
||||
this.wangaddForm.e=""
|
||||
this.wangaddForm.f=""
|
||||
this.wangaddForm.g=""
|
||||
}else{
|
||||
this.wangaddForm.a=row.a
|
||||
this.wangaddForm.b=row.b
|
||||
this.wangaddForm.c=row.c
|
||||
this.wangaddForm.d=row.d
|
||||
this.wangaddForm.e=row.e
|
||||
this.wangaddForm.f=row.f
|
||||
this.wangaddForm.g=row.g
|
||||
}
|
||||
this.wangshow = true;
|
||||
},
|
||||
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.status_change {
|
||||
::v-deep .el-dialog__header{
|
||||
background-color:#0058e1;
|
||||
padding: 10px 10px 10px;
|
||||
.el-dialog__title,.el-dialog__headerbtn i{
|
||||
color: white;
|
||||
}
|
||||
|
||||
}
|
||||
.dialog-footer{
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.form-minwidth-style {
|
||||
width: 600px;
|
||||
}
|
||||
.second-title {
|
||||
border-radius: 2px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 22px;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
background: #ebe5e5;
|
||||
width: 200px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
display: table;
|
||||
}
|
||||
|
||||
.departmentStyle {
|
||||
display: table-cell;
|
||||
width: 50%;
|
||||
color: #fff;
|
||||
background-color: #0058e1;
|
||||
font-weight: bolder;
|
||||
}
|
||||
.departmentStyle1 {
|
||||
display: table-cell;
|
||||
width: 50%;
|
||||
}
|
||||
.el-tooltip__popper {
|
||||
max-width: 50%;
|
||||
}
|
||||
// ::v-deep .el-table .cell {
|
||||
// width: 200px;
|
||||
// }
|
||||
::v-deep .el-upload-list__item-name {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,464 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
width="70%"
|
||||
:destroy-on-close="true"
|
||||
:close-on-click-modal="false"
|
||||
@close="closeModal"
|
||||
title="申请详情"
|
||||
:visible.sync="detailsVisibleCopy"
|
||||
>
|
||||
<!--非后台-->
|
||||
|
||||
<div class="topss" v-if="detailType == '能力使用'">
|
||||
<div class="title">基本信息</div>
|
||||
<div class="main">
|
||||
<div>
|
||||
<p class="item">
|
||||
<span>申请标题:{{ detailParams.title }}</span>
|
||||
<span>申请单号:{{ detailParams.applyNumber || "--" }}</span>
|
||||
<span v-if="detailParams.applicationSystem">
|
||||
应用系统:{{ detailParams.applicationSystem }}
|
||||
</span>
|
||||
<span v-else></span>
|
||||
</p>
|
||||
<p class="item">
|
||||
<span>申请人信息:{{ detailParams.user }}</span>
|
||||
<span>电话:{{ detailParams.phone }}</span>
|
||||
<span>单位:{{ detailParams.unit }}</span>
|
||||
</p>
|
||||
<p v-if="detailParams.applicationScene.length > 0">
|
||||
<span
|
||||
>应用场景:{{ detailParams.applicationScene.join(";") }}</span
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<span>应用背景:{{ detailParams.applicationBackground }}</span>
|
||||
</p>
|
||||
<p>
|
||||
<span>期望效果:{{ detailParams.effectWish }}</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 申请能力-->
|
||||
<div class="bottoms" v-if="detailType == '能力使用'">
|
||||
<div class="title">申请能力</div>
|
||||
<div class="main">
|
||||
<div
|
||||
class="item"
|
||||
v-for="(item, index) in this.showArr"
|
||||
:key="item + index"
|
||||
>
|
||||
<div class="deptName">
|
||||
<span class="img"></span>
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
"
|
||||
></div>
|
||||
<div class="ability" v-for="val in item.list" :key="val.id">
|
||||
<div class="box" v-if="item.list.length > 0">
|
||||
<div class="right">
|
||||
<div class="ability-top">
|
||||
<div class="name">
|
||||
<div class="name">
|
||||
<span class="channelName">{{ val.name }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="ability-bottom">
|
||||
<div class="dec">资源描述:{{ val.description }}</div>
|
||||
<div class="result">
|
||||
申请结果:{{
|
||||
item.ended ? item.approveStatus || "审核完成" : "审核中"
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--审批详情-->
|
||||
<div>
|
||||
<div class="title">审批详情</div>
|
||||
<!-- <div v-for="item in this.dataSource.data" :key="item"> -->
|
||||
<!-- <a-table :dataSource="item[1]" :columns="columns">
|
||||
<template #bodyCell="{ column, text }">
|
||||
<template v-if="column.dataIndex === 'name'">
|
||||
<a>{{ text }}</a>
|
||||
</template>
|
||||
</template>
|
||||
</a-table> -->
|
||||
<el-table
|
||||
:data="dataSource.data[0][1]"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
prop="activityName"
|
||||
label="任务名称"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="assigneeDeptName"
|
||||
label="处理人部门"
|
||||
width="200">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="assigneeName"
|
||||
label="处理人"
|
||||
width="120">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="startTime"
|
||||
label="任务开始时间"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="endTime"
|
||||
label="任务结束时间"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="comment"
|
||||
label="审核意见" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="duration"
|
||||
label="任务时长"
|
||||
width="100">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
<!-- <div else>
|
||||
gai
|
||||
</div> -->
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
detailType: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
detailsVisible: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
detailParamss: {
|
||||
type: Object,
|
||||
default: {}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
detailsVisible: {
|
||||
handler (newVal) {
|
||||
this.detailsVisibleCopy = newVal
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
detailParamss: {
|
||||
handler (newVal) {
|
||||
this.detailParams = newVal
|
||||
this.getDetail(newVal)
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
detailsVisibleCopy: false,
|
||||
columns: [
|
||||
{
|
||||
title: '任务名称',
|
||||
dataIndex: 'activityName',
|
||||
key: 'activityName'
|
||||
},
|
||||
{
|
||||
title: '处理人',
|
||||
dataIndex: 'assigneeName',
|
||||
key: 'assigneeName'
|
||||
},
|
||||
{
|
||||
title: '任务开始时间',
|
||||
dataIndex: 'startTime',
|
||||
key: 'startTime'
|
||||
},
|
||||
{
|
||||
title: '任务结束时间',
|
||||
dataIndex: 'endTime',
|
||||
key: 'endTime'
|
||||
},
|
||||
{
|
||||
title: '审核意见',
|
||||
dataIndex: 'comment',
|
||||
key: 'comment'
|
||||
},
|
||||
{
|
||||
title: '任务时长/秒',
|
||||
dataIndex: 'durationInSeconds',
|
||||
key: 'durationInSeconds'
|
||||
}
|
||||
],
|
||||
dataSource: [{ data: [] }],
|
||||
showArr: []
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
components: {},
|
||||
methods: {
|
||||
getDetail (newVal) {
|
||||
if (newVal.resourceApplication) {
|
||||
this.dataSource.data = []
|
||||
if (this.detailType == '能力上架') {
|
||||
const arr = []
|
||||
newVal.resourceApplication.forEach((item) => {
|
||||
arr.push(item)
|
||||
})
|
||||
this.dataSource.data.push([
|
||||
newVal.resourceApplication.processInstanceId,
|
||||
arr
|
||||
])
|
||||
} else {
|
||||
for (const key in newVal.resourceApplication) {
|
||||
if (newVal.resourceApplication[key].length > 0) {
|
||||
newVal.resourceApplication[key].map((item) => {
|
||||
this.dataSource.data.push([
|
||||
item.instanceId,
|
||||
item.taskHandleDetailInfo
|
||||
])
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.showArr.value = []
|
||||
for (const key in newVal.resourceApplication) {
|
||||
if (newVal.resourceApplication[key].length > 0) {
|
||||
const obj = { name: '', instanceId: '', list: [], list2: [] }
|
||||
obj.name = key
|
||||
newVal.resourceApplication[key].map((item) => {
|
||||
obj.instanceId = item.instanceId
|
||||
obj.backToFirst = item.backToFirst
|
||||
obj.ended = item.ended
|
||||
obj.approveStatus = item.approveStatus
|
||||
if (item.resources.length > 0) {
|
||||
item.resources.map((val) => {
|
||||
obj.list.push(val)
|
||||
})
|
||||
} else {
|
||||
item.camera.map((val) => {
|
||||
obj.list2.push(val)
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
this.showArr.push(obj)
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log('this.dataSource.data[0]========', this.dataSource.data[0][1])
|
||||
},
|
||||
// init () {
|
||||
// this.visible = true
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs['dataForm'].resetFields()
|
||||
// })
|
||||
// },
|
||||
closeModal () {
|
||||
this.$emit('closeModal')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.title {
|
||||
font-size: 22px;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
padding-left: 10px;
|
||||
border-left: 6px #0058e1 solid;
|
||||
}
|
||||
|
||||
.topss {
|
||||
margin-bottom: 28px;
|
||||
|
||||
.main {
|
||||
background: #eee;
|
||||
padding: 28px 28px 28px;
|
||||
|
||||
p {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
& > span {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.enclosure {
|
||||
width: 95%;
|
||||
padding: 28px 28px 28px;
|
||||
background: #ddd;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 28px;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
color: #0058e1;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
font-size: 16px;
|
||||
|
||||
span {
|
||||
width: 50px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottoms {
|
||||
.main {
|
||||
.item {
|
||||
border-top: 1px #eee solid;
|
||||
|
||||
.deptName {
|
||||
color: #0058e1;
|
||||
font-size: 16px;
|
||||
margin-top: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
border-radius: 5px;
|
||||
background: #0058e1;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.oddNumbers {
|
||||
margin: 10px 0 0 15px;
|
||||
}
|
||||
|
||||
.box {
|
||||
margin-left: 10px;
|
||||
|
||||
.ability {
|
||||
height: 13px;
|
||||
display: flex;
|
||||
border-bottom: 1px #eee solid;
|
||||
padding: 0.1rem 0;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
color: #0087ff;
|
||||
align-self: flex-end;
|
||||
padding: 5px 10px;
|
||||
border: 1px #0087ff solid;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.right {
|
||||
flex: 1;
|
||||
margin-left: 15px;
|
||||
|
||||
.ability-top {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.name {
|
||||
width: 6rem;
|
||||
height: 0.2rem;
|
||||
display: flex;
|
||||
|
||||
.channelName {
|
||||
max-width: 5rem;
|
||||
height: 20px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.type {
|
||||
background: #0087ff;
|
||||
color: #fff;
|
||||
line-height: 14px;
|
||||
padding: 2px 10px;
|
||||
border-radius: 10px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ability-bottom {
|
||||
margin-top: 15pxrem;
|
||||
|
||||
.dec {
|
||||
width: 70px;
|
||||
height: 44px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.dec2 {
|
||||
width: 70px;
|
||||
height: 22px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.result {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.DownloadAttachment {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: -150px;
|
||||
}
|
||||
|
||||
.DownloadAttachment2 {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: -110px;
|
||||
}
|
||||
}
|
||||
|
||||
.clickCursor {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -2,7 +2,7 @@
|
|||
<el-card shadow="never" class="roomBox">
|
||||
<div class="roomExamineSearch">
|
||||
<el-input
|
||||
v-model="roomName"
|
||||
v-model="roomNameA"
|
||||
style="width: 160px"
|
||||
placeholder="请输入会议室名称"
|
||||
></el-input>
|
||||
|
@ -195,6 +195,17 @@
|
|||
<el-input type="textarea" v-model="desc"></el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="display: flex; margin-top: 20px">
|
||||
<el-col :span="2">附件:</el-col>
|
||||
<el-col :span="16">
|
||||
<el-button
|
||||
v-if="file != ''"
|
||||
size="mini"
|
||||
@click="downloadTemplate(file)"
|
||||
>下载</el-button
|
||||
>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="No">取 消</el-button>
|
||||
<el-button type="primary" @click="ok">确 定</el-button>
|
||||
|
@ -232,6 +243,9 @@ export default {
|
|||
id: '',
|
||||
num: '',
|
||||
file: '',
|
||||
name: '',
|
||||
creator: '',
|
||||
roomNameA: '',
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
@ -241,10 +255,9 @@ export default {
|
|||
getSerach() {
|
||||
this.$http
|
||||
.get(
|
||||
`/bookMeeting/auditPage?page=${this.page}&limit=${this.limit}&roomName=${this.roomName}&state=${this.value}`
|
||||
`/bookMeeting/auditPage?page=${this.page}&limit=${this.limit}&roomName=${this.roomNameA}&state=${this.value}`
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
console.log(res, 7777777)
|
||||
this.tableData = res.data.list
|
||||
this.total = res.data.total
|
||||
})
|
||||
|
@ -268,13 +281,15 @@ export default {
|
|||
if (num == '1') {
|
||||
this.dialogVisibleChuli = true
|
||||
this.id = item.id
|
||||
this.name = item.name
|
||||
this.roomName = item.roomName
|
||||
this.creator = item.creator
|
||||
} else {
|
||||
this.dialogVisible = true
|
||||
this.$http.get(`bookMeeting/${item.id}`).then(({ data: res }) => {
|
||||
console.log(55555555)
|
||||
this.file = res.data.file
|
||||
})
|
||||
}
|
||||
this.$http.get(`bookMeeting/${item.id}`).then(({ data: res }) => {
|
||||
this.file = res.data.file
|
||||
})
|
||||
this.lookData = item
|
||||
},
|
||||
|
||||
|
@ -283,6 +298,9 @@ export default {
|
|||
auditViem: this.desc,
|
||||
state: this.radio,
|
||||
id: this.id,
|
||||
name: this.name,
|
||||
roomName: this.roomName,
|
||||
creator: this.creator,
|
||||
}
|
||||
this.$http.put('/bookMeeting', query).then(({ data: res }) => {
|
||||
this.dialogVisibleChuli = false
|
||||
|
|
|
@ -249,7 +249,7 @@ export default {
|
|||
this.total = 0
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
if (res.data.list.length !== 0) {
|
||||
if (res.data.list.length >= 0) {
|
||||
this.dataList = res.data.list
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.total
|
||||
|
|
|
@ -131,54 +131,54 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import mixinViewModule from "@/mixins/view-module";
|
||||
import AddOrUpdate from "./canassigncase-add-or-update";
|
||||
import dictionaries from "@/utils/dictionaries";
|
||||
import qs from "qs";
|
||||
import { type } from "os";
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import AddOrUpdate from './canassigncase-add-or-update'
|
||||
import dictionaries from '@/utils/dictionaries'
|
||||
import qs from 'qs'
|
||||
import { type } from 'os'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: "/resource/page",
|
||||
getDataListURL: '/resource/page',
|
||||
getDataListIsPage: true,
|
||||
exportURL: "/ability/bsabilityai/export",
|
||||
deleteURL: "/resource/delete",
|
||||
deleteIsBatch: true,
|
||||
exportURL: '/ability/bsabilityai/export',
|
||||
deleteURL: '/resource/delete',
|
||||
deleteIsBatch: true
|
||||
},
|
||||
disabled: false,
|
||||
sceneArr: dictionaries.sceneArr,
|
||||
fieldArr: dictionaries.fieldArr,
|
||||
shareFormArr: dictionaries.shareFormArr,
|
||||
dataForm: {
|
||||
name: "",
|
||||
creator: "",
|
||||
name: '',
|
||||
creator: '',
|
||||
selectType: 0,
|
||||
delFlag: 0,
|
||||
type: "赋能案例",
|
||||
type: '赋能案例'
|
||||
},
|
||||
qp: false,
|
||||
};
|
||||
qp: false
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
components: {
|
||||
AddOrUpdate,
|
||||
AddOrUpdate
|
||||
},
|
||||
created() {
|
||||
this.dataForm.name = "";
|
||||
this.dataForm.type = "赋能案例";
|
||||
created () {
|
||||
this.dataForm.name = ''
|
||||
this.dataForm.type = '赋能案例'
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener("resize", this.a);
|
||||
this.fullScreen();
|
||||
mounted () {
|
||||
window.addEventListener('resize', this.a)
|
||||
this.fullScreen()
|
||||
},
|
||||
methods: {
|
||||
reset() {
|
||||
reset () {
|
||||
this.$http
|
||||
.get(
|
||||
this.mixinViewModuleOptions.getDataListURL +
|
||||
"?" +
|
||||
'?' +
|
||||
qs.stringify({
|
||||
// order: this.order,
|
||||
// orderField: this.orderField,
|
||||
|
@ -187,138 +187,138 @@ export default {
|
|||
selectType: 0,
|
||||
limit: 10,
|
||||
delFlag: 0,
|
||||
creator: "",
|
||||
type: "赋能案例",
|
||||
name: "",
|
||||
creator: '',
|
||||
type: '赋能案例',
|
||||
name: ''
|
||||
})
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
this.dataForm.name = "";
|
||||
this.dataForm.name = ''
|
||||
if (res.code !== 0) {
|
||||
this.dataList = [];
|
||||
this.total = 0;
|
||||
return this.$message.error(res.msg);
|
||||
this.dataList = []
|
||||
this.total = 0
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.list
|
||||
: res.data;
|
||||
: res.data
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.total
|
||||
: 0;
|
||||
: 0
|
||||
if (this.mixinViewModuleOptions.requestCallback) {
|
||||
this.mixinViewModuleOptions.requestCallback(res.data);
|
||||
this.mixinViewModuleOptions.requestCallback(res.data)
|
||||
}
|
||||
this.dataListLoading = false;
|
||||
this.dataListLoading = false
|
||||
})
|
||||
.catch(() => {
|
||||
this.dataListLoading = false;
|
||||
});
|
||||
this.dataListLoading = false
|
||||
})
|
||||
},
|
||||
showDetail(val) {
|
||||
this.addOrUpdateVisible = true;
|
||||
this.disabled = false;
|
||||
showDetail (val) {
|
||||
this.addOrUpdateVisible = true
|
||||
this.disabled = false
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.UpdateState = false;
|
||||
this.$refs.addOrUpdate.dataFormShowDetails = val;
|
||||
this.$refs.addOrUpdate.init();
|
||||
});
|
||||
this.disabled = true;
|
||||
this.$refs.addOrUpdate.UpdateState = false
|
||||
this.$refs.addOrUpdate.dataFormShowDetails = val
|
||||
this.$refs.addOrUpdate.init()
|
||||
})
|
||||
this.disabled = true
|
||||
},
|
||||
showDocument(val) {
|
||||
console.log(val);
|
||||
showDocument (val) {
|
||||
console.log(val)
|
||||
window.open(
|
||||
window.SITE_CONFIG.frontUrl + "?id=" + val.id + "&&type=" + val.type,
|
||||
"_blank"
|
||||
);
|
||||
window.SITE_CONFIG.frontUrl + '?id=' + val.id + '&&type=' + val.type,
|
||||
'_blank'
|
||||
)
|
||||
},
|
||||
findValue(list, type) {
|
||||
const found = list.find((item) => item.attrType === type);
|
||||
findValue (list, type) {
|
||||
const found = list.find((item) => item.attrType === type)
|
||||
if (found) {
|
||||
return found.attrValue;
|
||||
return found.attrValue
|
||||
} else {
|
||||
return "暂无数据";
|
||||
return '暂无数据'
|
||||
}
|
||||
},
|
||||
getDataList2(names) {
|
||||
getDataList2 (names) {
|
||||
if (names != null) {
|
||||
this.$http
|
||||
.get(
|
||||
this.mixinViewModuleOptions.getDataListURL +
|
||||
"?" +
|
||||
'?' +
|
||||
qs.stringify({
|
||||
// order: this.order,
|
||||
// orderField: this.orderField,
|
||||
// type: '组件服务',
|
||||
pageNum: 1,
|
||||
pageSize: this.limit,
|
||||
type: "赋能案例",
|
||||
creator: "",
|
||||
type: '赋能案例',
|
||||
creator: '',
|
||||
selectType: 0,
|
||||
delFlag: 0,
|
||||
name: names,
|
||||
name: names
|
||||
})
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
this.dataList = [];
|
||||
this.total = 0;
|
||||
return this.$message.error(res.msg);
|
||||
this.dataList = []
|
||||
this.total = 0
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
if (res.data.list.length !== 0) {
|
||||
this.dataList = res.data.list;
|
||||
if (res.data.list.length >= 0) {
|
||||
this.dataList = res.data.list
|
||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||
? res.data.total
|
||||
: 0;
|
||||
: 0
|
||||
if (this.mixinViewModuleOptions.requestCallback) {
|
||||
this.mixinViewModuleOptions.requestCallback(res.data);
|
||||
this.mixinViewModuleOptions.requestCallback(res.data)
|
||||
}
|
||||
this.dataListLoading = false;
|
||||
this.dataListLoading = false
|
||||
} else {
|
||||
this.$message.error("未查询到相关信息");
|
||||
this.reset();
|
||||
this.$message.error('未查询到相关信息')
|
||||
this.reset()
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
this.dataListLoading = false;
|
||||
});
|
||||
this.dataListLoading = false
|
||||
})
|
||||
} else {
|
||||
this.$message.error("查询不能输入为空");
|
||||
this.$message.error('查询不能输入为空')
|
||||
}
|
||||
},
|
||||
fullScreen() {
|
||||
fullScreen () {
|
||||
if (window.outerHeight === screen.availHeight) {
|
||||
if (window.outerWidth === screen.availWidth) {
|
||||
console.log(
|
||||
"全屏1",
|
||||
'全屏1',
|
||||
window.outerHeight,
|
||||
screen.availHeight,
|
||||
window.outerWidth,
|
||||
screen.availWidth
|
||||
);
|
||||
this.qp = false;
|
||||
)
|
||||
this.qp = false
|
||||
} else {
|
||||
console.log(
|
||||
"不是全屏2",
|
||||
'不是全屏2',
|
||||
window.outerHeight,
|
||||
screen.availHeight,
|
||||
window.outerWidth,
|
||||
screen.availWidth
|
||||
);
|
||||
this.qp = true;
|
||||
)
|
||||
this.qp = true
|
||||
}
|
||||
} else {
|
||||
console.log(
|
||||
"不是全屏3",
|
||||
'不是全屏3',
|
||||
window.outerHeight,
|
||||
screen.availHeight,
|
||||
window.outerWidth,
|
||||
screen.availWidth
|
||||
);
|
||||
this.qp = true;
|
||||
)
|
||||
this.qp = true
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.el-tooltip__popper {
|
||||
|
|
|
@ -81,7 +81,7 @@ export default {
|
|||
init () {
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
this.$refs.dataForm.resetFields()
|
||||
this.iconList = getIconList()
|
||||
this.dataForm.parentName = this.$t('menu.parentNameDefault')
|
||||
this.getMenuList()
|
||||
|
@ -89,11 +89,12 @@ export default {
|
|||
},
|
||||
// 获取菜单列表
|
||||
getMenuList () {
|
||||
console.log('获取菜单位置1')
|
||||
return this.$http.get('/sys/menu/list?type=0').then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.menuList = res.data
|
||||
this.menuList = res.data.filter(item => item.site === 0)
|
||||
}).catch(() => {})
|
||||
},
|
||||
// 上级菜单树, 设置默认值
|
||||
|
@ -114,11 +115,11 @@ export default {
|
|||
},
|
||||
// 表单提交
|
||||
dataFormSubmitHandle: debounce(function () {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
this.$refs.dataForm.validate((valid) => {
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
this.$http['post']('/devtools/menu', this.dataForm).then(({ data: res }) => {
|
||||
this.$http.post('/devtools/menu', this.dataForm).then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
|
@ -133,7 +134,7 @@ export default {
|
|||
})
|
||||
}).catch(() => {})
|
||||
})
|
||||
}, 1000, { 'leading': true, 'trailing': false })
|
||||
}, 1000, { leading: true, trailing: false })
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -174,4 +175,4 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
|
@ -0,0 +1,174 @@
|
|||
<!--
|
||||
* @Author: hisense.guoyue
|
||||
* @LastEditors: hisense.guoyue
|
||||
* @LastEditTime: 2022-09-27 14:23:29
|
||||
* @Description: 设备审批
|
||||
-->
|
||||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill" style="position:relative">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.deviceName" :placeholder="$t('process.name')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-select v-model="dataForm.state" placeholder="请选择" style="margin-right: 10px">
|
||||
<el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getDataList()">{{
|
||||
$t('query')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="mod-activiti__process">
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border style="width: 100%">
|
||||
<el-table-column prop="title" label="申请标题" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="name" label="申请人信息" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="设备名称" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span class="demand-text">{{
|
||||
(scope.row && scope.row.tbDeviceDTO && scope.row.tbDeviceDTO.name)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="state" label="审批状态" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{wrjStateObj[scope.row.state]}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="auditTime" label="审核时间" header-align="center" align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="应用领域" header-align="center" align="center">
|
||||
<template slot-scope="scope" v-if="scope.row.applicationArea">
|
||||
<span class="area-text" v-for="(x,i) in JSON.parse(scope.row.applicationArea)"
|
||||
:key="i">{{x}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="需求依据" header-align="center" align="center" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip placement="top-start">
|
||||
<div class="tooltip-box" slot="content">{{(scope.row && scope.row.demand)}}</div>
|
||||
<span class="demand-text">{{
|
||||
(scope.row && scope.row.demand)
|
||||
}}</span>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="showDetail(scope.row)">详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
||||
<el-dialog title="审批" :visible.sync="centerDialogVisible" width="30%" center>
|
||||
<el-form ref="form" :model="form" label-width="80px">
|
||||
<el-form-item label="审批意见">
|
||||
<el-input type="textarea" v-model="form.auditViem" placeholder="请输入审批意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="through(3)">不通过</el-button>
|
||||
<el-button type="primary" @click="through(2)">通过</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import bus from '@/views/bus.js'
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import processModule from '@/mixins/process-module'
|
||||
import { addDynamicRoute } from '@/router'
|
||||
|
||||
export default {
|
||||
mixins: [mixinViewModule, processModule],
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/deviceApply/myDonePage',
|
||||
getDataListIsPage: true,
|
||||
activatedIsNeed: true,
|
||||
deleteIsBatch: true,
|
||||
deleteIsBatchKey: 'deploymentId'
|
||||
},
|
||||
centerDialogVisible: false,
|
||||
form: {
|
||||
auditViem: ''
|
||||
},
|
||||
dataForm: {
|
||||
state: '',
|
||||
deviceName: null
|
||||
},
|
||||
wrjStateObj: {
|
||||
0: '待审批',
|
||||
1: '未申请',
|
||||
2: '通过',
|
||||
3: '未通过'
|
||||
},
|
||||
// 详情
|
||||
detailInfo: {},
|
||||
// 设备详情
|
||||
deviceDetailInfo: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
stateOptions() {
|
||||
let arr = []
|
||||
Object.keys(this.wrjStateObj).map(v => {
|
||||
arr.push({
|
||||
label: this.wrjStateObj[v],
|
||||
value: v,
|
||||
})
|
||||
})
|
||||
return arr
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
showDetail(row) {
|
||||
this.forwardDetail(row)
|
||||
},
|
||||
// 查看流程图
|
||||
forwardDetail(data) {
|
||||
console.log('data------------>', data);
|
||||
console.log('this.$route------------>', this.$route);
|
||||
var routeParams = {
|
||||
routeName: `${this.$route.name}__detail_${data.id}`,
|
||||
menuId: `${this.$route.meta.menuId}`,
|
||||
title: `${this.$route.meta.title} - 详情`,
|
||||
path: 'hasToDoTasks/deviceApprovalDetail',
|
||||
params: {
|
||||
params: data,
|
||||
id: data.id,
|
||||
}
|
||||
}
|
||||
console.log('routeParams------------>', routeParams);
|
||||
addDynamicRoute(routeParams, this.$router)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.demand-text {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.area-text {
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
.tooltip-box {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,318 @@
|
|||
<!--
|
||||
* @Author: hisense.guoyue
|
||||
* @Date: 2022-06-29 15:59:51
|
||||
* @LastEditors: hisense.guoyue
|
||||
* @LastEditTime: 2022-09-27 18:08:00
|
||||
* @Description: 设备审批详情
|
||||
-->
|
||||
|
||||
<!-- 设备审批详情 -->
|
||||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<!-- 申请人详情 -->
|
||||
<div>
|
||||
<h3>申请人信息</h3>
|
||||
<div class="big-BOX">
|
||||
<p>
|
||||
<span class="text">申请人:<span> {{ detailInfo.name || '--' }}</span></span>
|
||||
<span class="text">电话:<span>{{ detailInfo.phone || '--' }}</span></span>
|
||||
<span class="text">部门:<span>{{ detailInfo.dept || '--' }}</span></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="text">
|
||||
能力申请标题:<span>
|
||||
{{ detailInfo.title || '--' }}</span></span>
|
||||
<span class="text" v-if="detailInfo.applicationSystem">应用系统:<span>{{
|
||||
detailInfo.applicationSystem || '--'
|
||||
}}</span></span>
|
||||
<span class="text"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span v-if="detailInfo.applicationArea">
|
||||
应用领域:
|
||||
<span class="area-item" v-for="(area, i) in JSON.parse(detailInfo.applicationArea)" :key="i">{{ area || '--'
|
||||
}}</span>
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
需求依据:<span>
|
||||
{{ detailInfo.demand || '--' }}</span></span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 申请能力 -->
|
||||
<div class="AbilityApply">
|
||||
<h3>申请能力</h3>
|
||||
</div>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<h4>{{ $t('process.circulation') }}</h4>
|
||||
<el-table :data="dataList" border style="width: 100%;">
|
||||
<!-- 任务名称 -->
|
||||
<el-table-column prop="activityName" :label="$t('process.taskName')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<!-- 处理人 -->
|
||||
<el-table-column prop="assigneeName" :label="$t('process.assignee')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<!-- 流程开始时间 -->
|
||||
<el-table-column prop="startTime" :label="$t('task.startTime')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<!-- 流程结束时间 -->
|
||||
<el-table-column prop="endTime" :label="$t('task.endTime')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<!-- 审核意见 -->
|
||||
<el-table-column prop="comment" :label="$t('process.comment')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<!-- 任务时长(秒) -->
|
||||
<el-table-column prop="durationInSeconds" :label="$t('task.durationInSeconds')" header-align="center"
|
||||
align="center" width="180"></el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as moment from 'moment'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
// 详情信息
|
||||
detailInfo: {},
|
||||
dataList: []
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.detailInfo = this.$route.params.params || {}
|
||||
console.log('this.detailInfo------------>', this.detailInfo)
|
||||
// 表格数据
|
||||
let durationInSeconds = ''
|
||||
if (this.detailInfo.auditTime && this.detailInfo.auditTime) {
|
||||
durationInSeconds = moment(this.detailInfo.auditTime).diff(moment(this.detailInfo.createDate), 'seconds')
|
||||
}
|
||||
const _obj = {
|
||||
activityName: this.detailInfo.title || '',
|
||||
assigneeName: this.detailInfo.auditorName || '',
|
||||
startTime: this.detailInfo.createDate || '',
|
||||
endTime: this.detailInfo.auditTime,
|
||||
comment: this.detailInfo.auditViem,
|
||||
durationInSeconds: durationInSeconds
|
||||
}
|
||||
this.dataList.push(_obj)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
::v-deep .big-BOX {
|
||||
background: rgba(244, 245, 248, 0.8);
|
||||
padding: 24px;
|
||||
|
||||
h3 {
|
||||
font-size: 16px;
|
||||
color: #212121;
|
||||
}
|
||||
|
||||
p {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
color: #212121;
|
||||
font-size: 14px;
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
margin-left: 8px;
|
||||
line-height: 32px;
|
||||
|
||||
span {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.text {
|
||||
width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
.lastP {
|
||||
margin-top: 16px;
|
||||
width: 100%;
|
||||
|
||||
span {
|
||||
display: flex;
|
||||
|
||||
span {
|
||||
padding: 0 12px;
|
||||
height: 32px;
|
||||
background: rgba(232, 234, 239, 1);
|
||||
border-radius: 2px;
|
||||
|
||||
button {
|
||||
background: unset;
|
||||
border: 0;
|
||||
color: #0558e1;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .AbilityApply {
|
||||
margin-top: 32px;
|
||||
|
||||
h3 {
|
||||
font-size: 16px;
|
||||
color: #212121;
|
||||
border-bottom: 1px solid #dddee1;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 0px;
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 30px 0;
|
||||
border-bottom: 1px solid #dddee1;
|
||||
display: flex;
|
||||
|
||||
img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
div {
|
||||
margin-left: 16px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
|
||||
h2 {
|
||||
margin-bottom: 20px;
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
display: flex;
|
||||
|
||||
span {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
color: #ffffff;
|
||||
margin-left: 8px;
|
||||
background: rgba(0, 184, 230, 0.8);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 5px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: #0558e1;
|
||||
font-size: 18px;
|
||||
padding-bottom: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.title:before {
|
||||
content: "";
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
background: #0558e1;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
margin-top: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .agreeOr > div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.el-input {
|
||||
margin-right: 10px;
|
||||
margin-left: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .agreeOr > div:last-of-type {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.blueAll {
|
||||
::v-deep .el-radio-button__inner {
|
||||
width: 80px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0;
|
||||
border-radius: 2px;
|
||||
background: #ffffff;
|
||||
color: #0558e1;
|
||||
border: 1px solid #0558e1;
|
||||
}
|
||||
|
||||
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||
box-shadow: unset !important;
|
||||
background: #0558e1;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.inputBule {
|
||||
width: 55px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0;
|
||||
border-radius: 2px;
|
||||
background: #0558e1;
|
||||
color: #ffffff;
|
||||
border: 1px solid #0558e1;
|
||||
}
|
||||
|
||||
.redAll {
|
||||
margin-left: 10px;
|
||||
|
||||
::v-deep .el-radio-button__inner {
|
||||
width: 80px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0;
|
||||
border-radius: 2px;
|
||||
border: 1px solid #e83a48;
|
||||
background: #ffffff;
|
||||
color: #e83a48;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||
box-shadow: unset !important;
|
||||
color: #ffffff;
|
||||
background: #e83a48;
|
||||
}
|
||||
}
|
||||
|
||||
.blueInput {
|
||||
width: 55px;
|
||||
}
|
||||
|
||||
.area-item {
|
||||
padding-right: 10px;
|
||||
}
|
||||
</style>
|
|
@ -154,7 +154,6 @@ export default {
|
|||
methods: {
|
||||
// 处理
|
||||
taskHandle (row) {
|
||||
console.log('row======================>', row, this.forwardHandleUrl)
|
||||
if (!row.businessKey) {
|
||||
return this.$message.error(this.$t('task.businessKeyError'))
|
||||
}
|
||||
|
@ -171,7 +170,9 @@ export default {
|
|||
bus.$off('abilityResourceShelfInit')
|
||||
bus.$on('abilityResourceShelfInit', () => {
|
||||
this.getDataList()
|
||||
bus.$emit('updateTaskNum')
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -171,6 +171,7 @@ export default {
|
|||
bus.$off('AbilityResourcesRemovedInit')
|
||||
bus.$on('AbilityResourcesRemovedInit', () => {
|
||||
this.getDataList()
|
||||
bus.$emit('updateTaskNum')
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-27 11:27:22
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-08-23 10:37:29
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-19 11:10:50
|
||||
* @Description: 能力申请
|
||||
-->
|
||||
<template>
|
||||
|
@ -47,6 +47,13 @@
|
|||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="申请人所属部门" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{
|
||||
(scope.row.params && scope.row.params.tAbilityApplicationDTOList[0].unit)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('process.system')"
|
||||
header-align="center"
|
||||
|
@ -162,6 +169,7 @@ export default {
|
|||
bus.$off('competencyApplicationInit')
|
||||
bus.$on('competencyApplicationInit', () => {
|
||||
this.getDataList()
|
||||
bus.$emit('updateTaskNum')
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -208,7 +208,7 @@
|
|||
<script>
|
||||
import Cookies from 'js-cookie'
|
||||
export default {
|
||||
data() {
|
||||
data () {
|
||||
// let validatorImg = (rule, value, callback) => {
|
||||
// console.log(value, 11111111)
|
||||
// //验证器
|
||||
|
@ -228,10 +228,10 @@ export default {
|
|||
ruleForm: {
|
||||
name: '',
|
||||
num: '',
|
||||
area: '',
|
||||
area: 0,
|
||||
capacity: '',
|
||||
pic: '',
|
||||
id: '',
|
||||
id: ''
|
||||
},
|
||||
limit: 10,
|
||||
page: 1,
|
||||
|
@ -242,11 +242,11 @@ export default {
|
|||
rules: {
|
||||
name: [
|
||||
{ required: true, message: '请输入会议室名称', trigger: 'blur' },
|
||||
{ min: 1, trigger: 'blur' },
|
||||
{ min: 1, trigger: 'blur' }
|
||||
],
|
||||
area: [
|
||||
{ required: true, message: '请输入会议室面积', trigger: 'blur' },
|
||||
{ min: 1, type: 'number', trigger: 'blur' },
|
||||
{ required: true, message: '请输入会议室面积', trigger: 'blur' }
|
||||
// { min: 1, message: '请输入数字', type: 'number', trigger: 'blur' }
|
||||
],
|
||||
description: [
|
||||
{ required: true, message: '请填写描述内容', trigger: 'blur' },
|
||||
|
@ -254,22 +254,22 @@ export default {
|
|||
min: 1,
|
||||
max: 500,
|
||||
message: '长度在 1 到 500 个字符',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
},
|
||||
formLabelWidth: '120px',
|
||||
checkImgSuccess: true,
|
||||
dialogVisible: false,
|
||||
flge: '',
|
||||
flge: ''
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
mounted () {
|
||||
this.queryData()
|
||||
},
|
||||
methods: {
|
||||
// 页面查询接口
|
||||
queryData() {
|
||||
queryData () {
|
||||
this.$http
|
||||
.get(`/meeting/page?limit=${this.limit}&page=${this.page}`)
|
||||
.then(({ data: res }) => {
|
||||
|
@ -278,31 +278,31 @@ export default {
|
|||
})
|
||||
},
|
||||
// 分页
|
||||
handleSizeChange(val) {
|
||||
handleSizeChange (val) {
|
||||
this.limit = val
|
||||
this.queryData()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
handleCurrentChange (val) {
|
||||
this.page = val
|
||||
this.queryData()
|
||||
},
|
||||
// 新增
|
||||
addRooom() {
|
||||
addRooom () {
|
||||
this.dialogFormVisible = true
|
||||
this.flge = 'add'
|
||||
this.ruleForm = {}
|
||||
this.fileList = []
|
||||
},
|
||||
handlePictureCardPreview(file) {
|
||||
handlePictureCardPreview (file) {
|
||||
this.dialogImageUrl = file.url
|
||||
this.dialogVisible = true
|
||||
},
|
||||
//上传个数限制
|
||||
beforeUpload(file, fileList) {
|
||||
// 上传个数限制
|
||||
beforeUpload (file, fileList) {
|
||||
this.$message.error('最多只能上传一张图片!')
|
||||
},
|
||||
//图片上传成功时钩子
|
||||
onSuccess(response, file, fileList) {
|
||||
// 图片上传成功时钩子
|
||||
onSuccess (response, file, fileList) {
|
||||
const isLt2M = file.size / 1024 / 1024 < 100
|
||||
if (!isLt2M) {
|
||||
this.$message.error('上传图片大小不能超过100MB!')
|
||||
|
@ -313,17 +313,17 @@ export default {
|
|||
this.checkImgSuccess = true
|
||||
}
|
||||
},
|
||||
//图片删除时钩子
|
||||
onRemove(file, fileList) {
|
||||
// 图片删除时钩子
|
||||
onRemove (file, fileList) {
|
||||
this.$nextTick(() => {
|
||||
if (fileList.length == 0) {
|
||||
this.checkImgSuccess = false //检查图片是否加载成功
|
||||
this.checkImgSuccess = false // 检查图片是否加载成功
|
||||
// this.$refs.ruleForm.validate() //删除图片,重新触发校验
|
||||
}
|
||||
})
|
||||
},
|
||||
// 保存
|
||||
submitForm(formName, i) {
|
||||
submitForm (formName, i) {
|
||||
this.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
if (i === 'add') {
|
||||
|
@ -337,9 +337,9 @@ export default {
|
|||
})
|
||||
} else if (i === 'edit') {
|
||||
this.dialogFormVisible = false
|
||||
this.$http.put(`/meeting`, this.ruleForm).then(({ data: res }) => {
|
||||
this.$http.put('/meeting', this.ruleForm).then(({ data: res }) => {
|
||||
this.ruleForm = res.data
|
||||
let imgUrl = { name: res.data.name, url: res.data.pic }
|
||||
const imgUrl = { name: res.data.name, url: res.data.pic }
|
||||
this.fileList.push(imgUrl)
|
||||
})
|
||||
}
|
||||
|
@ -350,7 +350,7 @@ export default {
|
|||
})
|
||||
},
|
||||
// 详情
|
||||
taskDetails(row) {
|
||||
taskDetails (row) {
|
||||
this.ruleForm = {}
|
||||
this.fileList = []
|
||||
this.flge = 'look'
|
||||
|
@ -366,45 +366,45 @@ export default {
|
|||
}
|
||||
})
|
||||
},
|
||||
//修改
|
||||
taskUpdate(row) {
|
||||
// 修改
|
||||
taskUpdate (row) {
|
||||
this.dialogFormVisible = true
|
||||
this.fileList = []
|
||||
this.flge = 'edit'
|
||||
this.ruleForm = row
|
||||
if (row.pic != null) {
|
||||
let imgUrl = { name: row.name, url: row.pic }
|
||||
const imgUrl = { name: row.name, url: row.pic }
|
||||
this.fileList.push(imgUrl)
|
||||
} else {
|
||||
this.fileList = []
|
||||
}
|
||||
},
|
||||
//删除图片
|
||||
taskDelete(row) {
|
||||
// 删除图片
|
||||
taskDelete (row) {
|
||||
this.$confirm('此操作将永久删除该会议室, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$http.put(`/meeting`, { delFlag: 1, id: row.id }).then(() => {
|
||||
this.$http.put('/meeting', { delFlag: 1, id: row.id }).then(() => {
|
||||
this.queryData()
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '删除成功!',
|
||||
message: '删除成功!'
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消删除',
|
||||
message: '已取消删除'
|
||||
})
|
||||
})
|
||||
},
|
||||
//监听关闭按钮时间
|
||||
outDialog() {},
|
||||
},
|
||||
// 监听关闭按钮时间
|
||||
outDialog () {}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
|
|
|
@ -0,0 +1,157 @@
|
|||
<!--
|
||||
* @Author: hisense.guoyue
|
||||
* @LastEditors: hisense.guoyue
|
||||
* @LastEditTime: 2022-09-21 10:37:29
|
||||
* @Description: 设备审批
|
||||
-->
|
||||
<template>
|
||||
<!-- @selection-change="dataListSelectionChangeHandle" -->
|
||||
<!-- @sort-change="dataListSortChangeHandle" -->
|
||||
<el-card shadow="never" class="aui-card--fill" style="position:relative">
|
||||
<div class="mod-activiti__process">
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border style="width: 100%">
|
||||
<el-table-column prop="title" label="申请标题" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="name" label="申请人信息" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="设备名称" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span class="demand-text">{{
|
||||
(scope.row && scope.row.tbDeviceDTO && scope.row.tbDeviceDTO.name)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="state" label="审批状态" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{wrjStateObj[scope.row.state]}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column>
|
||||
<!-- <el-table-column prop="phone" label="电话" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="dept" label="单位" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="applicationSystem" label="应用系统" header-align="center" align="center">
|
||||
</el-table-column> -->
|
||||
<el-table-column label="应用领域" header-align="center" align="center">
|
||||
<template slot-scope="scope" v-if="scope.row.applicationArea">
|
||||
<span class="area-text" v-for="(x,i) in JSON.parse(scope.row.applicationArea)"
|
||||
:key="i">{{x}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="需求依据" header-align="center" align="center" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip placement="top-start">
|
||||
<div class="tooltip-box" slot="content">{{(scope.row && scope.row.demand)}}</div>
|
||||
<span class="demand-text">{{
|
||||
(scope.row && scope.row.demand)
|
||||
}}</span>
|
||||
</el-tooltip>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="taskHandle(scope.row)">审批</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
||||
<el-dialog title="审批" :visible.sync="centerDialogVisible" width="30%" center>
|
||||
<el-form ref="form" :model="form" label-width="80px">
|
||||
<el-form-item label="审批意见">
|
||||
<el-input type="textarea" v-model="form.auditViem" placeholder="请输入审批意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="through(3)">不通过</el-button>
|
||||
<el-button type="primary" @click="through(2)">通过</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import bus from '@/views/bus.js'
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import processModule from '@/mixins/process-module'
|
||||
export default {
|
||||
mixins: [mixinViewModule, processModule],
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/deviceApply/auditPage',
|
||||
getDataListIsPage: true,
|
||||
activatedIsNeed: true,
|
||||
deleteIsBatch: true,
|
||||
deleteIsBatchKey: 'deploymentId'
|
||||
},
|
||||
centerDialogVisible: false,
|
||||
form: {
|
||||
auditViem: ''
|
||||
},
|
||||
dataForm: {
|
||||
state: 0
|
||||
},
|
||||
rowData: {},
|
||||
wrjStateObj: {
|
||||
0: '待审批',
|
||||
1: '未申请',
|
||||
2: '通过',
|
||||
3: '未通过'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
taskHandle(row) {
|
||||
this.form.auditViem = '';
|
||||
this.rowData = row;
|
||||
this.centerDialogVisible = true
|
||||
},
|
||||
through(state) {
|
||||
// 2-通过 3-不通过
|
||||
this.handlePut(state)
|
||||
},
|
||||
handlePut(state) {
|
||||
this.$http.put(`/deviceApply`, {
|
||||
...this.rowData,
|
||||
state: state,
|
||||
...this.form
|
||||
}).then(({ data: res }) => {
|
||||
console.log('res------------>', res);
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.centerDialogVisible = false
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
duration: 500,
|
||||
onClose: () => {
|
||||
this.query()
|
||||
}
|
||||
})
|
||||
}).catch((err) => {
|
||||
console.log('err------------>', err);
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.demand-text {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.area-text {
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
.tooltip-box {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -7,75 +7,62 @@
|
|||
<div class="dataTitleSon">
|
||||
{{ itemson.name }}
|
||||
</div>
|
||||
<div
|
||||
class="dataContent"
|
||||
v-if="
|
||||
itemson.name !== '算法优势' &&
|
||||
itemson.name !== '应用场景' &&
|
||||
itemson.name !== '功能介绍'
|
||||
"
|
||||
>
|
||||
<el-form-item
|
||||
v-for="itemsonson in itemson.children"
|
||||
:key="itemsonson.name"
|
||||
:label="
|
||||
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
|
||||
"
|
||||
v-show="
|
||||
!(
|
||||
itemsonson.name === '平台地址' ||
|
||||
itemsonson.name === 'SDK安装包' ||
|
||||
itemsonson.name === '接口请求方式' ||
|
||||
itemsonson.name === '服务接口'
|
||||
)
|
||||
"
|
||||
>
|
||||
<div
|
||||
class="videoAndImgCss"
|
||||
v-if="
|
||||
itemsonson.type === 'video' || itemsonson.type === 'image'
|
||||
"
|
||||
@click="videoAndImg(itemsonson.note1)"
|
||||
>
|
||||
<div class="dataContent" v-if="
|
||||
itemson.name !== '算法优势' &&
|
||||
itemson.name !== '应用场景' &&
|
||||
itemson.name !== '功能介绍'
|
||||
">
|
||||
<el-form-item v-for="itemsonson in itemson.children" :key="itemsonson.name" :label="
|
||||
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
|
||||
" v-show="
|
||||
!(
|
||||
itemsonson.name === '平台地址' ||
|
||||
itemsonson.name === 'SDK安装包' ||
|
||||
itemsonson.name === '接口请求方式' ||
|
||||
itemsonson.name === '服务接口'
|
||||
)
|
||||
">
|
||||
<div class="videoAndImgCss" v-if="
|
||||
itemsonson.type === 'video' || itemsonson.type === 'image'
|
||||
" @click="videoAndImg(itemsonson.note1)">
|
||||
浏览
|
||||
</div>
|
||||
<div
|
||||
v-else-if="itemsonson.type === ' multipleAdditions'"
|
||||
class="multipleAdditionsClass"
|
||||
>
|
||||
<div
|
||||
v-for="multipleAdditionsItem in itemsonson.note1"
|
||||
:key="multipleAdditionsItem"
|
||||
>
|
||||
<div class="videoAndImgCss" v-if="
|
||||
itemsonson.name === '上传附件'
|
||||
" @click="videoAndImg(itemsonson.note1)">
|
||||
下载
|
||||
</div>
|
||||
<div v-else-if="itemsonson.type === ' multipleAdditions'" class="multipleAdditionsClass">
|
||||
<div v-for="multipleAdditionsItem in itemsonson.note1" :key="multipleAdditionsItem">
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">
|
||||
{{
|
||||
multipleAdditionsItem.question ||
|
||||
multipleAdditionsItem.type ||
|
||||
multipleAdditionsItem.name
|
||||
multipleAdditionsItem.question ||
|
||||
multipleAdditionsItem.type ||
|
||||
multipleAdditionsItem.name
|
||||
}}
|
||||
</div>
|
||||
<div>
|
||||
{{
|
||||
multipleAdditionsItem.question ||
|
||||
multipleAdditionsItem.type ||
|
||||
multipleAdditionsItem.name
|
||||
multipleAdditionsItem.question ||
|
||||
multipleAdditionsItem.type ||
|
||||
multipleAdditionsItem.name
|
||||
}}
|
||||
</div>
|
||||
</el-tooltip>
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">
|
||||
{{
|
||||
multipleAdditionsItem.answer ||
|
||||
multipleAdditionsItem.price ||
|
||||
multipleAdditionsItem.img
|
||||
multipleAdditionsItem.answer ||
|
||||
multipleAdditionsItem.price ||
|
||||
multipleAdditionsItem.img
|
||||
}}
|
||||
</div>
|
||||
<div>
|
||||
{{
|
||||
multipleAdditionsItem.answer ||
|
||||
multipleAdditionsItem.price ||
|
||||
multipleAdditionsItem.img
|
||||
multipleAdditionsItem.answer ||
|
||||
multipleAdditionsItem.price ||
|
||||
multipleAdditionsItem.img
|
||||
}}
|
||||
</div>
|
||||
</el-tooltip>
|
||||
|
@ -86,54 +73,31 @@
|
|||
<!-- <div>{{ multipleAdditionsItem }}</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<el-tooltip v-else placement="top" :disabled="itemsonson.note1 !== null?false:true" :content="itemsonson.note1">
|
||||
<el-tooltip v-else placement="top" :disabled="itemsonson.note1 !== null ? false : true"
|
||||
:content="itemsonson.note1">
|
||||
<!-- <div slot="content" v-show="itemsonson.note1">{{ itemsonson.note1 }}</div> -->
|
||||
<el-input
|
||||
v-model="itemsonson.note1"
|
||||
disabled="disabled"
|
||||
></el-input>
|
||||
<el-input v-model="itemsonson.note1" disabled="disabled"></el-input>
|
||||
</el-tooltip>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-for="itemsonson in itemson.children"
|
||||
:key="itemsonson.name"
|
||||
:label="
|
||||
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
|
||||
"
|
||||
v-show="
|
||||
(itemsonson.name === '平台地址' && showDocking) ||
|
||||
(itemsonson.name === 'SDK安装包' && showSDK) ||
|
||||
(itemsonson.name === '接口请求方式' && showInterface) ||
|
||||
(itemsonson.name === '服务接口' && showInterface)
|
||||
"
|
||||
>
|
||||
<el-tooltip placement="top" :disabled="itemsonson.note1 !== null?false:true" :content="itemsonson.note1">
|
||||
<el-input
|
||||
v-model="itemsonson.note1"
|
||||
disabled="disabled"
|
||||
></el-input>
|
||||
</el-tooltip>
|
||||
<el-form-item v-for="itemsonson in itemson.children" :key="itemsonson.name" :label="
|
||||
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
|
||||
" v-show="
|
||||
(itemsonson.name === '平台地址' && showDocking) ||
|
||||
(itemsonson.name === 'SDK安装包' && showSDK) ||
|
||||
(itemsonson.name === '接口请求方式' && showInterface) ||
|
||||
(itemsonson.name === '服务接口' && showInterface)
|
||||
">
|
||||
<el-tooltip placement="top" :disabled="itemsonson.note1 !== null ? false : true" :content="itemsonson.note1">
|
||||
<el-input v-model="itemsonson.note1" disabled="disabled"></el-input>
|
||||
</el-tooltip>
|
||||
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div
|
||||
v-else-if="itemson.name === '算法优势'"
|
||||
style="margin-bottom: 20px"
|
||||
>
|
||||
<div
|
||||
v-for="itemDataForm in dataForm.infoList"
|
||||
:key="itemDataForm.attrType"
|
||||
>
|
||||
<div
|
||||
v-if="itemDataForm.attrType === '算法优势'"
|
||||
class="textAndImg"
|
||||
>
|
||||
<div
|
||||
v-for="itemDataFormValue in itemDataForm.attrValue"
|
||||
:key="itemDataFormValue.name + 'value'"
|
||||
class="textAndImgSon"
|
||||
style="border: 1px solid #3c9bcd;margin"
|
||||
>
|
||||
<div v-else-if="itemson.name === '算法优势'" style="margin-bottom: 20px">
|
||||
<div v-for="itemDataForm in dataForm.infoList" :key="itemDataForm.attrType">
|
||||
<div v-if="itemDataForm.attrType === '算法优势'" class="textAndImg">
|
||||
<div v-for="itemDataFormValue in itemDataForm.attrValue" :key="itemDataFormValue.name + 'value'"
|
||||
class="textAndImgSon" style="border: 1px solid #3c9bcd;margin">
|
||||
<div>{{ itemDataFormValue.name }}</div>
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">{{ itemDataFormValue.desc }}</div>
|
||||
|
@ -143,24 +107,11 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-else-if="itemson.name === '应用场景'"
|
||||
style="margin-bottom: 20px"
|
||||
>
|
||||
<div
|
||||
v-for="itemDataForm in dataForm.infoList"
|
||||
:key="itemDataForm.attrType"
|
||||
>
|
||||
<div
|
||||
v-if="itemDataForm.attrType === '应用场景'"
|
||||
class="textAndImg"
|
||||
>
|
||||
<div
|
||||
v-for="itemDataFormValue in itemDataForm.attrValue"
|
||||
:key="itemDataFormValue.name + 'value'"
|
||||
class="textAndImgSon"
|
||||
style="border: 1px solid #3c9bcd;margin"
|
||||
>
|
||||
<div v-else-if="itemson.name === '应用场景'" style="margin-bottom: 20px">
|
||||
<div v-for="itemDataForm in dataForm.infoList" :key="itemDataForm.attrType">
|
||||
<div v-if="itemDataForm.attrType === '应用场景'" class="textAndImg">
|
||||
<div v-for="itemDataFormValue in itemDataForm.attrValue" :key="itemDataFormValue.name + 'value'"
|
||||
class="textAndImgSon" style="border: 1px solid #3c9bcd;margin">
|
||||
<div>{{ itemDataFormValue.name }}</div>
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">{{ itemDataFormValue.desc }}</div>
|
||||
|
@ -171,24 +122,11 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-else-if="itemson.name === '功能介绍'"
|
||||
style="margin-bottom: 20px"
|
||||
>
|
||||
<div
|
||||
v-for="itemDataForm in dataForm.infoList"
|
||||
:key="itemDataForm.attrType"
|
||||
>
|
||||
<div
|
||||
v-if="itemDataForm.attrType === '功能介绍'"
|
||||
class="textAndImg"
|
||||
>
|
||||
<div
|
||||
v-for="itemDataFormValue in itemDataForm.attrValue"
|
||||
:key="itemDataFormValue.name + 'value'"
|
||||
class="textAndImgSon"
|
||||
style="border: 1px solid #3c9bcd;margin"
|
||||
>
|
||||
<div v-else-if="itemson.name === '功能介绍'" style="margin-bottom: 20px">
|
||||
<div v-for="itemDataForm in dataForm.infoList" :key="itemDataForm.attrType">
|
||||
<div v-if="itemDataForm.attrType === '功能介绍'" class="textAndImg">
|
||||
<div v-for="itemDataFormValue in itemDataForm.attrValue" :key="itemDataFormValue.name + 'value'"
|
||||
class="textAndImgSon" style="border: 1px solid #3c9bcd;margin">
|
||||
<div>{{ itemDataFormValue.name }}</div>
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">{{ itemDataFormValue.desc }}</div>
|
||||
|
@ -240,9 +178,9 @@ export default {
|
|||
},
|
||||
insertList (val) {
|
||||
if (val) {
|
||||
if (this.dataForm.type === '应用资源') {
|
||||
if (this.dataForm.type === '应用系统') {
|
||||
this.dataView = val.filter(
|
||||
(item) => item.name === this.dataForm.type + '一'
|
||||
(item) => item.name === '应用资源一'
|
||||
)[0]
|
||||
this.dataForm.infoList.map((item, index) => {
|
||||
this.dataView.children.map((itemView, indexView) => {
|
||||
|
@ -452,8 +390,8 @@ export default {
|
|||
this.$http
|
||||
.get(
|
||||
'/dataResourceRel/queryApp4PartByKeyId' +
|
||||
'?keyId=' +
|
||||
this.dataForm.id
|
||||
'?keyId=' +
|
||||
this.dataForm.id
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
this.dataView.children[index].children[indexSon].children[
|
||||
|
@ -469,9 +407,9 @@ export default {
|
|||
this.$http
|
||||
.get(
|
||||
'/dataResourceRel/queryPart4AppByKeyId?keyId=' +
|
||||
this.dataForm.id +
|
||||
'&type=' +
|
||||
'组件服务'
|
||||
this.dataForm.id +
|
||||
'&type=' +
|
||||
'组件服务'
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
this.dataView.children[index].children[indexSon].children[
|
||||
|
@ -486,7 +424,7 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
created () {},
|
||||
created () { },
|
||||
mounted () {
|
||||
this.deptName()
|
||||
}
|
||||
|
@ -505,17 +443,20 @@ export default {
|
|||
font-size: 22px;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.dataTitleSon {
|
||||
padding-left: 30px;
|
||||
color: #333333;
|
||||
font-size: 22px;
|
||||
margin-bottom: 20px;
|
||||
background: url('~@/assets/img/sj-jx.png') no-repeat;
|
||||
background: url("~@/assets/img/sj-jx.png") no-repeat;
|
||||
background-position-x: 15px;
|
||||
}
|
||||
|
||||
.multipleAdditionsClass {
|
||||
display: flex;
|
||||
& > div {
|
||||
|
||||
&>div {
|
||||
margin-right: 30px;
|
||||
border: 1px solid #3c9bcd;
|
||||
width: 212px;
|
||||
|
@ -525,7 +466,8 @@ export default {
|
|||
align-items: center;
|
||||
padding: 10px;
|
||||
overflow: hidden;
|
||||
& > div:first-child {
|
||||
|
||||
&>div:first-child {
|
||||
margin-bottom: 10px;
|
||||
font-weight: bold;
|
||||
line-height: 14px;
|
||||
|
@ -535,7 +477,8 @@ export default {
|
|||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
& > div:nth-child(2) {
|
||||
|
||||
&>div:nth-child(2) {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
|
@ -543,7 +486,8 @@ export default {
|
|||
-webkit-line-clamp: 6;
|
||||
line-height: initial;
|
||||
}
|
||||
& > div:nth-child(3) {
|
||||
|
||||
&>div:nth-child(3) {
|
||||
width: 90%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -554,6 +498,7 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.videoAndImgCss {
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
|
@ -562,10 +507,13 @@ export default {
|
|||
padding: 5px;
|
||||
margin-top: 10px;
|
||||
background: rgba(60, 155, 205, 0.1);
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.textAndImg {
|
||||
display: flex;
|
||||
padding-left: 30px;
|
||||
|
||||
.textAndImgSon {
|
||||
width: 212px;
|
||||
height: 182px;
|
||||
|
@ -575,7 +523,8 @@ export default {
|
|||
align-items: center;
|
||||
padding: 10px;
|
||||
position: relative;
|
||||
& > div {
|
||||
|
||||
&>div {
|
||||
-webkit-line-clamp: 5;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -583,11 +532,13 @@ export default {
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
& > div:first-child {
|
||||
|
||||
&>div:first-child {
|
||||
margin-bottom: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
& > div:nth-child(3) {
|
||||
|
||||
&>div:nth-child(3) {
|
||||
margin-top: 10px;
|
||||
position: absolute;
|
||||
bottom: 8px;
|
||||
|
@ -601,13 +552,27 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dataContent {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 33%);
|
||||
padding-left: 30px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
|
||||
}
|
||||
|
||||
::v-deep .el-form-item {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
::v-deep .el-form-item__label {
|
||||
width: 112px;
|
||||
}
|
||||
|
||||
::v-deep .el-form-item__content {
|
||||
display: inline-block;
|
||||
|
||||
input {
|
||||
width: 400px;
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
<div class="agreeOr" v-if="taskId">
|
||||
<h3>审批</h3>
|
||||
<div>
|
||||
<el-button type="info" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button>
|
||||
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
||||
<el-button type="danger" plain @click="showDialog('驳回')"
|
||||
>驳回</el-button
|
||||
|
@ -61,6 +62,7 @@
|
|||
> -->
|
||||
</div>
|
||||
</div>
|
||||
<ren-task-entrust v-if="renTaskEntrustVisible" ref="renTaskEntrust"></ren-task-entrust>
|
||||
<!-- 流程详情 -->
|
||||
<ren-process-detail></ren-process-detail>
|
||||
<el-dialog
|
||||
|
@ -84,6 +86,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import RenTaskEntrust from '@/components/ren-process-running/src/ren-task-entrust'
|
||||
import bus from '@/views/bus.js'
|
||||
import ResourcesAndServices from './ResourcesAndServices.vue'
|
||||
import debounce from 'lodash/debounce'
|
||||
|
@ -93,7 +96,8 @@ export default {
|
|||
// 注入公共方法
|
||||
// mixins: [processModule],
|
||||
components: {
|
||||
ResourcesAndServices
|
||||
ResourcesAndServices,
|
||||
RenTaskEntrust
|
||||
},
|
||||
props: {
|
||||
// fromList: {
|
||||
|
@ -105,6 +109,9 @@ export default {
|
|||
},
|
||||
data () {
|
||||
return {
|
||||
taskEntrustFlag: false,
|
||||
taskEntrustFlag2: false,
|
||||
renTaskEntrustVisible: false,
|
||||
dialogVisible: false,
|
||||
dialogType: '',
|
||||
input: '',
|
||||
|
@ -132,6 +139,35 @@ export default {
|
|||
console.log('params=================>', this.$route, this.$route.params)
|
||||
this.taskId = this.$route.params.taskId
|
||||
this.dataForm.taskId = this.$route.params.taskId
|
||||
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
||||
res.data.roleIdList.map(val => {
|
||||
this.$http.get('/sys/role/' + val).then(role => {
|
||||
if (role.data.data.name === '流程管理员') {
|
||||
this.taskEntrustFlag = true
|
||||
this.$http
|
||||
.get(
|
||||
'/act/task/getTaskVariables?taskId=' + this.$route.params.taskId + '&variableName=allowEntrust'
|
||||
).then(entrust => {
|
||||
console.log('11111111111111', entrust, this.dataForm)
|
||||
if (entrust.data.data.allowEntrust === true) {
|
||||
this.taskEntrustFlag2 = true
|
||||
if (this.taskEntrustFlag && this.taskEntrustFlag2) {
|
||||
this.$alert('当前审核部门为' + this.dataForm.deptName + ',该部门未配置审核人,请联系运维工程师配置完成后进行流程转办!', '流程提醒', {
|
||||
confirmButtonText: '确定',
|
||||
callback: action => {
|
||||
// this.$message({
|
||||
// type: 'info',
|
||||
// message: `action: ${action}`
|
||||
// })
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
this.init()
|
||||
console.log('fromList', this.$router.currentRoute.params.businessKey)
|
||||
// this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO
|
||||
|
@ -154,6 +190,15 @@ export default {
|
|||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
|
||||
entrustTask () {
|
||||
this.renTaskEntrustVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.renTaskEntrust.dataForm.taskId = this.dataForm.taskId
|
||||
this.$refs.renTaskEntrust.callbacks = this.callbacks
|
||||
this.$refs.renTaskEntrust.init()
|
||||
})
|
||||
},
|
||||
getInfo (id) {
|
||||
this.$http.get('/resourceMountApply/' + id).then(({ data: res }) => {
|
||||
this.dataForm = res.data.resourceDTO
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-29 15:59:51
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-08-04 14:34:45
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-11-01 15:00:19
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<!-- 流程业务表单 -->
|
||||
|
@ -13,40 +13,32 @@
|
|||
<h3>申请人信息</h3>
|
||||
<div class="big-BOX">
|
||||
<p>
|
||||
<span class="text"
|
||||
>申请人:<span> {{ dataForm.content.user || '--' }}</span></span
|
||||
>
|
||||
<span class="text"
|
||||
>电话:<span>{{ dataForm.content.phone || '--' }}</span></span
|
||||
>
|
||||
<span class="text"
|
||||
>单位:<span>{{ dataForm.content.unit || '--' }}</span></span
|
||||
>
|
||||
<span class="text">申请人:<span> {{ dataForm.content.user || '--' }}</span></span>
|
||||
<span class="text">电话:<span>{{ dataForm.content.phone || '--' }}</span></span>
|
||||
<span class="text">单位:<span>{{ dataForm.content.unit || '--' }}</span></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="text">
|
||||
能力申请标题:<span>
|
||||
{{ dataForm.content.title || '--' }}</span
|
||||
></span
|
||||
>
|
||||
<span class="text" v-if="dataForm.content.applicationSystem"
|
||||
>应用系统:<span>{{
|
||||
dataForm.content.applicationSystem || '--'
|
||||
}}</span></span
|
||||
>
|
||||
<span class="text" ></span>
|
||||
{{ dataForm.content.title || '--' }}</span></span>
|
||||
<span class="text" v-if="dataForm.content.applicationSystem">应用系统:<span>{{
|
||||
dataForm.content.applicationSystem || '--'
|
||||
}}</span></span>
|
||||
<span class="text"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span v-if="dataForm.content.applicationSceneStr"
|
||||
>应用场景:<span>
|
||||
{{ dataForm.content.applicationSceneStr || '--' }}</span
|
||||
></span>
|
||||
<span v-if="dataForm.content.applicationSceneStr">应用场景:<span>
|
||||
{{ dataForm.content.applicationSceneStr || '--' }}</span></span>
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
需求依据:<span>
|
||||
{{ dataForm.content.applicationBackground || '--' }}</span
|
||||
></span>
|
||||
{{ dataForm.content.applicationBackground || '--' }}</span></span>
|
||||
</p>
|
||||
<p>
|
||||
<div>
|
||||
<el-button type="primary" v-if="dataForm.content.attachment" size="small" @click="download(dataForm.content)">附件下载</el-button>
|
||||
</div>
|
||||
</p>
|
||||
<!-- <p>
|
||||
<span>
|
||||
|
@ -71,6 +63,7 @@
|
|||
<!-- 申请能力 -->
|
||||
<div class="AbilityApply">
|
||||
<h3>申请能力</h3>
|
||||
<div style="font-size:18px;font-weight:600;margin-top:20px;">{{deptName}}</div>
|
||||
<ul v-for="item in dataList" :key="item.id">
|
||||
<!-- <li class="title">{{item.address}}</li> -->
|
||||
<li class="clearfix">
|
||||
|
@ -85,7 +78,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
<!-- 流程综合组件 -->
|
||||
<!-- <ren-process-multiple
|
||||
<!-- <ren-process-multiple
|
||||
v-if="processVisible"
|
||||
updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId"
|
||||
saveFormUrl="/processForm/tabilityapplication"
|
||||
|
@ -101,33 +94,25 @@
|
|||
<el-radio-button label="同意" class="blueAll" @click="showDialog('同意')">同意</el-radio-button>
|
||||
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
|
||||
</el-radio-group> -->
|
||||
<!-- 委托 -->
|
||||
<el-button type="info" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button>
|
||||
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
||||
<el-button type="danger" plain @click="showDialog('驳回')"
|
||||
>驳回</el-button
|
||||
>
|
||||
<el-button type="danger" plain @click="showDialog('驳回')">驳回</el-button>
|
||||
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
|
||||
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
|
||||
<el-button class="inputBule" @click="agreeOrNot">提交</el-button> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ren-task-entrust v-if="renTaskEntrustVisible" ref="renTaskEntrust"></ren-task-entrust>
|
||||
<!-- 流程详情 -->
|
||||
<ren-process-detail></ren-process-detail>
|
||||
<el-dialog
|
||||
title="审批意见"
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="dialogVisible"
|
||||
width="30%"
|
||||
:before-close="handleClose"
|
||||
>
|
||||
<ren-process-detail ref="renProcessMultiple"></ren-process-detail>
|
||||
<el-dialog title="审批意见" :close-on-click-modal="false" :visible.sync="dialogVisible" width="30%"
|
||||
:before-close="handleClose">
|
||||
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleClose2">取 消</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
|
||||
>确 定</el-button
|
||||
>
|
||||
<el-button type="primary" @click.native="agreeOrNot($store.state.contentTabsActiveName)">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
|
@ -135,6 +120,7 @@
|
|||
|
||||
<script>
|
||||
// 引入工作流公共方法
|
||||
import RenTaskEntrust from '@/components/ren-process-running/src/ren-task-entrust'
|
||||
import processModule from '@/mixins/process-module'
|
||||
// import mixinViewModule from '@/mixins/view-module'
|
||||
import debounce from 'lodash/debounce'
|
||||
|
@ -146,7 +132,11 @@ export default {
|
|||
mixins: [processModule],
|
||||
data () {
|
||||
return {
|
||||
callbacks: null,
|
||||
taskEntrustFlag: false,
|
||||
taskEntrustFlag2: false,
|
||||
dialogVisible: false,
|
||||
renTaskEntrustVisible: false,
|
||||
dialogType: '',
|
||||
input: '',
|
||||
visible: true,
|
||||
|
@ -168,12 +158,23 @@ export default {
|
|||
content: {}
|
||||
},
|
||||
dataList: [],
|
||||
deptName: '',
|
||||
inputAgree: '',
|
||||
inputNo: '',
|
||||
agreeOrList: '同意'
|
||||
}
|
||||
},
|
||||
created () {
|
||||
// 获取角色信息
|
||||
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
||||
res.data.roleIdList.map(val => {
|
||||
this.$http.get('/sys/role/' + val).then(role => {
|
||||
if (role.data.data.name === '流程管理员') {
|
||||
this.taskEntrustFlag = true
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
// 将业务KEY赋值给表单
|
||||
console.log('params=================>', this.$route, this.$route.params)
|
||||
this.dataForm.taskId = this.$route.params.taskId
|
||||
|
@ -204,7 +205,8 @@ export default {
|
|||
// }
|
||||
},
|
||||
components: {
|
||||
RenProcessDetail
|
||||
RenProcessDetail,
|
||||
RenTaskEntrust
|
||||
},
|
||||
methods: {
|
||||
init () {
|
||||
|
@ -219,7 +221,16 @@ export default {
|
|||
}
|
||||
})
|
||||
},
|
||||
entrustTask () {
|
||||
this.renTaskEntrustVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.renTaskEntrust.dataForm.taskId = this.dataForm.taskId
|
||||
this.$refs.renTaskEntrust.callbacks = this.callbacks
|
||||
this.$refs.renTaskEntrust.init()
|
||||
})
|
||||
},
|
||||
showDialog (title) {
|
||||
this.input = title
|
||||
this.dialogVisible = true
|
||||
this.dialogType = title
|
||||
},
|
||||
|
@ -229,7 +240,7 @@ export default {
|
|||
this.input = ''
|
||||
done()
|
||||
})
|
||||
.catch((_) => {})
|
||||
.catch((_) => { })
|
||||
},
|
||||
handleClose2 () {
|
||||
this.dialogVisible = false
|
||||
|
@ -239,8 +250,8 @@ export default {
|
|||
console.log(window.SITE_CONFIG.previewUrl)
|
||||
window.open(
|
||||
window.SITE_CONFIG.previewUrl +
|
||||
'hisense_office/onlinePreview?url=' +
|
||||
btoa(encodeURI(url))
|
||||
'hisense_office/onlinePreview?url=' +
|
||||
btoa(encodeURI(url))
|
||||
)
|
||||
},
|
||||
// 获取信息
|
||||
|
@ -262,6 +273,26 @@ export default {
|
|||
this.dataForm,
|
||||
'elas============================'
|
||||
)
|
||||
this.deptName = res.data.tAbilityApplicationDTOList[0].resourceOwnerDept.name
|
||||
this.$http
|
||||
.get(
|
||||
`/act/task/getTaskVariables?${params}&variableName=allowEntrust`
|
||||
).then(entrust => {
|
||||
if (entrust.data.data.allowEntrust === true) {
|
||||
this.taskEntrustFlag2 = true
|
||||
if (this.taskEntrustFlag && this.taskEntrustFlag2) {
|
||||
this.$alert('当前审核部门为' + res.data.tAbilityApplicationDTOList[0].resourceOwnerDept.name + ',该部门未配置审核人,请联系运维工程师配置完成后进行流程转办!', '流程提醒', {
|
||||
confirmButtonText: '确定',
|
||||
callback: action => {
|
||||
// this.$message({
|
||||
// type: 'info',
|
||||
// message: `action: ${action}`
|
||||
// })
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
if (res.data.tAbilityApplicationDTOList[0].applicationScene) {
|
||||
res.data.tAbilityApplicationDTOList[0].applicationSceneStr = ''
|
||||
res.data.tAbilityApplicationDTOList[0].applicationScene.map(
|
||||
|
@ -272,7 +303,7 @@ export default {
|
|||
index <
|
||||
res.data.tAbilityApplicationDTOList[0].applicationScene
|
||||
.length -
|
||||
1
|
||||
1
|
||||
) {
|
||||
res.data.tAbilityApplicationDTOList[0].applicationSceneStr +=
|
||||
'、'
|
||||
|
@ -307,7 +338,7 @@ export default {
|
|||
this.dataList.push(obj)
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
.catch(() => { })
|
||||
} else {
|
||||
params = `instanceId=${this.dataForm.instanceId}`
|
||||
this.$http
|
||||
|
@ -359,7 +390,7 @@ export default {
|
|||
this.dataList.push(obj)
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
.catch(() => { })
|
||||
}
|
||||
},
|
||||
// 申请能力
|
||||
|
@ -375,7 +406,7 @@ export default {
|
|||
// this.dataForm.content = res.data
|
||||
// console.log(this.dataForm, 'ela')
|
||||
})
|
||||
.catch(() => {})
|
||||
.catch(() => { })
|
||||
},
|
||||
// 同意与退回
|
||||
agreeOrNot: debounce(
|
||||
|
@ -412,7 +443,7 @@ export default {
|
|||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
.catch(() => { })
|
||||
this.tabRemoveHandle(data)
|
||||
} else {
|
||||
this.$message.error('请输入审批意见!')
|
||||
|
@ -486,7 +517,13 @@ export default {
|
|||
console.log(data)
|
||||
},
|
||||
// 任务处理出错回调
|
||||
taskHandleErrorCallback (data) {}
|
||||
taskHandleErrorCallback (data) { },
|
||||
download (data) {
|
||||
const alink = document.createElement('a')
|
||||
alink.download = '附件' // 文件名,大部分浏览器兼容,IE10及以下不兼容
|
||||
alink.href = data.attachment // 创建 url地址
|
||||
alink.click() // 自动点击
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
// this.applyData()
|
||||
|
@ -497,38 +534,47 @@ export default {
|
|||
::v-deep .big-BOX {
|
||||
background: rgba(244, 245, 248, 0.8);
|
||||
padding: 24px;
|
||||
|
||||
h3 {
|
||||
font-size: 16px;
|
||||
color: #212121;
|
||||
}
|
||||
|
||||
p {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
color: #212121;
|
||||
font-size: 14px;
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
margin-left: 8px;
|
||||
line-height: 32px;
|
||||
|
||||
span {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.text {
|
||||
width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
.lastP {
|
||||
margin-top: 16px;
|
||||
width: 100%;
|
||||
|
||||
span {
|
||||
display: flex;
|
||||
|
||||
span {
|
||||
padding: 0 12px;
|
||||
height: 32px;
|
||||
background: rgba(232, 234, 239, 1);
|
||||
border-radius: 2px;
|
||||
|
||||
button {
|
||||
background: unset;
|
||||
border: 0;
|
||||
|
@ -539,6 +585,7 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .AbilityApply {
|
||||
margin-top: 32px;
|
||||
|
||||
|
@ -548,27 +595,33 @@ export default {
|
|||
border-bottom: 1px solid #dddee1;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 0px;
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 30px 0;
|
||||
border-bottom: 1px solid #dddee1;
|
||||
display: flex;
|
||||
|
||||
img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
div {
|
||||
margin-left: 16px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
|
||||
h2 {
|
||||
margin-bottom: 20px;
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
display: flex;
|
||||
|
||||
span {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
|
@ -581,22 +634,26 @@ export default {
|
|||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: #0558e1;
|
||||
font-size: 18px;
|
||||
padding-bottom: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.title:before {
|
||||
content: "";
|
||||
width: 6px;
|
||||
|
@ -610,17 +667,21 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .agreeOr > div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.el-input {
|
||||
margin-right: 10px;
|
||||
margin-left: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .agreeOr > div:last-of-type {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.blueAll {
|
||||
::v-deep .el-radio-button__inner {
|
||||
width: 80px;
|
||||
|
@ -632,12 +693,14 @@ export default {
|
|||
color: #0558e1;
|
||||
border: 1px solid #0558e1;
|
||||
}
|
||||
|
||||
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||
box-shadow: unset !important;
|
||||
background: #0558e1;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.inputBule {
|
||||
width: 55px;
|
||||
height: 32px;
|
||||
|
@ -648,8 +711,10 @@ export default {
|
|||
color: #ffffff;
|
||||
border: 1px solid #0558e1;
|
||||
}
|
||||
|
||||
.redAll {
|
||||
margin-left: 10px;
|
||||
|
||||
::v-deep .el-radio-button__inner {
|
||||
width: 80px;
|
||||
height: 32px;
|
||||
|
@ -661,12 +726,14 @@ export default {
|
|||
color: #e83a48;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||
box-shadow: unset !important;
|
||||
color: #ffffff;
|
||||
background: #e83a48;
|
||||
}
|
||||
}
|
||||
|
||||
.blueInput {
|
||||
width: 55px;
|
||||
}
|
||||
|
|
|
@ -15,37 +15,47 @@
|
|||
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="title" :label="$t('notice.title')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="type" :label="$t('notice.type')" header-align="center" align="center" width="150">
|
||||
<el-table-column prop="title" :label="$t('notice.title')" header-align="center" align="center" width="180">
|
||||
</el-table-column>
|
||||
<!-- 内容 prop="content"-->
|
||||
<el-table-column :label="$t('news.content')" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
{{ $getDictLabel("notice_type", scope.row.type) }}
|
||||
<el-tooltip effect="dark" :content="scope.row.content" placement="top">
|
||||
<span class="text-ellipsis">{{ scope.row.content }}</span>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="senderName" :label="$t('notice.senderName')" header-align="center" align="center" width="150"></el-table-column>
|
||||
<el-table-column prop="senderDate" :label="$t('notice.senderDate')" header-align="center" align="center" width="170"></el-table-column>
|
||||
<el-table-column prop="type" :label="$t('notice.type')" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
{{ $getDictLabel("notice_type", scope.row.type) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="senderName" :label="$t('notice.senderName')" header-align="center" align="center"
|
||||
width="150"></el-table-column>
|
||||
<el-table-column prop="senderDate" :label="$t('notice.senderDate')" header-align="center" align="center"
|
||||
width="170"></el-table-column>
|
||||
<el-table-column prop="status" :label="$t('notice.status')" header-align="center" align="center" width="130">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{ $t('notice.status0') }}</el-tag>
|
||||
<el-tag v-else size="small" type="success">{{ $t('notice.status1') }}</el-tag>
|
||||
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{ $t('notice.status0') }}</el-tag>
|
||||
<el-tag v-else size="small" type="success">{{ $t('notice.status1') }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="scope.row.status === 0" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="scope.row.status === 1" type="text" size="small" @click="viewHandle(scope.row)">{{ $t('notice.view') }}</el-button>
|
||||
<el-button v-if="scope.row.status === 0" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">
|
||||
{{ $t('update') }}</el-button>
|
||||
<el-button v-if="scope.row.status === 1" type="text" size="small" @click="viewHandle(scope.row)">{{
|
||||
$t('notice.view')
|
||||
}}</el-button>
|
||||
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
|
@ -60,7 +70,7 @@ import AddOrUpdate from './notice-add-or-update'
|
|||
import { addDynamicRoute } from '@/router'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/sys/notice/page',
|
||||
|
@ -77,7 +87,7 @@ export default {
|
|||
AddOrUpdate
|
||||
},
|
||||
methods: {
|
||||
viewHandle (row) {
|
||||
viewHandle(row) {
|
||||
// 路由参数
|
||||
const routeParams = {
|
||||
routeName: `${this.$route.name}__${row.id}`,
|
||||
|
@ -93,3 +103,13 @@ export default {
|
|||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.text-ellipsis {
|
||||
/*1. 先强制一行内显示文本*/
|
||||
white-space: nowrap;
|
||||
/*2. 超出的部分隐藏*/
|
||||
overflow: hidden;
|
||||
/*3. 文字用省略号替代超出的部分*/
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -36,8 +36,10 @@
|
|||
tip="支持文件类型,大小不超过100M"></upload>
|
||||
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.mp4' :list="item" v-else-if="item.type == 'video'" type="视频" btnName="上传视频" :maxCount="1" :dataList="item"
|
||||
tip="支持视频类型,大小不超过100M"></upload>
|
||||
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.zip' :list="item" v-else-if="item.type == 'package'" type="安装包" btnName="上传安装包" :maxCount="1" :dataList="item"
|
||||
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.zip' :list="item" v-else-if="item.type == 'package' &&item.name != '上传附件'" type="安装包" btnName="上传安装包" :maxCount="1" :dataList="item"
|
||||
tip="支持.zip类型,大小不超过100M"></upload>
|
||||
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.pdf,.ppt,.xlsx,.doc,.docx,.zip' :list="item" v-else-if="item.name == '上传附件'" type="附件" btnName="上传附件" :maxCount="1" :dataList="item"
|
||||
tip="支持.doc,.docx,.zip,.ppt,.pdf类型,大小不超过100M"></upload>
|
||||
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'AbilityType'" type="disabled" :data="item" :name="item.name" :value="typeInput"></input-select-checkbox>
|
||||
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'ComponentType'" type="disabled" :data="item" :name="item.name" :value="type"></input-select-checkbox>
|
||||
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'input'" type="input" :data="item" :name="item.name"></input-select-checkbox>
|
||||
|
@ -267,7 +269,7 @@ export default {
|
|||
}
|
||||
.item {
|
||||
position: relative;
|
||||
.box{
|
||||
.box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 25px 0;
|
||||
|
@ -276,17 +278,17 @@ export default {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.required{
|
||||
.required {
|
||||
color: #f56c6c;
|
||||
margin-right: 3px;
|
||||
}
|
||||
}
|
||||
.requiredTips{
|
||||
.requiredTips {
|
||||
font-size: 14px;
|
||||
color: #f56c6c;
|
||||
position: absolute;
|
||||
bottom:-20px;
|
||||
left:110px;
|
||||
bottom: -20px;
|
||||
left: 110px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -142,48 +142,7 @@ export default {
|
|||
// 排行榜
|
||||
RankingData: [],
|
||||
// 表格
|
||||
AnomalyStatisticsTable: [
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
},
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
},
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
},
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
},
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
}
|
||||
],
|
||||
AnomalyStatisticsTable: [],
|
||||
// 分页
|
||||
currentPage4: 1,
|
||||
total: 0
|
||||
|
|
|
@ -3,22 +3,36 @@
|
|||
<div class="mod-sys__dept">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:dept:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:dept:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table v-loading="dataListLoading" :data="dataList" row-key="id" border style="width: 100%;">
|
||||
<el-table-column prop="name" :label="$t('dept.name')" header-align="center" min-width="150"></el-table-column>
|
||||
<el-table-column prop="parentName" :label="$t('dept.parentName')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="sort" :label="$t('dept.sort')" header-align="center" align="center" width="80"></el-table-column>
|
||||
<el-table-column prop="parentName" :label="$t('dept.parentName')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="sort" :label="$t('dept.sort')" header-align="center" align="center" width="80">
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="$hasPermission('sys:dept:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:dept:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:dept:update')" type="text" size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:dept:delete')" type="text" size="small"
|
||||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type" label="类型" header-align="center" align="center" width="80"></el-table-column>
|
||||
<el-table-column prop="district" label="区划" header-align="center" align="center" width="80"></el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
</div>
|
||||
|
@ -31,12 +45,16 @@ import AddOrUpdate from './dept-add-or-update'
|
|||
import qs from 'qs'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/sys/dept/list',
|
||||
deleteURL: '/sys/dept'
|
||||
}
|
||||
},
|
||||
total: 0,
|
||||
limit: 10,
|
||||
page: 1,
|
||||
dataList: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
@ -45,16 +63,35 @@ export default {
|
|||
watch: {
|
||||
dataList: {
|
||||
handler: function () {
|
||||
this.init()
|
||||
this.getData()
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init () {
|
||||
debugger
|
||||
this.$http.get('/sys/dept/list').then((res) => {
|
||||
res.data.data.map((item, index) => {
|
||||
if (item.district != null || item.children.length > 0) {
|
||||
// 分页, 每页条数
|
||||
pageSizeChangeHandle (val) {
|
||||
this.page = 1
|
||||
this.limit = val
|
||||
this.getData()
|
||||
},
|
||||
// 分页, 当前页
|
||||
pageCurrentChangeHandle (val) {
|
||||
this.page = val
|
||||
this.getData()
|
||||
},
|
||||
getData() {
|
||||
// debugger
|
||||
let _data = {
|
||||
limt: this.limit,
|
||||
page: this.page,
|
||||
}
|
||||
this.$http.get('sys/dept/page', {
|
||||
params: _data
|
||||
}).then((res) => {
|
||||
this.total = res.data.data.total;
|
||||
res.data.data.list.map((item, index) => {
|
||||
console.log('item, index------------>', item, index);
|
||||
if (item.district != null || item.children.length >= 0) {
|
||||
this.$http.get('/sys/region/' + item.district).then((data) => {
|
||||
this.dataList[index].district = data.data.data.name
|
||||
console.log('datafrom', this.dataList)
|
||||
|
@ -72,10 +109,10 @@ export default {
|
|||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
},
|
||||
created () {
|
||||
this.init()
|
||||
created() {
|
||||
this.getData()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -52,15 +52,15 @@
|
|||
>
|
||||
<el-option
|
||||
label="增加"
|
||||
value="/renren-admin/resource%/insert"
|
||||
value="/ucs-admin/resource%/insert"
|
||||
></el-option>
|
||||
<el-option
|
||||
label="更新"
|
||||
value="/renren-admin/resource%/update"
|
||||
value="/ucs-admin/resource%/update"
|
||||
></el-option>
|
||||
<el-option
|
||||
label="删除"
|
||||
value="/renren-admin/resource%/delete"
|
||||
value="/ucs-admin/resource%/delete"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
|
|
@ -33,9 +33,13 @@
|
|||
<el-form-item prop="sort" :label="$t('menu.sort')">
|
||||
<el-input-number v-model="dataForm.sort" controls-position="right" :min="0" :label="$t('menu.sort')"></el-input-number>
|
||||
</el-form-item>
|
||||
<!-- 授权标识 -->
|
||||
<el-form-item prop="permissions" :label="$t('menu.permissions')">
|
||||
<el-input v-model="dataForm.permissions" :placeholder="$t('menu.permissionsTips')"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="site" label="站点标识">
|
||||
<el-input v-model="dataForm.site" placeholder="请输入站点标识(1为共享门户,0为后台管理)"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dataForm.type === 0" prop="icon" :label="$t('menu.icon')" class="icon-list">
|
||||
<el-popover v-model="iconListVisible" ref="iconListPopover" placement="bottom-start" trigger="click" popper-class="mod-sys__menu-icon-popover">
|
||||
<div class="mod-sys__menu-icon-inner">
|
||||
|
@ -77,6 +81,7 @@ export default {
|
|||
name: '',
|
||||
pid: '0',
|
||||
parentName: '',
|
||||
site: 0,
|
||||
url: '',
|
||||
permissions: '',
|
||||
sort: 0,
|
||||
|
@ -98,14 +103,14 @@ export default {
|
|||
},
|
||||
watch: {
|
||||
'dataForm.type' (val) {
|
||||
this.$refs['dataForm'].clearValidate()
|
||||
this.$refs.dataForm.clearValidate()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init () {
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
this.$refs.dataForm.resetFields()
|
||||
this.iconList = getIconList()
|
||||
console.log('iconList', this.iconList)
|
||||
this.dataForm.parentName = this.$t('menu.parentNameDefault')
|
||||
|
@ -118,11 +123,12 @@ export default {
|
|||
},
|
||||
// 获取菜单列表
|
||||
getMenuList () {
|
||||
console.log('获取菜单位置2')
|
||||
return this.$http.get('/sys/menu/list?type=0').then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.menuList = res.data
|
||||
this.menuList = res.data.filter(item => item.site === 0)
|
||||
}).catch(() => {})
|
||||
},
|
||||
// 获取信息
|
||||
|
@ -159,7 +165,7 @@ export default {
|
|||
},
|
||||
// 表单提交
|
||||
dataFormSubmitHandle: debounce(function () {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
this.$refs.dataForm.validate((valid) => {
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
|
@ -178,7 +184,7 @@ export default {
|
|||
})
|
||||
}).catch(() => {})
|
||||
})
|
||||
}, 1000, { 'leading': true, 'trailing': false })
|
||||
}, 1000, { leading: true, trailing: false })
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
<!--
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-06-14 09:30:23
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-17 14:54:26
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<div class="mod-sys__menu">
|
||||
|
|
|
@ -9,22 +9,31 @@
|
|||
<el-input v-model="dataForm.postName" :placeholder="$t('post.postName')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<ren-select v-model="dataForm.status" dict-type="post_status" :placeholder="$t('post.status')" ></ren-select>
|
||||
<ren-select v-model="dataForm.status" dict-type="post_status" :placeholder="$t('post.status')"></ren-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:post:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:post:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:post:reset')" type="primary" @click="resetHandle()">{{ $t('reset') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="postCode" :label="$t('post.postCode')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="postName" :label="$t('post.postName')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="postCode" :label="$t('post.postCode')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="postName" :label="$t('post.postName')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="sort" :label="$t('post.sort')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="status" :label="$t('post.status')" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
|
@ -33,18 +42,15 @@
|
|||
</el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="$hasPermission('sys:post:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post:update')" type="text" size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post:delete')" type="text" size="small"
|
||||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
|
@ -58,7 +64,7 @@ import mixinViewModule from '@/mixins/view-module'
|
|||
import AddOrUpdate from './post-add-or-update'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/sys/post/page',
|
||||
|
@ -77,6 +83,14 @@ export default {
|
|||
},
|
||||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
methods: {
|
||||
resetHandle() {
|
||||
Object.keys(this.dataForm).map(v => this.dataForm[v] = '')
|
||||
this.$nextTick(() => {
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -14,6 +14,9 @@
|
|||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:role:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:role:reset')" type="primary" @click="resetHandle()">{{ $t('reset') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
v-loading="dataListLoading"
|
||||
|
@ -68,6 +71,14 @@ export default {
|
|||
},
|
||||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
methods: {
|
||||
resetHandle() {
|
||||
this.dataForm.name = '';
|
||||
this.$nextTick(() => {
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1,209 +1,92 @@
|
|||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<div class="mod-sys__user">
|
||||
<el-form
|
||||
:inline="true"
|
||||
:model="dataForm"
|
||||
@keyup.enter.native="getDataList()"
|
||||
>
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="dataForm.username"
|
||||
placeholder="用户名"
|
||||
clearable
|
||||
></el-input>
|
||||
<el-input v-model="dataForm.username" placeholder="用户名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="dataForm.real_name"
|
||||
placeholder="真实姓名"
|
||||
clearable
|
||||
></el-input>
|
||||
<el-input v-model="dataForm.real_name" placeholder="真实姓名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<ren-select
|
||||
v-model="dataForm.gender"
|
||||
dict-type="gender"
|
||||
:placeholder="$t('user.gender')"
|
||||
></ren-select>
|
||||
<ren-select v-model="dataForm.gender" dict-type="gender" :placeholder="$t('user.gender')"></ren-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select
|
||||
v-model="dataForm.postId"
|
||||
:placeholder="$t('user.postIdList')"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
:label="data.postName"
|
||||
v-for="data in postList"
|
||||
:key="data.id"
|
||||
:value="data.id"
|
||||
>{{ data.postName }}</el-option
|
||||
>
|
||||
<el-select v-model="dataForm.postId" :placeholder="$t('user.postIdList')" clearable>
|
||||
<el-option :label="data.postName" v-for="data in postList" :key="data.id" :value="data.id">{{ data.postName
|
||||
}}</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<ren-dept-tree
|
||||
v-model="dataForm.deptId"
|
||||
:placeholder="$t('dept.title')"
|
||||
:query="true"
|
||||
></ren-dept-tree>
|
||||
<ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :query="true" ref="renDeptTree">
|
||||
</ren-dept-tree>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getDataList()">{{
|
||||
$t('query')
|
||||
$t('query')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:save')"
|
||||
type="primary"
|
||||
@click="addOrUpdateHandle()"
|
||||
>{{ $t('add') }}</el-button
|
||||
>
|
||||
<el-button v-if="$hasPermission('sys:user:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:delete')"
|
||||
type="danger"
|
||||
@click="deleteHandle()"
|
||||
>{{ $t('deleteBatch') }}</el-button
|
||||
>
|
||||
<el-button v-if="$hasPermission('sys:user:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:export')"
|
||||
type="info"
|
||||
@click="exportHandle()"
|
||||
>{{ $t('export') }}</el-button
|
||||
>
|
||||
<el-button v-if="$hasPermission('sys:user:export')" type="info" @click="exportHandle()">{{ $t('export') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="reset()">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
v-loading="dataListLoading"
|
||||
:data="dataList"
|
||||
border
|
||||
@selection-change="dataListSelectionChangeHandle"
|
||||
@sort-change="dataListSortChangeHandle"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="50"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="username"
|
||||
:label="$t('user.username')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="realName"
|
||||
label="真实姓名"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="deptName"
|
||||
:label="$t('user.deptName')"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="email"
|
||||
:label="$t('user.email')"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="mobile"
|
||||
:label="$t('user.mobile')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="gender"
|
||||
:label="$t('user.gender')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
>
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"
|
||||
@sort-change="dataListSortChangeHandle" style="width: 100%">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="username" :label="$t('user.username')" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column prop="realName" label="真实姓名" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="deptName" :label="$t('user.deptName')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" :label="$t('user.email')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="mobile" :label="$t('user.mobile')" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column prop="gender" :label="$t('user.gender')" header-align="center"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
{{ $getDictLabel('gender', scope.row.gender) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="status"
|
||||
:label="$t('user.status')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
>
|
||||
<el-table-column prop="status" :label="$t('user.status')" header-align="center"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{
|
||||
$t('user.status0')
|
||||
$t('user.status0')
|
||||
}}</el-tag>
|
||||
<el-tag v-else size="small" type="success">{{
|
||||
$t('user.status1')
|
||||
$t('user.status1')
|
||||
}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createDate"
|
||||
:label="$t('user.createDate')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="180"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('handle')"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column prop="createDate" :label="$t('user.createDate')" header-align="center"
|
||||
align="center" width="180"></el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:update')"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)"
|
||||
>{{ $t('update') }}</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:delete')"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="deleteHandle(scope.row.id)"
|
||||
>{{ $t('delete') }}</el-button
|
||||
>
|
||||
<el-button v-if="$hasPermission('sys:user:update')" type="text" size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:user:delete')" type="text" size="small"
|
||||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle"
|
||||
>
|
||||
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update
|
||||
v-if="addOrUpdateVisible"
|
||||
ref="addOrUpdate"
|
||||
@refreshDataList="getDataList"
|
||||
></add-or-update>
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
@ -214,7 +97,7 @@ import AddOrUpdate from './user-add-or-update'
|
|||
import qs from 'qs'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/sys/user/page',
|
||||
|
@ -235,30 +118,33 @@ export default {
|
|||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
created () {
|
||||
created() {
|
||||
this.getPostList()
|
||||
},
|
||||
methods: {
|
||||
reset () {
|
||||
reset() {
|
||||
this.dataForm.username = ''
|
||||
this.dataForm.real_name = ''
|
||||
this.dataForm.deptId = ''
|
||||
this.dataForm.postId = ''
|
||||
this.dataForm.gender = ''
|
||||
if (this.$refs.renDeptTree) {
|
||||
this.$refs.renDeptTree.showDeptName = '';
|
||||
}
|
||||
this.$http
|
||||
.get(
|
||||
this.mixinViewModuleOptions.getDataListURL +
|
||||
'?' +
|
||||
qs.stringify({
|
||||
page: 1,
|
||||
limit: 10,
|
||||
username: '',
|
||||
deptId: '',
|
||||
postId: '',
|
||||
gender: ''
|
||||
})
|
||||
'?' +
|
||||
qs.stringify({
|
||||
page: 1,
|
||||
limit: 10,
|
||||
username: '',
|
||||
deptId: '',
|
||||
postId: '',
|
||||
gender: ''
|
||||
})
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
this.dataForm.username = ''
|
||||
this.dataForm.real_name = ''
|
||||
this.dataForm.deptId = ''
|
||||
this.dataForm.postId = ''
|
||||
this.dataForm.gender = ''
|
||||
if (res.code !== 0) {
|
||||
this.dataList = []
|
||||
this.total = 0
|
||||
|
@ -279,7 +165,7 @@ export default {
|
|||
this.dataListLoading = false
|
||||
})
|
||||
},
|
||||
getPostList () {
|
||||
getPostList() {
|
||||
this.$http
|
||||
.get('/sys/post/list')
|
||||
.then(({ data: res }) => {
|
||||
|
@ -288,7 +174,7 @@ export default {
|
|||
}
|
||||
this.postList = res.data
|
||||
})
|
||||
.catch(() => {})
|
||||
.catch(() => { })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
>
|
||||
<div class="content">
|
||||
<img class="img" :src="dataInfo.imgSrc" />
|
||||
<div class="title">{{ title }}</div>
|
||||
<div class="title">{{ '我的'+title }}</div>
|
||||
<div class="flex-row-bottom">
|
||||
<span class="num" :style="{ color: dataInfo.textColor }">{{
|
||||
formatNum(dataInfo.num)
|
||||
|
@ -90,7 +90,7 @@
|
|||
</div>
|
||||
<div class="more" @click="goPage(dataInfo.url)">查看更多 ></div>
|
||||
</div>
|
||||
<div class="list-box flex-row-center no-data" v-else>暂无数据</div>
|
||||
<div class="list-box flex-row-center no-data" v-else>暂无{{title}}任务</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
|
|
@ -4,19 +4,19 @@
|
|||
<div v-if="!noData" v-loading="loading">
|
||||
<div class="no-box">
|
||||
<div class="no no2">
|
||||
<el-tooltip effect="dark" :content="no2Obj.name" placement="top">
|
||||
<el-tooltip effect="dark" :content="no2Obj.name" placement="top" v-if="no2Obj.name">
|
||||
<div class="name ellipsis" :style="{ color: colorObj[2] }">{{ no2Obj.name || '--' }}</div>
|
||||
</el-tooltip>
|
||||
<div class="count">{{ formatCount(no2Obj.count) }}</div>
|
||||
</div>
|
||||
<div class="no no1">
|
||||
<el-tooltip effect="dark" :content="no1Obj.name" placement="top">
|
||||
<el-tooltip effect="dark" :content="no1Obj.name" placement="top" v-if="no1Obj.name">
|
||||
<div class="name ellipsis" :style="{ color: colorObj[1] }">{{ no1Obj.name || '--' }}</div>
|
||||
</el-tooltip>
|
||||
<div class="count">{{ formatCount(no1Obj.count) }}</div>
|
||||
</div>
|
||||
<div class="no no3">
|
||||
<el-tooltip effect="dark" :content="no3Obj.name" placement="top">
|
||||
<el-tooltip effect="dark" :content="no3Obj.name" placement="top" v-if="no3Obj.name">
|
||||
<div class="name ellipsis" :style="{ color: colorObj[3] }">{{ no3Obj.name || '--' }}</div>
|
||||
</el-tooltip>
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
|||
<div class="flex-row-between row-name" v-for="(data, i) in listInfo" :key="i">
|
||||
<div class="left">
|
||||
<div class="row-index">{{ i + 4 }}</div>
|
||||
<el-tooltip effect="dark" :content="data.name" placement="top">
|
||||
<el-tooltip effect="dark" :content="data.name" placement="top" v-if="data.name">
|
||||
<div class="name-text ellipsis">{{ data.name || '--' }}</div>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
<!-- 上 -->
|
||||
<div class="flex-row-start top">
|
||||
<div class="flex-row-start dept-left">
|
||||
<dept-todo-view title="部门待办" v-loading="loadingToDo" :dataInfo="toToData"></dept-todo-view>
|
||||
<dept-todo-view title="部门已办" v-loading="loadingHasToDo" :dataInfo="hasToDodoData"
|
||||
<dept-todo-view title="待办" v-loading="loadingToDo" :dataInfo="toToData"></dept-todo-view>
|
||||
<dept-todo-view title="已办" v-loading="loadingHasToDo" :dataInfo="hasToDodoData"
|
||||
style="margin-left: 0"></dept-todo-view>
|
||||
</div>
|
||||
<div class="flex-row-start dept-chart-box">
|
||||
|
@ -55,7 +55,8 @@ export default {
|
|||
num: 0,
|
||||
list: [],
|
||||
type: 'todo',
|
||||
url: 'activiti-my-todo-task'
|
||||
// url: 'activiti-my-todo-task',
|
||||
url: 'myAgent-CompetencyApplication'
|
||||
},
|
||||
// 部门已办
|
||||
hasToDodoData: {
|
||||
|
@ -67,7 +68,8 @@ export default {
|
|||
textColor: '#21b107',
|
||||
num: 0,
|
||||
list: [],
|
||||
url: 'activiti-my-join-task'
|
||||
// url: 'activiti-my-join-task',
|
||||
url: 'hasToDoTasks-CompetencyApplication'
|
||||
},
|
||||
// 部门申请
|
||||
resourceData: [],
|
||||
|
@ -101,43 +103,53 @@ export default {
|
|||
// 待办
|
||||
getToDo () {
|
||||
this.loadingToDo = true
|
||||
const data = {
|
||||
limit: 5,
|
||||
page: 1
|
||||
}
|
||||
Apis.getToDoTask(data, res => {
|
||||
// const data = {
|
||||
// limit: 5,
|
||||
// page: 1
|
||||
// }
|
||||
this.$http.get('/act/task/myToDoTaskPage?page=1&limit=5').then(res => {
|
||||
this.loadingToDo = false
|
||||
if (res.data.code !== 0) {
|
||||
return this.$message.error(res.data.msg)
|
||||
}
|
||||
console.log('res----待办-------->', res.data)
|
||||
this.toToData.list = res.data.data.records || []
|
||||
this.toToData.list = res.data.data.list || []
|
||||
this.toToData.num = res.data.data.total || 0
|
||||
}, err => {
|
||||
this.$message.error(err)
|
||||
this.loadingToDo = false
|
||||
})
|
||||
// Apis.getToDoTask(data, res => {
|
||||
// this.loadingToDo = false
|
||||
// if (res.data.code !== 0) {
|
||||
// return this.$message.error(res.data.msg)
|
||||
// }
|
||||
// console.log('res----待办-------->', res.data)
|
||||
// this.toToData.list = res.data.data.records || []
|
||||
// this.toToData.num = res.data.data.total || 0
|
||||
// }, err => {
|
||||
// this.$message.error(err)
|
||||
// this.loadingToDo = false
|
||||
// })
|
||||
},
|
||||
// 已办
|
||||
getHasToDo () {
|
||||
const data = {
|
||||
limit: 5,
|
||||
page: 1
|
||||
}
|
||||
// const data = {
|
||||
// limit: 5,
|
||||
// page: 1
|
||||
// }
|
||||
this.loadingHasToDo = true
|
||||
Apis.getHasToDoTask(data, res => {
|
||||
this.$http.get('/act/his/getMyHandledInstancePage?page=1&limit=5').then(res => {
|
||||
this.loadingHasToDo = false
|
||||
if (res.data.code !== 0) {
|
||||
return this.$message.error(res.data.msg)
|
||||
}
|
||||
console.log('res----已办-------->', res.data)
|
||||
this.hasToDodoData.list = res.data.data.records || []
|
||||
this.hasToDodoData.list = res.data.data.list || []
|
||||
this.hasToDodoData.num = res.data.data.total || 0
|
||||
}, err => {
|
||||
this.$message.error(err)
|
||||
this.loadingHasToDo = false
|
||||
console.log('err-----已办------->', err)
|
||||
})
|
||||
// Apis.getHasToDoTask(data, res => {
|
||||
// this.loadingHasToDo = false
|
||||
// if (res.data.code !== 0) {
|
||||
// return this.$message.error(res.data.msg)
|
||||
// }
|
||||
// console.log('res----已办-------->', res.data)
|
||||
// this.hasToDodoData.list = res.data.data.records || []
|
||||
// this.hasToDodoData.num = res.data.data.total || 0
|
||||
// }, err => {
|
||||
// this.$message.error(err)
|
||||
// this.loadingHasToDo = false
|
||||
// console.log('err-----已办------->', err)
|
||||
// })
|
||||
},
|
||||
// 部门上架
|
||||
getShelvesTotal () {
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
"body-parser": "^1.20.0",
|
||||
"chalk": "^4.1.1",
|
||||
"chokidar": "^3.5.2",
|
||||
"compression-webpack-plugin": "^6.1.1",
|
||||
"crypto-js": "^4.1.1",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
|
|
|
@ -2,105 +2,104 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-03-29 16:45:25
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-25 11:18:05
|
||||
* @LastEditTime: 2022-10-19 17:44:14
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
|
||||
<title>
|
||||
<%= htmlWebpackPlugin.options.title %>
|
||||
</title>
|
||||
<meta
|
||||
content="vab,vab官网,后台管理框架,vue后台管理框架,vue-admin-beautiful,vue-admin-beautiful-pro,vue-admin-beautiful官网,vue-admin-beautiful文档,vue-element-admin,vue-element-admin官网,vue-element-admin文档,vue-admin,vue-admin官网,vue-admin文档"
|
||||
name="keywords" />
|
||||
<meta
|
||||
content="<%= VUE_APP_TITLE %>官网与文档基于vue-admin-beautiful-pro构建,简称vab(是一款超棒的vue+element中后台前端快速开发框架),QQ群972435319,作者:<%= VUE_APP_AUTHOR %>"
|
||||
name="description" />
|
||||
<meta content="<%= VUE_APP_AUTHOR %>" name="author" />
|
||||
<link href="<%= BASE_URL %>static/css/loading.css" rel="stylesheet" />
|
||||
<script>
|
||||
</script>
|
||||
<link href="./leaflet/libs/leaflet/1.3.1/leaflet.css" rel="stylesheet">
|
||||
<link href="./leaflet/dist/leaflet/iclient-leaflet.css" rel="stylesheet">
|
||||
<link href="./leaflet/libs/leaflet/plugins/leaflet.draw/leaflet.draw.css" rel="stylesheet">
|
||||
<link href="./leaflet/libs/leaflet.markercluster/dist/MarkerCluster.css" rel="stylesheet">
|
||||
<link href="./leaflet/libs/leaflet.markercluster/dist/MarkerCluster.Default.css" rel="stylesheet">
|
||||
<link href="./supermap/css/supermap.css" rel="stylesheet">
|
||||
<link href="./static/css/widgets.css" rel="stylesheet">
|
||||
<!-- 平台配置文件 -->
|
||||
<script type="text/javascript" src="./static/config/basicConfig.js"></script>
|
||||
<script type="text/javascript" src="./static/config/mapConfig.js"></script>
|
||||
<script type="text/javascript" src="./static/config/location.js"></script>
|
||||
<!-- ==========地图相关配置========== -->
|
||||
<script type="text/javascript" src="./leaflet/libs/leaflet/1.3.1/leaflet.js"></script>
|
||||
<script type="text/javascript" src="./static/js/jquery-3.6.0.min.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/iclient-leaflet.min.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/libs/leaflet/plugins/leaflet.draw/leaflet.draw.js"></script>
|
||||
<!-- <script type="text/javascript" src="./leaflet/libs/leaflet.markercluster/dist/leaflet.markercluster.js"></script> -->
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/leaflet-ant-path.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/leaflet.textpath.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/leaflet.polylineoffset.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/leaflet.polylineDecorator.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/ersi-leaflet.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/libs/proj4/proj4.js"></script>
|
||||
<script type="text/javascript" src="./static/js/proj4leaflet.js"></script>
|
||||
<script type="text/javascript" src="./supermap/atmosphere.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/MovingMarker.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet.motion.min.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet.polylineDecorator.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet-tooltip-layout.dist.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet.canvas-markers.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet.markercluster.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/TextIconOverlay_min.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/MarkerClusterer_min.js"></script>
|
||||
<!-- 热力图 -->
|
||||
<script type="text/javascript" src="./leaflet/leaflet-heat.js"></script>
|
||||
<!-- 加载WMTS服务 -->
|
||||
<script type="text/javascript" src="./leaflet/leaflet-tilelayer-wmts.js"></script>
|
||||
<!-- 大华平台相关包 -->
|
||||
<script type="text/javascript" src="./static/js/encrypt.js"></script>
|
||||
<script type="text/javascript" src="./static/js/DHWs.js"></script>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
|
||||
<title>
|
||||
<%= htmlWebpackPlugin.options.title %>
|
||||
</title>
|
||||
<meta content="vab,vab官网,后台管理框架,vue后台管理框架,vue-admin-beautiful,vue-admin-beautiful-pro,vue-admin-beautiful官网,vue-admin-beautiful文档,vue-element-admin,vue-element-admin官网,vue-element-admin文档,vue-admin,vue-admin官网,vue-admin文档" name="keywords" />
|
||||
<meta content="<%= VUE_APP_TITLE %>官网与文档基于vue-admin-beautiful-pro构建,简称vab(是一款超棒的vue+element中后台前端快速开发框架),QQ群972435319,作者:<%= VUE_APP_AUTHOR %>" name="description" />
|
||||
<meta content="<%= VUE_APP_AUTHOR %>" name="author" />
|
||||
<!-- 浏览器弹框相关 -->
|
||||
<link href="<%= BASE_URL %>static/css/modal.css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="./static/js/modal.js"></script>
|
||||
|
||||
<link href="<%= BASE_URL %>static/css/loading.css" rel="stylesheet" />
|
||||
<link href="./leaflet/libs/leaflet/1.3.1/leaflet.css" rel="stylesheet" />
|
||||
<link href="./leaflet/dist/leaflet/iclient-leaflet.css" rel="stylesheet" />
|
||||
<link href="./leaflet/libs/leaflet/plugins/leaflet.draw/leaflet.draw.css" rel="stylesheet" />
|
||||
<link href="./leaflet/libs/leaflet.markercluster/dist/MarkerCluster.css" rel="stylesheet" />
|
||||
<link href="./leaflet/libs/leaflet.markercluster/dist/MarkerCluster.Default.css" rel="stylesheet" />
|
||||
<link href="./supermap/css/supermap.css" rel="stylesheet" />
|
||||
<link href="./static/css/widgets.css" rel="stylesheet" />
|
||||
<!-- 平台配置文件 -->
|
||||
<script type="text/javascript" src="./static/config/basicConfig.js"></script>
|
||||
<script type="text/javascript" src="./static/config/mapConfig.js"></script>
|
||||
<script type="text/javascript" src="./static/config/location.js"></script>
|
||||
<!-- ==========地图相关配置========== -->
|
||||
<script type="text/javascript" src="./leaflet/libs/leaflet/1.3.1/leaflet.js"></script>
|
||||
<script type="text/javascript" src="./static/js/jquery-3.6.0.min.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/iclient-leaflet.min.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/libs/leaflet/plugins/leaflet.draw/leaflet.draw.js"></script>
|
||||
<!-- <script type="text/javascript" src="./leaflet/libs/leaflet.markercluster/dist/leaflet.markercluster.js"></script> -->
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/leaflet-ant-path.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/leaflet.textpath.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/leaflet.polylineoffset.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/dist/leaflet/leaflet.polylineDecorator.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/ersi-leaflet.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/libs/proj4/proj4.js"></script>
|
||||
<script type="text/javascript" src="./static/js/proj4leaflet.js"></script>
|
||||
<script type="text/javascript" src="./supermap/atmosphere.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/MovingMarker.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet.motion.min.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet.polylineDecorator.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet-tooltip-layout.dist.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet.canvas-markers.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/leaflet.markercluster.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/TextIconOverlay_min.js"></script>
|
||||
<script type="text/javascript" src="./leaflet/MarkerClusterer_min.js"></script>
|
||||
<!-- 热力图 -->
|
||||
<script type="text/javascript" src="./leaflet/leaflet-heat.js"></script>
|
||||
<!-- 加载WMTS服务 -->
|
||||
<script type="text/javascript" src="./leaflet/leaflet-tilelayer-wmts.js"></script>
|
||||
<!-- 大华平台相关包 -->
|
||||
<script type="text/javascript" src="./static/js/encrypt.js"></script>
|
||||
<script type="text/javascript" src="./static/js/DHWs.js"></script>
|
||||
<!-- 站点配置 -->
|
||||
<script>
|
||||
window.SITE_CONFIG = {};
|
||||
window.SITE_CONFIG['backUrl'] = _global.config.backUrl;
|
||||
window.SITE_CONFIG['previewUrl'] = _global.config.previewUrl;
|
||||
window.SITE_CONFIG['frontUrl'] = _global.config.previewUrl + 'document/#/devModelFile/';
|
||||
window.SITE_CONFIG['apiURL'] = 'http://'+ _global.config.websocketURL;
|
||||
window.SITE_CONFIG['websocketURL'] = _global.config.websocketURL;
|
||||
window.SITE_CONFIG['POI_URL'] = _global.config.POI_URL;
|
||||
window.SITE_CONFIG = {}
|
||||
window.SITE_CONFIG['backUrl'] = _global.config.backUrl
|
||||
window.SITE_CONFIG['previewUrl'] = _global.config.previewUrl
|
||||
window.SITE_CONFIG['frontUrl'] =
|
||||
_global.config.previewUrl + 'document/#/devModelFile/'
|
||||
window.SITE_CONFIG['apiURL'] = 'http://' + _global.config.websocketURL
|
||||
window.SITE_CONFIG['websocketURL'] = _global.config.websocketURL
|
||||
window.SITE_CONFIG['POI_URL'] = _global.config.POI_URL
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>
|
||||
We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
|
||||
<noscript>
|
||||
<strong>
|
||||
We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
|
||||
properly without JavaScript enabled. Please enable it to continue.
|
||||
</strong>
|
||||
</noscript>
|
||||
<div id="app">
|
||||
<div class="first-loading-wrp">
|
||||
<div class="loading-wrp">
|
||||
<span class="dot dot-spin">
|
||||
<i></i>
|
||||
<i></i>
|
||||
<i></i>
|
||||
<i></i>
|
||||
</span>
|
||||
</div>
|
||||
<h1>
|
||||
<%= VUE_APP_TITLE %>
|
||||
</h1>
|
||||
</strong>
|
||||
</noscript>
|
||||
<div id="app">
|
||||
<div class="first-loading-wrp">
|
||||
<div class="loading-wrp">
|
||||
<span class="dot dot-spin">
|
||||
<i></i>
|
||||
<i></i>
|
||||
<i></i>
|
||||
<i></i>
|
||||
</span>
|
||||
</div>
|
||||
<h1>
|
||||
<%= VUE_APP_TITLE %>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- built files will be auto injected -->
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -2,17 +2,18 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2020-07-07 16:03:23
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-27 14:25:54
|
||||
* @LastEditTime: 2022-11-05 21:38:13
|
||||
* @Description: 系统静态参数配置
|
||||
*/
|
||||
var _global = {}
|
||||
var CONFIGITEM = {
|
||||
version: 'qingdao', //青岛
|
||||
//version: 'xihaian', // 西海岸
|
||||
//version: 'dev', // 开发
|
||||
//version: 'test', // 测试
|
||||
//version: 'frp', // 内网穿透
|
||||
vNum: 'v0.8.7.2',
|
||||
// version: 'qingdao', //青岛
|
||||
// version: 'xihaian', // 西海岸
|
||||
// version: 'dev', // 开发
|
||||
// version: 'zhanTingDev', // 展厅dev (2022-09-13:姜永超让添加)
|
||||
// version: 'qingdao', // 测试
|
||||
version: 'frp', // 内网穿透
|
||||
vNum: 'v0.8.15.2',
|
||||
configData: {
|
||||
// 青岛市大数据局
|
||||
qingdao: {
|
||||
|
@ -26,8 +27,28 @@ var CONFIGITEM = {
|
|||
backUrl: 'http://15.72.183.90:8001',
|
||||
previewUrl: 'http://15.72.183.90:7008/',
|
||||
//frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/',
|
||||
//apiURL: 'http://15.72.183.90:8000/renren-admin',
|
||||
websocketURL: '15.72.183.90:8000/renren-admin',
|
||||
apiURL: 'http://15.72.183.90:8000/ucs-admin',
|
||||
websocketURL: '15.72.183.90:8000/ucs-admin',
|
||||
// websocketURL: '192.168.124.233:8888/ucs-admin',
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
},
|
||||
// 研发展厅
|
||||
zhanTingDev: {
|
||||
loginInfo: {
|
||||
// 视频平台登陆信息
|
||||
loginIp: '10.132.191.3',
|
||||
loginPort: '8320',
|
||||
userName: 'ynszdz',
|
||||
userPwd: 'Admin@123',
|
||||
},
|
||||
backUrl: 'http://15.72.183.90:8001',
|
||||
previewUrl: 'http://15.72.183.90:7008/',
|
||||
//frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/',
|
||||
//apiURL: 'http://15.72.183.90:8000/ucs-admin',
|
||||
// websocketURL: '10.16.5.146:8888/ucs-admin', // 姜永超
|
||||
websocketURL: '10.18.1.99:8889/ucs-admin',
|
||||
// websocketURL: '10.16.5.35:8888/ucs-admin',
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
},
|
||||
|
@ -40,9 +61,18 @@ var CONFIGITEM = {
|
|||
userName: '',
|
||||
userPwd: '',
|
||||
},
|
||||
// 获取摄像头的后端接口地址
|
||||
camreaInfo: {
|
||||
// cameraUrl: '10.134.135.92:9537', // 西海岸-测试环境
|
||||
// cameraUrl: '10.134.135.9:9537', // 西海岸-生产环境
|
||||
cameraUrl: '192.168.124.236:9537', // 远雄(不挂vpn可直接连)
|
||||
},
|
||||
backUrl: 'http://10.134.135.9:9797',
|
||||
previewUrl: 'http://10.134.135.9:9796/',
|
||||
websocketURL: '10.134.135.9:8888/renren-admin',
|
||||
// websocketURL: '10.134.135.9:8888/ucs-admin', // 正式环境
|
||||
// websocketURL: '10.134.135.92:8888/ucs-admin', // 测试环境
|
||||
websocketURL: '192.168.124.254:8888/ucs-admin', // 李志成-远雄
|
||||
// websocketURL: '10.18.1.99:8889/ucs-admin', // 研发
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
},
|
||||
|
@ -57,7 +87,8 @@ var CONFIGITEM = {
|
|||
},
|
||||
backUrl: 'http://localhost:8001',
|
||||
previewUrl: 'http://192.168.124.236:9796/',
|
||||
websocketURL: '192.168.124.236:8888/renren-admin',
|
||||
websocketURL: '192.168.124.233:8888/ucs-admin',
|
||||
// websocketURL: '10.18.1.99:8889/ucs-admin',
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
},
|
||||
|
@ -72,7 +103,7 @@ var CONFIGITEM = {
|
|||
},
|
||||
backUrl: 'http://192.168.124.243:9797',
|
||||
previewUrl: 'http://192.168.124.243:9796/',
|
||||
websocketURL: '192.168.124.243:8888/renren-admin',
|
||||
websocketURL: '192.168.124.243:8888/ucs-admin',
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
},
|
||||
|
@ -87,7 +118,7 @@ var CONFIGITEM = {
|
|||
},
|
||||
backUrl: 'http://124.222.94.39:9797',
|
||||
previewUrl: 'http://124.222.94.39:9796/',
|
||||
websocketURL: '124.222.94.39:8888/renren-admin',
|
||||
websocketURL: '124.222.94.39:8888/ucs-admin',
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
},
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2020-07-07 16:03:23
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-25 18:47:08
|
||||
* @LastEditTime: 2022-11-05 22:24:53
|
||||
* @Description: 数据资源参数配置
|
||||
*/
|
||||
// eslint-disable-next-line no-undef
|
||||
|
@ -23,6 +23,8 @@ const infrastructure = {}
|
|||
const mapTestNum = {}
|
||||
// 底部数据
|
||||
const footerDataList = {}
|
||||
// 西海岸--特殊用户
|
||||
const xhaHasPermissionUser = {}
|
||||
// qingdao
|
||||
if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
|
||||
whoShow.itShowQingDao = true
|
||||
|
@ -30,14 +32,14 @@ if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
|
|||
infrastructure.deptId = '1067246875800000066'
|
||||
navListManagement.navList = [
|
||||
{ name: '共享门户', key: 'home' },
|
||||
{ name: '能力集市', key: 'DetailsPageconetent' },
|
||||
{ name: '能力云图', key: 'capabilityCloud' },
|
||||
{ name: '能力超市', key: 'DetailsPageconetent' },
|
||||
// { name: '能力云图', key: 'capabilityCloud' },
|
||||
{ name: '能力统计', key: 'abilityStatistics' },
|
||||
// { name: '开发指南', key: 'developmentGuide' },
|
||||
{ name: '技术文档', key: 'instructionManual' },
|
||||
{ name: '新手指南', key: 'instructionManual' },
|
||||
{ name: '需求中心', key: 'demandCenter' },
|
||||
// { name: '个人中心', key: 'personalCenter' },
|
||||
{ name: '区市站点', key: 'mapTest' },
|
||||
// { name: '区市站点', key: 'mapTest' },
|
||||
// { name: '后台管理', key: 'houtaiguanli' },
|
||||
// { name: '典型赋能案例', key: 'assignCase' },
|
||||
{ name: '融合服务', key: 'integrationServices' },
|
||||
|
@ -45,23 +47,23 @@ if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
|
|||
]
|
||||
footerDataList.footerList = {
|
||||
company: {
|
||||
left: '青岛市大数据发展管理局建设',
|
||||
right: '海信网络科技股份有限公司',
|
||||
left: '山东省大数据局',
|
||||
right: '政府标识码3700000097',
|
||||
},
|
||||
address: [
|
||||
{
|
||||
name: '鲁IC备00000000号',
|
||||
value: '政府标识码3702000106',
|
||||
},
|
||||
{
|
||||
name: '版权所有:青岛市大数据发展管理局',
|
||||
value: '地址:山东省青岛市香港中路17号市级机关办公楼',
|
||||
},
|
||||
{
|
||||
name: '电话:0532-8561234',
|
||||
value: '传真:0532-2145122',
|
||||
},
|
||||
],
|
||||
// address: [
|
||||
// {
|
||||
// name: '邮编: 266071',
|
||||
// value: 'Email: QDDSJJ@qingdao.shandong.cn',
|
||||
// },
|
||||
// {
|
||||
// name: '版权所有:青岛市大数据发展管理局',
|
||||
// value: '地址:山东省青岛市香港中路17号市级机关三号办公楼',
|
||||
// },
|
||||
// {
|
||||
// name: '电话:0532-85912587',
|
||||
// value: '传真:0532-85912181',
|
||||
// },
|
||||
// ],
|
||||
}
|
||||
mapTestNum.lsNum = [
|
||||
{
|
||||
|
@ -119,7 +121,7 @@ else if (newLocation === 'baotou') {
|
|||
]
|
||||
navListManagement.navList = [
|
||||
{ name: '共享门户', key: 'home' },
|
||||
{ name: '能力集市', key: 'DetailsPageconetent' },
|
||||
{ name: '能力超市', key: 'DetailsPageconetent' },
|
||||
{ name: '能力云图', key: 'capabilityCloud' },
|
||||
{ name: '能力统计', key: 'abilityStatistics' },
|
||||
// { name: '开发指南', key: 'developmentGuide' },
|
||||
|
@ -490,7 +492,7 @@ else if (newLocation === 'xihaian') {
|
|||
]
|
||||
navListManagement.navList = [
|
||||
{ name: '共享门户', key: 'home' },
|
||||
{ name: '能力集市', key: 'DetailsPageconetent' },
|
||||
{ name: '能力超市', key: 'DetailsPageconetent' },
|
||||
{ name: '能力云图', key: 'capabilityCloud' },
|
||||
{ name: '能力统计', key: 'abilityStatistics' },
|
||||
// { name: '开发指南', key: 'developmentGuide' },
|
||||
|
@ -521,4 +523,11 @@ else if (newLocation === 'xihaian') {
|
|||
},
|
||||
],
|
||||
}
|
||||
xhaHasPermissionUser.list = [
|
||||
'xihaian01',
|
||||
'xihaian02',
|
||||
'xihaian03',
|
||||
'xihaian04',
|
||||
'admin',
|
||||
]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
* {
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.mask-layer {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.model-container {
|
||||
width: 446px;
|
||||
height: 194px;
|
||||
background: #fff;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
color: #707070;
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
-moz-transform: translate(-50%, -50%);
|
||||
-ms-transform: translate(-50%, -50%);
|
||||
-o-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
z-index: 99999999999;
|
||||
}
|
||||
|
||||
.model-container .model-title {
|
||||
height: 40px;
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
padding-top: 10px;
|
||||
background: #007fff;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.model-container .title-span {
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
font-size: 18px !important;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.model-container .model-close {
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 10px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
cursor: pointer;
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABHNCSVQICAgIfAhkiAAAALZJREFUOE9jZACC////ZwIpcyBOZGRk/A8SIwSAehqAatiB6itBahmBAhVAuh2qcRGQTiBkGNSQeqie6UA6G2QQyGSYIEgOr2E41UO9RpRh+CxlhIUFIZcRkocbhM9lUK/j9T6KQTgMuwgU10eKRaxhiGEQDsNg5uCMCKwGQQ07AKTtkVxyF8hWxZU0aOciLLFDehjhimKSYo1QOiEkDw4jQoqISbTUy2tUy/1Qr1FeHiElOIqYAKkPngur14nOAAAAAElFTkSuQmCC);
|
||||
}
|
||||
|
||||
.model-container .model-content {
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.model-container .controls {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
.model-container a {
|
||||
display: inline-block;
|
||||
width: 49%;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.model-container .confirmChrome {
|
||||
width: 140px;
|
||||
height: 36px;
|
||||
background: #0087ff;
|
||||
border-radius: 0.04rem !important;
|
||||
font-size: 16px;
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
color: #fff;
|
||||
line-height: 36px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.model-container .confirm360 {
|
||||
width: 140px;
|
||||
height: 36px;
|
||||
background: #0087ff;
|
||||
border-radius: 0.04rem !important;
|
||||
font-size: 16px;
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
color: #fff;
|
||||
line-height: 36px;
|
||||
margin-left: 50px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
src: url('~@/assets/home/font/Alibaba-PuHuiTi-Light.otf');
|
||||
}
|
||||
|
||||
/* 气泡提示框按钮居中 */
|
||||
.ant-popover-inner-content .ant-popover-buttons {
|
||||
text-align: center;
|
||||
}
|
|
@ -0,0 +1,167 @@
|
|||
function judgeAgent() {
|
||||
let userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
|
||||
console.log('userAgent------------>', userAgent)
|
||||
let isOpera = userAgent.indexOf('Opera') > -1
|
||||
//判断是否Opera浏览器
|
||||
if (isOpera) {
|
||||
return 'Opera'
|
||||
}
|
||||
//判断是否Firefox浏览器
|
||||
if (userAgent.indexOf('Firefox') > -1) {
|
||||
return 'FF'
|
||||
}
|
||||
//判断是否chorme浏览器
|
||||
if (userAgent.indexOf('Chrome') > -1) {
|
||||
return 'Chrome'
|
||||
}
|
||||
//判断是否Safari浏览器
|
||||
if (userAgent.indexOf('Safari') > -1) {
|
||||
return 'Safari'
|
||||
}
|
||||
//判断是否IE浏览器
|
||||
if (
|
||||
userAgent.indexOf('compatible') > -1 &&
|
||||
userAgent.indexOf('MSIE') > -1 &&
|
||||
!isOpera
|
||||
) {
|
||||
return 'IE'
|
||||
}
|
||||
//判断是否Edge浏览器
|
||||
if (userAgent.indexOf('Trident') > -1) {
|
||||
return 'Edge'
|
||||
}
|
||||
}
|
||||
|
||||
function downloadFile(name, url) {
|
||||
const alink = document.createElement('a')
|
||||
alink.download = name // 文件名,大部分浏览器兼容,IE10及以下不兼容
|
||||
alink.href = url // 创建 url地址
|
||||
alink.click() // 自动点击
|
||||
}
|
||||
|
||||
function getPCNum() {
|
||||
const agent = navigator.userAgent.toLowerCase()
|
||||
if (agent.indexOf('win32') >= 0 || agent.indexOf('wow32') >= 0) {
|
||||
return 32
|
||||
}
|
||||
if (agent.indexOf('win64') >= 0 || agent.indexOf('wow64') >= 0) {
|
||||
return 64
|
||||
}
|
||||
}
|
||||
|
||||
console.log('------判断浏览器------>', judgeAgent())
|
||||
|
||||
var ModelBox = (function() {
|
||||
var ModelBox = function(option) {
|
||||
this.option = option || {}
|
||||
console.log(999, 'init')
|
||||
this.init()
|
||||
}
|
||||
ModelBox.prototype = {
|
||||
isShow: false,
|
||||
init: function() {
|
||||
var _this = this
|
||||
_this.isShow = this.option.isShow
|
||||
var html =
|
||||
'<div class="model-container">' +
|
||||
'<div class="model-title">' +
|
||||
'<span class="title-span">title</span>' +
|
||||
'<div class="model-close"></div>' +
|
||||
'</div>' +
|
||||
'<div class="model-content">content</div>' +
|
||||
'<div class="controls">' +
|
||||
'<a class="confirmChrome">下载谷歌浏览器</a>' +
|
||||
'<a class="confirm360">下载360浏览器</a>' +
|
||||
'</div>' +
|
||||
'</div>'
|
||||
var ModelBoxCon = document.createElement('div')
|
||||
ModelBoxCon.setAttribute('class', 'mask-layer')
|
||||
ModelBoxCon.innerHTML = html
|
||||
// ModelBoxCon.querySelector('.model-title').innerHTML =
|
||||
// _this.option.title
|
||||
ModelBoxCon.querySelector('.title-span').innerHTML =
|
||||
_this.option.title
|
||||
ModelBoxCon.querySelector('.model-content').innerHTML =
|
||||
_this.option.content
|
||||
document.getElementsByTagName('html')[0].appendChild(ModelBoxCon)
|
||||
if (!_this.isShow) {
|
||||
ModelBoxCon.style.display = 'none'
|
||||
}
|
||||
ModelBoxCon.querySelector('.model-close').onclick =
|
||||
ModelBoxCon.querySelector('.confirmChrome').onclick =
|
||||
ModelBoxCon.querySelector('.confirm360').onclick =
|
||||
_this.eventsFn.bind('', this, ModelBoxCon)
|
||||
},
|
||||
show: function() {
|
||||
document.querySelector('.mask-layer').style.display = 'block'
|
||||
this.isShow = true
|
||||
},
|
||||
hide: function() {
|
||||
document.querySelector('.mask-layer').style.display = 'none'
|
||||
this.isShow = false
|
||||
},
|
||||
eventsFn: function(e, doc, target) {
|
||||
debugger
|
||||
var _thisEvent = target.target
|
||||
if (_thisEvent.classList.contains('confirmChrome')) {
|
||||
e.option.confirmCallBack('Chrome')
|
||||
|
||||
} else if (_thisEvent.classList.contains('confirm360')) {
|
||||
e.option.confirmCallBack('360')
|
||||
}
|
||||
doc.style.display = 'none'
|
||||
e.isShow = false
|
||||
return false
|
||||
},
|
||||
} || {}
|
||||
return ModelBox
|
||||
})()
|
||||
|
||||
var opt = new ModelBox({
|
||||
title: '提示信息',
|
||||
content: '平台暂不支持IE内核浏览器访问,建议使用谷歌(Chrome)或360浏览器极速模式登录!',
|
||||
isShow: false,
|
||||
confirmCallBack: function(data) {
|
||||
debugger
|
||||
// 获取当前系统的方法
|
||||
const agent = getPCNum()
|
||||
//console.log('agent------------>', agent)
|
||||
//console.log('datadatadatadata----------->', data)
|
||||
if (data === 'Chrome') {
|
||||
if (agent == 64) {
|
||||
// 64位操作系统
|
||||
downloadFile(
|
||||
'ChromeStandaloneSetup64.exe',
|
||||
'/static/download/ChromeStandaloneSetup64.exe'
|
||||
)
|
||||
} else {
|
||||
// 32位操作系统
|
||||
downloadFile(
|
||||
'ChromeStandalonesetup32.exe',
|
||||
'/static/download/standalonesetup32.exe'
|
||||
)
|
||||
}
|
||||
} else {
|
||||
if (agent == 64) {
|
||||
// 64位操作系统
|
||||
downloadFile(
|
||||
'360se13.1.6260.0.exe',
|
||||
'/static/download/360se13.1.6260.0.exe'
|
||||
)
|
||||
} else {
|
||||
// 32位操作系统
|
||||
downloadFile(
|
||||
'360se13.1.6110.0.exe',
|
||||
'/static/download/360se13.1.6110.0.exe'
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
})
|
||||
|
||||
// 提示下载谷歌
|
||||
if (judgeAgent() !== 'Chrome') {
|
||||
//alert('哈哈哈不支持')
|
||||
opt.show()
|
||||
}
|