Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mes-ui
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
周远喜
mes-ui
Commits
d33fbf21
Commit
d33fbf21
authored
Jul 17, 2020
by
renjintao
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'product' of git.mes123.com:zhouyx/mes-ui into product
parents
91adb124
142cbf51
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
254 additions
and
196 deletions
+254
-196
excute.vue
pages/aps/aps/components/excute.vue
+3
-3
options.vue
pages/aps/aps/options.vue
+59
-47
echart2.vue
pages/dncmnc/mnc/compose/echart2.vue
+1
-1
index.vue
pages/dncmnc/mnc/index.vue
+1
-3
mnc.less
pages/dncmnc/mnc/mnc.less
+14
-3
monitoring.vue
pages/dncmnc/mnc/monitoring.vue
+4
-4
index.js
plugins/request/index.js
+172
-134
account.js
store/admin/account.js
+0
-1
No files found.
pages/aps/aps/components/excute.vue
View file @
d33fbf21
<
template
>
<div
style=
"padding: 0;"
class=
"excute"
>
<DataGrid
style=
"margin-top:2px; margin-bottom: -
20
px;"
style=
"margin-top:2px; margin-bottom: -
5
px;"
:columns=
"columns"
ref=
"grid"
:easy=
"false"
...
...
@@ -9,8 +9,8 @@
:set=
"false"
:border=
"false"
:data=
"data1"
:page=
"false"
:height=
"gridHeight"
:page=
"false"
:size=
"size"
></DataGrid>
<Modal
v-model=
"editModal"
title=
"编辑"
footer-hide
width=
"800"
>
...
...
@@ -60,7 +60,7 @@ export default {
insertlModal
:
false
,
rowIndex
:
null
,
curId
:
0
,
gridHeight
:
50
,
gridHeight
:
1
50
,
size
:
"small"
,
columns
:
[
{
title
:
" "
,
width
:
130
},
...
...
pages/aps/aps/options.vue
View file @
d33fbf21
...
...
@@ -28,7 +28,11 @@
<Icon
type=
"md-git-compare"
/>
</a>
<DropdownMenu
slot=
"list"
style=
"text-align: center;"
>
<DropdownItem
v-for=
"li in items"
:key=
"li.value"
v-dragging=
"
{ item: li, list: items}">
<DropdownItem
v-for=
"li in items"
:key=
"li.value"
v-dragging=
"
{ item: li, list: items}"
>
<a
href=
"#"
>
<Icon
type=
"md-apps"
/>
</a>
...
...
@@ -145,7 +149,12 @@ import Api from "./api";
export
default
{
data
()
{
return
{
items
:[{
name
:
"是否多台"
,
value
:
"multiple"
},{
name
:
"转序规则"
,
value
:
"planState"
},{
name
:
"加班策略"
,
value
:
"over"
},{
name
:
"是否离散"
,
value
:
"dis"
}],
items
:
[
{
name
:
"是否多台"
,
value
:
"multiple"
},
{
name
:
"转序规则"
,
value
:
"planState"
},
{
name
:
"加班策略"
,
value
:
"over"
},
{
name
:
"是否离散"
,
value
:
"dis"
}
],
entity
:
{
partTaskPk
:
0
,
opTaskPk
:
0
,
...
...
@@ -158,10 +167,10 @@ export default {
overTime
:
"不加班"
,
//"六日加班", 不加班 加班
efficiencyValue
:
11
,
// 效率系数, 必须大于 0
shopId
:
-
1
,
dis
:
false
,
isDiscrete
:
"否"
,
//是否离散 是否
dis
:
false
,
isDiscrete
:
"否"
,
//是否离散 是否
discrete
:
1
,
//离散数值 必须大于 1
discrete_percent
:
0
,
discrete_percent
:
0
,
multiple
:
false
,
multipleEquip
:
"否"
,
//"是否多台安排设备", 否 是
multipleCount
:
1
,
//多台数量
...
...
@@ -235,12 +244,12 @@ export default {
this
.
apsGet
();
//获取参数级别和转序等的关系
},
mounted
()
{
this
.
$dragging
.
$on
(
'dragged'
,
({
value
})
=>
{
localStorage
.
setItem
(
"apsitems"
,
JSON
.
stringify
(
value
.
list
));
})
var
items
=
localStorage
.
getItem
(
"apsitems"
);
if
(
items
)
{
this
.
items
=
JSON
.
parse
(
items
);
this
.
$dragging
.
$on
(
"dragged"
,
({
value
})
=>
{
localStorage
.
setItem
(
"apsitems"
,
JSON
.
stringify
(
value
.
list
));
})
;
var
items
=
localStorage
.
getItem
(
"apsitems"
);
if
(
items
)
{
this
.
items
=
JSON
.
parse
(
items
);
}
},
methods
:
{
...
...
@@ -264,12 +273,12 @@ export default {
});
},
setParameter
(
v
)
{
this
.
entity
.
multiple
=
false
;
this
.
entity
.
planState
=
false
;
this
.
entity
.
over
=
false
;
this
.
entity
.
dis
=
false
;
for
(
var
i
=
0
;
i
<
v
;
i
++
)
{
this
.
entity
[
this
.
items
[
i
].
value
]
=
true
;
this
.
entity
.
multiple
=
false
;
this
.
entity
.
planState
=
false
;
this
.
entity
.
over
=
false
;
this
.
entity
.
dis
=
false
;
for
(
var
i
=
0
;
i
<
v
;
i
++
)
{
this
.
entity
[
this
.
items
[
i
].
value
]
=
true
;
}
},
handleSubmit
()
{
...
...
@@ -284,7 +293,7 @@ export default {
this
.
entity
.
flog
=
1
;
return
;
}
if
(
this
.
entity
.
multipleEquipPks
)
{
if
(
this
.
entity
.
multipleEquipPks
)
{
this
.
entity
.
multipleEquipIds
=
this
.
entity
.
multipleEquipPks
.
join
();
}
//
...
...
@@ -314,13 +323,14 @@ export default {
let
vkey
=
"mes_op_task_plan_simulate"
+
"."
+
key
;
return
this
.
$t
(
vkey
)
||
key
;
},
setPercent
(
v
){
this
.
entity
.
discrete
=
Math
.
round
(((
this
.
count
-
1
)
*
v
-
this
.
count
)
/
100
);
},
setDiscrete
(
v
){
this
.
entity
.
discrete_percent
=
(
(
100
*
this
.
count
-
100
*
this
.
entity
.
discrete
)
/
(
this
.
count
-
1
)
setPercent
(
v
)
{
this
.
entity
.
discrete
=
Math
.
round
(
((
this
.
count
-
1
)
*
v
-
this
.
count
)
/
100
);
},
setDiscrete
(
v
)
{
this
.
entity
.
discrete_percent
=
(
100
*
this
.
count
-
100
*
this
.
entity
.
discrete
)
/
(
this
.
count
-
1
);
}
},
computed
:
{
...
...
@@ -346,36 +356,38 @@ export default {
},
opTaskPk
(
v
,
n
)
{
this
.
entity
.
opTaskPk
=
v
;
if
(
v
>
0
){
console
.
log
(
"detail"
,
this
.
row
);
if
(
v
>
0
)
{
console
.
log
(
"detail"
,
this
.
row
);
let
entity
=
{
let
entity
=
{
partTaskPk
:
this
.
row
.
part_task_pk
,
opTaskPk
:
this
.
row
.
op_task_pk
,
taskSeq
:
this
.
row
.
task_seq
,
flog
:
0
,
//参数应用范围
calId
:
-
1
,
planState
:
this
.
row
.
plan_method
==
"平行"
,
calId
:
parseInt
(
this
.
row
.
cal_id
)
,
planState
:
this
.
row
.
plan_method
==
"平行"
,
planMethod
:
this
.
row
.
plan_method
,
// 平行 重叠
over
:
this
.
row
.
over_time
==
"加班"
,
over
:
this
.
row
.
over_time
==
"加班"
,
overTime
:
this
.
row
.
over_time
,
//"六日加班", 不加班 加班
efficiencyValue
:
this
.
row
.
efficiency_value
|
1
,
// 效率系数, 必须大于 0
efficiencyValue
:
this
.
row
.
efficiency_value
|
1
,
// 效率系数, 必须大于 0
shopId
:
-
1
,
isDiscrete
:
this
.
row
.
isdiscrete
==
"是"
,
discrete
:
this
.
row
.
discrete_value
|
1
,
//离散数值 必须大于 1
multiple
:
this
.
row
.
multi_machine
==
"是"
,
multipleEquip
:
this
.
row
.
multi_machine
|
"否"
,
//"是否多台安排设备", 否 是
dis
:
this
.
row
.
isdiscrete
==
"是"
,
isDiscrete
:
this
.
row
.
isdiscrete
?
"是"
:
"否"
,
//是否离散 是否
discrete
:
this
.
row
.
discrete_value
|
1
,
//离散数值 必须大于 1
multiple
:
this
.
row
.
multi_machine
==
"是"
,
multipleEquip
:
this
.
row
.
multi_machine
|
"否"
,
//"是否多台安排设备", 否 是
multipleCount
:
1
,
//多台数量
multipleEquipPks
:
[],
multipleEquipIds
:
""
,
//"设备id", 用英文逗号分隔
}
this
.
entity
=
entity
multipleEquipIds
:
""
//"设备id", 用英文逗号分隔
};
this
.
entity
=
entity
;
console
.
warn
(
"detail"
,
this
.
entity
,
this
.
row
);
}
this
.
entity
.
taskSeq
=
this
.
taskSeq
;
},
count
(
v
,
n
)
{
this
.
entity
.
discrete
=
1
;
}
,
}
}
};
</
script
>
...
...
pages/dncmnc/mnc/compose/echart2.vue
View file @
d33fbf21
<
template
>
<div>
<div
id=
"myChart"
style=
"width:380px;height:
300px;margin:0 auto;top:
0px;"
></div>
<div
id=
"myChart"
style=
"width:380px;height:
400px;margin:0 auto;top: 3
0px;"
></div>
</div>
</
template
>
<
script
>
...
...
pages/dncmnc/mnc/index.vue
View file @
d33fbf21
...
...
@@ -118,9 +118,7 @@ export default {
}
},
downUrl
:
fileUrlDown
,
columns
:
{
count
:
7
,
},
columns
:
[],
comondata
:[
{
productName
:
"受电弓"
,
...
...
pages/dncmnc/mnc/mnc.less
View file @
d33fbf21
.new_body{
&{
background: #fff;
}
}
.set_card{
padding: 12px 30px 0;
.set_card_box{
...
...
@@ -18,6 +23,7 @@
width: 150px;
height: 120px;
text-align: center;
margin: 0 auto;
}
.statu_box{
line-height: 30px;
...
...
@@ -32,11 +38,11 @@
margin: 0 10px 0 0;
}
.set_masage{
min-
height: 125px;
height: 125px;
line-height: 25px;
.time_bg{
background: #267feb49;
line-height: 34px
;
margin: 0 auto
;
width: 160px;
text-align: center;
border-radius: 3px;
...
...
@@ -44,8 +50,13 @@
}
.set_masage02{
line-height: 35px;
height: 144px;
text-align: center;
}
}
.echarts02{
height: 462px;
}
}
}
#echarts{
...
...
@@ -58,7 +69,7 @@
.tips_item{
background: #eff1f7;
margin: 20px;
line-height:
3
8px;
line-height:
5
8px;
padding: 0 20px;
.item_top{
border-bottom: 1px solid #b1b1b1;
...
...
pages/dncmnc/mnc/monitoring.vue
View file @
d33fbf21
...
...
@@ -2,7 +2,7 @@
@import "./mnc.less";
</
style
>
<
template
>
<div>
<div
class=
"new_body"
>
<a
class=
"back_href"
@
click=
"goView"
>
<Icon
type=
"ios-undo-outline"
size=
"24"
/>
返回设备监控
</a>
...
...
@@ -74,7 +74,7 @@
<p
class=
"set_top"
>
设备状态
</p>
<div
class=
"set_card_body"
>
<Row>
<Col
span=
"
9
"
>
<Col
span=
"
24
"
>
<div
class=
"set_img statu_box"
>
<img
v-if=
"formData.statu=='关机'"
src=
"../image/guan.png"
alt=
""
>
<img
v-else-if=
"formData.statu=='空闲'"
src=
"../image/kong.png"
alt=
""
>
...
...
@@ -83,7 +83,7 @@
<p>
{{
formData
.
statu
}}
</p>
</div>
</Col>
<Col
span=
"
15
"
>
<Col
span=
"
24
"
>
<div
class=
"set_masage set_masage02"
>
<p>
当前状态开始时间:
</p>
<p
class=
"time_bg"
>
11:45:05
</p>
...
...
@@ -96,7 +96,7 @@
</div>
<div
class=
"set_card_box"
>
<p
class=
"set_top"
>
加工状态统计
</p>
<div
class=
"center"
>
<div
class=
"center
echarts02
"
>
<Echart2
></Echart2>
</div>
</div>
...
...
plugins/request/index.js
View file @
d33fbf21
...
...
@@ -2,18 +2,21 @@ import axios from 'axios';
import
util
from
'@/libs/util'
;
import
Setting
from
'@/setting'
;
import
QS
from
'querystring'
;
import
{
Message
,
Notice
}
from
'view-design'
;
import
{
Message
,
Notice
}
from
'view-design'
;
// 创建一个错误
function
errorCreate
(
msg
)
{
function
errorCreate
(
msg
)
{
const
err
=
new
Error
(
msg
);
errorLog
(
err
);
throw
err
;
}
// 记录和显示错误
function
errorLog
(
err
)
{
if
(
err
&&
err
.
response
&&
err
.
response
.
status
==
500
)
{
function
errorLog
(
err
)
{
if
(
err
&&
err
.
response
&&
err
.
response
.
status
==
500
)
{
console
.
log
(
err
.
response
)
Message
.
error
({
content
:
err
.
response
.
data
.
error
.
message
,
...
...
@@ -36,25 +39,25 @@ function errorLog (err) {
console
.
log
(
err
);
}
// 显示提示,可配置使用 iView 的 $Message 还是 $Notice 组件来显示
// if (Setting.errorModalType === 'Message') {
// Message.error({
// content: err.message,
// duration: Setting.modalDuration
// });
// } else if (Setting.errorModalType === 'Notice') {
// Notice.error({
// title: '提示',
// desc: err.message,
// duration: Setting.modalDuration
// });
// }
// if (Setting.errorModalType === 'Message') {
// Message.error({
// content: err.message,
// duration: Setting.modalDuration
// });
// } else if (Setting.errorModalType === 'Notice') {
// Notice.error({
// title: '提示',
// desc: err.message,
// duration: Setting.modalDuration
// });
// }
}
// 创建一个 axios 实例
const
service
=
axios
.
create
({
baseURL
:
Setting
.
apiBaseURL
,
timeout
:
60000
,
// 请求超时时间
transformRequest
:[(
data
)
=>
{
transformRequest
:
[(
data
)
=>
{
function
dateFormat
(
date
,
fmt
)
{
if
(
null
==
date
||
undefined
==
date
)
return
''
;
var
o
=
{
...
...
@@ -84,9 +87,12 @@ service.defaults.headers.put['Content-Type'] = 'application/json';
service
.
interceptors
.
request
.
use
(
config
=>
{
// 在请求发送之前做一些处理
const
token
=
util
.
cookies
.
get
(
'token'
);
// const token = util.cookies.get('token');
const
token
=
sessionStorage
.
getItem
(
'token'
);
if
(
token
)
{
// 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改
config
.
headers
[
'Authorization'
]
=
'Bearer '
+
token
;
config
.
headers
[
'Authorization'
]
=
'Bearer '
+
token
;
}
return
config
;
},
error
=>
{
...
...
@@ -102,7 +108,9 @@ service.interceptors.response.use(
// dataAxios 是 axios 返回数据中的 data
const
dataAxios
=
response
.
data
;
// 这个状态码是和后端约定的
const
{
code
}
=
dataAxios
;
const
{
code
}
=
dataAxios
;
// 根据 code 进行判断
if
(
code
===
undefined
)
{
// 如果没有 code 代表这不是项目后端开发的接口
...
...
@@ -125,40 +133,70 @@ service.interceptors.response.use(
}
},
error
=>
{
const
token
=
sessionStorage
.
getItem
(
'token'
);
if
(
!
token
)
{
window
.
location
.
href
=
'/account/login'
;
return
;
}
if
(
error
&&
error
.
response
)
{
if
(
error
.
response
.
status
==
"401"
){
if
(
error
.
response
.
status
==
"401"
)
{
window
.
location
.
href
=
'/account/login'
;
return
;
}
switch
(
error
.
response
.
status
)
{
case
400
:
error
.
message
=
'请求错误'
;
break
;
case
401
:
error
.
message
=
'未授权,请登录'
;
break
;
case
403
:
error
.
message
=
'拒绝访问'
;
break
;
case
404
:
error
.
message
=
`请求地址出错:
${
error
.
response
.
config
.
url
}
`
;
break
;
case
408
:
error
.
message
=
'请求超时'
;
break
;
case
500
:
error
.
message
=
'服务器内部错误'
;
break
;
case
501
:
error
.
message
=
'服务未实现'
;
break
;
case
502
:
error
.
message
=
'网关错误'
;
break
;
case
503
:
error
.
message
=
'服务不可用'
;
break
;
case
504
:
error
.
message
=
'网关超时'
;
break
;
case
505
:
error
.
message
=
'HTTP版本不受支持'
;
break
;
default
:
break
;
case
400
:
error
.
message
=
'请求错误'
;
break
;
case
401
:
error
.
message
=
'未授权,请登录'
;
break
;
case
403
:
error
.
message
=
'拒绝访问'
;
break
;
case
404
:
error
.
message
=
`请求地址出错:
${
error
.
response
.
config
.
url
}
`
;
break
;
case
408
:
error
.
message
=
'请求超时'
;
break
;
case
500
:
error
.
message
=
'服务器内部错误'
;
break
;
case
501
:
error
.
message
=
'服务未实现'
;
break
;
case
502
:
error
.
message
=
'网关错误'
;
break
;
case
503
:
error
.
message
=
'服务不可用'
;
break
;
case
504
:
error
.
message
=
'网关超时'
;
break
;
case
505
:
error
.
message
=
'HTTP版本不受支持'
;
break
;
default
:
break
;
}
}
errorLog
(
error
);
// console.warn("Erro:",error)
return
Promise
.
reject
(
error
);
}
);
let
api
=
service
.
get
;
let
get
=
(
url
,
params
)
=>
{
if
(
params
){
return
api
(
url
,{
"params"
:
params
})
}
else
{
let
api
=
service
.
get
;
let
get
=
(
url
,
params
)
=>
{
if
(
params
)
{
return
api
(
url
,
{
"params"
:
params
})
}
else
{
return
api
(
url
)
}
}
service
.
get
=
get
;
service
.
get
=
get
;
export
default
service
;
store/admin/account.js
View file @
d33fbf21
...
...
@@ -37,7 +37,6 @@ export const actions = {
// token 代表用户当前登录状态 建议在网络请求中携带 token
// 如有必要 token 需要定时更新,默认保存一天,可在 setting.js 中修改
// 如果你的 token 不是通过 cookie 携带,而是普通字段,也可视情况存储在 localStorage
console
.
warn
(
res
);
if
(
res
.
result
)
{
util
.
cookies
.
set
(
'uuid'
,
res
.
result
.
userId
);
...
...
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