浏览代码

视图端修改

seimin 3 年之前
父节点
当前提交
394b2644b8
共有 6 个文件被更改,包括 506 次插入55 次删除
  1. 266 0
      package-lock.json
  2. 4 1
      package.json
  3. 190 52
      src/views/AppIndex.vue
  4. 8 0
      upload/config.js
  5. 36 0
      upload/index.js
  6. 2 2
      vue.config.js

+ 266 - 0
package-lock.json

@@ -1054,6 +1054,17 @@
1054
         "to-fast-properties": "^2.0.0"
1054
         "to-fast-properties": "^2.0.0"
1055
       }
1055
       }
1056
     },
1056
     },
1057
+    "@dabh/diagnostics": {
1058
+      "version": "2.0.2",
1059
+      "resolved": "https://registry.nlark.com/@dabh/diagnostics/download/@dabh/diagnostics-2.0.2.tgz",
1060
+      "integrity": "sha1-KQ0I97OBuPlGB9yPRxoSxnX52zE=",
1061
+      "dev": true,
1062
+      "requires": {
1063
+        "colorspace": "1.1.x",
1064
+        "enabled": "2.0.x",
1065
+        "kuler": "^2.0.0"
1066
+      }
1067
+    },
1057
     "@hapi/address": {
1068
     "@hapi/address": {
1058
       "version": "2.1.4",
1069
       "version": "2.1.4",
1059
       "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1593993745797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz",
1070
       "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1593993745797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz",
@@ -3464,6 +3475,34 @@
3464
       "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=",
3475
       "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=",
3465
       "dev": true
3476
       "dev": true
3466
     },
3477
     },
3478
+    "colors": {
3479
+      "version": "1.4.0",
3480
+      "resolved": "https://registry.nlark.com/colors/download/colors-1.4.0.tgz",
3481
+      "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=",
3482
+      "dev": true
3483
+    },
3484
+    "colorspace": {
3485
+      "version": "1.1.2",
3486
+      "resolved": "https://registry.npm.taobao.org/colorspace/download/colorspace-1.1.2.tgz",
3487
+      "integrity": "sha1-4BKJUNCCuGohaFgHlqCqXWxo2MU=",
3488
+      "dev": true,
3489
+      "requires": {
3490
+        "color": "3.0.x",
3491
+        "text-hex": "1.0.x"
3492
+      },
3493
+      "dependencies": {
3494
+        "color": {
3495
+          "version": "3.0.0",
3496
+          "resolved": "https://registry.nlark.com/color/download/color-3.0.0.tgz?cache=0&sync_timestamp=1628104117021&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolor%2Fdownload%2Fcolor-3.0.0.tgz",
3497
+          "integrity": "sha1-2SC0Mo1TSjrIKV1o971LpsQnvpo=",
3498
+          "dev": true,
3499
+          "requires": {
3500
+            "color-convert": "^1.9.1",
3501
+            "color-string": "^1.5.2"
3502
+          }
3503
+        }
3504
+      }
3505
+    },
3467
     "combined-stream": {
3506
     "combined-stream": {
3468
       "version": "1.0.8",
3507
       "version": "1.0.8",
3469
       "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz",
3508
       "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz",
@@ -4617,6 +4656,12 @@
4617
       "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=",
4656
       "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=",
4618
       "dev": true
4657
       "dev": true
4619
     },
4658
     },
4659
+    "enabled": {
4660
+      "version": "2.0.0",
4661
+      "resolved": "https://registry.nlark.com/enabled/download/enabled-2.0.0.tgz",
4662
+      "integrity": "sha1-+d2S7C1vS7wNXR5k4h1hzUZl58I=",
4663
+      "dev": true
4664
+    },
4620
     "encodeurl": {
4665
     "encodeurl": {
4621
       "version": "1.0.2",
4666
       "version": "1.0.2",
4622
       "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
4667
       "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
@@ -4661,6 +4706,12 @@
4661
       "integrity": "sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38=",
4706
       "integrity": "sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38=",
4662
       "dev": true
4707
       "dev": true
4663
     },
4708
     },
4709
+    "err-code": {
4710
+      "version": "2.0.3",
4711
+      "resolved": "https://registry.nlark.com/err-code/download/err-code-2.0.3.tgz",
4712
+      "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=",
4713
+      "dev": true
4714
+    },
4664
     "errno": {
4715
     "errno": {
4665
       "version": "0.1.7",
4716
       "version": "0.1.7",
4666
       "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz",
4717
       "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz",
@@ -5293,6 +5344,12 @@
5293
       "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
5344
       "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
5294
       "dev": true
5345
       "dev": true
5295
     },
5346
     },
5347
+    "fast-safe-stringify": {
5348
+      "version": "2.0.8",
5349
+      "resolved": "https://registry.nlark.com/fast-safe-stringify/download/fast-safe-stringify-2.0.8.tgz",
5350
+      "integrity": "sha1-3Cr0jEbPcStoPoSbK71EazLek28=",
5351
+      "dev": true
5352
+    },
5296
     "faye-websocket": {
5353
     "faye-websocket": {
5297
       "version": "0.10.0",
5354
       "version": "0.10.0",
5298
       "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz",
5355
       "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz",
@@ -5302,6 +5359,12 @@
5302
         "websocket-driver": ">=0.5.1"
5359
         "websocket-driver": ">=0.5.1"
5303
       }
5360
       }
5304
     },
5361
     },
5362
+    "fecha": {
5363
+      "version": "4.2.1",
5364
+      "resolved": "https://registry.nlark.com/fecha/download/fecha-4.2.1.tgz",
5365
+      "integrity": "sha1-CoOtj4bvYqCR4iu1oDnNA9I+7M4=",
5366
+      "dev": true
5367
+    },
5305
     "figgy-pudding": {
5368
     "figgy-pudding": {
5306
       "version": "3.5.2",
5369
       "version": "3.5.2",
5307
       "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz",
5370
       "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz",
@@ -5462,6 +5525,12 @@
5462
         "readable-stream": "^2.3.6"
5525
         "readable-stream": "^2.3.6"
5463
       }
5526
       }
5464
     },
