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
Hide 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
{
...
...
@@ -15,22 +17,22 @@
display
:
flex
!important
;
align-items
:
center
!important
;
justify-content
:
flex-end
!important
;
margin
:
0
!important
;
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,181 +21,217 @@ 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
)
export
default
new
Router
({
// mode: 'history',
// base: config.ProjectName,//
linkActiveClass
:
'active'
,
routes
:
[
{
path
:
'/'
,
name
:
'主页'
,
component
:
home
,
children
:
[
{
path
:
'/boardlist'
,
name
:
'boardlist'
,
meta
:
{
title
:
'看板列表'
,
},
component
:
boardlist
,
},
{
path
:
'/chartlist'
,
name
:
'chartlist'
,
meta
:
{
title
:
'图表列表'
,
},
component
:
chartList
,
},
{
path
:
'/chartdemoList'
,
name
:
'chartDemoList'
,
meta
:
{
title
:
'图表列表2'
,
},
component
:
chartDemoList
,
},
{
path
:
'/zcList'
,
name
:
'zcList'
,
meta
:
{
title
:
'车间配置'
,
},
component
:
ZCList
,
},
]
},
{
path
:
'/board'
,
name
:
'board'
,
meta
:
{
title
:
'看板'
,
},
component
:
board
,
},
{
path
:
'/pie'
,
name
:
'pie'
,
meta
:
{
title
:
'饼图'
,
},
component
:
chartPie
,
},
{
path
:
'/bar'
,
name
:
'bar'
,
meta
:
{
title
:
'柱状图'
,
},
component
:
chartBar
,
},
{
path
:
'/radar'
,
name
:
'radar'
,
meta
:
{
title
:
'雷达图'
,
},
component
:
chartRadar
,
},
{
path
:
'/test'
,
name
:
'test'
,
meta
:
{
title
:
'测试'
,
},
component
:
test
,
},
{
path
:
'/scatter'
,
name
:
'scatter'
,
meta
:
{
title
:
'散点图'
,
},
component
:
chartScatter
,
},
{
path
:
'/line'
,
name
:
'line'
,
meta
:
{
title
:
'折线图'
,
},
component
:
chartLine
,
},
{
path
:
'/chartdemo'
,
name
:
'chartdemo'
,
meta
:
{
title
:
'图表模板'
,
},
component
:
chartDemo
,
},{
path
:
'/chartdemo1'
,
name
:
'chartdemo1'
,
meta
:
{
title
:
'图表模板1'
,
},
component
:
chartDemo1
,
},
{
path
:
'/zcList'
,
name
:
'zcList'
,
meta
:
{
title
:
'车间选择'
,
},
component
:
ZCList
,
},
{
path
:
'/viewZC'
,
name
:
'viewZC'
,
meta
:
{
title
:
'车间展示'
,
},
component
:
ViewZC
,
},
{
path
:
'/viewCX'
,
name
:
'viewCX'
,
meta
:
{
title
:
'车间展示'
,
},
component
:
ViewCX
,
},
{
path
:
'/viewXY'
,
name
:
'viewXY'
,
meta
:
{
title
:
'鑫源看板'
,
},
component
:
ViewXY
,
},
{
path
:
'/Efficiency'
,
name
:
'Efficiency'
,
meta
:{
title
:
'工厂动态效率展示'
},
component
:
Efficiency
},
{
path
:
'/dataShow'
,
name
:
'dataShow'
,
meta
:{
title
:
'样品运行控制中心'
},
component
:
DataShow
},
{
path
:
'/searchSOP'
,
name
:
'searchSOP'
,
meta
:{
title
:
'查询SOP'
},
component
:
SearchSOP
}
],
// mode: 'history',
// base: config.ProjectName,//
linkActiveClass
:
'active'
,
routes
:
[{
path
:
'/'
,
name
:
'主页'
,
component
:
home
,
children
:
[{
path
:
'/boardlist'
,
name
:
'boardlist'
,
meta
:
{
title
:
'看板列表'
,
},
component
:
boardlist
,
},
{
path
:
'/chartlist'
,
name
:
'chartlist'
,
meta
:
{
title
:
'图表列表'
,
},
component
:
chartList
,
},
{
path
:
'/chartdemoList'
,
name
:
'chartDemoList'
,
meta
:
{
title
:
'图表列表2'
,
},
component
:
chartDemoList
,
},
{
path
:
'/zcList'
,
name
:
'zcList'
,
meta
:
{
title
:
'车间配置'
,
},
component
:
ZCList
,
},
]
},
{
path
:
'/board'
,
name
:
'board'
,
meta
:
{
title
:
'看板'
,
},
component
:
board
,
},
{
path
:
'/pie'
,
name
:
'pie'
,
meta
:
{
title
:
'饼图'
,
},
component
:
chartPie
,
},
{
path
:
'/bar'
,
name
:
'bar'
,
meta
:
{
title
:
'柱状图'
,
},
component
:
chartBar
,
},
{
path
:
'/radar'
,
name
:
'radar'
,
meta
:
{
title
:
'雷达图'
,
},
component
:
chartRadar
,
},
{
path
:
'/test'
,
name
:
'test'
,
meta
:
{
title
:
'测试'
,
},
component
:
test
,
},
{
path
:
'/scatter'
,
name
:
'scatter'
,
meta
:
{
title
:
'散点图'
,
},
component
:
chartScatter
,
},
{
path
:
'/line'
,
name
:
'line'
,
meta
:
{
title
:
'折线图'
,
},
component
:
chartLine
,
},
{
path
:
'/chartdemo'
,
name
:
'chartdemo'
,
meta
:
{
title
:
'图表模板'
,
},
component
:
chartDemo
,
},
{
path
:
'/chartdemo1'
,
name
:
'chartdemo1'
,
meta
:
{
title
:
'图表模板1'
,
},
component
:
chartDemo1
,
},
{
path
:
'/zcList'
,
name
:
'zcList'
,
meta
:
{
title
:
'车间选择'
,
},
component
:
ZCList
,
},
{
path
:
'/viewZC'
,
name
:
'viewZC'
,
meta
:
{
title
:
'车间展示'
,
},
component
:
ViewZC
,
},
{
path
:
'/viewCX'
,
name
:
'viewCX'
,
meta
:
{
title
:
'车间展示'
,
},
component
:
ViewCX
,
},
{
path
:
'/viewXY'
,
name
:
'viewXY'
,
meta
:
{
title
:
'鑫源看板'
,
},
component
:
ViewXY
,
},
{
path
:
'/Efficiency'
,
name
:
'Efficiency'
,
meta
:
{
title
:
'工厂动态效率展示'
},
component
:
Efficiency
},
{
path
:
'/dataShow'
,
name
:
'dataShow'
,
meta
:
{
title
:
'样品运行控制中心'
},
component
:
DataShow
},
{
path
:
'/searchSOP'
,
name
:
'searchSOP'
,
meta
:
{
title
:
'查询SOP'
},
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