Browse Source

应用管理

gzb
guozhongbo 9 months ago
parent
commit
ac02ad3c98

+ 304
- 35
package-lock.json View File

@@ -5,9 +5,11 @@
5 5
   "requires": true,
6 6
   "packages": {
7 7
     "": {
8
-      "name": "xhkj_bi",
8
+      "name": "xh_control",
9 9
       "version": "1.0.0",
10 10
       "dependencies": {
11
+        "qrcode": "^1.5.1",
12
+        "qrcodejs2": "^0.0.2",
11 13
         "vue-simple-uploader": "^0.7.6"
12 14
       },
13 15
       "devDependencies": {
@@ -3486,7 +3488,6 @@
3486 3488
       "version": "5.0.1",
3487 3489
       "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
3488 3490
       "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
3489
-      "dev": true,
3490 3491
       "engines": {
3491 3492
         "node": ">=8"
3492 3493
       }
@@ -4949,6 +4950,14 @@
4949 4950
         }
4950 4951
       }
4951 4952
     },
4953
+    "node_modules/decamelize": {
4954
+      "version": "1.2.0",
4955
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
4956
+      "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
4957
+      "engines": {
4958
+        "node": ">=0.10.0"
4959
+      }
4960
+    },
4952 4961
     "node_modules/deep-is": {
4953 4962
       "version": "0.1.4",
4954 4963
       "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
@@ -5174,6 +5183,11 @@
5174 5183
       "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
5175 5184
       "dev": true
5176 5185
     },
5186
+    "node_modules/dijkstrajs": {
5187
+      "version": "1.0.3",
5188
+      "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
5189
+      "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
5190
+    },
5177 5191
     "node_modules/dir-glob": {
5178 5192
       "version": "3.0.1",
5179 5193
       "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -5338,8 +5352,7 @@
5338 5352
     "node_modules/emoji-regex": {
5339 5353
       "version": "8.0.0",
5340 5354
       "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
5341
-      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
5342
-      "dev": true
5355
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
5343 5356
     },
5344 5357
     "node_modules/emojis-list": {
5345 5358
       "version": "3.0.0",
@@ -5350,6 +5363,11 @@
5350 5363
         "node": ">= 4"
5351 5364
       }
5352 5365
     },
5366
+    "node_modules/encode-utf8": {
5367
+      "version": "1.0.3",
5368
+      "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
5369
+      "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
5370
+    },
5353 5371
     "node_modules/encodeurl": {
5354 5372
       "version": "1.0.2",
5355 5373
       "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -6413,7 +6431,6 @@
6413 6431
       "version": "4.1.0",
6414 6432
       "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
6415 6433
       "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
6416
-      "dev": true,
6417 6434
       "dependencies": {
6418 6435
         "locate-path": "^5.0.0",
6419 6436
         "path-exists": "^4.0.0"
@@ -6571,7 +6588,6 @@
6571 6588
       "version": "2.0.5",
6572 6589
       "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
6573 6590
       "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
6574
-      "dev": true,
6575 6591
       "engines": {
6576 6592
         "node": "6.* || 8.* || >= 10.*"
6577 6593
       }
@@ -7236,7 +7252,6 @@
7236 7252
       "version": "3.0.0",
7237 7253
       "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
7238 7254
       "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
7239
-      "dev": true,
7240 7255
       "engines": {
7241 7256
         "node": ">=8"
7242 7257
       }
@@ -7680,7 +7695,6 @@
7680 7695
       "version": "5.0.0",
7681 7696
       "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
7682 7697
       "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
7683
-      "dev": true,
7684 7698
       "dependencies": {
7685 7699
         "p-locate": "^4.1.0"
7686 7700
       },
@@ -8711,7 +8725,6 @@
8711 8725
       "version": "2.3.0",
8712 8726
       "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
8713 8727
       "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
8714
-      "dev": true,
8715 8728
       "dependencies": {
8716 8729
         "p-try": "^2.0.0"
8717 8730
       },
@@ -8726,7 +8739,6 @@
8726 8739
       "version": "4.1.0",
8727 8740
       "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
8728 8741
       "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
8729
-      "dev": true,
8730 8742
       "dependencies": {
8731 8743
         "p-limit": "^2.2.0"
8732 8744
       },
@@ -8751,7 +8763,6 @@
8751 8763
       "version": "2.2.0",
8752 8764
       "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
8753 8765
       "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
8754
-      "dev": true,
8755 8766
       "engines": {
8756 8767
         "node": ">=6"
8757 8768
       }
@@ -8849,7 +8860,6 @@
8849 8860
       "version": "4.0.0",
8850 8861
       "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
8851 8862
       "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
8852
-      "dev": true,
8853 8863
       "engines": {
8854 8864
         "node": ">=8"
8855 8865
       }
@@ -8933,6 +8943,14 @@
8933 8943
         "node": ">=8"
8934 8944
       }
8935 8945
     },
8946
+    "node_modules/pngjs": {
8947
+      "version": "5.0.0",
8948
+      "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
8949
+      "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
8950
+      "engines": {
8951
+        "node": ">=10.13.0"
8952
+      }
8953
+    },
8936 8954
     "node_modules/portfinder": {
8937 8955
       "version": "1.0.32",
8938 8956
       "resolved": "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.32.tgz",
@@ -9651,6 +9669,127 @@
9651 9669
         "node": ">=6"
9652 9670
       }
9653 9671
     },