5527
     },
5528
+    "fn.name": {
5529
+      "version": "1.1.0",
5530
+      "resolved": "https://registry.nlark.com/fn.name/download/fn.name-1.1.0.tgz",
5531
+      "integrity": "sha1-JsrYAXlnrqhzG8QpYdBKPVmIrMw=",
5532
+      "dev": true
5533
+    },
5465
     "follow-redirects": {
5534
     "follow-redirects": {
5466
       "version": "1.13.0",
5535
       "version": "1.13.0",
5467
       "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.0.tgz",
5536
       "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.0.tgz",
@@ -6338,6 +6407,12 @@
6338
         }
6407
         }
6339
       }
6408
       }
6340
     },
6409
     },
6410
+    "interpret": {
6411
+      "version": "1.4.0",
6412
+      "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz",
6413
+      "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=",
6414
+      "dev": true
6415
+    },
6341
     "invariant": {
6416
     "invariant": {
6342
       "version": "2.2.4",
6417
       "version": "2.2.4",
6343
       "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz",
6418
       "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz",
@@ -6844,6 +6919,12 @@
6844
       "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=",
6919
       "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=",
6845
       "dev": true
6920
       "dev": true
6846
     },
6921
     },
6922
+    "kuler": {
6923
+      "version": "2.0.0",
6924
+      "resolved": "https://registry.nlark.com/kuler/download/kuler-2.0.0.tgz",
6925
+      "integrity": "sha1-4sVwo4ADiPtEQH6FFTHB1nCwYbM=",
6926
+      "dev": true
6927
+    },
6847
     "launch-editor": {
6928
     "launch-editor": {
6848
       "version": "2.2.1",
6929
       "version": "2.2.1",
6849
       "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz",
6930
       "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz",
@@ -7085,6 +7166,19 @@
7085
         "chalk": "^2.0.1"
7166
         "chalk": "^2.0.1"
7086
       }
7167
       }
7087
     },
7168
     },
7169
+    "logform": {
7170
+      "version": "2.2.0",
7171
+      "resolved": "https://registry.npm.taobao.org/logform/download/logform-2.2.0.tgz",
7172
+      "integrity": "sha1-QPA20ZFh/Ha2irUP3H/klVREkvI=",
7173
+      "dev": true,
7174
+      "requires": {
7175
+        "colors": "^1.2.1",
7176
+        "fast-safe-stringify": "^2.0.4",
7177
+        "fecha": "^4.2.0",
7178
+        "ms": "^2.1.1",
7179
+        "triple-beam": "^1.3.0"
7180
+      }
7181
+    },
7088
     "loglevel": {
7182
     "loglevel": {
7089
       "version": "1.7.0",
7183
       "version": "1.7.0",
7090
       "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz",
7184
       "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz",
@@ -7887,6 +7981,15 @@
7887
         "wrappy": "1"
7981
         "wrappy": "1"
7888
       }
7982
       }
7889
     },
7983
     },
7984
+    "one-time": {
7985
+      "version": "1.0.0",
7986
+      "resolved": "https://registry.nlark.com/one-time/download/one-time-1.0.0.tgz",
7987
+      "integrity": "sha1-4GvBdK7SFO1Y7e3lc7Qzu/gny0U=",
7988
+      "dev": true,
7989
+      "requires": {
7990
+        "fn.name": "1.x.x"
7991
+      }
7992
+    },
7890
     "onetime": {
7993
     "onetime": {
7891
       "version": "2.0.1",
7994
       "version": "2.0.1",
7892
       "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz",
7995
       "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz",
@@ -8924,6 +9027,16 @@
8924
       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
9027
       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
8925
       "dev": true
9028
       "dev": true
8926
     },
9029
     },
9030
+    "promise-retry": {
9031
+      "version": "2.0.1",
9032
+      "resolved": "https://registry.npm.taobao.org/promise-retry/download/promise-retry-2.0.1.tgz",
9033
+      "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=",
9034
+      "dev": true,
9035
+      "requires": {
9036
+        "err-code": "^2.0.2",
9037
+        "retry": "^0.12.0"
9038
+      }
9039
+    },
8927
     "proxy-addr": {
9040
     "proxy-addr": {
8928
       "version": "2.0.6",
9041
       "version": "2.0.6",
8929
       "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz",
9042
       "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz",
@@ -9127,6 +9240,15 @@
9127
         "picomatch": "^2.2.1"
9240
         "picomatch": "^2.2.1"
9128
       }
9241
       }
9129
     },
9242
     },
9243
+    "rechoir": {
9244
+      "version": "0.6.2",
9245
+      "resolved": "https://registry.nlark.com/rechoir/download/rechoir-0.6.2.tgz?cache=0&sync_timestamp=1627101677944&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frechoir%2Fdownload%2Frechoir-0.6.2.tgz",
9246
+      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
9247
+      "dev": true,
9248
+      "requires": {
9249
+        "resolve": "^1.1.6"
9250
+      }
9251
+    },
9130
     "regenerate": {
9252
     "regenerate": {
9131
       "version": "1.4.1",
9253
       "version": "1.4.1",
9132
       "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.1.tgz",
9254
       "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.1.tgz",
@@ -9736,6 +9858,17 @@
9736
       "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=",
9858
       "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=",
9737
       "dev": true
9859
       "dev": true
9738
     },
9860
     },
9861
+    "shelljs": {
9862
+      "version": "0.8.4",
9863
+      "resolved": "https://registry.nlark.com/shelljs/download/shelljs-0.8.4.tgz",
9864
+      "integrity": "sha1-3naE/ut2f4cWsyYHiooAh1iQ48I=",
9865
+      "dev": true,
9866
+      "requires": {
9867
+        "glob": "^7.0.0",
9868
+        "interpret": "^1.0.0",
9869
+        "rechoir": "^0.6.2"
9870
+      }
9871
+    },
9739
     "signal-exit": {
9872
     "signal-exit": {
9740
       "version": "3.0.3",
9873
       "version": "3.0.3",
9741
       "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz",
9874
       "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz",
@@ -10096,6 +10229,63 @@
10096
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
10229
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
10097
       "dev": true
10230
       "dev": true
10098
     },
10231
     },
