Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
FTT_Board
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
FTT_Board
Commits
744cc1fb
Commit
744cc1fb
authored
Nov 11, 2020
by
刘飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MES工位机功能添加
parent
652b912c
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1729 additions
and
304 deletions
+1729
-304
webpack.base.conf.js
FTT.Board.VueUI/build/webpack.base.conf.js
+7
-4
index.html
FTT.Board.VueUI/index.html
+19
-7
package-lock.json
FTT.Board.VueUI/package-lock.json
+43
-113
package.json
FTT.Board.VueUI/package.json
+3
-3
lgin_main.png
FTT.Board.VueUI/src/assets/image/lgin_main.png
+0
-0
login_bg.png
FTT.Board.VueUI/src/assets/image/login_bg.png
+0
-0
rfid.png
FTT.Board.VueUI/src/assets/image/rfid.png
+0
-0
axiosMes.js
FTT.Board.VueUI/src/function/axiosMes.js
+215
-0
common.js
FTT.Board.VueUI/src/function/common.js
+80
-0
url.js
FTT.Board.VueUI/src/function/url.js
+0
-0
main.js
FTT.Board.VueUI/src/main.js
+75
-2
index.js
FTT.Board.VueUI/src/router/index.js
+209
-173
index.js
FTT.Board.VueUI/src/store/index.js
+2
-0
Table1.vue
FTT.Board.VueUI/src/views/chart/Table1.vue
+2
-2
login.vue
FTT.Board.VueUI/src/views/machine/login.vue
+554
-0
processSheet.vue
FTT.Board.VueUI/src/views/machine/processSheet.vue
+518
-0
configuration.js
FTT.Board.VueUI/static/js/configuration.js
+2
-0
FTT.Board.rar
FTT.Board.rar
+0
-0
No files found.
FTT.Board.VueUI/build/webpack.base.conf.js
View file @
744cc1fb
...
...
@@ -4,7 +4,7 @@ const utils = require('./utils')
const
config
=
require
(
'../config'
)
const
vueLoaderConfig
=
require
(
'./vue-loader.conf'
)
function
resolve
(
dir
)
{
function
resolve
(
dir
)
{
return
path
.
join
(
__dirname
,
'..'
,
dir
)
}
...
...
@@ -18,9 +18,8 @@ module.exports = {
output
:
{
path
:
config
.
build
.
assetsRoot
,
filename
:
'[name].js'
,
publicPath
:
process
.
env
.
NODE_ENV
===
'production'
?
config
.
build
.
assetsPublicPath
:
config
.
dev
.
assetsPublicPath
publicPath
:
process
.
env
.
NODE_ENV
===
'production'
?
config
.
build
.
assetsPublicPath
:
config
.
dev
.
assetsPublicPath
},
resolve
:
{
extensions
:
[
'.js'
,
'.vue'
,
'.json'
],
...
...
@@ -31,6 +30,10 @@ module.exports = {
},
module
:
{
rules
:
[
{
test
:
/
\.
scss$/
,
loaders
:
[
'style'
,
'css'
,
'sass'
]
},
{
test
:
/
\.
vue$/
,
loader
:
'vue-loader'
,
...
...
FTT.Board.VueUI/index.html
View file @
744cc1fb
...
...
@@ -2,8 +2,10 @@
<html>
<head>
<meta
charset=
"utf-8"
/>
<meta
name=
"referrer"
content=
"origin"
/>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1.0"
/>
<!-- <link rel="stylesheet" href="./src/assets/font/iconfont.css"> -->
<script
src=
"./static/js/configuration.js"
></script>
<title>
board
</title>
<style>
.el-progress-bar
{
...
...
@@ -18,19 +20,19 @@
margin
:
0
!important
;
box-sizing
:
border-box
!important
;
/* padding:0 0 0 35px !important; */
padding
:
0
0
0
18px
!important
;
padding
:
0
0
0
18px
!important
;
}
.el-table
.cell
,
.el-table
th
div
{
.el-table
.cell
,
.el-table
th
div
{
overflow
:
hidden
!important
;
}
.el-progress-bar__outer
{
.el-progress-bar__outer
{
height
:
60%
!important
;
}
.el-progress-bar__inner
{
.el-progress-bar__inner
{
border-radius
:
11px
!important
;
}
.el-progress-bar__outer
{
.el-progress-bar__outer
{
border-radius
:
11px
!important
;
}
</style>
...
...
@@ -39,4 +41,14 @@
<div
id=
"app"
></div>
<!-- built files will be auto injected -->
</body>
<script>
// function ComReadCardCallBack(data) {
// console.log("ComReadCardCallBack回调方法");
// console.log(data);
// JsControllerObj.CsExecuter("StopReadRFID",null)
// }
// console.log("调用 JsControllerObj 前");
// JsControllerObj.CsExecuter("StartReadRFID", "ComReadCardCallBack");
// console.log("调用 JsControllerObj 后");
</script>
</html>
FTT.Board.VueUI/package-lock.json
View file @
744cc1fb
...
...
@@ -86,7 +86,7 @@
"amdefine"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz"
,
"integrity"
:
"sha
512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg=
="
,
"integrity"
:
"sha
1-SlKCrBZHKek2Gbz9OtFR+BfOkfU
="
,
"dev"
:
true
},
"ansi-html"
:
{
...
...
@@ -293,7 +293,7 @@
"async-foreach"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz"
,
"integrity"
:
"sha
512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA=
="
,
"integrity"
:
"sha
1-NhIfhFwFeBct5Bmpfb6x0W7DRUI
="
,
"dev"
:
true
},
"async-limiter"
:
{
...
...
@@ -343,43 +343,11 @@
"dev"
:
true
},
"aws4"
:
{
"version"
:
"1.1
0
.0"
,
"resolved"
:
"https://registry.npm.taobao.org/aws4/download/aws4-1.1
0
.0.tgz"
,
"integrity"
:
"sha1-
oXs6jqgRBg501H0wYSJACtRJeuI
="
,
"version"
:
"1.1
1
.0"
,
"resolved"
:
"https://registry.npm.taobao.org/aws4/download/aws4-1.1
1.0.tgz?cache=0&sync_timestamp=1604101230105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11
.0.tgz"
,
"integrity"
:
"sha1-
1h9G2DslGSUOJ4Ta9bCUeai0HFk
="
,
"dev"
:
true
},
"axios"
:
{
"version"
:
"0.19.0"
,
"resolved"
:
"https://registry.npmjs.org/axios/-/axios-0.19.0.tgz"
,
"integrity"
:
"sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ=="
,
"requires"
:
{
"follow-redirects"
:
"1.5.10"
,
"is-buffer"
:
"^2.0.2"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"
,
"integrity"
:
"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g=="
,
"requires"
:
{
"ms"
:
"2.0.0"
}
},
"follow-redirects"
:
{
"version"
:
"1.5.10"
,
"resolved"
:
"https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz"
,
"integrity"
:
"sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ=="
,
"requires"
:
{
"debug"
:
"=3.1.0"
}
},
"is-buffer"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz"
,
"integrity"
:
"sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
}
}
},
"babel-code-frame"
:
{
"version"
:
"6.26.0"
,
"resolved"
:
"https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz"
,
...
...
@@ -1862,7 +1830,7 @@
"clone-deep"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz"
,
"integrity"
:
"sha
512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ=
="
,
"integrity"
:
"sha
1-wZ/Zvbv4WUK0/ZechNz31fB8I4c
="
,
"dev"
:
true
,
"requires"
:
{
"is-plain-object"
:
"^2.0.4"
,
...
...
@@ -1873,7 +1841,7 @@
"kind-of"
:
{
"version"
:
"6.0.3"
,
"resolved"
:
"https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz"
,
"integrity"
:
"sha
512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=
="
,
"integrity"
:
"sha
1-B8BQNKbDSfoG4k+jWqdttFgM5N0
="
,
"dev"
:
true
}
}
...
...
@@ -1963,7 +1931,7 @@
"combined-stream"
:
{
"version"
:
"1.0.8"
,
"resolved"
:
"https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz"
,
"integrity"
:
"sha
512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=
="
,
"integrity"
:
"sha
1-w9RaizT9cwYxoRCoolIGgrMdWn8
="
,
"dev"
:
true
,
"requires"
:
{
"delayed-stream"
:
"~1.0.0"
...
...
@@ -2371,7 +2339,7 @@
"cssesc"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz"
,
"integrity"
:
"sha
512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=
="
,
"integrity"
:
"sha
1-N3QZGZA7hoVl4cCep0dEXNGJg+4
="
,
"dev"
:
true
},
"cssnano"
:
{
...
...
@@ -2935,7 +2903,7 @@
"emoji-regex"
:
{
"version"
:
"7.0.3"
,
"resolved"
:
"https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz"
,
"integrity"
:
"sha
512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=
="
,
"integrity"
:
"sha
1-kzoEBShgyF6DwSJHnEdIqOTHIVY
="
,
"dev"
:
true
},
"emojis-list"
:
{
...
...
@@ -3460,7 +3428,7 @@
"fastparse"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz"
,
"integrity"
:
"sha
512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ=
="
,
"integrity"
:
"sha
1-kXKMWllC7O2FMSg8eUQe5BIsNak
="
,
"dev"
:
true
},
"faye-websocket"
:
{
...
...
@@ -4274,7 +4242,7 @@
"fstream"
:
{
"version"
:
"1.0.12"
,
"resolved"
:
"https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz"
,
"integrity"
:
"sha
512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg=
="
,
"integrity"
:
"sha
1-Touo7i1Ivk99DeUFRVVI6uWTIEU
="
,
"dev"
:
true
,
"requires"
:
{
"graceful-fs"
:
"^4.1.2"
,
...
...
@@ -4292,7 +4260,7 @@
"gauge"
:
{
"version"
:
"2.7.4"
,
"resolved"
:
"https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz"
,
"integrity"
:
"sha
512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg=
="
,
"integrity"
:
"sha
1-LANAXHU4w51+s3sxcCLjJfsBi/c
="
,
"dev"
:
true
,
"requires"
:
{
"aproba"
:
"^1.0.3"
,
...
...
@@ -4330,7 +4298,7 @@
"gaze"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz"
,
"integrity"
:
"sha
512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g=
="
,
"integrity"
:
"sha
1-xEFzPhO5J6yMD/C0w7Az8ogSkko
="
,
"dev"
:
true
,
"requires"
:
{
"globule"
:
"^1.0.0"
...
...
@@ -4504,19 +4472,19 @@
"dev"
:
true
},
"har-validator"
:
{
"version"
:
"5.1.
3
"
,
"resolved"
:
"http
://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3
.tgz"
,
"integrity"
:
"sha1-H
vievT5JllV2de7ZiTEQ3DUPoIA
="
,
"version"
:
"5.1.
5
"
,
"resolved"
:
"http
s://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082578993&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5
.tgz"
,
"integrity"
:
"sha1-H
wgDufjLIMD6E4It8ezds2veHv0
="
,
"dev"
:
true
,
"requires"
:
{
"ajv"
:
"^6.
5.5
"
,
"ajv"
:
"^6.
12.3
"
,
"har-schema"
:
"^2.0.0"
},
"dependencies"
:
{
"ajv"
:
{
"version"
:
"6.12.
3
"
,
"resolved"
:
"https://registry.npm.taobao.org/ajv/download/ajv-6.12.
3.tgz?cache=0&sync_timestamp=1593876933357&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3
.tgz"
,
"integrity"
:
"sha1-
GMWvOKER3etPJpe9eNaKvByr1wY
="
,
"version"
:
"6.12.
6
"
,
"resolved"
:
"https://registry.npm.taobao.org/ajv/download/ajv-6.12.
6.tgz?cache=0&sync_timestamp=1603561486770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6
.tgz"
,
"integrity"
:
"sha1-
uvWmLoArB9l3A0WG+MO69a3ybfQ
="
,
"dev"
:
true
,
"requires"
:
{
"fast-deep-equal"
:
"^3.1.1"
,
...
...
@@ -4952,7 +4920,7 @@
"icss-replace-symbols"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz"
,
"integrity"
:
"sha
512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg=
="
,
"integrity"
:
"sha
1-Bupvg2ead0njhs/h/oEq5dsiPe0
="
,
"dev"
:
true
},
"icss-utils"
:
{
...
...
@@ -5024,7 +4992,7 @@
"in-publish"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.1.tgz"
,
"integrity"
:
"sha
512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ=
="
,
"integrity"
:
"sha
1-lIsaU1yAMFYc6lIvc/ePS+NX4Aw
="
,
"dev"
:
true
},
"indent-string"
:
{
...
...
@@ -5716,13 +5684,13 @@
"lodash.camelcase"
:
{
"version"
:
"4.3.0"
,
"resolved"
:
"https://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz"
,
"integrity"
:
"sha
512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=
="
,
"integrity"
:
"sha
1-soqmKIorn8ZRA1x3EfZathkDMaY
="
,
"dev"
:
true
},
"lodash.clonedeep"
:
{
"version"
:
"4.5.0"
,
"resolved"
:
"https://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz"
,
"integrity"
:
"sha
512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=
="
,
"integrity"
:
"sha
1-4j8/nE+Pvd6HJSnBBxhXoIblzO8
="
,
"dev"
:
true
},
"lodash.memoize"
:
{
...
...
@@ -6153,7 +6121,8 @@
"ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
,
"dev"
:
true
},
"multicast-dns"
:
{
"version"
:
"6.2.3"
,
...
...
@@ -6326,8 +6295,8 @@
},
"node-sass"
:
{
"version"
:
"4.14.1"
,
"resolved"
:
"https://registry.npm.taobao.org/node-sass/download/node-sass-4.14.1.tgz"
,
"integrity"
:
"sha
512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g=
="
,
"resolved"
:
"https://registry.npm.taobao.org/node-sass/download/node-sass-4.14.1.tgz
?cache=0&sync_timestamp=1604150672615&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-sass%2Fdownload%2Fnode-sass-4.14.1.tgz
"
,
"integrity"
:
"sha
1-mch+wu+3BH7WOPtMnbfzpC4iF7U
="
,
"dev"
:
true
,
"requires"
:
{
"async-foreach"
:
"^0.1.3"
,
...
...
@@ -6371,50 +6340,11 @@
"cross-spawn"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz"
,
"integrity"
:
"sha
512-eZ+m1WNhSZutOa/uRblAc9Ut5MQfukFrFMtPSm3bZCA888NmMd5AWXWdgRZ80zd+pTk1P2JrGjg9pUPTvl2PWQ=
="
,
"integrity"
:
"sha
1-ElYDfsufDF9549bvE14wdwGEuYI
="
,
"dev"
:
true
,
"requires"
:
{
"lru-cache"
:
"^4.0.1"
,
"which"
:
"^1.2.9"
},
"dependencies"
:
{
"isexe"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
,
"integrity"
:
"sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
,
"dev"
:
true
},
"lru-cache"
:
{
"version"
:
"4.1.5"
,
"resolved"
:
"https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"
,
"integrity"
:
"sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g=="
,
"dev"
:
true
,
"requires"
:
{
"pseudomap"
:
"^1.0.2"
,
"yallist"
:
"^2.1.2"
}
},
"pseudomap"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"
,
"integrity"
:
"sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
,
"dev"
:
true
},
"which"
:
{
"version"
:
"1.3.1"
,
"resolved"
:
"https://registry.npmjs.org/which/-/which-1.3.1.tgz"
,
"integrity"
:
"sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="
,
"dev"
:
true
,
"requires"
:
{
"isexe"
:
"^2.0.0"
}
},
"yallist"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"
,
"integrity"
:
"sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
,
"dev"
:
true
}
}
},
"supports-color"
:
{
...
...
@@ -9726,7 +9656,7 @@
"sass-graph"
:
{
"version"
:
"2.2.5"
,
"resolved"
:
"https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.5.tgz"
,
"integrity"
:
"sha
512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag=
="
,
"integrity"
:
"sha
1-qYHIdEa4MZ2W3OBnHkh4eb0kwug
="
,
"dev"
:
true
,
"requires"
:
{
"glob"
:
"^7.0.0"
,
...
...
@@ -9876,7 +9806,7 @@
},
"sass-loader"
:
{
"version"
:
"7.3.1"
,
"resolved"
:
"https://registry.npm.taobao.org/sass-loader/download/sass-loader-7.3.1.tgz?cache=0&sync_timestamp=1
594134152417
&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-loader%2Fdownload%2Fsass-loader-7.3.1.tgz"
,
"resolved"
:
"https://registry.npm.taobao.org/sass-loader/download/sass-loader-7.3.1.tgz?cache=0&sync_timestamp=1
603396429561
&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-loader%2Fdownload%2Fsass-loader-7.3.1.tgz"
,
"integrity"
:
"sha1-pb9ooEvOocE/+ELXRxUPerfQ0j8="
,
"dev"
:
true
,
"requires"
:
{
...
...
@@ -9918,7 +9848,7 @@
"scss-tokenizer"
:
{
"version"
:
"0.2.3"
,
"resolved"
:
"https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz"
,
"integrity"
:
"sha
512-dYE8LhncfBUar6POCxMTm0Ln+erjeczqEvCJib5/7XNkdw1FkUGgwMPY360FY0FgPWQxHWCx29Jl3oejyGLM9Q=
="
,
"integrity"
:
"sha
1-jrBtualyMzOCTT9VMGQRSYR85dE
="
,
"dev"
:
true
,
"requires"
:
{
"js-base64"
:
"^2.1.8"
,
...
...
@@ -10073,7 +10003,7 @@
"shallow-clone"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz"
,
"integrity"
:
"sha
512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA=
="
,
"integrity"
:
"sha
1-jymBrZJTH1UDWwH7IwdppA4C76M
="
,
"dev"
:
true
,
"requires"
:
{
"kind-of"
:
"^6.0.2"
...
...
@@ -10082,7 +10012,7 @@
"kind-of"
:
{
"version"
:
"6.0.3"
,
"resolved"
:
"https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz"
,
"integrity"
:
"sha
512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=
="
,
"integrity"
:
"sha
1-B8BQNKbDSfoG4k+jWqdttFgM5N0
="
,
"dev"
:
true
}
}
...
...
@@ -10474,7 +10404,7 @@
"stdout-stream"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz"
,
"integrity"
:
"sha
512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA=
="
,
"integrity"
:
"sha
1-WsF0zdXNcmEEqgwLK9g4FdjVNd4
="
,
"dev"
:
true
,
"requires"
:
{
"readable-stream"
:
"^2.0.1"
...
...
@@ -10696,7 +10626,7 @@
"stylus-loader"
:
{
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npm.taobao.org/stylus-loader/download/stylus-loader-3.0.2.tgz"
,
"integrity"
:
"sha
512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA=
="
,
"integrity"
:
"sha
1-J6cGQgsFo44DjnyssVNXjUUFE8Y
="
,
"dev"
:
true
,
"requires"
:
{
"loader-utils"
:
"^1.0.2"
,
...
...
@@ -10749,7 +10679,7 @@
"tar"
:
{
"version"
:
"2.2.2"
,
"resolved"
:
"https://registry.npm.taobao.org/tar/download/tar-2.2.2.tgz"
,
"integrity"
:
"sha
512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA=
="
,
"integrity"
:
"sha
1-DKiEhWLHKZuLRG/2pNYM27I+3EA
="
,
"dev"
:
true
,
"requires"
:
{
"block-stream"
:
"*"
,
...
...
@@ -10902,7 +10832,7 @@
"tweetnacl"
:
{
"version"
:
"0.14.5"
,
"resolved"
:
"https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz"
,
"integrity"
:
"sha
512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=
="
,
"integrity"
:
"sha
1-WuaBd/GS1EViadEIr6k/+HQ/T2Q
="
,
"dev"
:
true
},
"type-is"
:
{
...
...
@@ -11180,9 +11110,9 @@
"dev"
:
true
},
"uuid"
:
{
"version"
:
"3.
3.2
"
,
"resolved"
:
"https://registry.npm
js.org/uuid/-/uuid-3.3.2
.tgz"
,
"integrity"
:
"sha
512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=
="
,
"version"
:
"3.
4.0
"
,
"resolved"
:
"https://registry.npm
.taobao.org/uuid/download/uuid-3.4.0
.tgz"
,
"integrity"
:
"sha
1-sj5DWK+oogL+ehAK8fX4g/AgB+4
="
,
"dev"
:
true
},
"validate-npm-package-license"
:
{
...
...
@@ -11925,7 +11855,7 @@
"when"
:
{
"version"
:
"3.6.4"
,
"resolved"
:
"https://registry.npm.taobao.org/when/download/when-3.6.4.tgz"
,
"integrity"
:
"sha
512-d1VUP9F96w664lKINMGeElWdhhb5sC+thXM+ydZGU3ZnaE09Wv6FaS+mpM9570kcDs/xMfcXJBTLsMdHEFYY9Q=
="
,
"integrity"
:
"sha
1-RztRfsFZ4rhQBUl6E5g/CVQS404
="
,
"dev"
:
true
},
"whet.extend"
:
{
...
...
FTT.Board.VueUI/package.json
View file @
744cc1fb
...
...
@@ -10,7 +10,7 @@
"build"
:
"node build/build.js"
},
"dependencies"
:
{
"axios"
:
"^0.
19
.0"
,
"axios"
:
"^0.
21
.0"
,
"echarts"
:
"^4.2.1"
,
"element-ui"
:
"^2.11.1"
,
"moment"
:
"^2.24.0"
,
...
...
@@ -41,7 +41,7 @@
"html-webpack-plugin"
:
"^2.30.1"
,
"less-loader"
:
"^6.2.0"
,
"node-notifier"
:
"^5.1.2"
,
"node-sass"
:
"^4.1
2.0
"
,
"node-sass"
:
"^4.1
4.1
"
,
"optimize-css-assets-webpack-plugin"
:
"^2.0.0"
,
"ora"
:
"^1.2.0"
,
"portfinder"
:
"^1.0.13"
,
...
...
@@ -49,7 +49,7 @@
"postcss-loader"
:
"^2.0.8"
,
"postcss-url"
:
"^7.2.1"
,
"rimraf"
:
"^2.6.0"
,
"sass-loader"
:
"^7.
2.0
"
,
"sass-loader"
:
"^7.
3.1
"
,
"semver"
:
"^5.3.0"
,
"shelljs"
:
"^0.7.6"
,
"style-loader"
:
"^1.2.1"
,
...
...
FTT.Board.VueUI/src/assets/image/lgin_main.png
0 → 100644
View file @
744cc1fb
389 KB
FTT.Board.VueUI/src/assets/image/login_bg.png
0 → 100644
View file @
744cc1fb
735 KB
FTT.Board.VueUI/src/assets/image/rfid.png
0 → 100644
View file @
744cc1fb
7.01 KB
FTT.Board.VueUI/src/function/axiosMes.js
0 → 100644
View file @
744cc1fb
import
Vue
from
'vue'
import
Router
from
'vue-router'
import
$Router
from
'@/router/index'
// import store from '@/store'
Vue
.
use
(
Router
)
import
$cookie
from
'./common.js'
;
// import url from './url.js'
import
axios
from
'axios'
import
{
Message
,
MessageBox
}
from
'element-ui'
// axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded';
axios
.
defaults
.
headers
[
'Content-Type'
]
=
"application/json; charset=UTF-8"
;
// let state = JSON.parse(localStorage.getItem('$state'))
// console.log($cookie.getCookie('host'));
let
http
=
axios
.
create
({
// baseURL: $cookie.getCookie('host'),
timeout
:
20000
,
// withCredentials: true
})
// axios拦截,未登录链接到登录
http
.
interceptors
.
request
.
use
(
response
=>
{
// console.log(response);
//没有token或者token无效跳到登录页
if
(
$cookie
.
getCookie
(
'access_token'
))
{
// console.log(response);
var
timestamp
=
(
new
Date
()).
valueOf
().
toString
()
if
(
response
.
data
===
undefined
)
{
response
.
data
=
{
token
:
$cookie
.
getCookie
(
'access_token'
),
timestamp
:
timestamp
}
}
else
{
if
(
response
.
data
.
data
!==
undefined
&&
response
.
data
.
data
!=
null
)
{
// 时间+8小时 由于js时间和后台时间 不一致 所以追加8小时
Object
.
keys
(
response
.
data
.
data
).
forEach
(
function
(
key
)
{
if
(
response
.
data
.
data
[
key
]
instanceof
Date
)
{
response
.
data
.
data
[
key
]
=
new
Date
(
response
.
data
.
data
[
key
].
setHours
(
response
.
data
.
data
[
key
].
getHours
()
+
8
))
// console.log(key, response.data.data[key])
}
})
}
response
.
data
.
token
=
$cookie
.
getCookie
(
'access_token'
)
response
.
data
.
timestamp
=
timestamp
}
}
return
response
;
},
error
=>
{
// console.log(err)
if
(
error
.
response
)
{
// console.log(err)
}
return
Promise
.
reject
(
error
.
response
.
data
)
// 返回接口返回的错误信息
})
http
.
interceptors
.
response
.
use
(
response
=>
{
console
.
log
(
response
);
//只针对get方式进行序列化
if
(
response
.
config
.
method
===
'get'
)
{
const
res
=
response
.
data
return
res
}
if
(
response
.
config
.
url
==
'api/Platform/User/Login'
)
{
console
.
log
(
789
);
return
response
.
data
}
try
{
const
res
=
response
.
data
if
(
res
.
success
)
{
// console.log(res.code)
// Message({
// message: '操作成功',
// type: 'success',
// duration: 5 * 1000
// })
return
res
}
else
{
if
(
res
.
message
)
{
Message
({
message
:
res
.
message
,
type
:
'error'
,
duration
:
5
*
1000
})
}
else
{
switch
(
res
.
code
)
{
case
3
:
// to re-login
MessageBox
.
confirm
(
'您已经长时间未操作,系统已下线,您可以取消以停留在此页面,或再次登录'
,
'登录超时'
,
{
confirmButtonText
:
'重新登录'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
$cookie
.
delCookie
(
'access_token'
)
$cookie
.
delCookie
(
'host'
)
localStorage
.
removeItem
(
'$state'
)
$Router
.
push
({
path
:
'/login'
})
location
.
reload
()
})
break
;
case
4
:
// to re-login
MessageBox
.
confirm
(
'您的登录已经失效请重新登录'
,
'请求失败'
,
{
confirmButtonText
:
'重新登录'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
$cookie
.
delCookie
(
'access_token'
)
$cookie
.
delCookie
(
'host'
)
localStorage
.
removeItem
(
'$state'
)
$Router
.
push
({
path
:
'/login'
})
location
.
reload
()
}).
catch
(
err
=>
{
})
break
;
case
5
:
// msg = "公司不可用";
Message
({
message
:
res
.
message
||
'公司不可用'
,
type
:
'error'
,
duration
:
5
*
1000
})
break
;
case
6
:
// msg = "未知错误";
Message
({
message
:
res
.
message
||
'未知错误'
,
type
:
'error'
,
duration
:
5
*
1000
})
break
;
case
7
:
// msg = "公司不存在";
Message
({
message
:
res
.
message
||
'公司不存在'
,
type
:
'error'
,
duration
:
5
*
1000
})
break
;
case
8
:
// 参数错误
Message
({
message
:
res
.
message
||
'请求参数错误'
,
type
:
'error'
,
duration
:
5
*
1000
})
break
case
9
:
// Message({
// message: '异地登录,请重新登录!',
// type: 'error',
// duration: 5 * 1000
// })
MessageBox
(
'您的账号在其他地方登录,请重新登录!'
,
'异地登录'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
$cookie
.
delCookie
(
'access_token'
)
$cookie
.
delCookie
(
'host'
)
localStorage
.
removeItem
(
'$state'
)
$Router
.
push
({
path
:
'/login'
})
location
.
reload
()
}).
catch
(()
=>
{
// Message({
// type: 'info',
// message: '取消'
// });
});
break
default
:
// console.log(res);
Message
({
message
:
res
.
message
||
'服务器异常'
,
type
:
'error'
,
duration
:
5
*
1000
})
break
}
}
return
res
}
}
catch
(
err
)
{
// console.log(err.message)
// console.log(err);
// console.log(this);
Message
({
message
:
err
.
msg
,
type
:
'error'
,
duration
:
5
*
1000
})
}
},
error
=>
{
// console.log('err::' + error) // for debug
Message
({
message
:
error
,
type
:
'error'
,
duration
:
5
*
1000
})
return
Promise
.
reject
(
error
)
}
);
export
default
http
;
FTT.Board.VueUI/src/function/common.js
0 → 100644
View file @
744cc1fb
// import message from './errMessage';
//获取cookie、
function
getCookie
(
cname
)
{
// var name = cname + "=";
var
ca
=
document
.
cookie
.
split
(
';'
);
for
(
var
i
=
0
;
i
<
ca
.
length
;
i
++
)
{
var
c
=
ca
[
i
];
while
(
c
.
charAt
(
0
)
==
' '
)
c
=
c
.
substring
(
1
);
var
arr
=
c
.
split
(
"="
);
if
(
arr
[
0
]
==
cname
)
{
return
arr
[
1
];
}
}
return
""
;
}
//设置cookie,增加到vue实例方便全局调用
let
setCookie
=
(
function
(){
// let model = window.model;
return
function
(
cname
,
cvalue
,
exdays
){
var
d
=
new
Date
();
d
.
setTime
(
d
.
getTime
()
+
(
exdays
*
24
*
60
*
60
*
1000
));
var
expires
=
"expires="
+
d
.
toUTCString
();
// console.log(document.domain)
// if (document.domain == "euser.eiisys.com") {
// console.log('model',model)
// if(model == 1){
// document.cookie = cname + "=" + cvalue + "; " + expires + ";path=/" + ";domain=.feteto.com";
// } else {
document
.
cookie
=
cname
+
"="
+
cvalue
+
"; "
+
expires
+
";path=/"
;
// }
}
})();
//删除cookie
function
delCookie
(
name
)
{
this
.
setCookie
(
name
,
""
,
-
1
);
}
// let accessToken;
// let loginState = false; //false未登录
// //判断token是否存在
// function judgeAccessToken() {
// if (this.$cookie.getCookie('access-token') && this.$cookie.getCookie('loginState')) {
// accessToken = this.$cookie.getCookie('access-token');
// loginState = true;
// console.log(accessToken);
// console.log(loginState);
// } else {
// loginState = false;
// accessToken = '';
// }
// }
// const api = function (that) {
// return new Promise(function (resolve, reject) {
// // 判断短信是否开通,如果已开通直接resolve
// judgeAccessToken();
// resolve(loginState);
// })
// };
export
default
{
//获取cookie、
getCookie
,
//设置cookie,增加到vue实例方便全局调用
setCookie
,
//删除cookie
delCookie
,
// api
}
// 消息提示
// export const errInfo = function (param = '内容不能为空', time = 5) {
// message.warning({
// content: param,
// duration: time,
// });
// };
// export const errorMessage = message.errorMessage;
\ No newline at end of file
FTT.Board.VueUI/src/function/url.js
0 → 100644
View file @
744cc1fb
FTT.Board.VueUI/src/main.js
View file @
744cc1fb
...
...
@@ -4,6 +4,16 @@ import Vue from 'vue'
import
App
from
'./App'
import
router
from
'./router'
import
'./assets/font/iconfont.css'
import
axios
from
'axios'
// axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded';
axios
.
defaults
.
headers
.
post
[
'Content-Type'
]
=
"application/json; charset=UTF-8"
;
Vue
.
prototype
.
axios
=
axios
import
http
from
'./function/axiosMes.js'
Vue
.
prototype
.
$http
=
http
;
import
cookie
from
'./function/common.js'
Vue
.
prototype
.
$cookie
=
cookie
;
//文字滚动https://chenxuan0000.github.io/component-document/index_prod.html#/component/seamless-default
import
scroll
from
'vue-seamless-scroll'
...
...
@@ -12,7 +22,10 @@ Vue.config.productionTip = false
import
ElementUI
from
'element-ui'
;
import
'element-ui/lib/theme-chalk/index.css'
;
// import App from './App.vue';
Vue
.
use
(
ElementUI
,
{
size
:
'small'
,
zIndex
:
3000
});
Vue
.
use
(
ElementUI
,
{
size
:
'small'
,
zIndex
:
3000
});
//通用辅助类
import
utils
from
'@/function/utils.js'
Vue
.
prototype
.
$utils
=
utils
...
...
@@ -23,9 +36,69 @@ import UtilityTools from "@/function/UtilityTools"
import
echarts
from
'echarts'
Vue
.
use
(
echarts
)
Vue
.
prototype
.
echarts
=
echarts
Vue
.
prototype
.
__defaultErrorHandlder
=
function
(
code
,
message
)
{
let
msg
=
''
;
console
.
log
(
message
);
if
(
message
)
{
this
.
$message
({
message
:
message
,
type
:
"warning"
});
return
;
}
console
.
log
(
code
)
switch
(
code
)
{
case
2
:
msg
=
"用户名或者密码错误"
;
break
;
case
3
:
break
;
case
4
:
msg
=
"未知的服务器错误"
;
break
;
case
5
:
msg
=
"公司不可用"
;
break
;
case
6
:
msg
=
"未知错误"
;
break
;
case
7
:
msg
=
"公司不存在"
;
break
;
case
8
:
msg
=
"请求参数有问题"
;
break
;
case
9
:
// msg = "账号在另一地点登陆"
break
;
default
:
case
0
:
msg
=
"未指定的错误"
;
break
;
}
console
.
log
(
msg
)
this
.
$message
({
message
:
msg
,
type
:
"warning"
});
}
Vue
.
prototype
.
jsController
=
function
(){
JsControllerObj
.
CsExecuter
(
"StartReadRFID"
,
'ComReadCardCallBack'
)
}
function
ComReadCardCallBack
(
data
){
console
.
log
(
data
);
}
new
Vue
({
el
:
'#app'
,
router
,
components
:
{
App
},
components
:
{
App
},
template
:
'<App/>'
})
FTT.Board.VueUI/src/router/index.js
View file @
744cc1fb
import
Vue
from
'vue'
import
Router
from
'vue-router'
import
$cookie
from
'../function/common'
import
home
from
'../views/home/index.vue'
import
boardlist
from
'../views/board/boardlist/index.vue'
import
chartList
from
'../views/board/chartList/index.vue'
...
...
@@ -21,6 +21,8 @@ import ViewXY from '../views/board/workShopList/kanbanViewXY.vue'
import
Efficiency
from
'../views/board/workShopList/dynamicEfficiency.vue'
import
DataShow
from
'../views/board/workShopList/dataShow.vue'
import
SearchSOP
from
'../views/board/workShopList/searchSOP.vue'
import
login
from
'../views/machine/login.vue'
import
processSheet
from
'../views/machine/processSheet.vue'
Vue
.
use
(
Router
)
...
...
@@ -28,13 +30,11 @@ export default new Router({
// mode: 'history',
// base: config.ProjectName,//
linkActiveClass
:
'active'
,
routes
:
[
{
routes
:
[{
path
:
'/'
,
name
:
'主页'
,
component
:
home
,
children
:
[
{
children
:
[{
path
:
'/boardlist'
,
name
:
'boardlist'
,
meta
:
{
...
...
@@ -59,8 +59,8 @@ export default new Router({
component
:
chartDemoList
,
},
{
path
:
'/zcList'
,
name
:
'zcList'
,
path
:
'/zcList'
,
name
:
'zcList'
,
meta
:
{
title
:
'车间配置'
,
},
...
...
@@ -132,7 +132,7 @@ export default new Router({
title
:
'图表模板'
,
},
component
:
chartDemo
,
},
{
},
{
path
:
'/chartdemo1'
,
name
:
'chartdemo1'
,
meta
:
{
...
...
@@ -141,61 +141,97 @@ export default new Router({
component
:
chartDemo1
,
},
{
path
:
'/zcList'
,
name
:
'zcList'
,
path
:
'/zcList'
,
name
:
'zcList'
,
meta
:
{
title
:
'车间选择'
,
},
component
:
ZCList
,
},
{
path
:
'/viewZC'
,
name
:
'viewZC'
,
path
:
'/viewZC'
,
name
:
'viewZC'
,
meta
:
{
title
:
'车间展示'
,
},
component
:
ViewZC
,
},
{
path
:
'/viewCX'
,
name
:
'viewCX'
,
path
:
'/viewCX'
,
name
:
'viewCX'
,
meta
:
{
title
:
'车间展示'
,
},
component
:
ViewCX
,
},
{
path
:
'/viewXY'
,
name
:
'viewXY'
,
path
:
'/viewXY'
,
name
:
'viewXY'
,
meta
:
{
title
:
'鑫源看板'
,
},
component
:
ViewXY
,
},
{
path
:
'/Efficiency'
,
name
:
'Efficiency'
,
meta
:
{
title
:
'工厂动态效率展示'
path
:
'/Efficiency'
,
name
:
'Efficiency'
,
meta
:
{
title
:
'工厂动态效率展示'
},
component
:
Efficiency
component
:
Efficiency
},
{
path
:
'/dataShow'
,
name
:
'dataShow'
,
meta
:
{
title
:
'样品运行控制中心'
path
:
'/dataShow'
,
name
:
'dataShow'
,
meta
:
{
title
:
'样品运行控制中心'
},
component
:
DataShow
component
:
DataShow
},
{
path
:
'/searchSOP'
,
name
:
'searchSOP'
,
meta
:
{
title
:
'查询SOP'
path
:
'/searchSOP'
,
name
:
'searchSOP'
,
meta
:
{
title
:
'查询SOP'
},
component
:
SearchSOP
component
:
SearchSOP
},
{
path
:
'/login'
,
name
:
'login'
,
meta
:
{
title
:
'工位机'
},
component
:
login
},
{
path
:
'/processSheet'
,
name
:
'processSheet'
,
meta
:
{
title
:
'工位机'
},
component
:
processSheet
}
],
})
// const router = new VueRouter({
// mode: 'hash',
// base: process.env.BASE_URL,
// routes
// })
// // 路由守卫
// router.beforeEach((to, from, next) => {
// // 无需登录
// if (['processSheet'].some(str => str == to.name)) {
// let token = $cookie.getCookie('access_token');
// console.log('ssss' + token);
// if (token) {
// next()
// } else {
// next(`/login`)
// }
// return;
// }
// })
FTT.Board.VueUI/src/store/index.js
0 → 100644
View file @
744cc1fb
import
Vue
from
'vue'
import
Vuex
from
'vuex'
\ No newline at end of file
FTT.Board.VueUI/src/views/chart/Table1.vue
View file @
744cc1fb
...
...
@@ -20,13 +20,13 @@
<td
:key=
"index1"
class=
"tableclass"
:style=
"
{width:getwidth(obj)+'%',border:'1px'+' solid '+
getfontcolor(item),borderColor:
boardstore.BorderColor==null?'red':boardstore.BorderColor}"
:style=
"
{width:getwidth(obj)+'%',border:'1px'+' solid '+boardstore.BorderColor==null?'red':boardstore.BorderColor}"
v-if="obj.Key.indexOf('_')>0
&&
obj.Key.indexOf('_percent')
<0
"
>
{{
obj
.
Value
}}
</td>
<td
:key=
"index1"
class=
"tableclass"
:style=
"
{width:getwidth(obj)+'%',border:'1px'+' solid '+
getfontcolor(item),borderColor:
boardstore.BorderColor==null?'red':boardstore.BorderColor}"
:style=
"
{width:getwidth(obj)+'%',border:'1px'+' solid '+boardstore.BorderColor==null?'red':boardstore.BorderColor}"
v-if="obj.Key.indexOf('_percent')>0"
>
<el-progress
:text-inside=
"true"
:style=
"
{color:getfontcolor(item)}" :stroke-width="20" type="line" :color="obj.Key.indexOf('#') ? '#'+obj.Value.split('#')[1] : '#409EFF'" :percentage="obj.Key.indexOf('#') ? parseInt(obj.Value.split('#')[0]) : parseInt(obj.Value)" status="exception">
</el-progress>
...
...
FTT.Board.VueUI/src/views/machine/login.vue
0 → 100644
View file @
744cc1fb
<
template
>
<div
class=
"con"
>
<div
class=
"login_main"
>
<div
class=
"main"
>
<div
class=
"left"
>
<img
src=
"../../assets/image/lgin_main.png"
alt=
""
/>
</div>
<div
class=
"right"
>
<h3
class=
"title"
>
飞天兔MES系统
</h3>
<div
class=
"tab_list"
>
<div
v-for=
"(item, index) in tabList"
:key=
"index"
@
click=
"checkIcon(index)"
>
<span
:class=
"[
{ active: tabIndex == index }]">
{{
item
}}
</span>
</div>
</div>
<div
class=
"tab_line"
>
<div
class=
"line"
:style=
"
{ transform: `translateX(${tabIndex * 175}px)` }"
style="transition:all .5s"
>
</div>
<div
class=
"bottom_line"
></div>
</div>
<div
class=
"login_account"
v-show=
"tabIndex == 0"
>
<div>
<input
class=
"account"
type=
"text"
placeholder=
"请输入账号"
ref=
"inputs"
v-model=
"loginForm.account"
@
focus=
"showInputPanel($event)"
/>
<!-- @blur="hideInputPanel($event)" -->
</div>
<div>
<input
type=
"password"
placeholder=
"请输入密码"
v-model=
"loginForm.pwd"
@
focus=
"showInputPanel($event)"
/>
<!-- @blur="hideInputPanel($event)" -->
</div>
<div
class=
"rember"
>
<input
type=
"checkbox"
class=
"checkBox"
v-model=
"loginForm.checked"
/>
记住密码
</div>
<div>
<button
@
click=
"login"
>
登 陆
</button>
</div>
</div>
<div
class=
"rfid"
v-show=
"tabIndex == 1"
>
<img
src=
"../../assets/image/rfid.png"
alt=
""
/>
</div>
<h4
class=
"rfid_dis"
v-show=
"tabIndex == 1"
>
请将一卡通放到感应区域
</h4>
</div>
</div>
<h4
class=
"company"
>
版权所有@杭州禹荣网络科技有限公司 保留所有权利
</h4>
</div>
</div>
</
template
>
<
script
>
import
qs
from
"qs"
;
import
Axios
from
"@/function/axios.js"
;
export
default
{
data
()
{
return
{
tabList
:
[
"账号登陆"
,
"一卡通登录"
],
tabIndex
:
0
,
isLogin
:
false
,
loginForm
:
{
companyCode
:
""
,
account
:
""
,
pwd
:
""
,
checked
:
false
}
};
},
created
()
{
window
.
vue
=
this
;
this
.
checkLoacl
();
const
infor
=
JSON
.
parse
(
localStorage
.
getItem
(
"$loginInfor"
));
if
(
infor
)
{
// this.loginForm.companyCode = infor.companyCode;
this
.
loginForm
.
account
=
infor
.
loginName
;
if
(
infor
.
saveInfor
)
{
this
.
loginForm
.
pwd
=
infor
.
pwd
;
}
this
.
loginForm
.
checked
=
infor
.
saveInfor
;
}
},
mounted
()
{
//绑定事件
window
.
addEventListener
(
"keydown"
,
this
.
keyDown
);
},
destroyed
()
{
window
.
removeEventListener
(
"keydown"
,
this
.
keyDown
,
false
);
if
(
typeof
JsControllerObj
!=
"undefined"
)
{
console
.
log
(
'隐藏'
);
JsControllerObj
.
CsExecuter
(
"HideInputPanel_Osk"
,
null
);
}
},
methods
:
{
showInputPanel
(
e
)
{
//调起虚拟键盘
if
(
typeof
JsControllerObj
!=
"undefined"
)
{
console
.
log
(
'ShowInputPanel_Osk'
);
JsControllerObj
.
CsExecuter
(
"ShowInputPanel_Osk"
,
null
);
}
},
hideInputPanel
(
e
)
{
//隐藏虚拟键盘
if
(
typeof
JsControllerObj
!=
"undefined"
)
{
console
.
log
(
'HideInputPanel_Osk'
);
JsControllerObj
.
CsExecuter
(
"HideInputPanel_Osk"
,
null
);
}
},
keyDown
(
e
)
{
//如果是回车则执行登录方法
if
(
e
.
keyCode
==
13
)
{
if
(
this
.
tabIndex
==
0
)
{
this
.
login
();
}
else
{
console
.
log
(
"不是账号密码登陆"
);
}
}
},
checkIcon
(
index
)
{
this
.
tabIndex
=
index
;
if
(
index
==
1
)
{
if
(
typeof
JsControllerObj
!=
"undefined"
)
{
console
.
log
(
"调用 JsControllerObj 前"
);
// JsControllerObj.CsExecuter(
// "StartReadRFID",
// "vue.ComReadCardCallBack"
// );
let
result
=
JsControllerObj
.
CsExecuter
(
"StartReadRFID"
,
"vue.ComReadCardCallBack"
);
console
.
log
(
result
.
data
);
if
(
!
result
.
success
)
{
this
.
$message
({
message
:
result
.
message
,
type
:
"warning"
});
}
console
.
log
(
result
);
console
.
log
(
"调用 JsControllerObj 后"
);
}
else
{
console
.
log
(
"我是浏览器打开的"
);
}
}
else
{
if
(
typeof
JsControllerObj
!=
"undefined"
)
{
console
.
log
(
"调用StopReadRFID"
);
JsControllerObj
.
CsExecuter
(
"StopReadRFID"
,
null
);
}
}
},
ComReadCardCallBack
(
data
)
{
console
.
log
(
"ComReadCardCallBack回调方法"
);
console
.
log
(
data
);
if
(
data
.
success
&&
!
this
.
isLogin
)
{
console
.
log
(
"我要开始调用登陆接口了"
+
JSON
.
stringify
(
data
.
data
));
this
.
SmartCradLogin
(
data
.
data
);
}
if
(
!
data
.
success
)
{
this
.
$message
({
message
:
data
.
message
,
type
:
"warning"
});
}
},
SmartCradLogin
(
data
)
{
console
.
log
(
"登陆方法接收到的参数"
+
JSON
.
stringify
(
data
));
this
.
isLogin
=
true
;
let
url
=
""
;
if
(
window
.
apiUrl
)
{
url
=
window
.
apiUrl
+
"/api/User/SmartCradLogin"
;
}
else
{
this
.
loginForm
.
companyCode
=
window
.
companyCode
;
url
=
"http://116.62.146.125/ftt_cloud_api/api/SmartCradLogin"
;
if
(
this
.
loginForm
.
companyCode
==
""
)
{
this
.
$message
({
message
:
"请先配置企业代码"
,
type
:
"warning"
});
return
;
}
}
const
loading
=
this
.
$loading
({
lock
:
true
,
text
:
"Loading"
,
spinner
:
"el-icon-loading"
,
background
:
"rgba(255, 255, 255, 0.7)"
});
let
params
=
{
company_code
:
this
.
loginForm
.
companyCode
,
CountryId
:
data
.
CountryId
,
NationalId
:
data
.
NationalId
};
// console.log("请求的参数params" + JSON.stringify(params));
// this.axios
// .post(url, params)
this
.
axios
({
method
:
"post"
,
url
:
url
,
data
:
params
,
header
:
{
"Content-Type"
:
"application/json"
}
})
.
then
(
res
=>
{
console
.
log
(
res
);
console
.
log
(
"请求的参数params"
+
JSON
.
stringify
(
params
));
if
(
res
.
data
.
success
)
{
this
.
$cookie
.
setCookie
(
"access_token"
,
res
.
data
.
access_token
);
if
(
window
.
apiUrl
)
{
this
.
$cookie
.
setCookie
(
"host"
,
window
.
apiUrl
);
}
else
{
this
.
$cookie
.
setCookie
(
"host"
,
res
.
data
.
host
);
}
JsControllerObj
.
CsExecuter
(
"StopReadRFID"
,
null
);
this
.
setUserInfo
(
res
.
data
);
this
.
$router
.
push
(
"/processSheet"
);
}
else
{
this
.
__defaultErrorHandlder
(
res
.
data
.
code
,
res
.
data
.
message
);
}
loading
.
close
();
this
.
isLogin
=
false
;
})
.
catch
(
err
=>
{
console
.
log
(
err
);
loading
.
close
();
this
.
isLogin
=
false
;
});
},
checkLoacl
()
{
if
(
window
.
apiUrl
)
{
this
.
axios
({
url
:
window
.
apiUrl
,
header
:
{
"Content-Type"
:
"application/json"
}
})
.
then
(
res
=>
{
console
.
log
(
"内网连接成功"
);
})
.
catch
(
err
=>
{
this
.
$message
({
message
:
"无法链接服务器,请联系系统管理员。"
,
type
:
"error"
});
});
}
},
login
()
{
let
url
=
""
;
if
(
window
.
apiUrl
)
{
url
=
window
.
apiUrl
+
"/api/User/UserLogin"
;
}
else
{
this
.
loginForm
.
companyCode
=
window
.
companyCode
;
url
=
"http://116.62.146.125/ftt_cloud_api/api/UserLogin"
;
if
(
this
.
loginForm
.
companyCode
==
""
)
{
this
.
$message
({
message
:
"请先配置企业代码"
,
type
:
"warning"
});
return
;
}
}
if
(
this
.
tabIndex
==
0
)
{
if
(
this
.
loginForm
.
account
==
""
)
{
this
.
$message
({
message
:
"账号不能为空"
,
type
:
"warning"
});
return
;
}
if
(
this
.
loginForm
.
pwd
==
""
)
{
this
.
$message
({
message
:
"密码不能为空"
,
type
:
"warning"
});
return
;
}
}
console
.
log
(
"login"
,
this
.
loginForm
.
pwd
);
let
params
=
{
company_code
:
this
.
loginForm
.
companyCode
,
user_name
:
this
.
loginForm
.
account
,
password
:
this
.
loginForm
.
pwd
,
clientid
:
0
,
clienttype
:
20
};
const
loading
=
this
.
$loading
({
lock
:
true
,
text
:
"Loading"
,
spinner
:
"el-icon-loading"
,
background
:
"rgba(255, 255, 255, 0.7)"
});
this
.
axios
({
method
:
"post"
,
url
:
url
,
data
:
params
,
header
:
{
"Content-Type"
:
"application/json"
}
})
.
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
.
data
.
success
)
{
this
.
$cookie
.
setCookie
(
"access_token"
,
res
.
data
.
access_token
);
if
(
window
.
apiUrl
)
{
this
.
$cookie
.
setCookie
(
"host"
,
window
.
apiUrl
);
}
else
{
this
.
$cookie
.
setCookie
(
"host"
,
res
.
data
.
host
);
}
this
.
setUserInfo
(
res
.
data
);
this
.
$router
.
push
(
"/processSheet"
);
}
else
{
this
.
__defaultErrorHandlder
(
res
.
data
.
error_code
?
res
.
data
.
error_code
:
res
.
data
.
code
,
res
.
data
.
message
);
}
loading
.
close
();
})
.
catch
(
err
=>
{
console
.
log
(
err
);
this
.
$message
({
showClose
:
true
,
message
:
err
.
errMsg
,
type
:
"error"
});
loading
.
close
();
});
},
setUserInfo
:
function
(
result
)
{
//存储用户部分信息
var
state
=
{};
state
.
name
=
result
.
display_name
;
state
.
userId
=
result
.
user_id
;
state
.
token
=
result
.
access_token
;
state
.
loginName
=
result
.
login_name
?
result
.
login_name
:
this
.
loginForm
.
account
;
state
.
companyName
=
result
.
company_name
?
result
.
company_name
:
this
.
loginForm
.
companyCode
;
state
.
companyLogo
=
result
.
image_url
;
state
.
companyCode
=
result
.
company_code
?
result
.
company_code
:
this
.
loginForm
.
companyCode
;
state
.
psd
=
result
.
password
;
state
.
host
=
window
.
apiUrl
?
window
.
apiUrl
:
result
.
host
;
console
.
log
(
state
);
localStorage
.
setItem
(
"$state"
,
JSON
.
stringify
(
state
));
var
loginInfor
=
{};
loginInfor
.
loginName
=
result
.
login_name
?
result
.
login_name
:
this
.
loginForm
.
account
;
loginInfor
.
companyCode
=
result
.
company_code
?
result
.
company_code
:
this
.
loginForm
.
companyCode
;
loginInfor
.
saveInfor
=
this
.
loginForm
.
checked
;
console
.
log
(
"1111111:"
+
this
.
saveInfor
);
const
infor
=
localStorage
.
getItem
(
"$loginInfor"
);
if
(
this
.
loginForm
.
checked
)
{
if
(
infor
)
{
localStorage
.
removeItem
(
"$loginInfor"
);
}
loginInfor
.
pwd
=
this
.
loginForm
.
pwd
;
console
.
log
(
loginInfor
);
localStorage
.
setItem
(
"$loginInfor"
,
JSON
.
stringify
(
loginInfor
));
console
.
log
(
loginInfor
);
}
else
{
console
.
log
(
"移除"
);
// local.setLocalData('$loginInfor', loginInfor);
if
(
infor
)
{
localStorage
.
removeItem
(
"$loginInfor"
);
}
console
.
log
(
loginInfor
);
localStorage
.
setItem
(
"$loginInfor"
,
JSON
.
stringify
(
loginInfor
));
console
.
log
(
loginInfor
);
}
}
}
};
</
script
>
<
style
scoped
>
.con
{
width
:
100%
;
height
:
100vh
;
background-image
:
url("../../assets/image/login_bg.png")
;
background-repeat
:
no-repeat
;
background-size
:
100%
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.login_main
{
width
:
1000px
;
/* height: 550px; */
}
.main
{
width
:
1000px
;
height
:
550px
;
background
:
#ffffff
;
box-shadow
:
5px
5px
10px
#e1ecff
;
display
:
flex
;
}
.left
{
width
:
395px
;
height
:
550px
;
}
.right
{
width
:
604px
;
height
:
550px
;
}
.title
{
margin-top
:
59px
;
font-size
:
38px
;
font-family
:
PingFangSC-Semibold
,
PingFang
SC
;
font-weight
:
600
;
color
:
#474747
;
line-height
:
48px
;
letter-spacing
:
1px
;
text-align
:
center
;
}
.tab_list
{
width
:
342px
;
margin
:
64px
auto
0
;
display
:
flex
;
justify-content
:
space-around
;
}
.tab_list
>
div
>
span
{
font-size
:
19px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
500
;
color
:
#333333
;
cursor
:
pointer
;
}
.tab_list
>
div
>
.active
{
/* color: rgba(4, 151, 250, 1) ; */
font-weight
:
600
!important
;
/* transition: all 0.5s; */
}
.tab_line
{
margin
:
0
auto
;
width
:
342px
;
}
.active1
{
color
:
rgba
(
4
,
151
,
250
,
1
);
transition
:
all
0.5s
;
}
.line
{
width
:
80px
;
height
:
2px
;
background
:
rgba
(
4
,
151
,
250
,
1
);
margin-top
:
9px
;
margin-left
:
40px
;
}
.bottom_line
{
width
:
342px
;
height
:
1px
;
background
:
rgba
(
229
,
229
,
229
,
1
);
margin
:
0px
auto
0px
;
}
.login_account
{
width
:
342px
;
margin
:
44px
auto
0
;
}
.login_account
>
div
{
display
:
flex
;
justify-content
:
center
;
}
input
{
width
:
259px
;
height
:
38px
;
text-indent
:
11px
;
outline
:
none
;
border
:
1px
solid
#d8d8d8
;
margin
:
0
auto
22px
;
}
input
:focus
{
border
:
1px
solid
#4589ff
;
}
.rember
{
width
:
259px
;
margin
:
22px
auto
;
height
:
auto
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#333333
;
line-height
:
22px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
flex-start
!important
;
}
.checkBox
{
width
:
12px
;
height
:
12px
;
border-radius
:
1px
;
border
:
1px
solid
#4589ff
;
text-align
:
left
;
vertical-align
:
baseline
;
margin
:
0
4px
0
0
;
}
button
{
width
:
259px
;
height
:
34px
;
background
:
#4589ff
;
border-radius
:
5px
;
outline
:
none
;
color
:
#ffffff
;
border
:
none
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
}
.rfid
{
width
:
342px
;
margin
:
44px
auto
0
;
display
:
flex
;
justify-content
:
center
;
}
.rfid_dis
{
text-align
:
center
;
font-size
:
18px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#333333
;
margin-top
:
28px
;
}
.company
{
font-size
:
15px
;
color
:
#666666
;
font-weight
:
400
;
margin-top
:
34px
;
text-align
:
center
;
}
</
style
>
FTT.Board.VueUI/src/views/machine/processSheet.vue
0 → 100644
View file @
744cc1fb
<
template
>
<div
class=
"con"
>
<div
class=
"top"
>
<div
class=
"tab_bar"
>
<span
class=
"tab_select"
>
<i
class=
"el-icon-s-operation"
></i>
<label
for=
""
>
指令单:
</label>
<el-select
v-model=
"value"
filterable
placeholder=
"请选择指令单"
@
change=
"getIndexInfo"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</span>
<span
class=
"order_number"
>
<label
for=
""
>
订单号:
</label>
<span>
{{
item
.
CustomPO
}}
</span>
</span>
<span>
<label
for=
""
>
货号:
</label>
<span>
{{
item
.
StyleCode
}}
</span>
</span>
<span>
<label
for=
""
>
颜色:
</label>
<span>
{{
item
.
ColorName
}}
</span>
</span>
<!--
<span
class=
"name"
>
张三
</span>
-->
</div>
<div
class=
"name"
>
<el-dropdown
@
command=
"handleCommand"
>
<span
class=
"el-dropdown-link"
>
<span
class=
"name"
>
{{
userName
}}
<i
class=
"el-icon-arrow-down el-icon-caret-bottom"
></i
></span>
</span>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"a"
>
退出登录
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div
class=
"middle"
>
<div
class=
"process"
>
<div
class=
"search"
>
<!--
<el-input
placeholder=
"请输入[序号]工序进行搜索"
v-model=
"searchText"
>
<i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
></i>
</el-input>
<span
class=
"el-icon-search"
@
click=
"search"
></span>
-->
[序号]工序
</div>
<div
class=
"process_list"
>
<div
class=
"list_cell"
:class=
"
{ active: checkIndex == index }"
v-for="(item, index) in processList"
:key="index"
@click="check(item, index)"
>
<div>
[
{{
item
.
SerialNo
}}
]
{{
item
.
IEName
}}
</div>
</div>
<div
class=
"none"
v-if=
"processList.length == 0"
>
暂无数据...
</div>
</div>
</div>
<div
class=
"process_information"
>
<div
class=
"infor_title"
>
<div>
尺码
</div>
<div>
指令数量
</div>
<div>
完成总量
</div>
<div>
今日完成量
</div>
<div>
未完成量
</div>
</div>
<div
class=
"infor_main"
>
<div
class=
"list_cell"
v-for=
"(item, index) in inforList"
:key=
"index"
>
<div>
{{
item
.
SizeName
}}
</div>
<div>
{{
item
.
TaskQty
}}
</div>
<div>
{{
item
.
ReportQty
}}
</div>
<div>
{{
item
.
DailyQty
}}
</div>
<div>
{{
item
.
SurplusQty
}}
</div>
</div>
<div
class=
"none"
v-if=
"inforList.length == 0"
>
暂无数据...
</div>
</div>
</div>
</div>
<div
class=
"bottom"
>
<div
class=
"detail_title"
>
<div
class=
"tab_cell"
v-for=
"(item, index) in TitleList"
:key=
"index"
>
{{
item
}}
</div>
</div>
<div
class=
"detail_main"
>
<div
class=
"list_cell"
v-for=
"(item, index) in detailList"
:key=
"index"
>
<span>
{{
item
.
StyleCode
}}
</span>
<span>
{{
item
.
TotalPrice
}}
</span>
<span>
{{
item
.
TotalPrice
}}
</span>
<span>
{{
item
.
HourYield
}}
</span>
<span>
{{
item
.
Hour7
}}
</span>
<span>
{{
item
.
Hour8
}}
</span>
<span>
{{
item
.
Hour9
}}
</span>
<span>
{{
item
.
Hour10
}}
</span>
<span>
{{
item
.
Hour11
}}
</span>
<span>
{{
item
.
Hour12
}}
</span>
<span>
{{
item
.
Hour13
}}
</span>
<span>
{{
item
.
Hour14
}}
</span>
<span>
{{
item
.
Hour15
}}
</span>
<span>
{{
item
.
Hour16
}}
</span>
<span>
{{
item
.
Hour17
}}
</span>
<span>
{{
item
.
Hour18
}}
</span>
<span>
{{
item
.
Hour19
}}
</span>
<span>
{{
item
.
Hour20
}}
</span>
<span>
{{
item
.
Total
}}
</span>
</div>
<div
class=
"none"
v-if=
"detailList.length == 0"
>
暂无数据...
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
qs
from
"qs"
;
export
default
{
data
()
{
return
{
options
:
[],
value
:
""
,
checkIndex
:
-
1
,
searchText
:
""
,
item
:
{},
processList
:
[],
//工序列表
inforList
:
[],
detailList
:
[],
userName
:
localStorage
.
getItem
(
"$state"
)
?
JSON
.
parse
(
localStorage
.
getItem
(
"$state"
)).
name
:
''
,
TitleList
:
[
"型体"
,
"工序号"
,
"工价"
,
"时产量"
,
"7"
,
"8"
,
"9"
,
"10"
,
"11"
,
"12"
,
"13"
,
"14"
,
"15"
,
"16"
,
"17"
,
"18"
,
"19"
,
"20+"
,
"汇总"
]
};
},
created
()
{
this
.
getIndexNO
();
this
.
getIEDailyReportInfo
();
},
methods
:
{
handleCommand
(
command
)
{
// this.$message("click on item " + command);
if
(
command
==
"a"
)
{
this
.
$cookie
.
delCookie
(
"access_token"
);
this
.
$cookie
.
delCookie
(
"host"
);
localStorage
.
removeItem
(
'$state'
)
this
.
$router
.
push
(
'login'
)
}
},
check
(
item
,
index
)
{
this
.
checkIndex
=
index
;
this
.
getIEReportInfo
(
item
);
},
search
()
{
if
(
!
this
.
value
)
{
this
.
$message
({
message
:
"清新选择指令单"
,
type
:
"warning"
});
return
;
}
let
params
=
{
SearchText
:
this
.
searchText
,
IndexNo
:
this
.
value
};
this
.
$http
({
method
:
"post"
,
url
:
this
.
$cookie
.
getCookie
(
"host"
)
+
"/api/vWSM/WorkStation/GetIEInfo"
,
data
:
params
})
.
then
(
res
=>
{
console
.
log
(
qs
.
stringify
(
params
));
if
(
res
.
success
)
{
console
.
log
(
res
);
this
.
processList
=
res
.
items
;
}
})
.
catch
(
err
=>
{
console
.
log
(
err
);
});
},
getIEDailyReportInfo
()
{
let
params
=
{};
this
.
$http
.
post
(
this
.
$cookie
.
getCookie
(
"host"
)
+
"/api/vWSM/WorkStation/GetIEDailyReportInfo"
,
params
)
.
then
(
res
=>
{
if
(
res
.
success
)
{
console
.
log
(
res
);
this
.
detailList
=
res
.
items
;
}
})
.
catch
(
err
=>
{
console
.
log
(
err
);
});
},
getIEReportInfo
(
item
)
{
let
params
=
{
IndexNo
:
this
.
value
,
WorkSectionID
:
item
.
WorkSectionID
,
IEType
:
item
.
IEType
,
IEID
:
item
.
IEID
};
this
.
$http
({
method
:
"post"
,
url
:
this
.
$cookie
.
getCookie
(
"host"
)
+
"/api/vWSM/WorkStation/GetIEReportInfo"
,
data
:
params
})
.
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
inforList
=
res
.
items
;
}
})
.
catch
(
err
=>
{
console
.
log
(
err
);
});
},
getIndexNO
()
{
let
params
=
{};
this
.
$http
({
method
:
"post"
,
url
:
this
.
$cookie
.
getCookie
(
"host"
)
+
"/api/vWSM/WorkStation/GetIndexNoList"
,
data
:
params
})
.
then
(
res
=>
{
if
(
res
.
success
)
{
console
.
log
(
res
);
this
.
options
=
[];
res
.
items
.
forEach
(
item
=>
{
this
.
options
.
push
({
value
:
item
,
label
:
item
});
});
}
})
.
catch
(
err
=>
{
console
.
log
(
err
);
});
},
getIndexInfo
()
{
this
.
search
();
let
params
=
{
IndexNo
:
this
.
value
};
this
.
$http
({
method
:
"post"
,
url
:
this
.
$cookie
.
getCookie
(
"host"
)
+
"/api/vWSM/WorkStation/GetIndexInfo"
,
// transformRequest: [
// function(params) {
// return qs.stringify(params);
// }
// ],
data
:
params
})
.
then
(
res
=>
{
if
(
res
.
success
)
{
console
.
log
(
res
);
this
.
item
=
res
.
data
;
}
})
.
catch
(
err
=>
{
console
.
log
(
err
);
});
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.con
{
width
:
100%
;
box-sizing
:
border-box
;
padding
:
0
20px
;
min-height
:
720px
;
}
.el-dropdown-link
:hover
{
cursor
:
pointer
;
color
:
#409eff
;
}
.el-icon-arrow-down
{
font-size
:
12px
;
}
.top
{
width
:
100%
;
height
:
60px
;
/* background: brown; */
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
.tab_bar
{
width
:
80%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
.tab_select
>
i
{
font-size
:
20px
;
margin-right
:
10px
;
}
/* .tab_select{} */
.name
{
font-size
:
26px
;
font-weight
:
bold
;
cursor
:
pointer
;
}
}
.middle
{
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
.process
{
width
:
34%
;
border
:
1px
solid
#d8d8d8
;
border-top
:
none
;
border-top
:
none
;
overflow
:
hidden
;
border-radius
:
6px
;
.search
{
width
:
100%
;
height
:
60px
;
background-color
:
cornflowerblue
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
box-sizing
:
border-box
;
padding
:
0
10px
;
color
:
#ffffff
;
.el-input
{
width
:
94%
;
}
span
{
font-size
:
20px
;
color
:
#ffffff
;
cursor
:
pointer
;
}
}
.process_list
{
width
:
100%
;
height
:
350px
;
// border-bottom: 1px solid #d8d8dd;
&
:
:-
webkit-scrollbar
{
display
:
none
;
}
// background-color: cyan;
overflow
:
auto
!
important
;
.list_cell
{
height
:
45px
;
line-height
:
45px
;
border-bottom
:
1px
solid
#d8d8d8
;
box-sizing
:
border-box
;
padding
:
0
10px
;
cursor
:
pointer
;
&
:hover
,
&
:active
{
background
:
#d8d8d8
;
}
}
.active
{
background
:
#9dc7fb
!
important
;
color
:
#ffffff
;
}
}
}
.process_information
{
width
:
64%
;
border
:
1px
solid
#d8d8d8
;
border-top
:
none
;
border-radius
:
6px
;
overflow
:
hidden
;
.infor_title
{
height
:
60px
;
background-color
:
cornflowerblue
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
>
div
{
width
:
20%
;
font-size
:
18px
;
color
:
#ffffff
;
text-align
:
center
;
}
}
.infor_main
{
height
:
350px
;
// border-bottom: 1px solid #d8d8d8;
overflow
:
auto
!
important
;
&
:
:-
webkit-scrollbar
{
display
:
none
;
}
.list_cell
{
line-height
:
45px
;
height
:
45px
;
box-sizing
:
border-box
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
border-bottom
:
1px
solid
#d8d8d8
;
>
div
{
width
:
20%
;
font-size
:
18px
;
text-align
:
center
;
}
}
}
}
}
.none
{
text-align
:
center
;
padding-top
:
50px
;
color
:
#d8d8d8
;
}
.bottom
{
width
:
100%
;
// height: 220px;
min-height
:
220px
;
height
:
calc
(
100vh
-
510px
);
margin-top
:
20px
;
overflow
:
hidden
;
border
:
1px
solid
#d8d8d8
;
border-top
:
none
;
border-radius
:
6px
;
.detail_title
{
width
:
100%
;
height
:
40px
;
background-color
:
cornflowerblue
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
.tab_cell
{
color
:
#ffffff
;
font-size
:
18px
;
text-align
:
center
;
width
:
5%
;
&
:nth-child
(
1
)
{
width
:
10%
;
}
&
:nth-child
(
2
),
&
:nth-child
(
3
),
&
:nth-child
(
4
)
{
width
:
8%
;
}
&
:last-child
{
width
:
6%
;
}
}
}
.detail_main
{
height
:
calc
(
100vh
-
550px
);
min-height
:
180px
;
width
:
100%
;
overflow
:
auto
!
important
;
&
:
:-
webkit-scrollbar
{
display
:
none
;
}
.list_cell
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
height
:
35px
;
line-height
:
35px
;
border-bottom
:
1px
solid
#d8d8dd
;
width
:
100%
;
span
{
width
:
5%
;
text-align
:
center
;
&
:nth-child
(
1
)
{
width
:
10%
;
}
&
:nth-child
(
2
),
&
:nth-child
(
3
),
&
:nth-child
(
4
)
{
width
:
8%
;
}
&
:last-child
{
width
:
6%
;
}
}
}
}
}
</
style
>
FTT.Board.VueUI/static/js/configuration.js
0 → 100644
View file @
744cc1fb
window
.
apiUrl
=
'http://jhdsoft.gicp.net:9201/ftt_mes2'
,
window
.
companyCode
=
'8901'
\ No newline at end of file
FTT.Board.rar
0 → 100644
View file @
744cc1fb
File added
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment