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
411856b4
Commit
411856b4
authored
Nov 02, 2020
by
zhanglongtao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
工时分配列表页面
parent
639c8047
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
568 additions
and
4 deletions
+568
-4
api.js
pages/produce/execute/api.js
+3
-0
index.vue
pages/produce/execute/taskTime/index.vue
+11
-3
search.vue
pages/produce/search.vue
+2
-1
api.js
pages/produce/workHour/api.js
+15
-0
index.vue
pages/produce/workHour/index.vue
+537
-0
No files found.
pages/produce/execute/api.js
View file @
411856b4
...
...
@@ -74,6 +74,9 @@ export default {
subupdatehours
(
params
)
{
// 编辑 提交修改的工时
return
Api
.
post
(
`
${
technologyUrl
}
workhours/updatecount`
,
params
);
},
workhourstatus
(
params
){
// 修改工时状态为提交
return
Api
.
get
(
`
${
PlanUrl
}
/orderexecutenew/workhourstatus`
,
params
);
},
//工时分配--删除一条
deletehours
(
params
)
{
return
Api
.
delete
(
`
${
technologyUrl
}
workhours/delete?id=`
+
params
);
...
...
pages/produce/execute/taskTime/index.vue
View file @
411856b4
...
...
@@ -48,6 +48,7 @@
item
.
workHour
}}
</span>
<InputNumber
style=
"margin: 10px 0"
v-show=
"item.showInputWorkHour"
:max=
"maxHour"
:min=
"1"
...
...
@@ -319,15 +320,22 @@ export default {
}
Api
.
subupdatehours
(
this
.
cardMan
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
this
.
$Message
.
success
(
"已提交"
);
this
.
laodHorse
();
let
id
=
this
.
$route
.
query
.
id
;
Api
.
workhourstatus
({
Id
:
id
}).
then
((
res
)
=>
{
if
(
res
.
success
)
{
this
.
$Message
.
success
(
"已提交"
);
this
.
laodHorse
();
}
else
{
this
.
$Message
.
error
(
"提交失败..."
);
}
});
}
else
{
this
.
$Message
.
error
(
"提交失败..."
);
}
});
},
editCancel
()
{
this
.
laodHorse
()
this
.
laodHorse
()
;
},
cancel
()
{
this
.
addmodal
=
false
;
...
...
pages/produce/search.vue
View file @
411856b4
...
...
@@ -68,9 +68,10 @@ export default {
routingHeaderId
:
{
op
:
"Equal"
,
value
:
null
,
show
:
false
},
routingDetailId
:
{
op
:
"Equal"
,
value
:
null
,
show
:
false
},
dispatchStatus
:{
op
:
"Equal"
,
value
:
null
,
show
:
true
},
//工单状态
status
:
{
op
:
"Equal"
,
value
:
null
,
show
:
true
},
//订单状态
status
:
{
op
:
"Equal"
,
value
:
null
,
show
:
true
},
//订单状态
beginTime
:
{
op
:
"Range"
,
value
:
null
,
show
:
true
},
endTime
:
{
op
:
"Range"
,
value
:
null
,
show
:
true
},
submitState
:{
op
:
"Equal"
,
value
:
null
,
show
:
true
},
}
};
},
...
...
pages/produce/workHour/api.js
0 → 100644
View file @
411856b4
import
Api
from
'@/plugins/request'
export
default
{
index
:
`
${
PlanUrl
}
/orderexecutenew/paged_img_work_hour`
,
paged
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutenew/paged_img_work_hour`
,
params
);
},
// getCardList(params) {
// return Api.post(`${PlanUrl}/orderexecutenew/list`, params);
// },
// //过程质量填报表
// getentryqcrecordlist_new(params) {
// return Api.get(`${PlanUrl}orderexecutequalityrecord/getentryqcrecordlist_new`, params);
// },
}
\ No newline at end of file
pages/produce/workHour/index.vue
0 → 100644
View file @
411856b4
<
template
>
<div
class=
"aps-r"
>
<DataGrid
:columns=
"columns"
ref=
"grid"
:batch=
"false"
:type=
"typeInfo"
:span=
"6"
:lazy=
"true"
:conditions=
"easySearch"
:action=
"action"
:gutter=
"40"
>
<template
slot=
"easySearch"
>
<Form
ref=
"formInline"
:model=
"easySearch"
inline
>
<FormItem>
<RadioGroup
v-model=
"easySearch.SubmitState.value"
@
on-change=
"submitStateChange"
>
<Radio
label=
"0"
>
全部
</Radio>
<Radio
label=
"1"
>
未提交
</Radio>
<Radio
label=
"2"
>
已提交
</Radio>
</RadioGroup>
</FormItem>
<!--
<FormItem
prop=
"keys"
>
<Input
placeholder=
"请输入订单编号/产品名称/图号"
v-model=
"easySearch.keys.value"
v-width=
"260"
clearable
/>
</FormItem>
-->
<!--
<FormItem>
<Dictionary
code=
"taskList.status"
placeholder=
"请选择工单状态"
:multiple=
"true"
v-model=
"easySearch.DispatchStatus.value"
></Dictionary>
</FormItem>
-->
<!--
<FormItem>
<Button
type=
"primary"
@
click=
"search"
>
查询
</Button>
</FormItem>
-->
</Form>
</
template
>
<
template
slot=
"searchForm"
>
<Search
/>
</
template
>
<
template
slot=
"buttons"
>
<Button
:icon=
"iconInfo"
shape=
"circle"
:title=
"titleInfo"
@
click=
"changeShwo"
></Button>
</
template
>
<
template
slot=
"card"
slot-scope=
"{ row }"
>
<div
class=
"body"
@
click=
"
toExecute(
row.id,
row.orderId,
row.executeId,
row.routingHeaderId,
row.routingDetailId,
row.quantity,
row.status,
row.mesCode,
row.productName,
row.drawnNumber
)
"
>
<Row
class=
"title-i"
>
<Col
:span=
"10"
class=
"order-code"
>
<Ellipsis
:text=
"row.productName"
:lines=
"1"
tooltip
transfer
/>
</Col>
<Col
:span=
"10"
class=
"order-code"
>
<Ellipsis
:text=
"row.mesCode"
:lines=
"1"
tooltip
transfer
/>
</Col>
<Col
:span=
"4"
>
<div
class=
"statuBg"
:style=
"tdStyle(row.status)"
></div>
<div
class=
"boxTitle"
>
<div
class=
"text"
>
<state
code=
"taskList.status"
ref=
"state"
:value=
"row.status"
type=
"text"
:color=
"false"
></state>
</div>
</div>
</Col>
</Row>
<div
class=
"panel-text"
>
<Row>
<Col
span=
"8"
>
<div
class=
"img-i"
>
<img
:src=
"downUrl + row.productUrl"
v-if=
"row.productUrl"
/>
<img
src=
"@/assets/imgicon/chan_Pin.png"
v-else
width=
"100%"
height=
"100%"
/>
</div>
<!--
<img
:src=
"getUrl(row.productUrl)"
width=
"120"
height=
"120"
:title=
"row.productUrl"
style=
"border:#cacbd0 dashed 1px"
onerror=
"this.src='/imgicon/noPic_product.png';"
/>
-->
</Col>
<Col
span=
"16"
class=
"row"
>
<p>
{{
l
(
"beginTime"
)
}}
:
{{
row
.
beginTime
}}
</p>
<p>
<span
v-if=
"getStatus(row.status)"
>
{{
l
(
"planEndTime"
)
}}
:
</span
>
<span
v-else
>
{{
l
(
"endTime"
)
}}
:
</span>
{{
row
.
endTime
}}
</p>
<p
v-if=
"getStatus(row.status) && getTimes(row.endTime) > 0"
>
剩余时间:
<OutputTime
:value=
"getTimes(row.endTime)"
style=
"display: inline"
></OutputTime>
</p>
<Row>
<Col
span=
"12"
>
<p>
{{
l
(
"quantity"
)
}}
:
{{
row
.
quantity
}}
</p></Col
>
<Col
span=
"12"
><p>
工序号:
{{
row
.
taskSeq
}}
</p></Col
>
</Row>
<p>
工序名称:
{{
row
.
taskName
}}
</p>
</Col>
</Row>
<Row
class=
"rowBottom"
>
<Col
span=
"14"
>
{{
l
(
"drawnNumber"
)
}}
:
{{
row
.
drawnNumber
}}
</Col>
<Col
span=
"10"
class=
"tr"
>
<Icon
type=
"md-alert"
size=
"18"
color=
"#FFA000"
v-if=
"
getStatus(row.status) &&
getTimes(row.endTime)
<
86400
&&
getTimes
(
row
.
endTime
)
>
0
"
/>
<span
style=
"color: #ffa000"
v-if=
"
getStatus(row.status) &&
getTimes(row.endTime)
<
86400
&&
getTimes
(
row
.
endTime
)
>
0
"
>预警
</span
>
<Icon
type=
"md-timer"
size=
"18"
color=
"#FE7777"
v-if=
"getStatus(row.status) && compareTime(row.endTime)"
/>
<span
style=
"color: #fe7777"
v-if=
"getStatus(row.status) && compareTime(row.endTime)"
>
超期
</span
>
</Col>
</Row>
</div>
</div>
</
template
>
</DataGrid>
</div>
</template>
<
script
>
import
Api
from
"./api"
;
import
Search
from
"../search"
;
export
default
{
name
:
"starOrder"
,
components
:
{
Search
,
},
data
()
{
return
{
action
:
Api
.
index
,
easySearch
:
{
keys
:
{
op
:
"mesCode,productName,drawnNumber"
,
value
:
null
,
},
DispatchStatus
:
{
op
:
"In"
,
value
:
[
0
],
},
SubmitState
:
{
op
:
"In"
,
value
:
"1"
,
},
},
downUrl
:
fileUrlDown
,
columns
:
[
{
title
:
this
.
l
(
"Id"
),
key
:
"id"
,
width
:
80
,
align
:
"left"
,
},
{
title
:
this
.
l
(
"mesCode"
),
key
:
"mesCode"
,
width
:
240
,
align
:
"left"
,
},
{
key
:
"status"
,
title
:
this
.
l
(
"status"
),
align
:
"center"
,
high
:
true
,
code
:
"taskList.status"
,
width
:
120
,
},
{
key
:
"productName"
,
title
:
this
.
l
(
"productName"
),
align
:
"left"
,
high
:
true
,
},
{
key
:
"drawnNumber"
,
title
:
this
.
l
(
"drawnNumber"
),
align
:
"left"
,
high
:
true
,
},
{
key
:
"quantity"
,
title
:
this
.
l
(
"quantity"
),
align
:
"right"
,
width
:
120
,
high
:
true
,
},
{
key
:
"beginTime"
,
title
:
this
.
l
(
"beginTime"
),
align
:
"center"
,
width
:
180
,
high
:
true
,
},
{
key
:
"endTime"
,
title
:
this
.
l
(
"endTime"
),
align
:
"center"
,
width
:
180
,
high
:
true
,
},
{
title
:
"操作"
,
key
:
"action"
,
width
:
140
,
align
:
"center"
,
render
:
(
h
,
params
)
=>
{
return
h
(
"div"
,
{
class
:
"action"
,
},
[
h
(
"op"
,
{
attrs
:
{
oprate
:
"edit"
,
},
on
:
{
click
:
()
=>
this
.
toExecute
(
params
.
row
.
id
,
params
.
row
.
orderId
,
params
.
row
.
executeId
,
params
.
row
.
routingHeaderId
,
params
.
row
.
routingDetailId
,
params
.
row
.
quantity
,
params
.
row
.
status
,
params
.
row
.
mesCode
,
params
.
row
.
productName
,
params
.
row
.
drawnNumber
),
},
},
"查看"
),
]
);
},
},
],
typeInfo
:
"card"
,
iconInfo
:
"md-apps"
,
titleInfo
:
"卡片模式"
,
nowTime
:
new
Date
().
getTime
(),
//页面当前打开时间
};
},
created
()
{
let
oldStr
=
localStorage
.
getItem
(
"admin"
);
let
userlist
=
this
.
$store
.
getters
.
getUser
(
2
);
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
mounted
()
{
this
.
search
();
},
methods
:
{
search
()
{
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
},
submitStateChange
(
value
)
{
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
},
toExecute
(
id
,
orderId
,
executeId
,
headid
,
routingDetailId
,
quantity
,
status
,
mesCode
,
productName
,
drawnNumber
)
{
//跳转到对应操作页面 获取id:this.$route.query.id
this
.
$router
.
push
({
path
:
"/produce/execute"
,
query
:
{
id
:
id
,
//工单ID
orderId
:
orderId
,
//订单id
executeId
:
executeId
,
//订单执行表id
headid
:
headid
,
//工艺规程id
routid
:
routingDetailId
,
//工序ID
quantity
:
quantity
,
//派工数量
dispatchStatus
:
status
,
mesCode
:
mesCode
,
productName
:
productName
,
drawnNumber
:
drawnNumber
,
},
});
},
tdStyle
(
val
)
{
//动态根据状态值加载状态值对应的颜色
let
temDic
=
this
.
$store
.
getters
.
dictionaryByKey
(
"taskList.status"
);
let
temColor
=
"#666"
;
temDic
.
forEach
((
data
)
=>
{
if
(
Number
(
data
.
code
)
==
val
)
{
temColor
=
data
.
color
;
}
});
var
style
=
{};
style
[
"border-top"
]
=
" solid 38px "
+
temColor
;
return
style
;
},
changeShwo
()
{
//显示模式切换
if
(
this
.
typeInfo
==
"card"
)
{
this
.
typeInfo
=
"table"
;
this
.
iconInfo
=
"md-list"
;
this
.
titleInfo
=
"列表模式"
;
}
else
{
this
.
typeInfo
=
"card"
;
this
.
iconInfo
=
"md-apps"
;
this
.
titleInfo
=
"卡片模式"
;
}
},
compareTime
(
dateStart
)
{
//比较当前时间和计划完成时间
let
planEndTime
=
new
Date
(
dateStart
).
getTime
();
let
res
=
true
;
if
(
this
.
nowTime
-
planEndTime
>
0
)
{
res
=
true
;
}
else
{
res
=
false
;
}
return
res
;
},
getTimes
(
dateStart
)
{
//返回计划完成时间和当前时间的差值
let
planEndTime
=
new
Date
(
dateStart
).
getTime
();
let
res
=
0
;
if
(
this
.
nowTime
-
planEndTime
>
0
)
{
res
=
0
;
}
else
{
res
=
(
this
.
nowTime
-
planEndTime
)
/
1000
;
}
return
res
;
},
getStatus
(
status
)
{
//根据状态返回未开工、执行中、暂停状态的bool值
let
res
=
true
;
if
(
status
==
12
||
status
==
14
||
status
==
5
)
{
res
=
true
;
}
else
{
res
=
false
;
}
return
res
;
},
getUrl
(
url
)
{
//返回img需要显示的src值
let
tempUrl
=
""
;
if
(
url
&&
url
.
length
>
0
)
{
tempUrl
=
this
.
downUrl
+
url
;
}
else
{
tempUrl
=
iconImg
+
"noPic_product.png"
;
}
return
tempUrl
;
},
l
(
key
)
{
let
vkey
=
"order_list"
+
"."
+
key
;
return
this
.
$t
(
vkey
)
||
key
;
},
},
};
</
script
>
<
style
lang=
"less"
>
.aps-r {
// width: 100%;
// height: 100%;
// overflow: auto;
// padding: 15px 0 15px 15px;
height: calc(100vh - 110px);
.body {
background: white;
border-radius: 4px 0 4px 4px;
border: #cacbd0 solid 1px;
margin-bottom: 30px;
.title-i {
padding: 0 0 0 8px;
height: 38px;
line-height: 38px;
color: #2680eb;
font-size: 14px;
font-weight: bold;
border-bottom: #cacbd0 dotted 1px;
.btn-click {
text-align: right;
a {
color: #fff;
}
a:hover {
color: #249e91;
}
}
}
.panel-text {
padding: 5px 8px;
.img-i {
width: 120px;
height: 120px;
overflow: hidden;
border: #cacbd0 dashed 1px;
//img {
// width: 90px;
// height: 90px;
//}
}
.row {
color: #666666;
padding-left: 10px;
p {
line-height: 30px;
}
}
}
}
.body:hover {
cursor: pointer;
box-shadow: 0 0 10px #888888;
}
}
.statuBg {
height: 0px;
width: 0;
border-left: solid 50px transparent;
float: right;
margin-right: -1px;
}
.boxTitle {
color: white;
float: right;
margin-top: -42px;
/* Rotate div */
transform: rotate(37deg);
-ms-transform: rotate(37deg);
/* Internet Explorer */
-moz-transform: rotate(37deg);
/* Firefox */
-webkit-transform: rotate(37deg);
/* Safari 和 Chrome */
-o-transform: rotate(37deg);
/* Opera */
.text {
font-size: 8px;
font-weight: normal;
}
}
.rowBottom .ivu-col-span-10 {
height: 24px;
padding-right: 10px;
}
</
style
>
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