10232
+    "ssh2": {
10233
+      "version": "0.8.9",
10234
+      "resolved": "https://registry.nlark.com/ssh2/download/ssh2-0.8.9.tgz",
10235
+      "integrity": "sha1-VNo6bEuj2vDYR3pTikgTJgkYFfM=",
10236
+      "dev": true,
10237
+      "requires": {
10238
+        "ssh2-streams": "~0.4.10"
10239
+      }
10240
+    },
10241
+    "ssh2-sftp-client": {
10242
+      "version": "6.0.1",
10243
+      "resolved": "https://registry.nlark.com/ssh2-sftp-client/download/ssh2-sftp-client-6.0.1.tgz",
10244
+      "integrity": "sha1-zZAaz9UwPsXaDhBDbV3EhPNORkw=",
10245
+      "dev": true,
10246
+      "requires": {
10247
+        "concat-stream": "^2.0.0",
10248
+        "promise-retry": "^2.0.1",
10249
+        "ssh2": "^0.8.9",
10250
+        "winston": "^3.3.3"
10251
+      },
10252
+      "dependencies": {
10253
+        "concat-stream": {
10254
+          "version": "2.0.0",
10255
+          "resolved": "https://registry.nlark.com/concat-stream/download/concat-stream-2.0.0.tgz",
10256
+          "integrity": "sha1-QUz1r3kKSMYKub5FJ9VtXkETPLE=",
10257
+          "dev": true,
10258
+          "requires": {
10259
+            "buffer-from": "^1.0.0",
10260
+            "inherits": "^2.0.3",
10261
+            "readable-stream": "^3.0.2",
10262
+            "typedarray": "^0.0.6"
10263
+          }
10264
+        },
10265
+        "readable-stream": {
10266
+          "version": "3.6.0",
10267
+          "resolved": "https://registry.nlark.com/readable-stream/download/readable-stream-3.6.0.tgz",
10268
+          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
10269
+          "dev": true,
10270
+          "requires": {
10271
+            "inherits": "^2.0.3",
10272
+            "string_decoder": "^1.1.1",
10273
+            "util-deprecate": "^1.0.1"
10274
+          }
10275
+        }
10276
+      }
10277
+    },
10278
+    "ssh2-streams": {
10279
+      "version": "0.4.10",
10280
+      "resolved": "https://registry.npm.taobao.org/ssh2-streams/download/ssh2-streams-0.4.10.tgz",
10281
+      "integrity": "sha1-SO9+ig452PKSHDBSHVbayzHSOjQ=",
10282
+      "dev": true,
10283
+      "requires": {
10284
+        "asn1": "~0.2.0",
10285
+        "bcrypt-pbkdf": "^1.0.2",
10286
+        "streamsearch": "~0.1.2"
10287
+      }
10288
+    },
10099
     "sshpk": {
10289
     "sshpk": {
10100
       "version": "1.16.1",
10290
       "version": "1.16.1",
10101
       "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
10291
       "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
@@ -10128,6 +10318,12 @@
10128
       "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=",
10318
       "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=",
10129
       "dev": true
10319
       "dev": true
10130
     },
10320
     },
10321
+    "stack-trace": {
10322
+      "version": "0.0.10",
10323
+      "resolved": "https://registry.nlark.com/stack-trace/download/stack-trace-0.0.10.tgz?cache=0&sync_timestamp=1620387770510&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstack-trace%2Fdownload%2Fstack-trace-0.0.10.tgz",
10324
+      "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
10325
+      "dev": true
10326
+    },
10131
     "stackframe": {
10327
     "stackframe": {
10132
       "version": "1.2.0",
10328
       "version": "1.2.0",
10133
       "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz?cache=0&sync_timestamp=1590854148142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.2.0.tgz",
10329
       "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz?cache=0&sync_timestamp=1590854148142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.2.0.tgz",
@@ -10200,6 +10396,12 @@
10200
       "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=",
10396
       "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=",
10201
       "dev": true
10397
       "dev": true
10202
     },
10398
     },
10399
+    "streamsearch": {
10400
+      "version": "0.1.2",
10401
+      "resolved": "https://registry.nlark.com/streamsearch/download/streamsearch-0.1.2.tgz",
10402
+      "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
10403
+      "dev": true
10404
+    },
10203
     "strict-uri-encode": {
10405
     "strict-uri-encode": {
10204
       "version": "1.1.0",
10406
       "version": "1.1.0",
10205
       "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz",
10407
       "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz",
@@ -10496,6 +10698,12 @@
10496
         }
10698
         }
10497
       }
10699
       }
10498
     },
10700
     },
10701
+    "text-hex": {
10702
+      "version": "1.0.0",
10703
+      "resolved": "https://registry.npm.taobao.org/text-hex/download/text-hex-1.0.0.tgz",
10704
+      "integrity": "sha1-adycGxdEbueakr9biEu0uRJ1BvU=",
10705
+      "dev": true
10706
+    },
10499
     "text-table": {
10707
     "text-table": {
10500
       "version": "0.2.0",
10708
       "version": "0.2.0",
10501
       "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
10709
       "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
@@ -10653,6 +10861,12 @@
10653
         "punycode": "^2.1.1"
10861
         "punycode": "^2.1.1"
10654
       }
10862
       }
10655
     },
10863
     },
10864
+    "triple-beam": {
10865
+      "version": "1.3.0",
10866
+      "resolved": "https://registry.nlark.com/triple-beam/download/triple-beam-1.3.0.tgz",
10867
+      "integrity": "sha1-pZUhTHKY24M57u7gg+TRC9jLjdk=",
10868
+      "dev": true
10869
+    },
10656
     "tryer": {
10870
     "tryer": {
10657
       "version": "1.0.1",
10871
       "version": "1.0.1",
10658
       "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz",
10872
       "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz",
@@ -11885,6 +12099,58 @@
11885
       "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
12099
       "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
11886
       "dev": true
12100
       "dev": true
11887
     },
12101
     },