9672
+    "node_modules/qrcode": {
9673
+      "version": "1.5.3",
9674
+      "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz",
9675
+      "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
9676
+      "dependencies": {
9677
+        "dijkstrajs": "^1.0.1",
9678
+        "encode-utf8": "^1.0.3",
9679
+        "pngjs": "^5.0.0",
9680
+        "yargs": "^15.3.1"
9681
+      },
9682
+      "bin": {
9683
+        "qrcode": "bin/qrcode"
9684
+      },
9685
+      "engines": {
9686
+        "node": ">=10.13.0"
9687
+      }
9688
+    },
9689
+    "node_modules/qrcode/node_modules/ansi-styles": {
9690
+      "version": "4.3.0",
9691
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
9692
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
9693
+      "dependencies": {
9694
+        "color-convert": "^2.0.1"
9695
+      },
9696
+      "engines": {
9697
+        "node": ">=8"
9698
+      },
9699
+      "funding": {
9700
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
9701
+      }
9702
+    },
9703
+    "node_modules/qrcode/node_modules/camelcase": {
9704
+      "version": "5.3.1",
9705
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
9706
+      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
9707
+      "engines": {
9708
+        "node": ">=6"
9709
+      }
9710
+    },
9711
+    "node_modules/qrcode/node_modules/cliui": {
9712
+      "version": "6.0.0",
9713
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
9714
+      "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
9715
+      "dependencies": {
9716
+        "string-width": "^4.2.0",
9717
+        "strip-ansi": "^6.0.0",
9718
+        "wrap-ansi": "^6.2.0"
9719
+      }
9720
+    },
9721
+    "node_modules/qrcode/node_modules/color-convert": {
9722
+      "version": "2.0.1",
9723
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
9724
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
9725
+      "dependencies": {
9726
+        "color-name": "~1.1.4"
9727
+      },
9728
+      "engines": {
9729
+        "node": ">=7.0.0"
9730
+      }
9731
+    },
9732
+    "node_modules/qrcode/node_modules/color-name": {
9733
+      "version": "1.1.4",
9734
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
9735
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
9736
+    },
9737
+    "node_modules/qrcode/node_modules/wrap-ansi": {
9738
+      "version": "6.2.0",
9739
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
9740
+      "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
9741
+      "dependencies": {
9742
+        "ansi-styles": "^4.0.0",
9743
+        "string-width": "^4.1.0",
9744
+        "strip-ansi": "^6.0.0"
9745
+      },
9746
+      "engines": {
9747
+        "node": ">=8"
9748
+      }
9749
+    },
9750
+    "node_modules/qrcode/node_modules/y18n": {
9751
+      "version": "4.0.3",
9752
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
9753
+      "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
9754
+    },
9755
+    "node_modules/qrcode/node_modules/yargs": {
9756
+      "version": "15.4.1",
9757
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
9758
+      "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
9759
+      "dependencies": {
9760
+        "cliui": "^6.0.0",
9761
+        "decamelize": "^1.2.0",
9762
+        "find-up": "^4.1.0",
9763
+        "get-caller-file": "^2.0.1",
9764
+        "require-directory": "^2.1.1",
9765
+        "require-main-filename": "^2.0.0",
9766
+        "set-blocking": "^2.0.0",
9767
+        "string-width": "^4.2.0",
9768
+        "which-module": "^2.0.0",
9769
+        "y18n": "^4.0.0",
9770
+        "yargs-parser": "^18.1.2"
9771
+      },
9772
+      "engines": {
9773
+        "node": ">=8"
9774
+      }
9775
+    },
9776
+    "node_modules/qrcode/node_modules/yargs-parser": {
9777
+      "version": "18.1.3",
9778
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
9779
+      "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
9780
+      "dependencies": {
9781
+        "camelcase": "^5.0.0",
9782
+        "decamelize": "^1.2.0"
9783
+      },
9784
+      "engines": {
9785
+        "node": ">=6"
9786
+      }
9787
+    },
9788
+    "node_modules/qrcodejs2": {
9789
+      "version": "0.0.2",
9790
+      "resolved": "https://registry.npmjs.org/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
9791
+      "integrity": "sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA=="
9792
+    },
9654 9793
     "node_modules/qs": {
9655 9794
       "version": "6.11.0",
9656 9795
       "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
@@ -9910,7 +10049,6 @@
9910 10049
       "version": "2.1.1",
9911 10050
       "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
9912 10051
       "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
9913
-      "dev": true,
9914 10052
       "engines": {
9915 10053
         "node": ">=0.10.0"
9916 10054
       }
@@ -9924,6 +10062,11 @@
9924 10062
         "node": ">=0.10.0"
9925 10063
       }
9926 10064
     },
10065
+    "node_modules/require-main-filename": {
10066
+      "version": "2.0.0",
10067
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
10068
+      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
10069
+    },
9927 10070
     "node_modules/requires-port": {
9928 10071
       "version": "1.0.0",
9929 10072
       "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
@@ -10245,6 +10388,11 @@
10245 10388
         "node": ">= 0.8.0"
10246 10389
       }
10247 10390
     },
10391
+    "node_modules/set-blocking": {
10392
+      "version": "2.0.0",
10393
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
10394
+      "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
10395
+    },
10248 10396
     "node_modules/set-function-length": {
10249 10397
       "version": "1.2.2",
10250 10398
       "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
@@ -10575,7 +10723,6 @@
10575 10723
       "version": "4.2.3",
10576 10724
       "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
10577 10725
       "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
10578
-      "dev": true,
10579 10726
       "dependencies": {
10580 10727
         "emoji-regex": "^8.0.0",
10581 10728
         "is-fullwidth-code-point": "^3.0.0",
@@ -10589,7 +10736,6 @@
10589 10736
       "version": "6.0.1",
10590 10737
       "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
10591 10738
       "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
10592
-      "dev": true,
10593 10739
       "dependencies": {
10594 10740
         "ansi-regex": "^5.0.1"
10595 10741
       },
@@ -11894,6 +12040,11 @@
11894 12040
         "which": "bin/which"
11895 12041
       }
11896 12042
     },
12043
+    "node_modules/which-module": {
12044
+      "version": "2.0.1",
12045
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
12046
+      "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
12047
+    },
11897 12048
     "node_modules/wildcard": {
11898 12049
       "version": "2.0.1",
11899 12050
       "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.1.tgz",
@@ -14726,8 +14877,7 @@
14726 14877
     "ansi-regex": {
14727 14878
       "version": "5.0.1",
14728 14879
       "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
14729
-      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
14730
-      "dev": true
14880
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
14731 14881
     },
14732 14882
     "ansi-styles": {
14733 14883
       "version": "3.2.1",
@@ -15779,6 +15929,11 @@
15779 15929
         "ms": "2.1.2"
15780 15930
       }
15781 15931
     },
15932
+    "decamelize": {
15933
+      "version": "1.2.0",
15934
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
15935
+      "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
15936
+    },
15782 15937
     "deep-is": {
15783 15938
       "version": "0.1.4",
15784 15939
       "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
@@ -15936,6 +16091,11 @@
15936 16091
       "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
15937 16092
       "dev": true
15938 16093
     },
