切换导航条
此项目
正在载入...
登录
朱兆平
/
vue_cli
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
王勇
5 years ago
提交
5f83ff63e13e6f7d52c0712386825b13f7f9936e
1 个父辈
6c04586f
修改前的push
显示空白字符变更
内嵌
并排对比
正在显示
11 个修改的文件
包含
572 行增加
和
72 行删除
package-lock.json
package.json
src/api/exit_data_analysis.js
src/api/socket.js
src/lib/websocket/socket.js
src/main.js
src/routes.js
src/views/Login.vue
src/views/dataAnalysis/ExitAnalysis.vue
src/views/nav1/perm.vue
src/views/nav1/role.vue
package-lock.json
查看文件 @
5f83ff6
...
...
@@ -92,6 +92,12 @@
"printj"
:
"~1.1.0"
}
},
"after"
:
{
"version"
:
"0.8.2"
,
"resolved"
:
"https://registry.npmjs.org/after/-/after-0.8.2.tgz"
,
"integrity"
:
"sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
,
"dev"
:
true
},
"ajv"
:
{
"version"
:
"6.10.2"
,
"resolved"
:
"https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz"
,
...
...
@@ -520,6 +526,12 @@
"integrity"
:
"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
,
"dev"
:
true
},
"arraybuffer.slice"
:
{
"version"
:
"0.0.7"
,
"resolved"
:
"https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz"
,
"integrity"
:
"sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
,
"dev"
:
true
},
"asn1"
:
{
"version"
:
"0.2.4"
,
"resolved"
:
"https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"
,
...
...
@@ -1538,6 +1550,12 @@
"integrity"
:
"sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
,
"dev"
:
true
},
"backo2"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz"
,
"integrity"
:
"sha1-MasayLEpNjRj41s+u2n038+6eUc="
,
"dev"
:
true
},
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
,
...
...
@@ -1610,6 +1628,12 @@
}
}
},
"base64-arraybuffer"
:
{
"version"
:
"0.1.5"
,
"resolved"
:
"https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz"
,
"integrity"
:
"sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
,
"dev"
:
true
},
"base64-js"
:
{
"version"
:
"1.3.1"
,
"resolved"
:
"https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz"
,
...
...
@@ -1625,6 +1649,15 @@
"tweetnacl"
:
"^0.14.3"
}
},
"better-assert"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz"
,
"integrity"
:
"sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI="
,
"dev"
:
true
,
"requires"
:
{
"callsite"
:
"1.0.0"
}
},
"bfj"
:
{
"version"
:
"6.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz"
,
...
...
@@ -1649,6 +1682,12 @@
"integrity"
:
"sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
,
"dev"
:
true
},
"blob"
:
{
"version"
:
"0.0.5"
,
"resolved"
:
"https://registry.npmjs.org/blob/-/blob-0.0.5.tgz"
,
"integrity"
:
"sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
,
"dev"
:
true
},
"block-stream"
:
{
"version"
:
"0.0.9"
,
"resolved"
:
"https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz"
,
...
...
@@ -1900,6 +1939,12 @@
}
}
},
"callsite"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz"
,
"integrity"
:
"sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
,
"dev"
:
true
},
"callsites"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
,
...
...
@@ -2434,12 +2479,24 @@
"integrity"
:
"sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
,
"dev"
:
true
},
"component-bind"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz"
,
"integrity"
:
"sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
,
"dev"
:
true
},
"component-emitter"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"
,
"integrity"
:
"sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
,
"dev"
:
true
},
"component-inherit"
:
{
"version"
:
"0.0.3"
,
"resolved"
:
"https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz"
,
"integrity"
:
"sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
,
"dev"
:
true
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
...
...
@@ -3295,6 +3352,64 @@
"once"
:
"^1.4.0"
}
},
"engine.io-client"
:
{
"version"
:
"3.4.2"
,
"resolved"
:
"https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.2.tgz"
,
"integrity"
:
"sha512-AWjc1Xg06a6UPFOBAzJf48W1UR/qKYmv/ubgSCumo9GXgvL/xGIvo05dXoBL+2NTLMipDI7in8xK61C17L25xg=="
,
"dev"
:
true
,
"requires"
:
{
"component-emitter"
:
"~1.3.0"
,
"component-inherit"
:
"0.0.3"
,
"debug"
:
"~4.1.0"
,
"engine.io-parser"
:
"~2.2.0"
,
"has-cors"
:
"1.1.0"
,
"indexof"
:
"0.0.1"
,
"parseqs"
:
"0.0.5"
,
"parseuri"
:
"0.0.5"
,
"ws"
:
"~6.1.0"
,
"xmlhttprequest-ssl"
:
"~1.5.4"
,
"yeast"
:
"0.1.2"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"4.1.1"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"
,
"integrity"
:
"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw=="
,
"dev"
:
true
,
"requires"
:
{
"ms"
:
"^2.1.1"
}
},
"ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
,
"dev"
:
true
},
"ws"
:
{
"version"
:
"6.1.4"
,
"resolved"
:
"https://registry.npmjs.org/ws/-/ws-6.1.4.tgz"
,
"integrity"
:
"sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA=="
,
"dev"
:
true
,
"requires"
:
{
"async-limiter"
:
"~1.0.0"
}
}
}
},
"engine.io-parser"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz"
,
"integrity"
:
"sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w=="
,
"dev"
:
true
,
"requires"
:
{
"after"
:
"0.8.2"
,
"arraybuffer.slice"
:
"~0.0.7"
,
"base64-arraybuffer"
:
"0.1.5"
,
"blob"
:
"0.0.5"
,
"has-binary2"
:
"~1.0.2"
}
},
"enhanced-resolve"
:
{
"version"
:
"3.4.1"
,
"resolved"
:
"https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz"
,
...
...
@@ -4840,6 +4955,29 @@
}
}
},
"has-binary2"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz"
,
"integrity"
:
"sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw=="
,
"dev"
:
true
,
"requires"
:
{
"isarray"
:
"2.0.1"
},
"dependencies"
:
{
"isarray"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz"
,
"integrity"
:
"sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
,
"dev"
:
true
}
}
},
"has-cors"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz"
,
"integrity"
:
"sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
,
"dev"
:
true
},
"has-flag"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
,
...
...
@@ -5182,6 +5320,12 @@
"integrity"
:
"sha1-8w9xbI4r00bHtn0985FVZqfAVgc="
,
"dev"
:
true
},
"indexof"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"
,
"integrity"
:
"sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
,
"dev"
:
true
},
"inflight"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
,
...
...
@@ -9411,6 +9555,12 @@
"integrity"
:
"sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
,
"dev"
:
true
},
"object-component"
:
{
"version"
:
"0.0.3"
,
"resolved"
:
"https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz"
,
"integrity"
:
"sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
,
"dev"
:
true
},
"object-copy"
:
{
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz"
,
...
...
@@ -9719,6 +9869,24 @@
"error-ex"
:
"^1.2.0"
}
},
"parseqs"
:
{
"version"
:
"0.0.5"
,
"resolved"
:
"https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz"
,
"integrity"
:
"sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0="
,
"dev"
:
true
,
"requires"
:
{
"better-assert"
:
"~1.0.0"
}
},
"parseuri"
:
{
"version"
:
"0.0.5"
,
"resolved"
:
"https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz"
,
"integrity"
:
"sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo="
,
"dev"
:
true
,
"requires"
:
{
"better-assert"
:
"~1.0.0"
}
},
"parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
...
...
@@ -11675,6 +11843,85 @@
"kind-of"
:
"^3.2.0"
}
},
"socket.io-client"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz"
,
"integrity"
:
"sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA=="
,
"dev"
:
true
,
"requires"
:
{
"backo2"
:
"1.0.2"
,
"base64-arraybuffer"
:
"0.1.5"
,
"component-bind"
:
"1.0.0"
,
"component-emitter"
:
"1.2.1"
,
"debug"
:
"~4.1.0"
,
"engine.io-client"
:
"~3.4.0"
,
"has-binary2"
:
"~1.0.2"
,
"has-cors"
:
"1.1.0"
,
"indexof"
:
"0.0.1"
,
"object-component"
:
"0.0.3"
,
"parseqs"
:
"0.0.5"
,
"parseuri"
:
"0.0.5"
,
"socket.io-parser"
:
"~3.3.0"
,
"to-array"
:
"0.1.4"
},
"dependencies"
:
{
"component-emitter"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz"
,
"integrity"
:
"sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
,
"dev"
:
true
},
"debug"
:
{
"version"
:
"4.1.1"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"
,
"integrity"
:
"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw=="
,
"dev"
:
true
,
"requires"
:
{
"ms"
:
"^2.1.1"
}
},
"ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
,
"dev"
:
true
}
}
},
"socket.io-parser"
:
{
"version"
:
"3.3.0"
,
"resolved"
:
"https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz"
,
"integrity"
:
"sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng=="
,
"dev"
:
true
,
"requires"
:
{
"component-emitter"
:
"1.2.1"
,
"debug"
:
"~3.1.0"
,
"isarray"
:
"2.0.1"
},
"dependencies"
:
{
"component-emitter"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz"
,
"integrity"
:
"sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
,
"dev"
:
true
},
"debug"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"
,
"integrity"
:
"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g=="
,
"dev"
:
true
,
"requires"
:
{
"ms"
:
"2.0.0"
}
},
"isarray"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz"
,
"integrity"
:
"sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
,
"dev"
:
true
}
}
},
"sort-keys"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz"
,
...
...
@@ -12104,6 +12351,12 @@
"os-tmpdir"
:
"~1.0.2"
}
},
"to-array"
:
{
"version"
:
"0.1.4"
,
"resolved"
:
"https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz"
,
"integrity"
:
"sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
,
"dev"
:
true
},
"to-arraybuffer"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"
,
...
...
@@ -12655,6 +12908,15 @@
"resolved"
:
"https://registry.npmjs.org/vue-router/-/vue-router-2.8.1.tgz"
,
"integrity"
:
"sha512-MC4jacHBhTPKtmcfzvaj2N7g6jgJ/Z/eIjZdt+yUaUOM1iKC0OUIlO/xCtz6OZFFTNUJs/1YNro2GN/lE+nOXA=="
},
"vue-socket.io"
:
{
"version"
:
"3.0.9"
,
"resolved"
:
"https://registry.npmjs.org/vue-socket.io/-/vue-socket.io-3.0.9.tgz"
,
"integrity"
:
"sha512-imgrZL+UuyMhEyOOD6Cl11eDtEaVn606e3mCD/2s/oUAB511Ckqon4U7y97t6dwQgLCKW+tfA8aFhF5d3Eogdw=="
,
"dev"
:
true
,
"requires"
:
{
"socket.io-client"
:
"^2.1.1"
}
},
"vue-style-loader"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-2.0.5.tgz"
,
...
...
@@ -13201,6 +13463,12 @@
"wmf"
:
"~1.0.1"
}
},
"xmlhttprequest-ssl"
:
{
"version"
:
"1.5.5"
,
"resolved"
:
"https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz"
,
"integrity"
:
"sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
,
"dev"
:
true
},
"xtend"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
,
...
...
@@ -13306,6 +13574,12 @@
}
}
},
"yeast"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz"
,
"integrity"
:
"sha1-AI4G2AlDIMNy28L47XagymyKxBk="
,
"dev"
:
true
},
"zrender"
:
{
"version"
:
"3.7.4"
,
"resolved"
:
"https://registry.npmjs.org/zrender/-/zrender-3.7.4.tgz"
,
...
...
package.json
查看文件 @
5f83ff6
...
...
@@ -68,6 +68,7 @@
"shelljs"
:
"^0.7.6"
,
"url-loader"
:
"^0.5.8"
,
"vue-loader"
:
"^11.1.4"
,
"vue-socket.io"
:
"^3.0.9"
,
"vue-style-loader"
:
"^2.0.0"
,
"vue-template-compiler"
:
"^2.2.4"
,
"webpack"
:
"^2.2.1"
,
...
...
src/api/exit_data_analysis.js
0 → 100644
查看文件 @
5f83ff6
import
http
from
'./http.js'
let
baseUrl
=
'cgonms-provide'
// let baseUrl = 'http://127.0.0.1:9999/dispatch'
/*用户端,管理员端调度记录,查询车辆调度记录*/
export
const
getExitDataAnalysis
=
params
=>
{
return
http
.
get
(
`
$
{
baseUrl
}
/cgoNms/g
etInfo
`
,
params
);};
export
const
downExcel
=
params
=>
{
return
http
.
post
(
`
$
{
baseUrl
}
/exit/
excel
`
,
params
)};
...
...
src/api/socket.js
查看文件 @
5f83ff6
import
watcher
from
"element-ui/packages/table/src/store/watcher"
;
var
websock
=
null
;
var
global_callback
=
null
;
var
serverPort
=
'10003'
;
//webSocket连接端口
var
serverPort
=
'9001'
;
//webSocket连接端口
var
sid
=
sessionStorage
.
getItem
(
'token'
);
var
socketMessage
;
var
socketStatus
;
var
socketDataList
;
var
msgJson
;
function
getWebIP
(){
function
getWebIP
()
{
var
curIP
=
window
.
location
.
hostname
;
return
curIP
;
}
function
initWebSocket
(){
//初始化weosocket
//初始化weosocket
function
initWebSocket
()
{
var
sid
=
sessionStorage
.
getItem
(
'token'
);
//ws地址
var
wsuri
=
"ws://"
+
getWebIP
()
+
":"
+
serverPort
+
"/log"
;
var
wsuri
=
"ws://"
+
getWebIP
()
+
":"
+
serverPort
+
"/websocket/"
+
sid
;
websock
=
new
WebSocket
(
wsuri
);
websock
.
onmessage
=
function
(
e
)
{
websock
.
onmessage
=
function
(
e
)
{
websocketonmessage
(
e
);
}
websock
.
onclose
=
function
(
e
)
{
websock
.
onclose
=
function
(
e
)
{
websocketclose
(
e
);
}
websock
.
onopen
=
function
()
{
websocketOpen
();
websock
.
onopen
=
function
(
e
)
{
websocketOpen
(
e
);
}
//连接发生错误的回调方法
websock
.
onerror
=
function
()
{
websock
.
onerror
=
function
(
e
)
{
console
.
log
(
"WebSocket连接发生错误"
);
}
}
// 实际调用的方法
function
sendSock
(
agentData
,
callback
)
{
function
sendSock
(
agentData
,
callback
)
{
global_callback
=
callback
;
if
(
websock
.
readyState
===
websock
.
OPEN
)
{
//若是ws开启状态
websocketsend
(
agentData
)
}
else
if
(
websock
.
readyState
===
websock
.
CONNECTING
)
{
}
else
if
(
websock
.
readyState
===
websock
.
CONNECTING
)
{
// 若是 正在开启状态,则等待1s后重新调用
setTimeout
(
function
()
{
sendSock
(
agentData
,
callback
);
sendSock
(
agentData
,
callback
);
},
1000
);
}
else
{
}
else
{
// 若未开启 ,则等待1s后重新调用
setTimeout
(
function
()
{
sendSock
(
agentData
,
callback
);
sendSock
(
agentData
,
callback
);
},
1000
);
}
}
//数据接收
function
websocketonmessage
(
e
){
global_callback
(
JSON
.
parse
(
e
.
data
));
function
websocketonmessage
(
e
)
{
// console.log("------>"+e.data);
msgJson
=
JSON
.
parse
(
e
.
data
);
socketMessage
=
msgJson
.
message
;
console
.
log
(
socketMessage
)
socketStatus
=
msgJson
.
status
;
socketDataList
=
msgJson
.
data
;
console
.
log
(
msgJson
);
// global_callback(JSON.parse(e.data));
}
//数据发送
function
websocketsend
(
agentData
){
function
websocketsend
(
agentData
)
{
websock
.
send
(
JSON
.
stringify
(
agentData
));
}
//关闭
function
websocketclose
(
e
){
console
.
log
(
"connection closed ("
+
e
.
code
+
")"
);
function
websocketclose
(
e
)
{
console
.
log
(
"connection closed"
);
}
function
websocketOpen
(
e
){
console
.
log
(
"连接成功"
);
function
websocketOpen
(
e
)
{
console
.
log
(
"连接成功"
+
sid
);
}
// initWebSocket();
export
{
sendSock
}
export
{
initWebSocket
,
websocketclose
,
socketMessage
,
socketStatus
,
socketDataList
,
msgJson
}
...
...
src/lib/websocket/socket.js
0 → 100644
查看文件 @
5f83ff6
import
Vue
from
'vue'
import
VueSocketIO
from
'vue-socket.io'
var
a
;
var
wesocket
=
{
sid
:
sessionStorage
.
getItem
(
'token'
),
serverIp
:
getWebIP
(),
serverPort
:
'9001'
,
debug
:
true
,
connection
:
"ws://"
+
this
.
serverIp
+
":"
+
this
.
serverPort
+
"/websocket/"
+
this
.
sid
,
vuex
:
{}
}
function
getWebIP
()
{
var
curIP
=
window
.
location
.
hostname
;
return
curIP
;
}
if
(
wesocket
.
connection
!=
""
)
{
Vue
.
use
(
new
VueSocketIO
(
wesocket
))
}
export
default
a
;
...
...
src/main.js
查看文件 @
5f83ff6
import
Vue
from
'vue'
import
App
from
'./App'
import
ElementUI
from
'element-ui'
...
...
@@ -11,22 +10,18 @@ import axios from 'axios'
import
rout
from
'./routes'
import
Mock
from
'./mock'
import
i18n
from
'./lang'
import
VueSocketIO
from
'./lib/websocket/socket'
import
'font-awesome/css/font-awesome.min.css'
import
*
as
socketApi
from
'./api/socket'
import
'@/styles/index.scss'
//定义一个全局过滤器实现日期格式化
Vue
.
filter
(
'datefmt'
,
function
(
input
,
fmtstring
)
{
Vue
.
filter
(
'datefmt'
,
function
(
input
,
fmtstring
)
{
return
moment
(
input
).
format
(
fmtstring
)
});
// 注册websocket组件到VUE
Vue
.
prototype
.
socketApi
=
socketApi
Vue
.
config
.
productionTip
=
false
Mock
.
bootstrap
();
Vue
.
use
(
ElementUI
)
...
...
@@ -38,9 +33,9 @@ Vue.prototype.$axios = axios;
// console.log("mainjs:");
// console.log(rout.routes);
const
router
=
new
VueRouter
({
routes
:
rout
.
routes
routes
:
rout
.
routes
});
Vue
.
prototype
.
$rout
=
router
;
Vue
.
prototype
.
$rout
=
router
;
//本地存储系统初始化的router路由,用来处理用户退出后,把路由数据初始化
sessionStorage
.
setItem
(
'sysMenu'
,
JSON
.
stringify
(
rout
.
routes
));
...
...
@@ -53,11 +48,11 @@ router.beforeEach((to, from, next) => {
sessionStorage
.
removeItem
(
'token'
);
}
let
user
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'user'
));
if
(
sessionStorage
.
getItem
(
'token'
))
{
if
(
sessionStorage
.
getItem
(
'token'
))
{
axios
.
defaults
.
headers
.
common
[
'Authorization'
]
=
sessionStorage
.
getItem
(
'token'
);
}
if
(
!
user
&&
to
.
path
!=
'/login'
&&
!
sessionStorage
.
getItem
(
'menu'
)
&&
!
sessionStorage
.
getItem
(
'token'
))
{
next
({
path
:
'/login'
})
next
({
path
:
'/login'
})
}
else
{
next
()
}
...
...
@@ -69,7 +64,7 @@ axios.defaults.timeout = 120000;
axios
.
interceptors
.
response
.
use
(
res
=>
{
//对响应数据做些事
if
(
res
.
data
&&
res
.
status
!==
200
)
{
if
(
res
.
data
&&
res
.
status
!==
200
)
{
message
({
// 饿了么的消息弹窗组件,类似toast
showClose
:
true
,
...
...
@@ -148,12 +143,13 @@ axios.interceptors.response.use(
//});
let
vue
=
new
Vue
({
//el: '#app',
//template: '<App/>',
el
:
'#app'
,
template
:
'<App/>'
,
VueSocketIO
,
router
,
store
,
i18n
,
//components: { App }
components
:
{
App
},
render
:
h
=>
h
(
App
)
}).
$mount
(
'#app'
)
...
...
src/routes.js
查看文件 @
5f83ff6
...
...
@@ -50,6 +50,7 @@ import WaterStationsPatrol from './views/water/water_stations_patrol.vue'
import
Location
from
'./views/empt/Location.vue'
import
AgentExcelExport
from
'./views/excel/exportExcel-agent'
import
NMMSExcelExport
from
'./views/excel/exportExcel-NMMS'
import
ExitAnalysis
from
'./views/dataAnalysis/ExitAnalysis'
let
routes
=
[
{
...
...
@@ -81,13 +82,22 @@ let routes = [
name
:
'系统设置'
,
iconCls
:
'el-icon-setting'
,
//图标样式class
children
:
[
{
path
:
'/user'
,
component
:
User
,
name
:
'用户管理'
},
{
path
:
'/role'
,
component
:
Role
,
name
:
'组织机构'
},
{
path
:
'/perm'
,
component
:
Perm
,
name
:
'权限管理'
},
{
path
:
'/log'
,
component
:
LOG
,
name
:
'系统日志'
},
{
path
:
'/department'
,
component
:
Department
,
name
:
'部门管理'
},
{
path
:
'/company'
,
component
:
Company
,
name
:
'公司管理'
},
{
path
:
'/group'
,
component
:
Group
,
name
:
'集团管理'
}
{
path
:
'/user'
,
component
:
User
,
name
:
'用户管理'
},
{
path
:
'/role'
,
component
:
Role
,
name
:
'组织机构'
},
{
path
:
'/perm'
,
component
:
Perm
,
name
:
'权限管理'
},
{
path
:
'/log'
,
component
:
LOG
,
name
:
'系统日志'
},
{
path
:
'/department'
,
component
:
Department
,
name
:
'部门管理'
},
{
path
:
'/company'
,
component
:
Company
,
name
:
'公司管理'
},
{
path
:
'/group'
,
component
:
Group
,
name
:
'集团管理'
}
]
},
{
path
:
'/cgonms-provide'
,
component
:
Home
,
name
:
'业务统计'
,
iconCls
:
'fa fa-id-card-o'
,
children
:
[
{
path
:
'/exitAnalysis'
,
component
:
ExitAnalysis
,
name
:
'出港业务统计'
},
]
},
{
...
...
@@ -96,8 +106,8 @@ let routes = [
name
:
'客服系统'
,
iconCls
:
'fa fa-id-card-o'
,
children
:
[
{
path
:
'/process'
,
component
:
Process
,
name
:
'工单管理'
},
{
path
:
'/job'
,
component
:
Job
,
name
:
'任务管理'
},
{
path
:
'/process'
,
component
:
Process
,
name
:
'工单管理'
},
{
path
:
'/job'
,
component
:
Job
,
name
:
'任务管理'
},
{
path
:
'/pre1'
,
component
:
PreManifest
,
name
:
'预配'
},
]
},
...
...
@@ -107,8 +117,8 @@ let routes = [
name
:
'统计分析'
,
iconCls
:
'fa fa-id-card-o'
,
children
:
[
{
path
:
'/agentexport'
,
component
:
AgentExcelExport
,
name
:
'出港统计'
},
{
path
:
'/nmmsexport'
,
component
:
NMMSExcelExport
,
name
:
'进港统计'
},
{
path
:
'/agentexport'
,
component
:
AgentExcelExport
,
name
:
'出港统计'
},
{
path
:
'/nmmsexport'
,
component
:
NMMSExcelExport
,
name
:
'进港统计'
},
]
},
{
...
...
@@ -132,25 +142,25 @@ let routes = [
name
:
'进港业务申报'
,
iconCls
:
'fa fa-id-card-o'
,
children
:
[
{
path
:
'/orig'
,
component
:
OrigFlightList
,
name
:
'进港航班申报'
},
{
path
:
'/waybill'
,
component
:
Waybill
,
name
:
'进港运单申报'
},
{
path
:
'/allocateSearch'
,
component
:
AllocateSearch
,
name
:
'运单分拨申报'
},
{
path
:
'/enter'
,
component
:
EnterFlightInfo
,
name
:
'原始舱单'
},
{
path
:
'/origmaster'
,
component
:
OrigMaster
,
name
:
'进港原始舱单'
},
{
path
:
'/entertall'
,
component
:
EnterTally
,
name
:
'进港理货'
},
{
path
:
'/tallymaster'
,
component
:
TallyMster
,
name
:
'进港理货舱单'
},
{
path
:
'/importallocation'
,
component
:
Importallocation
,
name
:
'进港分拨'
},
{
path
:
'/allocatearrive'
,
component
:
Allocatearrive
,
name
:
'分拨运抵'
},
{
path
:
'/orig'
,
component
:
OrigFlightList
,
name
:
'进港航班申报'
},
{
path
:
'/waybill'
,
component
:
Waybill
,
name
:
'进港运单申报'
},
{
path
:
'/allocateSearch'
,
component
:
AllocateSearch
,
name
:
'运单分拨申报'
},
{
path
:
'/enter'
,
component
:
EnterFlightInfo
,
name
:
'原始舱单'
},
{
path
:
'/origmaster'
,
component
:
OrigMaster
,
name
:
'进港原始舱单'
},
{
path
:
'/entertall'
,
component
:
EnterTally
,
name
:
'进港理货'
},
{
path
:
'/tallymaster'
,
component
:
TallyMster
,
name
:
'进港理货舱单'
},
{
path
:
'/importallocation'
,
component
:
Importallocation
,
name
:
'进港分拨'
},
{
path
:
'/allocatearrive'
,
component
:
Allocatearrive
,
name
:
'分拨运抵'
},
]
},
{
path
:
'/lost'
,
component
:
Home
,
name
:
'落装改配申报'
,
iconCls
:
'el-icon-goods'
,
children
:[
{
path
:
'/lostLoad'
,
component
:
LostLoad
,
name
:
'落装业务申报'
},
{
path
:
'/lostLoadChange'
,
component
:
LostLoadChange
,
name
:
'改配业务申报'
}
iconCls
:
'el-icon-goods'
,
children
:
[
{
path
:
'/lostLoad'
,
component
:
LostLoad
,
name
:
'落装业务申报'
},
{
path
:
'/lostLoadChange'
,
component
:
LostLoadChange
,
name
:
'改配业务申报'
}
]
},
...
...
@@ -160,7 +170,7 @@ let routes = [
name
:
'能源管理'
,
iconCls
:
'fa fa-id-card-o'
,
children
:
[
{
path
:
'/location'
,
component
:
Location
,
name
:
'能源缴费'
},
{
path
:
'/location'
,
component
:
Location
,
name
:
'能源缴费'
},
]
},
{
...
...
@@ -169,11 +179,11 @@ let routes = [
name
:
'生活保障部门'
,
iconCls
:
'fa fa-id-card-o'
,
children
:
[
{
path
:
'/security_inspection'
,
component
:
SecrityInspection
,
name
:
'职工公寓安全巡视管理'
},
{
path
:
'/key'
,
component
:
Key
,
name
:
'职工公寓备用钥匙使用登记管理'
},
{
path
:
'/maintain'
,
component
:
Maintain
,
name
:
'职工公寓设施设备维修记录管理'
},
{
path
:
'/come_car'
,
component
:
ComeCar
,
name
:
'职工公寓外来人员车辆登记管理'
},
{
path
:
'/on_duty'
,
component
:
OnDuty
,
name
:
'职工公寓值班巡视记录管理'
},
{
path
:
'/security_inspection'
,
component
:
SecrityInspection
,
name
:
'职工公寓安全巡视管理'
},
{
path
:
'/key'
,
component
:
Key
,
name
:
'职工公寓备用钥匙使用登记管理'
},
{
path
:
'/maintain'
,
component
:
Maintain
,
name
:
'职工公寓设施设备维修记录管理'
},
{
path
:
'/come_car'
,
component
:
ComeCar
,
name
:
'职工公寓外来人员车辆登记管理'
},
{
path
:
'/on_duty'
,
component
:
OnDuty
,
name
:
'职工公寓值班巡视记录管理'
},
]
},
{
...
...
@@ -183,7 +193,7 @@ let routes = [
iconCls
:
'fa fa-address-card'
,
// leaf: true,//只有一个节点
children
:
[
{
path
:
'/water_stations_patrol'
,
component
:
WaterStationsPatrol
,
name
:
'二水厂-水站巡视记录单管理'
},
{
path
:
'/water_stations_patrol'
,
component
:
WaterStationsPatrol
,
name
:
'二水厂-水站巡视记录单管理'
},
// { path: '/page6', component: Page6, name: '水质量检测' },
// { path: '/page6', component: Page6, name: '污水站' },
// { path: '/page6', component: Page6, name: '一水厂' },
...
...
src/views/Login.vue
查看文件 @
5f83ff6
src/views/dataAnalysis/ExitAnalysis.vue
0 → 100644
查看文件 @
5f83ff6
<template>
<el-container>
<el-main>
<el-card style="background-color: #F5F7FA">
<!-- 搜素区域 -->
<div>
<el-row :gutter="24">
<el-col :span="5">
<el-input v-model="queryInfo.flightNo" prefix-icon="el-icon-search"
placeholder="请输入航班号" clearable style="width:220px">
</el-input>
</el-col>
<el-col :span="5">
<el-date-picker v-model="queryInfo.flightDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择航班日期"
style="width: 220px">
</el-date-picker>
</el-col>
<el-col :span="10">
<el-button type="primary" @click="getExitInfoList">
查询调度记录
</el-button>
<el-button :loading="downloadLoading" type="success" icon="el-icon-s-home"
:disabled="resultStatus!=='200'"
@click="downExcelExit">导出 Excel
</el-button>
</el-col>
</el-row>
<el-input v-model="message" style="width: 460px;margin-top: 20px"
placeholder="获取数据进度" readonly>
</el-input>
</div>
<div>
状态 :{{this.socketApi.socketStatus}}
</div>
<div>
消息 :{{this.socketApi.socketMessage}}
</div>
<!-- 列表显示区域 -->
<!--
<div style="margin-top: 20px;">
<el-table :data="exitInfoList" border stripe highlight-current-row
v-loading="listLoading"
max-height="300"
:element-loading-text="this.message">
<el-table-column type="index" align="center"></el-table-column>
<el-table-column label="航班号" prop="flightNo" align="center" width="130"></el-table-column>
<el-table-column label="航班日期" prop="flightDate" align="center" width="130"></el-table-column>
<el-table-column label="航班时间" prop="flightTime" align="center" width="200"></el-table-column>
<el-table-column label="运单号" prop="waybillNoMaster" align="center"
width="130"></el-table-column>
<el-table-column label="航段" prop="segment" align="center" width="130"></el-table-column>
<el-table-column label="起始站" prop="originatingStation" align="center"
width="130"></el-table-column>
<el-table-column label="目的站" prop="destinationStation" align="center"
width="130"></el-table-column>
<el-table-column label="理货件数" prop="tallyTotalPiece" align="center"
width="130"></el-table-column>
<el-table-column label="理货重量" prop="tallyTotalWeight" align="center"
width="130"></el-table-column>
<el-table-column label="承运人二字码" prop="carrier" align="center" width="130"></el-table-column>
<el-table-column label="发货人名称" prop="shipperName" align="center" width="130"></el-table-column>
<el-table-column label="收货人名称" prop="consigneeName" align="center"
width="130"></el-table-column>
<el-table-column label="货物目的站" prop="aimStation" align="center" width="130"></el-table-column>
<el-table-column label="国家代码" prop="country" align="center" width="130"></el-table-column>
<el-table-column label="所属洲" prop="areaDescChn" align="center" width="130"></el-table-column>
<el-table-column label="订舱代理人" prop="orderName" align="center" width="130"></el-table-column>
<el-table-column label="结算代理人" prop="countName" align="center"
width="130"></el-table-column>
<el-table-column label="品名" prop="sdCargoName" align="center" width="130"></el-table-column>
<el-table-column label="二级类名" prop="twoTypeName" align="center" width="130"></el-table-column>
<el-table-column label="一级类名" prop="typeName" align="center" width="130"></el-table-column>
<el-table-column label="航空公司" prop="airCompany" align="center" width="130"></el-table-column>
<el-table-column label="机型" prop="cfTp" align="center" width="130"></el-table-column>
<el-table-column label="机号" prop="cfNo" align="center" width="130"></el-table-column>
<el-table-column label="航班计划日期" prop="flightPlanDate" align="center"
width="130"></el-table-column>
<el-table-column label="航班计划时间" prop="flightPlanTime" align="center"
width="200"></el-table-column>
<el-table-column label="计费重量" prop="totalGrossWeightMeasure" align="center"
width="130"></el-table-column>
<el-table-column label="体积" prop="volumeMeasure" align="center" width="130"></el-table-column>
</el-table>
</div>
-->
</el-card>
</el-main>
</el-container>
</template>
<script>
import {downExcel, getExitDataAnalysis} from "../../api/exit_data_analysis";
import FilenameOption from '../excel/components/FilenameOption'
import AutoWidthOption from '../excel/components/AutoWidthOption'
import BookTypeOption from '../excel/components/BookTypeOption'
export default {
name: "ExitAnalysis",
components: {FilenameOption, AutoWidthOption, BookTypeOption},
data() {
return {
/**
* 出港业务统计列表
*/
exitInfoList: [],
/**
* 查询列表
*/
queryInfo: {
//航班号
flightNo: 'SL965',
//航班日期
flightDate: '2019-04-12',
},
/* 列表加载 */
listLoading: false,
downloadLoading: false,
}
},
sockets: {
connect() {
this.$socket.emit("sendMessageToServer", "0025520"); //监听connect事件
},
servermessage(data) {
// 监听message事件,方法是后台定义和提供的
console.log(data);
}
},
methods: {
/**
* 获取出港信息列表
*/
getExitInfoList(onfulfilled) {
let _this = this;
_this.$message.success('开始获取统计数据');
getExitDataAnalysis(_this.queryInfo)
.then(
(response) => {
// _this.message = socketMessage;
// _this.status = socketStatus;
// if (_this.status === '200') {
// _this.exitInfoList = socketDataList;
// }
})
.catch(error => {
_this.$message.error(error.toString());
});
},
/**
* 导出excel到本地,功能
*/
downExcelExit() {
downExcel(this.exitInfoList).then((response) => {
this.$message.success("导出Excel成功,请您重命名")
}).catch(error => {
this.$message.error(error.toString());
});
},
},
created() {
},
destroyed() {
},
watch: {
},
}
</script>
<style scoped>
</style>
...
...
src/views/nav1/perm.vue
查看文件 @
5f83ff6
src/views/nav1/role.vue
查看文件 @
5f83ff6
请
注册
或
登录
后发表评论