12102
+    "winston": {
12103
+      "version": "3.3.3",
12104
+      "resolved": "https://registry.npm.taobao.org/winston/download/winston-3.3.3.tgz",
12105
+      "integrity": "sha1-rmFyBCyvspeGr6PQnI/4M6t8kXA=",
12106
+      "dev": true,
12107
+      "requires": {
12108
+        "@dabh/diagnostics": "^2.0.2",
12109
+        "async": "^3.1.0",
12110
+        "is-stream": "^2.0.0",
12111
+        "logform": "^2.2.0",
12112
+        "one-time": "^1.0.0",
12113
+        "readable-stream": "^3.4.0",
12114
+        "stack-trace": "0.0.x",
12115
+        "triple-beam": "^1.3.0",
12116
+        "winston-transport": "^4.4.0"
12117
+      },
12118
+      "dependencies": {
12119
+        "async": {
12120
+          "version": "3.2.1",
12121
+          "resolved": "https://registry.nlark.com/async/download/async-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fasync%2Fdownload%2Fasync-3.2.1.tgz",
12122
+          "integrity": "sha1-0ydOxm0QekdHakxJE2qs2wBmX8g=",
12123
+          "dev": true
12124
+        },
12125
+        "is-stream": {
12126
+          "version": "2.0.1",
12127
+          "resolved": "https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz?cache=0&sync_timestamp=1628592752355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-stream%2Fdownload%2Fis-stream-2.0.1.tgz",
12128
+          "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=",
12129
+          "dev": true
12130
+        },
12131
+        "readable-stream": {
12132
+          "version": "3.6.0",
12133
+          "resolved": "https://registry.nlark.com/readable-stream/download/readable-stream-3.6.0.tgz",
12134
+          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
12135
+          "dev": true,
12136
+          "requires": {
12137
+            "inherits": "^2.0.3",
12138
+            "string_decoder": "^1.1.1",
12139
+            "util-deprecate": "^1.0.1"
12140
+          }
12141
+        }
12142
+      }
12143
+    },
12144
+    "winston-transport": {
12145
+      "version": "4.4.0",
12146
+      "resolved": "https://registry.npm.taobao.org/winston-transport/download/winston-transport-4.4.0.tgz",
12147
+      "integrity": "sha1-F69RjappDVsuzMqnrPeyDKeSXlk=",
12148
+      "dev": true,
12149
+      "requires": {
12150
+        "readable-stream": "^2.3.7",
12151
+        "triple-beam": "^1.2.0"
12152
+      }
12153
+    },
11888
     "word-wrap": {
12154
     "word-wrap": {
11889
       "version": "1.2.3",
12155
       "version": "1.2.3",
11890
       "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",
12156
       "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",

+ 4 - 1
package.json

@@ -5,7 +5,8 @@
5
   "scripts": {
5
   "scripts": {
6
     "start": "vue-cli-service serve",
6
     "start": "vue-cli-service serve",
7
     "build": "vue-cli-service build",
7
     "build": "vue-cli-service build",
8
-    "lint": "vue-cli-service lint"
8
+    "lint": "vue-cli-service lint",
9
+    "upload": "node ./upload/index.js"
9
   },
10
   },
10
   "dependencies": {
11
   "dependencies": {
11
     "axios": "^0.20.0",
12
     "axios": "^0.20.0",
@@ -24,6 +25,8 @@
24
     "eslint-plugin-vue": "^6.2.2",
25
     "eslint-plugin-vue": "^6.2.2",
25
     "less": "^3.0.4",
26
     "less": "^3.0.4",
26
     "less-loader": "^5.0.0",
27
     "less-loader": "^5.0.0",
28
+    "shelljs": "^0.8.4",
29
+    "ssh2-sftp-client": "^6.0.1",
27
     "vue-template-compiler": "^2.6.11"
30
     "vue-template-compiler": "^2.6.11"
28
   }
31
   }
29
 }
32
 }

+ 190 - 52
src/views/AppIndex.vue

@@ -78,10 +78,10 @@
78
         style="position: relative"
78
         style="position: relative"
79
         v-show="
79
         v-show="
80
           (!loading1 && !loading5 && currentNavIndex == 1) ||
80
           (!loading1 && !loading5 && currentNavIndex == 1) ||
81
-          (!loading2 && !loading5 && !loading10 && currentNavIndex == 2) ||
82
-          (!loading4 && !loading5 && !loading10 && currentNavIndex == 3) ||
83
-          (!loading5 && !loading6 && currentNavIndex == 4) ||
84
-          (!loading5 && !loading9 && currentNavIndex == 5)
81
+            (!loading2 && !loading5 && !loading10 && currentNavIndex == 2) ||
82
+            (!loading4 && !loading5 && !loading10 && currentNavIndex == 3) ||
83
+            (!loading5 && !loading6 && currentNavIndex == 4) ||
84
+            (!loading5 && !loading9 && currentNavIndex == 5)
85
         "
85
         "
86
       >
86
       >
87
         <!-- 科室标本视图 -->
87
         <!-- 科室标本视图 -->
@@ -132,9 +132,9 @@
132
           class="cot_img"
132
           class="cot_img"
133
           v-show="
133
           v-show="
134
             currentNavIndex == 1 &&
134
             currentNavIndex == 1 &&
135
-            swiperList.length == 0 &&
136
-            !loading1 &&
137
-            !loading5
135
+              swiperList.length == 0 &&
136
+              !loading1 &&
137
+              !loading5
138
           "
138
           "
139
         >
139
         >
140
           <span>暂无数据</span>
140
           <span>暂无数据</span>
@@ -163,7 +163,12 @@
163
             <div class="cot_all" v-for="(worke, i) in workerMessage" :key="i">
163
             <div class="cot_all" v-for="(worke, i) in workerMessage" :key="i">
164
               <div class="cot sevenCol" v-for="data in worke" :key="data.id">
164
               <div class="cot sevenCol" v-for="data in worke" :key="data.id">
165
                 <div class="first">
165
                 <div class="first">
166
-                  <span>{{ data.name }}</span>
166
+                  <div class="first_first">
167
+                    <span>{{ data.name }}</span>
168
+                    <span v-if="data.phone" class="first_firstPhone"
169
+                      >({{ data.phone }})</span
170
+                    >
171
+                  </div>
167
                   <span>累计{{ data.totalCount }}单</span>