16094
+    "dijkstrajs": {
16095
+      "version": "1.0.3",
16096
+      "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
16097
+      "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
16098
+    },
15939 16099
     "dir-glob": {
15940 16100
       "version": "3.0.1",
15941 16101
       "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -16066,8 +16226,7 @@
16066 16226
     "emoji-regex": {
16067 16227
       "version": "8.0.0",
16068 16228
       "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
16069
-      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
16070
-      "dev": true
16229
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
16071 16230
     },
16072 16231
     "emojis-list": {
16073 16232
       "version": "3.0.0",
@@ -16075,6 +16234,11 @@
16075 16234
       "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
16076 16235
       "dev": true
16077 16236
     },
16237
+    "encode-utf8": {
16238
+      "version": "1.0.3",
16239
+      "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
16240
+      "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
16241
+    },
16078 16242
     "encodeurl": {
16079 16243
       "version": "1.0.2",
16080 16244
       "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -16874,7 +17038,6 @@
16874 17038
       "version": "4.1.0",
16875 17039
       "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
16876 17040
       "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
16877
-      "dev": true,
16878 17041
       "requires": {
16879 17042
         "locate-path": "^5.0.0",
16880 17043
         "path-exists": "^4.0.0"
@@ -16979,8 +17142,7 @@
16979 17142
     "get-caller-file": {
16980 17143
       "version": "2.0.5",
16981 17144
       "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
16982
-      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
16983
-      "dev": true
17145
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
16984 17146
     },
16985 17147
     "get-intrinsic": {
16986 17148
       "version": "1.2.4",
@@ -17446,8 +17608,7 @@
17446 17608
     "is-fullwidth-code-point": {
17447 17609
       "version": "3.0.0",
17448 17610
       "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
17449
-      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
17450
-      "dev": true
17611
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
17451 17612
     },
17452 17613
     "is-glob": {
17453 17614
       "version": "4.0.3",
@@ -17784,7 +17945,6 @@
17784 17945
       "version": "5.0.0",
17785 17946
       "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
17786 17947
       "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
17787
-      "dev": true,
17788 17948
       "requires": {
17789 17949
         "p-locate": "^4.1.0"
17790 17950
       }
@@ -18566,7 +18726,6 @@
18566 18726
       "version": "2.3.0",
18567 18727
       "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
18568 18728
       "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
18569
-      "dev": true,
18570 18729
       "requires": {
18571 18730
         "p-try": "^2.0.0"
18572 18731
       }
@@ -18575,7 +18734,6 @@
18575 18734
       "version": "4.1.0",
18576 18735
       "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
18577 18736
       "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
18578
-      "dev": true,
18579 18737
       "requires": {
18580 18738
         "p-limit": "^2.2.0"
18581 18739
       }
@@ -18593,8 +18751,7 @@
18593 18751
     "p-try": {
18594 18752
       "version": "2.2.0",
18595 18753
       "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
18596
-      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
18597
-      "dev": true
18754
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
18598 18755
     },
18599 18756
     "param-case": {
18600 18757
       "version": "3.0.4",
@@ -18675,8 +18832,7 @@
18675 18832
     "path-exists": {
18676 18833
       "version": "4.0.0",
18677 18834
       "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
18678
-      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
18679
-      "dev": true
18835
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
18680 18836
     },
18681 18837
     "path-is-absolute": {
18682 18838
       "version": "1.0.1",
@@ -18736,6 +18892,11 @@
18736 18892
         "find-up": "^4.0.0"
18737 18893
       }
18738 18894
     },
18895
+    "pngjs": {
18896
+      "version": "5.0.0",
18897
+      "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
18898
+      "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
18899
+    },
18739 18900
     "portfinder": {
18740 18901
       "version": "1.0.32",
18741 18902
       "resolved": "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.32.tgz",
@@ -19210,6 +19371,102 @@
19210 19371
       "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
19211 19372
       "dev": true
19212 19373
     },
19374
+    "qrcode": {
19375
+      "version": "1.5.3",
19376
+      "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz",
19377
+      "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
19378
+      "requires": {
19379
+        "dijkstrajs": "^1.0.1",
19380
+        "encode-utf8": "^1.0.3",
19381
+        "pngjs": "^5.0.0",
19382
+        "yargs": "^15.3.1"
19383
+      },
19384
+      "dependencies": {
19385
+        "ansi-styles": {
19386
+          "version": "4.3.0",
19387
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
19388
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
19389
+          "requires": {
19390
+            "color-convert": "^2.0.1"
19391
+          }
19392
+        },
19393
+        "camelcase": {
19394
+          "version": "5.3.1",
19395
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
19396
+          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
19397
+        },
19398
+        "cliui": {
19399
+          "version": "6.0.0",
19400
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
19401
+          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
19402
+          "requires": {
19403
+            "string-width": "^4.2.0",
19404
+            "strip-ansi": "^6.0.0",
19405
+            "wrap-ansi": "^6.2.0"
19406
+          }
19407
+        },
19408
+        "color-convert": {
19409
+          "version": "2.0.1",
19410
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
19411
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
19412
+          "requires": {
19413
+            "color-name": "~1.1.4"
19414
+          }
19415
+        },
19416
+        "color-name": {
19417
+          "version": "1.1.4",
19418
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
19419
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
19420
+        },
19421
+        "wrap-ansi": {
19422
+          "version": "6.2.0",
19423
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
19424
+          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
19425
+          "requires": {
19426
+            "ansi-styles": "^4.0.0",
19427
+            "string-width": "^4.1.0",
19428
+            "strip-ansi": "^6.0.0"
19429
+          }
19430
+        },
19431
+        "y18n": {
19432
+          "version": "4.0.3",
19433
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
19434
+          "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
19435
+        },
19436
+        "yargs": {
19437
+          "version": "15.4.1",
19438
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
19439
+          "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
19440
+          "requires": {
19441
+            "cliui": "^6.0.0",
19442
+            "decamelize": "^1.2.0",
19443
+            "find-up": "^4.1.0",
19444
+            "get-caller-file": "^2.0.1",
19445
+            "require-directory": "^2.1.1",
19446
+            "require-main-filename": "^2.0.0",
19447
+            "set-blocking": "^2.0.0",
19448
+            "string-width": "^4.2.0",
19449
+            "which-module": "^2.0.0",
19450
+            "y18n": "^4.0.0",
19451
+            "yargs-parser": "^18.1.2"
19452
+          }
19453
+        },
19454
+        "yargs-parser": {
19455
+          "version": "18.1.3",
19456
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
19457
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
19458
+          "requires": {
19459
+            "camelcase": "^5.0.0",
19460
+            "decamelize": "^1.2.0"
19461
+          }
19462
+        }
19463
+      }
19464
+    },
19465
+    "qrcodejs2": {
19466
+      "version": "0.0.2",
19467
+      "resolved": "https://registry.npmjs.org/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
19468
+      "integrity": "sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA=="
19469
+    },
19213 19470
     "qs": {
19214 19471
       "version": "6.11.0",
19215 19472
       "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
@@ -19406,8 +19663,7 @@
19406 19663
     "require-directory": {
19407 19664
       "version": "2.1.1",
19408 19665
       "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
19409
-      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
19410
-      "dev": true
19666
+      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
19411 19667
     },
19412 19668
     "require-from-string": {
19413 19669
       "version": "2.0.2",
@@ -19415,6 +19671,11 @@
19415 19671
       "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
19416 19672
       "dev": true
19417 19673
     },
19674
+    "require-main-filename": {
19675
+      "version": "2.0.0",
19676
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
19677
+      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
19678
+    },
19418 19679
     "requires-port": {
19419 19680
       "version": "1.0.0",
19420 19681
       "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
@@ -19658,6 +19919,11 @@
19658 19919
         "send": "0.18.0"
19659 19920
       }
19660 19921
     },
19922
+    "set-blocking": {
19923
+      "version": "2.0.0",
19924
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
19925
+      "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
19926
+    },
19661 19927
     "set-function-length": {
19662 19928
       "version": "1.2.2",
19663 19929
       "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
@@ -19931,7 +20197,6 @@
19931 20197
       "version": "4.2.3",
19932 20198
       "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
19933 20199
       "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
19934
-      "dev": true,
19935 20200
       "requires": {
19936 20201
         "emoji-regex": "^8.0.0",
19937 20202
         "is-fullwidth-code-point": "^3.0.0",
@@ -19942,7 +20207,6 @@
19942 20207
       "version": "6.0.1",
19943 20208
       "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
19944 20209
       "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
19945
-      "dev": true,
19946 20210
       "requires": {
19947 20211
         "ansi-regex": "^5.0.1"
19948 20212
       }
@@ -20876,6 +21140,11 @@
20876 21140
         "isexe": "^2.0.0"
20877 21141
       }
20878 21142
     },
21143
+    "which-module": {
21144
+      "version": "2.0.1",
21145
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
21146
+      "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
21147
+    },
20879 21148
     "wildcard": {
20880 21149
       "version": "2.0.1",
20881 21150
       "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.1.tgz",

+ 3
- 1
package.json View File

@@ -8,7 +8,9 @@
8 8
     "report": "vue-cli-service build --report"
9 9
   },
10 10
   "dependencies": {
11
-    "vue-simple-uploader": "^0.7.6"
11
+    "vue-simple-uploader": "^0.7.6",
12
+    "qrcode": "^1.5.1",
13
+    "qrcodejs2": "^0.0.2"
12 14
   },
13 15
   "devDependencies": {
14 16
     "@babel/core": "~7.12.16",

+ 2
- 1
src/App.vue View File

@@ -20,7 +20,8 @@ export default {
20 20
 
21 21
 // 加载动画
22 22
 .ivu-spin {
23
-  z-index: 1000;
23
+  background-color: transparent !important;
24
+  z-index: 9999;
24 25
 }
25 26
 .demo-spin-icon-load {
26 27
   animation: ani-demo-spin 1s linear infinite;

+ 434
- 55
src/views/regionSection/applicationManage/applicationManage.vue View File

@@ -37,7 +37,9 @@
37 37
             <div class="app_comm">
38 38
               <div>{{ row.appName }}</div>
39 39
               <span>版本: {{ row.versionName }}</span>
40
-              <div>授权型号: {{ row.devicenum }}个</div>
40
+              <div @click="see_device(row)" style="cursor: pointer">
41
+                授权型号: {{ row.devicenum }}个
42
+              </div>
41 43
             </div>
42 44
           </div>
43 45
         </template>
@@ -77,7 +79,6 @@
77 79
             </div>
78 80
           </div>
79 81
         </template>
80
-
81 82
         <template slot-scope="{ row }" slot="countSlot">
82 83
           <div class="action_list">
83 84
             <div @click="countSlot(row, 1)">下载</div>
@@ -106,6 +107,28 @@
106 107
         show-sizer
107 108
       ></Page>
108 109
     </div>
110
+    <!-- 下载 -->
111
+    <Modal
112
+      class="modal_tip download"
113
+      :mask-closable="false"
114
+      v-model="downloadInfo.show"
115
+      title="下载"
116
+    >
117
+      <div class="content">
118
+        <div class="title">{{ downloadInfo.appName }}</div>
119
+        <div class="qrcode">
120
+          <div id="ScanShare" ref="ScanShare"></div>
121
+          <p>扫描二维码进行下载</p>
122
+        </div>
123
+        <div class="download" @click="download(downloadInfo.apkPath)">
124
+          <Icon type="md-download" />点击下载
125
+        </div>
126
+      </div>
127
+
128
+      <div slot="footer" style="text-align: center">
129
+        <Button @click="downloadInfo.show = false">关闭</Button>
130
+      </div>
131
+    </Modal>
109 132
     <!-- 新建 -->
110 133
     <Modal
111 134
       class="modal1 application"
@@ -442,6 +465,40 @@
442 465
         >
443 466
       </div>
444 467
     </Modal>
468
+    <!-- 授权型号 -->
469
+    <Modal
470
+      class="modal1 view"
471
+      :mask-closable="false"
472
+      v-model="deviceInfo.show"
473
+      title="授权型号"
474
+    >
475
+      <div class="view_content">
476
+        <div class="view_title">名称</div>
477
+        <div class="view_devices" style="width: 100%">
478
+          <Input style="width: 100%" disabled v-model="deviceInfo.appName" />
479
+        </div>
480
+      </div>
481
+      <div class="view_content" style="margin-top: 20px">
482
+        <div class="view_title">适配类型</div>
483
+        <div class="view_devices">
484
+          <div
485
+            class="view_list"
486
+            v-for="item in deviceInfo.devices"
487
+            :key="item.dgroupid"
488
+          >
489
+            <div class="dgname">{{ item.dgname }}</div>
490
+            <div class="devices">
491
+              <span v-for="sitem in item.devices" :key="sitem.deviceid">{{
492
+                sitem.deviceModel
493
+              }}</span>
494
+            </div>
495
+          </div>
496
+        </div>
497
+      </div>
498
+      <div slot="footer" style="text-align: center">
499
+        <Button @click="deviceInfo.show = false">关闭</Button>
500
+      </div>
501
+    </Modal>
445 502
     <!-- 查看 -->
446 503
     <Modal
447 504
       class="modal1"
@@ -449,13 +506,126 @@
449 506
       v-model="viewInfo.show"
450 507
       title="查看"
451 508
     >
452
-      <div class="view_title">河南星火燎原软件科技有限公司</div>
453
-      <Table
454
-        style="border: 1px solid #e8eaec; border-bottom: none"
455
-        :columns="viewInfo.columns"
456
-        :data="viewInfo.list"
457
-      >
458
-      </Table>
509
+      <div class="view_conten">
510
+        <div class="view_logo">
511
+          <div>
512
+            <img
513
+              v-if="viewInfo.appIcon"
514
+              :src="$api.showImageUrl + viewInfo.appIcon"
515
+            />
516
+          </div>
517
+          <div class="appIcon" @click="download(viewInfo.appIcon)">
518
+            <Icon type="md-download" />下载
519
+          </div>
520
+        </div>
521
+        <div class="view_conter">
522
+          <div class="view_comm">
523
+            <div class="view_titles">
524
+              {{ viewInfo.appName
525
+              }}<span v-if="viewInfo.enable === 1" class="qy">启用</span>
526
+            </div>
527
+            <div class="view_item">
528
+              <span>版本号码</span>{{ viewInfo.versionNum }}
529
+            </div>
530
+          </div>
531
+          <div class="view_comm">
532
+            <div class="view_item">
533
+              <span>版本名称</span>{{ viewInfo.versionName }}
534
+            </div>
535
+            <div class="view_item">
536
+              <span>分组</span>{{ viewInfo.appgroupName }}
537
+            </div>
538
+            <div class="view_item">
539
+              <span>开发者</span>{{ viewInfo.appDeveloper }}
540
+            </div>
541
+          </div>
542
+          <div class="view_comm">
543
+            <div class="view_item">
544
+              <span>强制安装</span>{{ viewInfo.forced === 0 ? "否" : "是" }}
545
+            </div>
546
+            <div class="view_item">
547
+              <span>可信任</span>{{ viewInfo.trusted === 0 ? "否" : "是" }}
548
+            </div>
549
+            <div class="view_item">
550
+              <span>隐藏图标</span>{{ viewInfo.showico === 0 ? "否" : "是" }}
551
+            </div>
552
+          </div>
553
+          <div class="view_comm">
554
+            <div class="view_item">
555
+              <span>应用属性</span
556
+              >{{ viewInfo.appType === 1 ? "推荐应用" : "必装应用" }}
557
+            </div>
558
+            <div class="view_item">
559
+              <span>应用大小</span>{{ viewInfo.appSize }}
560
+            </div>
561
+            <div class="view_item">
562
+              <span>应用包名</span>{{ viewInfo.appPackage }}
563
+            </div>
564
+          </div>
565
+          <div class="view_comm">
566
+            <div class="view_item">
567
+              <span style="width: 120px">网址白名单例外</span
568
+              >{{ viewInfo.whited === 0 ? "否" : "是" }}
569
+            </div>
570
+            <div class="view_item">
571
+              <span style="width: 120px">允许清空缓存</span
572
+              >{{ viewInfo.cached === 0 ? "否" : "是" }}
573
+            </div>
574
+            <div class="view_item">
575
+              <span style="width: 120px">添加到已有策略</span
576
+              >{{ viewInfo.strategy === 0 ? "否" : "是" }}
577
+            </div>
578
+          </div>
579
+          <div class="view_com">
580
+            <div class="view_t">应用截图</div>
581
+            <div class="view_img">
582
+              <img
583
+                v-for="img in viewInfo.appImg"
584
+                :key="img"
585
+                :src="$api.showImageUrl + img"
586
+              />
587
+            </div>
588
+          </div>
589
+          <div class="view_com">
590
+            <div class="view_t">应用简介</div>
591
+            <div>{{ viewInfo.appAbbr }}</div>
592
+          </div>
593
+          <div class="view_com">
594
+            <div class="view_t">更新</div>
595
+            <div>{{ viewInfo.appRenew }}</div>
596
+          </div>
597
+          <div class="view_com">
598
+            <div class="view_t">授权型号</div>
599
+            <div class="view_devices">
600
+              <div
601
+                class="view_list"
602
+                v-for="item in viewInfo.devices"
603
+                :key="item.dgroupid"
604
+              >
605
+                <div class="dgname" style="line-height: 40px">
606
+                  {{ item.dgname }}
607
+                </div>
608
+                <div class="devices">
609
+                  <span v-for="sitem in item.devices" :key="sitem.deviceid">{{
610
+                    sitem.deviceModel
611
+                  }}</span>
612
+                </div>
613
+              </div>
614
+            </div>
615
+          </div>
616
+          <div class="view_com">
617
+            <div class="view_t">选择学校</div>
618
+            <div class="view_devices">
619
+              <div class="devices">
620
+                <span v-for="item in viewInfo.schools" :key="item.schoolid">{{
621
+                  item.schoolName
622
+                }}</span>
623
+              </div>
624
+            </div>
625
+          </div>
626
+        </div>
627
+      </div>
628
+
459 629
       <div slot="footer" style="text-align: center">
460 630
         <Button @click="viewInfo.show = false">关闭</Button>
461 631
       </div>
@@ -469,6 +639,7 @@
469 639
 
470 640
 <script>
471 641
 import { date_format, uuid } from "@/utils";
642
+import QRCode from "qrcodejs2";
472 643
 import axios from "axios";
473 644
 import {
474 645
   app_add,
@@ -491,6 +662,11 @@ export default {
491 662
   data() {
492 663
     return {
493 664
       date_format,
665
+      downloadInfo: {
666
+        show: false,
667
+        appName: "",
668
+        apkPath: ""
669
+      },
494 670
       file_list: [],
495 671
       upTimer: null,
496 672
       options: {
@@ -550,31 +726,29 @@ export default {
550 726
       // 查看
551 727
       viewInfo: {
552 728
         show: false,
553
-        areaname: "",
554
-        list: [],
555
-        columns: [
556
-          {
557
-            title: "序号",
558
-            type: "index",
559
-            width: 70,
560
-            align: "center"
561
-          },
562
-          {
563
-            title: "名称",
564
-            key: "admin",
565
-            align: "center"
566
-          },
567
-          {
568
-            title: "账号",
569
-            key: "loginname",
570
-            align: "center"
571
-          },
572
-          {
573
-            title: "手机号码",
574
-            key: "phone",
575
-            align: "center"
576
-          }
577
-        ]
729
+        appName: "",
730
+        appgroupName: "",
731
+        enable: 1,
732
+        appType: 1,
733
+        forced: 1,
734
+        whited: 1,
735
+        trusted: 1,
736
+        showico: 1,
737
+        cached: 1,
738
+        strategy: 1,
739
+        apkPath: "",
740
+        appIcon: "",
741
+        appImg: [],
742
+        versionName: "",
743
+        versionNum: "",
744
+        appSize: "",
745
+        appDeveloper: "",
746
+        appPackage: "",
747
+        appAbbr: "",
748
+        appRenew: "",
749
+        targetSchool: 2,
750
+        deviceids: [],
751
+        schoolids: []
578 752
       },
579 753
       rules: {
580 754
         appName: [
@@ -620,6 +794,11 @@ export default {
620 794
       select_schools: [],
621 795
       deviceids: {}, //设备类型
622 796
       userInfo: {},
797
+      deviceInfo: {
798
+        show: false,
799
+        appName: "",
800
+        devices: []
801
+      },
623 802
       columns: [
624 803
         {
625 804
           title: "序号",
@@ -704,6 +883,61 @@ export default {
704 883
     this.searchList();
705 884
   },
706 885
   methods: {
886
+    //下载logo
887
+    download(url) {
888
+      window.location.href = this.$api.showImageUrl + url;
889
+    },
890
+    // 查看
891
+    toView(row) {
892
+      app_detail({ appid: row.appid }).then((res) => {
893
+        if (res.code === 0) {
894
+          this.viewInfo = {
895
+            show: true,
896
+            appName: res.obj.appName,
897
+            appgroupName: row.appgroupName,
898
+            enable: res.obj.enable,
899
+            appType: res.obj.appType,
900
+            forced: res.obj.forced,
901
+            whited: res.obj.whited,
902
+            trusted: res.obj.trusted,
903
+            showico: res.obj.showico,
904
+            cached: res.obj.cached,
905
+            strategy: res.obj.strategy,
906
+            apkPath: res.obj.apkPath,
907
+            appIcon: res.obj.appIcon,
908
+            appImg: res.obj.appImg ? res.obj.appImg.split(";") : [],
909
+            versionName: res.obj.versionName,
910
+            versionNum: res.obj.versionNum,
911
+            appSize: res.obj.appSize,
912
+            appDeveloper: res.obj.appDeveloper,
913
+            appPackage: res.obj.appPackage,
914
+            appAbbr: res.obj.appAbbr,
915
+            appRenew: res.obj.appRenew,
916
+            targetSchool: res.obj.targetSchool,
917
+            devices: res.obj.devices,
918
+            schools: res.obj.schools
919
+          };
920
+          console.log(this.viewInfo);
921
+        } else {
922
+          this.$Message.error(res.msg);
923
+        }
924
+      });
925
+    },
926
+    //查看型号
927
+    see_device(row) {
928
+      app_detail({ appid: row.appid }).then((res) => {
929
+        if (res.code === 0) {
930
+          this.deviceInfo = {
931
+            show: true,
932
+            appName: res.obj.appName,
933
+            devices: res.obj.devices
934
+          };
935
+          console.log(this.deviceInfo);
936
+        } else {
937
+          this.$Message.error(res.msg);
938
+        }
939
+      });
940
+    },
707 941
     enabledChange(row) {
708 942
       let api = row.enable === 1 ? app_edit_enable : app_edit_unenable;
709 943
       api({
@@ -719,8 +953,34 @@ export default {
719 953
       });
720 954
     },
721 955
     countSlot(row, type) {
956
+      console.log(row);
722 957
       if (type === 1) {
723 958
         //下载
959
+        app_detail({ appid: row.appid }).then((res) => {
960
+          if (res.code === 0) {
961
+            this.downloadInfo = {
962
+              show: true,
963
+              appName: res.obj.appName,
964
+              apkPath: res.obj.apkPath
965
+            };
966
+            this.$nextTick(() => {
967
+              let qrcodeEl = this.$refs.ScanShare;
968
+              if (!qrcodeEl) {
969
+                return;
970
+              }
971
+              qrcodeEl.innerHTML = "";
972
+              let qrcode = new QRCode(qrcodeEl, {
973
+                width: 140,
974
+                height: 140,
975
+                text: this.$api.showImageUrl + this.downloadInfo.apkPath
976
+              });
977
+              qrcode._el.title = "";
978
+            });
979
+            console.log(this.downloadInfo);
980
+          } else {
981
+            this.$Message.error(res.msg);
982
+          }
983
+        });
724 984
       } else if (type === 2) {
725 985
         //安装统计
726 986
       }
@@ -879,10 +1139,12 @@ export default {
879 1139
     getSchool() {
880 1140
       //wallpaperInfo.schoolname
881 1141
       //获取区域学校
1142
+      this.showLoading = true;
882 1143
       region_list_rs({
883 1144
         regionid: this.userInfo.regionid,
884 1145
         regionName: this.wallpaperInfo.schoolname
885 1146
       }).then((res) => {
1147
+        this.showLoading = false;
886 1148
         if (res.code === 0) {
887 1149
           this.getHandleData(res.obj[0]);
888 1150
           this.school_list = res.obj;
@@ -958,11 +1220,13 @@ export default {
958 1220
     },
959 1221
     // 获取列表
960 1222
     getList() {
1223
+      this.showLoading = true;
961 1224
       app_list({
962 1225
         page: this.searchForm.page,
963 1226
         size: this.searchForm.size,
964 1227
         appName: this.searchForm.appName
965 1228
       }).then((res) => {
1229
+        this.showLoading = false;
966 1230
         if (res.code === 0) {
967 1231
           this.searchForm.list = res.obj.data;
968 1232
           this.searchForm.total = res.obj.total;
@@ -1076,7 +1340,7 @@ export default {
1076 1340
             schoolids: this.wallpaperInfo.schoolids
1077 1341
           };
1078 1342
           //编辑
1079
-          if(this.wallpaperInfo.appid){
1343
+          if (this.wallpaperInfo.appid) {
1080 1344
             form.appid = this.wallpaperInfo.appid;
1081 1345
             form.rversion = this.wallpaperInfo.rversion;
1082 1346
           }
@@ -1114,25 +1378,7 @@ export default {
1114 1378
         }
1115 1379
       }
1116 1380
     },
1117
-    //进入
1118
-    toGo(row) {},
1119
-    // 查看
1120
-    toView() {
1121
-      this.viewInfo.show = true;
1122
-      this.viewInfo.areaname = "河南星火燎原软件科技有限公司";
1123
-      this.viewInfo.list = [
1124
-        {
1125
-          admin: "周文彦",
1126
-          loginname: "zhouwenyan@xhkjedu.com",
1127
-          phone: "15610230213"
1128
-        },
1129
-        {
1130
-          admin: "齐思宇",
1131
-          loginname: "zhouwenyan@xhkjedu.com",
1132
-          phone: "15610230213"
1133
-        }
1134
-      ];
1135
-    },
1381
+
1136 1382
     // 编辑
1137 1383
     toEdit(row) {
1138 1384
       app_detail({ appid: row.appid }).then((res) => {
@@ -1154,7 +1400,7 @@ export default {
1154 1400
             strategy: res.obj.strategy,
1155 1401
             apkPath: res.obj.apkPath,
1156 1402
             appIcon: res.obj.appIcon,
1157
-            appImg: res.obj.appImg?res.obj.appImg.split(";"):[],
1403
+            appImg: res.obj.appImg ? res.obj.appImg.split(";") : [],
1158 1404
             versionName: res.obj.versionName,
1159 1405
             versionNum: res.obj.versionNum,
1160 1406
             appSize: res.obj.appSize,
@@ -1303,6 +1549,35 @@ export default {
1303 1549
   font-weight: bold;
1304 1550
   text-align: center;
1305 1551
 }
1552
+.view_content {
1553
+  display: flex;
1554
+  .view_title {
1555
+    width: 90px;
1556
+    text-align: right;
1557
+    flex: none;
1558
+    font-size: 16px;
1559
+    margin: 0 10px;
1560
+    line-height: 32px;
1561
+    height: 32px;
1562
+  }
1563
+}
1564
+.view_devices {
1565
+  .view_list {
1566
+    margin-bottom: 20px;
1567
+    line-height: 32px;
1568
+  }
1569
+  .dgname {
1570
+    line-height: 32px;
1571
+  }
1572
+  .devices {
1573
+    display: flex;
1574
+    flex-wrap: wrap;
1575
+    span {
1576
+      margin-right: 20px;
1577
+      margin-bottom: 10px;
1578
+    }
1579
+  }
1580
+}
1306 1581
 .application {
1307 1582
   .comm {
1308 1583
     display: flex;
@@ -1475,4 +1750,108 @@ export default {
1475 1750
   box-shadow: inset 0 1px 2px 0 #ffffffb3, inset 0 -2px 3px 0 #ffffff4d,
1476 1751
     0 3px 5px 0 #339dff80, inset 0 -2px 0 0 #2b89e0;
1477 1752
 }
1753
+.view_conten {
1754
+  display: flex;
1755
+  .view_logo {
1756
+    width: 90px;
1757
+    height: 90px;
1758
+    margin-right: 20px;
1759
+    border: 1px solid #e5e5e5;
1760
+    background-color: white;
1761
+    border-radius: 20px;
1762
+    padding: 15px;
1763
+    img {
1764
+      width: 60px;
1765
+      height: 60px;
1766
+      object-fit: cover;
1767
+    }
1768
+    .appIcon {
1769
+      margin-top: 10px;
1770
+      color: #96abdf;
1771
+      line-height: 30px;
1772
+      &:hover {
1773
+        cursor: pointer;
1774
+        color: #339cff;
1775
+      }
1776
+    }
1777
+  }
1778
+  .view_conter {
1779
+    width: calc(100% - 110px);
1780
+    font-size: 16px;
1781
+    .view_comm {
1782
+      display: flex;
1783
+      justify-content: space-between;
1784
+      line-height: 40px;
1785
+      .view_titles {
1786
+        font-size: 20px;
1787
+        font-weight: bold;
1788
+        .qy {
1789
+          background-color: #52c41a;
1790
+          border-radius: 6px;
1791
+          font-size: 10px;
1792
+          color: white;
1793
+          margin-left: 10px;
1794
+          padding: 4px 6px;
1795
+        }
1796
+      }
1797
+      .view_item {
1798
+        width: 33%;
1799
+        span {
1800
+          display: inline-block;
1801
+          width: 70px;
1802
+          margin-right: 20px;
1803
+        }
1804
+      }
1805
+    }
1806
+    .view_com {
1807
+      display: flex;
1808
+      line-height: 40px;
1809
+      .view_t {
1810
+        width: 70px;
1811
+        flex: none;
1812
+        margin-right: 20px;
1813
+        text-align: right;
1814
+      }
1815
+      .view_img {
1816
+        display: flex;
1817
+        padding-top: 10px;
1818
+        img {
1819
+          width: 90px;
1820
+          height: 80px;
1821
+          object-fit: cover;
1822
+          margin-right: 20px;
1823
+        }
1824
+      }
1825
+    }
1826
+  }
1827
+}
1828
+.download {
1829
+  .content {
1830
+    text-align: center;
1831
+    .title {
1832
+      font-size: 18px;
1833
+      margin-bottom: 30px;
1834
+    }
1835
+    .qrcode {
1836
+      width: 172px;
1837
+      padding: 16px;
1838
+      margin: 0 auto;
1839
+      border: 2px solid #ffffff;
1840
+      background: #ffffff4d;
1841
+      box-shadow: 0 10px 30px 0 #339dff26;
1842
+      #ScanShare {
1843
+        width: 140px;
1844
+        height: 140px;
1845
+        margin-bottom: 10px;
1846
+      }
1847
+    }
1848
+    .download {
1849
+      margin-top: 10px;
1850
+      &:hover {
1851
+        cursor: pointer;
1852
+        color: #339cff;
1853
+      }
1854
+    }
1855
+  }
1856
+}
1478 1857
 </style>

+ 137
- 14
src/views/regionSection/search/allApps.vue View File

@@ -16,7 +16,69 @@
16 16
       </Button>
17 17
     </div>
18 18
     <div class="table_wrap">
19
-      <Table :columns="columns" :data="searchForm.list"> </Table>
19
+      <Table :columns="columns" :data="searchForm.list">
20
+        <template slot-scope="{ row }" slot="appName">
21
+          <div class="appName">
22
+            <div class="app_logo">
23
+              <img :src="$api.showImageUrl + row.appIcon" />
24
+            </div>
25
+            <div class="app_comm">
26
+              <div>{{ row.appName }}</div>
27
+              <span>版本: {{ row.versionName }}</span>
28
+              <div>授权型号: {{ row.devicenum }}个</div>
29
+            </div>
30
+          </div>
31
+        </template>
32
+        <template slot-scope="{ row }" slot="appType">
33
+          <div>{{ row.appType === 1 ? "推荐应用" : "必装应用" }}</div>
34
+        </template>
35
+        <template slot-scope="{ row }" slot="enable">
36
+          <i-switch
37
+              size="large"
38
+              v-model="row.enable"
39
+              :true-value="1"
40
+              :false-value="2"
41
+              @on-change="enabledChange(row)"
42
+          >
43
+            <span slot="open">启用</span>
44
+            <span slot="close">禁用</span>
45
+          </i-switch>
46
+        </template>
47
+        <template slot-scope="{ row }" slot="whited">
48
+          <div class="action_list">
49
+            <div class="action_success">
50
+              {{ row.whited === 1 ? "是" : "否" }}
51
+            </div>
52
+          </div>
53
+        </template>
54
+        <template slot-scope="{ row }" slot="trusted">
55
+          <div class="action_list">
56
+            <div class="action_del">
57
+              {{ row.trusted === 1 ? "是" : "否" }}
58
+            </div>
59
+          </div>
60
+        </template>
61
+        <template slot-scope="{ row }" slot="showico">
62
+          <div class="action_list">
63
+            <div class="action_success">
64
+              {{ row.showico === 1 ? "是" : "否" }}
65
+            </div>
66
+          </div>
67
+        </template>
68
+
69
+        <template slot-scope="{ row }" slot="countSlot">
70
+          <div class="action_list">
71
+            <div @click="countSlot(row, 1)">下载</div>
72
+            <div @click="countSlot(row, 2)">安装统计</div>
73
+          </div>
74
+        </template>
75
+        <template slot-scope="{ row }" slot="actionSlot">
76
+          <div class="action_list">
77
+            <div @click="toView(row)">查看</div>
78
+            <div class="action_del" @click="toDel(row)">删除</div>
79
+          </div>
80
+        </template>
81
+      </Table>
20 82
     </div>
21 83
     <div class="page_wrap">
22 84
       <Page
@@ -31,14 +93,20 @@
31 93
         show-sizer
32 94
       ></Page>
33 95
     </div>
96
+    <Spin fix v-if="showLoading" style="background-color: transparent">
97
+      <Icon type="ios-loading" size="18" class="demo-spin-icon-load"></Icon>
98
+      <div>加载中</div>
99
+    </Spin>
34 100
   </div>
35 101
 </template>
36 102
 
37 103
 <script>
38
-import {region_list_qy, search_list_app} from "@/api/region";
104
+import { search_list_app} from "@/api/region";
105
+import {app_edit_enable, app_edit_unenable} from "@/api/appgroup";
39 106
 export default {
40 107
   data() {
41 108
     return {
109
+      showLoading: false,
42 110
       searchForm: {
43 111
         name: "",
44 112
         title: "",
@@ -63,51 +131,55 @@ export default {
63 131
         },
64 132
         {
65 133
           title: "应用",
66
-          key: "regionName",
134
+          slot: "appName",
67 135
           align: "center"
68 136
         },
69 137
         {
70 138
           title: "分组",
71
-          key: "createname",
139
+          key: "appgroupName",
72 140
           width: 140,
73 141
           align: "center"
74 142
         },
75 143
         {
76 144
           title: "属性应用",
77
-          key: "createtime",
78
-          width: 190,
145
+          slot: "appType",
146
+          width: 120,
79 147
           align: "center"
80 148
         },
81 149
         {
82 150
           title: "状态",
83
-          key: "updatename",
84
-          width: 140,
151
+          slot: "enable",
152
+          width: 120,
85 153
           align: "center"
86 154
         },
87 155
         {
88 156
           title: "网址白名单例外",
89
-          key: "updatetime",
90
-          width: 190,
157
+          slot: "whited",
158
+          width: 140,
91 159
           align: "center"
92 160
         },
93 161
         {
94 162
           title: "操作人",
95
-          key: "actionSlot",
163
+          key: "updatename",
164
+          width: 120,
96 165
           align: "center"
97 166
         },
98 167
         {
99 168
           title: "操作时间",
100
-          key: "actionSlot",
169
+          key: "updatetime",
170
+          width: 190,
101 171
           align: "center"
102 172
         },
103 173
         {
104 174
           title: "统计",
105
-          key: "actionSlot",
175
+          slot: "countSlot",
176
+          width: 160,
106 177
           align: "center"
107 178
         },
108 179
         {
109 180
           title: "操作",
110
-          key: "actionSlot",
181
+          slot: "actionSlot",
182
+          width: 130,
111 183
           align: "center"
112 184
         }
113 185
       ]
@@ -117,6 +189,25 @@ export default {
117 189
     this.searchList();
118 190
   },
119 191
   methods: {
192
+    enabledChange(row) {
193
+      let api = row.enable === 1 ? app_edit_enable : app_edit_unenable;
194
+      this.showLoading = true;
195
+      api({
196
+        appid: row.appid,
197
+        rversion: row.rversion
198
+      }).then((data) => {
199
+        this.showLoading = false;
200
+        this.searchList();
201
+        if (data.code === 0) {
202
+          this.$Message.success(data.msg);
203
+        } else {
204
+          this.$Message.error(data.msg);
205
+        }
206
+      });
207
+    },
208
+    countSlot(){},
209
+    toView(){},
210
+    toDel(){},
120 211
     // 搜索
121 212
     searchList() {
122 213
       this.searchForm.page = 1;
@@ -135,14 +226,17 @@ export default {
135 226
     },
136 227
     // 获取列表
137 228
     getList() {
229
+      this.showLoading = true;
138 230
       search_list_app({
139 231
         page: this.searchForm.page,
140 232
         size: this.searchForm.size,
141 233
         name: this.searchForm.name,
142 234
         title: this.searchForm.title
143 235
       }).then((data) => {
236
+        this.showLoading = false;
144 237
         if (data.code === 0) {
145 238
           this.searchForm.list = data.obj.data;
239
+          console.log(this.searchForm.list)
146 240
           this.searchForm.total = data.obj.total;
147 241
         } else {
148 242
           this.$Message.error(data.msg);
@@ -165,4 +259,33 @@ export default {
165 259
   font-weight: bold;
166 260
   text-align: center;
167 261
 }
262
+.table_wrap {
263
+  .appName {
264
+    display: flex;
265
+    margin: 16px 0;
266
+    .app_logo {
267
+      flex-wrap: none;
268
+      width: 56px;
269
+      height: 56px;
270
+      border-radius: 20px;
271
+      border: 1px solid #e5e5e5;
272
+      background: #ffffff;
273
+      padding: 10px;
274
+      img {
275
+        width: 38px;
276
+        height: 38px;
277
+        object-fit: cover;
278
+      }
279
+    }
280
+    .app_comm {
281
+      flex: none;
282
+      width: 120px;
283
+      margin-left: 10px;
284
+      text-align: left;
285
+      div {
286
+        color: #339dff;
287
+      }
288
+    }
289
+  }
290
+}
168 291
 </style>

Loading…
Cancel
Save