172
                   <span>累计{{ data.totalCount }}单</span>
168
                   <span
173
                   <span
169
                     class="times imptime"
174
                     class="times imptime"
@@ -196,10 +201,10 @@
196
           class="cot_img"
201
           class="cot_img"
197
           v-show="
202
           v-show="
198
             currentNavIndex == 2 &&
203
             currentNavIndex == 2 &&
199
-            workerMessage.length == 0 &&
200
-            !loading2 &&
201
-            !loading5 &&
202
-            !loading10
204
+              workerMessage.length == 0 &&
205
+              !loading2 &&
206
+              !loading5 &&
207
+              !loading10
203
           "
208
           "
204
         >
209
         >
205
           <span>暂无数据</span>
210
           <span>暂无数据</span>
@@ -259,10 +264,10 @@
259
           class="cot_img"
264
           class="cot_img"
260
           v-show="
265
           v-show="
261
             currentNavIndex == 3 &&
266
             currentNavIndex == 3 &&
262
-            onlines.length == 0 &&
263
-            !loading4 &&
264
-            !loading5 &&
265
-            !loading10
267
+              onlines.length == 0 &&
268
+              !loading4 &&
269
+              !loading5 &&
270
+              !loading10
266
           "
271
           "
267
         >
272
         >
268
           <span>暂无数据</span>
273
           <span>暂无数据</span>
@@ -293,7 +298,10 @@
293
               <div class="main-box-item-header pp">
298
               <div class="main-box-item-header pp">
294
                 <h2 :title="item.name">{{ item.name }}</h2>
299
                 <h2 :title="item.name">{{ item.name }}</h2>
295
                 <div>{{ item.gdjczs }}</div>
300
                 <div>{{ item.gdjczs }}</div>
296
-                <strong>{{ item.userName ? item.userName : "" }}</strong>
301
+                <strong
302
+                  >{{ item.userName ? item.userName : ""
303
+                  }}<span>{{ item.phone ? item.phone : "" }}</span></strong
304
+                >
297
               </div>
305
               </div>
298
               <div class="main-box-item-content">
306
               <div class="main-box-item-content">
299
                 <div
307
                 <div
@@ -309,7 +317,7 @@
309
                 </div>
317
                 </div>
310
                 <div class="main-box-item-contentBox green">
318
                 <div class="main-box-item-contentBox green">
311
                   <h3>{{ item.gdnum }}</h3>
319
                   <h3>{{ item.gdnum }}</h3>
312
-                  <p>转总数</p>
320
+                  <p>转总数</p>
313
                 </div>
321
                 </div>
314
               </div>
322
               </div>
315
             </div>
323
             </div>
@@ -319,9 +327,9 @@
319
           class="cot_img"
327
           class="cot_img"
320
           v-show="
328
           v-show="
321
             currentNavIndex == 4 &&
329
             currentNavIndex == 4 &&
322
-            parentList.length == 0 &&
323
-            !loading5 &&
324
-            !loading6
330
+              parentList.length == 0 &&
331
+              !loading5 &&
332
+              !loading6
325
           "
333
           "
326
         >
334
         >
327
           <span>暂无数据</span>
335
           <span>暂无数据</span>
@@ -361,9 +369,9 @@
361
           class="cot_img"
369
           class="cot_img"
362
           v-show="
370
           v-show="
363
             currentNavIndex == 5 &&
371
             currentNavIndex == 5 &&
364
-            drugList.length == 0 &&
365
-            !loading5 &&
366
-            !loading9
372
+              drugList.length == 0 &&
373
+              !loading5 &&
374
+              !loading9
367
           "
375
           "
368
         >
376
         >
369
           <span>暂无数据</span>
377
           <span>暂无数据</span>
@@ -374,10 +382,10 @@
374
         class="main loading"
382
         class="main loading"
375
         v-show="
383
         v-show="
376
           ((loading1 || loading5) && currentNavIndex == 1) ||
384
           ((loading1 || loading5) && currentNavIndex == 1) ||
377
-          ((loading2 || loading5 || loading10) && currentNavIndex == 2) ||
378
-          ((loading4 || loading5 || loading10) && currentNavIndex == 3) ||
379
-          ((loading5 || loading6) && currentNavIndex == 4) ||
380
-          ((loading5 || loading9) && currentNavIndex == 5)
385
+            ((loading2 || loading5 || loading10) && currentNavIndex == 2) ||
386
+            ((loading4 || loading5 || loading10) && currentNavIndex == 3) ||
387
+            ((loading5 || loading6) && currentNavIndex == 4) ||
388
+            ((loading5 || loading9) && currentNavIndex == 5)
381
         "
389
         "
382
       >
390
       >
383
         <img src="./../assets/images/loading.gif" alt="" />
391
         <img src="./../assets/images/loading.gif" alt="" />
@@ -447,7 +455,23 @@
447
       <!-- 标本科室视图弹层 -->
455
       <!-- 标本科室视图弹层 -->
448
       <div v-if="detailModel" :class="{ detailModel }">
456
       <div v-if="detailModel" :class="{ detailModel }">
449
         <div class="box">
457
         <div class="box">
450
-          <h2 class="title">未取标本详情</h2>
458
+          <h2 class="title">
459
+            <div class="operateTitle">
460
+              标本详情
461
+              <div class="operate">
462
+                <label>
463
+                  <input type="checkbox" value="332" v-model="speState" /><span
464
+                    >未收取</span
465
+                  >
466
+                </label>
467
+                <label>
468
+                  <input type="checkbox" value="333" v-model="speState" /><span
469
+                    >已收取</span
470
+                  >
471
+                </label>
472
+              </div>
473
+            </div>
474
+          </h2>
451
           <div class="table">
475
           <div class="table">
452
             <div class="table-content">
476
             <div class="table-content">
453
               <table>
477
               <table>
@@ -460,6 +484,7 @@
460
                     <th>床号</th>
484
                     <th>床号</th>
461
                     <th>采集时间</th>
485
                     <th>采集时间</th>
462
                     <th>目标科室</th>
486
                     <th>目标科室</th>
487
+                    <th>收取人</th>
463
                   </tr>
488
                   </tr>
464
                 </thead>
489
                 </thead>
465
                 <tbody>
490
                 <tbody>
@@ -489,8 +514,10 @@
489
                           }"
514
                           }"
490
                         ></div>
515
                         ></div>
491
                       </td>
516
                       </td>
517
+                      <td>{{ detail.receiver || "-" }}</td>
492
                     </tr>
518
                     </tr>
493
                   </vueCustomScrollbar>
519
                   </vueCustomScrollbar>
520
+
494
                   <div
521
                   <div
495
                     style="font-size: 18px"
522
                     style="font-size: 18px"
496
                     v-if="!detailList.length && !loading3"
523
                     v-if="!detailList.length && !loading3"
@@ -547,6 +574,7 @@
547
                       </td>
574
                       </td>
548
                     </tr>
575
                     </tr>
549
                   </vueCustomScrollbar>
576
                   </vueCustomScrollbar>
577
+
550
                   <div
578
                   <div
551
                     style="font-size: 18px"
579
                     style="font-size: 18px"
552
                     v-if="!detailParentList.length && !loading7"
580
                     v-if="!detailParentList.length && !loading7"
@@ -578,24 +606,39 @@
578
         class="detailModelParent"
606
         class="detailModelParent"
579
       >
607
       >
580
         <div class="box" style="width: 1274px">
608
         <div class="box" style="width: 1274px">
581
-          <h2 class="title">患者检查详情</h2>
609
+          <h2 class="title">
610
+            <div class="operateTitle">
611
+              患者检查详情
612
+              <div class="operate">
613
+                <label>
614
+                  <input type="radio" value="666" v-model="inspectState" /><span
615
+                    >所有检查</span
616
+                  >
617
+                </label>
618
+                <label>
619
+                  <input type="radio" value="307" v-model="inspectState" /><span
620
+                    >待检查</span
621
+                  >
622
+                </label>
623
+              </div>
624
+            </div>
625
+          </h2>
582
           <div class="table" style="width: 1234px">
626
           <div class="table" style="width: 1234px">
583
             <div class="table-content" style="width: 1170px">
627
             <div class="table-content" style="width: 1170px">
584
               <table>
628
               <table>
585
                 <thead>
629
                 <thead>
586
                   <tr>
630
                   <tr>
587
                     <th>序号</th>
631
                     <th>序号</th>
588
-                    <th style="width: 100px !important">患者姓名</th>
589
-                    <th>患者编码</th>
590
-                    <th style="width: 50px !important">床号</th>
632
+                    <th style="width: 150px !important">患者姓名(床号)</th>
591
                     <th>检查项目</th>
633
                     <th>检查项目</th>
592
                     <th>预约时间</th>
634
                     <th>预约时间</th>
593
                     <th>叫号信息</th>
635
                     <th>叫号信息</th>
594
-                    <th>到达时间</th>
595
                     <th>检查科室</th>
636
                     <th>检查科室</th>
637
+                    <th style="width: 70px !important">是否建单</th>
596
                     <th style="width: 70px !important">是否送达</th>
638
                     <th style="width: 70px !important">是否送达</th>
639
+                    <th>送达时间</th>
597
                     <th style="width: 70px !important">检查状态</th>
640
                     <th style="width: 70px !important">检查状态</th>
598
-                    <th style="width: 70px !important">是否建单</th>
641
+                    <th>陪检人</th>
599
                   </tr>
642
                   </tr>
600
                 </thead>
643
                 </thead>
601
                 <tbody>
644
                 <tbody>
@@ -610,37 +653,36 @@
610
                     >
653
                     >
611
                       <td>{{ i + 1 }}</td>
654
                       <td>{{ i + 1 }}</td>
612
                       <td
655
                       <td
613
-                        style="width: 100px !important"
656
+                        style="width: 150px !important"
614
                         :style="{
657
                         :style="{
615
                           color: detail.focusPatient == 1 ? 'red' : '',
658
                           color: detail.focusPatient == 1 ? 'red' : '',
616
                         }"
659
                         }"
617
                       >
660
                       >
618
                         {{ detail.patientName || "-" }}
661
                         {{ detail.patientName || "-" }}
619
-                      </td>
620
-                      <td>{{ detail.patientCode || "-" }}</td>
621
-                      <td style="width: 50px !important">
622
-                        {{ detail.bedNum || "-" }}
662
+                        <span v-if="detail.bedNum">({{ detail.bedNum }})</span>
623
                       </td>
663
                       </td>
624
                       <td>{{ detail.inspectName || "-" }}</td>
664
                       <td>{{ detail.inspectName || "-" }}</td>
625
                       <td>{{ detail.yyTime || "-" }}</td>
665
                       <td>{{ detail.yyTime || "-" }}</td>
626
                       <td>{{ detail.reservationNumber || "-" }}</td>
666
                       <td>{{ detail.reservationNumber || "-" }}</td>
627
-                      <td>{{ detail.arriveTime || "-" }}</td>
628
                       <td>
667
                       <td>
629
                         {{ detail.execDept ? detail.execDept.dept : "-" }}
668
                         {{ detail.execDept ? detail.execDept.dept : "-" }}
630
                       </td>
669
                       </td>
631
                       <td style="width: 70px !important">
670
                       <td style="width: 70px !important">
671
+                        {{ detail.gdId ? "是" : "否" }}
672
+                      </td>
673
+                      <td style="width: 70px !important">
632
                         {{ detail.arriveTime ? "是" : "否" }}
674
                         {{ detail.arriveTime ? "是" : "否" }}
633
                       </td>
675
                       </td>
676
+                      <td>{{ detail.arriveTime || "-" }}</td>
634
                       <td style="width: 70px !important">
677
                       <td style="width: 70px !important">
635
                         {{
678
                         {{
636
                           detail.inspectState ? detail.inspectState.name : "-"
679
                           detail.inspectState ? detail.inspectState.name : "-"
637
                         }}
680
                         }}
638
                       </td>
681
                       </td>
639
-                      <td style="width: 70px !important">
640
-                        {{ detail.gdId ? "是" : "否" }}
641
-                      </td>
682
+                      <td></td>
642
                     </tr>
683
                     </tr>
643
                   </vueCustomScrollbar>
684
                   </vueCustomScrollbar>
685
+
644
                   <div
686
                   <div
645
                     style="font-size: 18px"
687
                     style="font-size: 18px"
646
                     v-if="!detailSpeList.length && !loading8"
688
                     v-if="!detailSpeList.length && !loading8"
@@ -692,7 +734,7 @@ export default {
692
     showModel,
734
     showModel,
693
   },
735
   },
694
   filters: {
736
   filters: {
695
-    length6: function (value) {
737
+    length6: function(value) {
696
       return value.slice(0, 6);
738
       return value.slice(0, 6);
697
     },
739
     },
698
   },
740
   },
@@ -782,8 +824,26 @@ export default {
782
       groupId3: 0,
824
       groupId3: 0,
783
       // 1是综合排班,2是自选排班
825
       // 1是综合排班,2是自选排班
784
       workType: 0,
826
       workType: 0,
827
+      //科室标本的标本详情 332是未收取 333是已收取
828
+      speState: [],
829
+      //科室标本,当前选中的科室
830
+      currentSpecimenDept: null,
831
+      //病房患者的标本详情 307是待检查
832
+      inspectState: "",
833
+      //病房患者,当前选中的科室
834
+      currentInspectDept: null,
785
     };
835
     };
786
   },
836
   },
837
+  watch: {
838
+    //科室标本的标本详情,已收取,未收取
839
+    speState() {
840
+      this.getDetailBySpecimen(this.currentSpecimenDept);
841
+    },
842
+    //病房患者的检查详情
843
+    inspectState() {
844
+      this.getDetailByInspect(this.currentInspectDept);
845
+    },
846
+  },
787
   methods: {
847
   methods: {
788
     // 搜索分组
848
     // 搜索分组
789
     selectGroup() {
849
     selectGroup() {
@@ -902,12 +962,23 @@ export default {
902
       console.log(item);
962
       console.log(item);
903
       clearTimeout(this.timer);
963
       clearTimeout(this.timer);
904
       clearTimeout(this.timer1);
964
       clearTimeout(this.timer1);
965
+      this.speState = ["333", "332"];
966
+      this.currentSpecimenDept = item;
905
       this.detailModel = true;
967
       this.detailModel = true;
968
+    },
969
+    // 获取标本详情(标本科室视图)
970
+    getDetailBySpecimen(item) {
906
       let postData = {
971
       let postData = {
907
         hosIds: this.$route.params.hosIds,
972
         hosIds: this.$route.params.hosIds,
908
         deptId: item.deptId,
973
         deptId: item.deptId,
909
         urgent: -1,
974
         urgent: -1,
910
       };
975
       };
976
+      if (this.speState.length > 0) {
977
+        postData.speState = this.speState.toString();
978
+      } else if (this.speState.length === 0) {
979
+        this.detailList = [];
980
+        return;
981
+      }
911
       this.loading3 = true;
982
       this.loading3 = true;
912
       post("/nurse/getListSpecimenDetails", postData).then((result) => {
983
       post("/nurse/getListSpecimenDetails", postData).then((result) => {
913
         this.loading3 = false;
984
         this.loading3 = false;
@@ -942,16 +1013,29 @@ export default {
942
       this.polling();
1013
       this.polling();
943
       this.scrollInfinite();
1014
       this.scrollInfinite();
944
     },
1015
     },
945
-    // 点击详情(病房患者视图->重点关注患者人数)
1016
+    // 点击详情(病房患者视图->患者检查详情)
946
     detailSpe(item) {
1017
     detailSpe(item) {
947
       console.log(item);
1018
       console.log(item);
948
       clearTimeout(this.timer5);
1019
       clearTimeout(this.timer5);
949
       clearTimeout(this.timer55);
1020
       clearTimeout(this.timer55);
1021
+      this.inspectState = "666";
1022
+      this.currentInspectDept = item;
950
       this.detailSpeModel = true;
1023
       this.detailSpeModel = true;
1024
+    },
1025
+    // 获取检查详情(病房患者视图)
1026
+    getDetailByInspect(item) {
951
       let postData = {
1027
       let postData = {
952
         hosIds: this.$route.params.hosIds,
1028
         hosIds: this.$route.params.hosIds,
953
-        deptid: item.id,
1029
+        deptId: item.id,
954
       };
1030
       };
1031
+      if (this.inspectState) {
1032
+        if (this.inspectState === "307") {
1033
+          postData.inspectState = this.inspectState;
1034
+        }
1035
+      } else {
1036
+        this.detailSpeList = [];
1037
+        return;
1038
+      }
955
       this.loading8 = true;
1039
       this.loading8 = true;
956
       post("/nurse/getViewData/getInspect", postData).then((result) => {
1040
       post("/nurse/getViewData/getInspect", postData).then((result) => {
957
         this.loading8 = false;
1041
         this.loading8 = false;
@@ -1441,7 +1525,7 @@ export default {
1441
     }
1525
     }
1442
   }
1526
   }
1443
   .box {
1527
   .box {
1444
-    width: 1000px;
1528
+    width: 1167px;
1445
     height: 580px;
1529
     height: 580px;
1446
     border-radius: 8px;
1530
     border-radius: 8px;
1447
     background-color: #fff;
1531
     background-color: #fff;
@@ -1464,9 +1548,55 @@ export default {
1464
       font-size: 18px;
1548
       font-size: 18px;
1465
       color: #333;
1549
       color: #333;
1466
       font-weight: bold;
1550
       font-weight: bold;
1551
+      .operateTitle {
1552
+        position: relative;
1553
+        .operate {
1554
+          font-weight: normal;
1555
+          font-size: 14px;
1556
+          width: 200px;
1557
+          position: absolute;
1558
+          top: 0;
1559
+          left: 100%;
1560
+          label {
1561
+            cursor: pointer;
1562
+            margin-left: 8px;
1563
+            display: inline-flex;
1564
+            align-items: center;
1565
+            span {
1566
+              margin-left: 4px;
1567
+            }
1568
+            input[type="checkbox"] {
1569
+              cursor: pointer;
1570
+              position: relative;
1571
+              width: 15px;
1572
+              height: 15px;
1573
+              font-size: 15px;
1574
+            }
1575
+
1576
+            input[type="checkbox"]:checked::after {
1577
+              position: absolute;
1578
+              overflow: hidden;
1579
+              background-color: #49b856;
1580
+              border: 1px solid #767676;
1581
+              color: #fff;
1582
+              width: 15px;
1583
+              height: 15px;
1584
+              border-radius: 4px;
1585
+              line-height: 0.8;
1586
+              display: inline-block;
1587
+              content: "\e618;";
1588
+              font-size: 15px;
1589
+              font-family: "icon_transport" !important;
1590
+              font-style: normal;
1591
+              -webkit-font-smoothing: antialiased;
1592
+              -moz-osx-font-smoothing: grayscale;
1593
+            }
1594
+          }
1595
+        }
1596
+      }
1467
     }
1597
     }
1468
     .table {
1598
     .table {
1469
-      width: 960px;
1599
+      width: 1127px;
1470
       height: 474px;
1600
       height: 474px;
1471
       background-color: #f9fafb;
1601
       background-color: #f9fafb;
1472
       border: 1px solid #e5e9ed;
1602
       border: 1px solid #e5e9ed;
@@ -1475,7 +1605,7 @@ export default {
1475
       justify-content: center;
1605
       justify-content: center;
1476
       align-items: center;
1606
       align-items: center;
1477
       .table-content {
1607
       .table-content {
1478
-        width: 896px;
1608
+        width: 1063px;
1479
         height: 420px;
1609
         height: 420px;
1480
         background-color: #fff;
1610
         background-color: #fff;
1481
         border-radius: 8px;
1611
         border-radius: 8px;
@@ -1942,6 +2072,14 @@ export default {
1942
     display: flex;
2072
     display: flex;
1943
     justify-content: space-between;
2073
     justify-content: space-between;
1944
     align-items: center;
2074
     align-items: center;
2075
+    .first_first {
2076
+      display: flex;
2077
+      flex-direction: column;
2078
+      align-items: center;
2079
+      .first_firstPhone {
2080
+        font-size: 12px;
2081
+      }
2082
+    }
1945
   }
2083
   }
1946
   .message_cot .cot .first span {
2084
   .message_cot .cot .first span {
1947
     display: inline-block;
2085
     display: inline-block;
@@ -1964,7 +2102,7 @@ export default {
1964
   }
2102
   }
1965
 
2103
 
1966
   .message_cot .cot .second {
2104
   .message_cot .cot .second {
1967
-    margin-top: 16px;
2105
+    margin-top: 8px;
1968
     width: 100%;
2106
     width: 100%;
1969
     height: 20px;
2107
     height: 20px;
1970
   }
2108
   }
@@ -2003,4 +2141,4 @@ export default {
2003
     font-size: 13px;
2141
     font-size: 13px;
2004
   }
2142
   }
2005
 }
2143
 }
2006
-</style>
2144
+</style>

+ 8 - 0
upload/config.js

@@ -0,0 +1,8 @@
1
+module.exports = {
2
+  ip: "192.168.3.108", // ssh地址
3
+  username: "root", // ssh 用户名
4
+  port: 22,      //端口
5
+  password: "123456", // ssh 密码
6
+  path: '/home/itsm/project/itsm-web/specimenView', // 上传地址
7
+  rmpath: '/home/itsm/project/itsm-web/specimenView' // 删除地址
8
+}

+ 36 - 0
upload/index.js

@@ -0,0 +1,36 @@
1
+const config = require('./config.js')
2
+const shell = require('shelljs')
3
+const path = require('path');
4
+let Client = require('ssh2-sftp-client');
5
+
6
+function connectSSh() {
7
+  let sftp = new Client();
8
+  sftp.connect({
9
+    host: config.ip,
10
+    port: config.port,
11
+    username: config.username,
12
+    password: config.password
13
+  }).then(() => {
14
+    console.log("-----先执行删除服务器文件-----")
15
+    return sftp.rmdir(config.rmpath, true);
16
+  }).then(() => {
17
+    // 上传文件
18
+    console.log("-----开始上传-----")
19
+    return sftp.uploadDir(path.resolve(__dirname, '../dist/specimenView'), config.path);
20
+  }).then((data) => {
21
+    console.log("-----上传完成-----");
22
+    sftp.end();
23
+  }).catch((err) => {
24
+    console.log(err, '-----失败-----');
25
+    sftp.end();
26
+  });
27
+}
28
+function runTask() {
29
+  //打包完成
30
+  if (shell.exec(`npm run build`).code == 0) {
31
+    console.log("-----打包成功-----");
32
+    //提交上传
33
+    connectSSh();
34
+  }
35
+}
36
+runTask()

+ 2 - 2
vue.config.js

@@ -4,13 +4,13 @@ module.exports = {
4
   productionSourceMap: false,
4
   productionSourceMap: false,
5
   devServer: {
5
   devServer: {
6
     open: false, // 是否自动弹出浏览器页面
6
     open: false, // 是否自动弹出浏览器页面
7
-    host: 'localhost',
7
+    host: '0.0.0.0',
8
     port: '8888',
8
     port: '8888',
9
     https: false, // 是否使用https协议
9
     https: false, // 是否使用https协议
10
     hotOnly: true, // 是否开启热更新
10
     hotOnly: true, // 是否开启热更新
11
     proxy: {
11
     proxy: {
12
       '/service': {
12
       '/service': {
13
-        target: 'http://zzzx.xyszxyy.com:8087', // API服务器的地址
13
+        target: 'http://192.168.3.96', // API服务器的地址
14
         ws: true, // 代理websockets
14
         ws: true, // 代理websockets
15
         changeOrigin: true, // 虚拟的站点需要更管origin
15
         changeOrigin: true, // 虚拟的站点需要更管origin
16
         pathRewrite: {
16
         pathRewrite: {