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
03194a8a
Commit
03194a8a
authored
Nov 04, 2020
by
renjintao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
workHour
parent
c3af3724
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
652 additions
and
463 deletions
+652
-463
api.js
pages/produce/api.js
+3
-1
orderlistWorkHour.vue
pages/produce/execute/components/orderlistWorkHour.vue
+112
-0
index.vue
pages/produce/execute/index.vue
+2
-2
indexWorkHour.vue
pages/produce/execute/indexWorkHour.vue
+142
-0
index.vue
pages/produce/workHour/index.vue
+393
-460
No files found.
pages/produce/api.js
View file @
03194a8a
...
@@ -7,7 +7,9 @@ export default {
...
@@ -7,7 +7,9 @@ export default {
getCardList
(
params
)
{
getCardList
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutenew/list`
,
params
);
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutenew/list`
,
params
);
},
},
getList
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutenew/CompletedList`
,
params
);
},
//过程质量填报表
//过程质量填报表
getentryqcrecordlist_new
(
params
)
{
getentryqcrecordlist_new
(
params
)
{
return
Api
.
get
(
`
${
PlanUrl
}
orderexecutequalityrecord/getentryqcrecordlist_new`
,
params
);
return
Api
.
get
(
`
${
PlanUrl
}
orderexecutequalityrecord/getentryqcrecordlist_new`
,
params
);
...
...
pages/produce/execute/components/orderlistWorkHour.vue
0 → 100644
View file @
03194a8a
<
template
>
<div
class=
"order_list"
>
<div
class=
"card_box"
>
<Card
class=
"card_order"
v-for=
"(item,index) in listTasks"
:style=
"order==item.id?'box-shadow: 0px 0px 15px #333;':''"
@
click
.
native=
"goPage(item)"
:key=
"index"
:class=
"item.status==12 ? 'card_border1' : (item.status==14 ? 'card_border2': (item.status==5 ?'card_border3':
(item.status==7?'card_border4':(item.status==-1?'card_border5':''))))"
>
<!-- :class="item.status=='未开工'? 'card_border1' : (item.status=='执行中' ? 'card_border2': (item.status=='暂停中' ?'card_border3':
(item.status=='交检中'?'card_border4':(item.status=='交接中'?'card_border5':''))))"-->
<p
slot=
"title"
>
{{
item
.
mesCode
}}
<state
code=
"taskList.status"
ref=
"state"
class=
"fr"
:value=
"item.status"
type=
"text"
></state>
<!--
<span
>
{{
item
.
status
}}
</span>
-->
</p>
<p
class=
"order_tit"
>
{{
item
.
productName
}}
</p>
<p>
<Icon
type=
"ios-pricetags"
/>
{{
item
.
taskName
}}
</p>
<p>
{{
item
.
beginTime
}}
~
{{
item
.
endTime
}}
</p>
</Card>
<p>
共
{{
listTasks
.
length
}}
个工单
</p>
</div>
</div>
</
template
>
<
script
>
import
Api
from
"../../api"
;
export
default
{
name
:
"orderlistWorkHour"
,
data
()
{
return
{
gnFlag
:
0
,
listTasks
:
[],
dataLength
:
0
};
},
props
:
{
order
:
{
type
:
[
String
,
Number
]
},
asc
:
{
type
:
Boolean
,
default
:
true
},
statu
:
{
type
:
Number
,
default
:
-
9
},
refresh
:
{
type
:
Boolean
,
default
:
true
}
},
created
()
{
this
.
loadTree
();
},
methods
:
{
loadTree
()
{
let
parmse
=
{
status
:
0
,
isAsc
:
this
.
asc
};
if
(
this
.
statu
!=
-
9
)
{
parmse
.
subWorkHourStatus
=
this
.
statu
}
Api
.
getList
(
parmse
).
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
listTasks
=
res
.
result
;
this
.
dataLength
=
res
.
result
.
length
;
}
});
},
gnFunto
(
number
,
type
)
{
this
.
gnFlag
=
number
;
},
goPage
(
item
)
{
this
.
$router
.
push
({
path
:
"/produce/execute/indexWorkHour"
,
query
:
{
id
:
item
.
id
,
orderId
:
item
.
orderId
,
executeId
:
item
.
executeId
,
headid
:
item
.
routingHeaderId
,
routid
:
item
.
routingDetailId
,
//工序ID
quantity
:
item
.
quantity
,
//派工数量
dispatchStatus
:
item
.
status
,
mesCode
:
item
.
mesCode
,
productName
:
item
.
productName
,
drawnNumber
:
item
.
drawnNumber
,
subWorkHourStatus
:
item
.
subWorkHourStatus
}
});
}
},
watch
:
{
order
(
v
)
{
//alert(v)
},
asc
(
v
)
{
this
.
asc
=
v
;
this
.
loadTree
();
},
statu
(
v
)
{
this
.
statu
=
v
;
this
.
loadTree
();
},
refresh
(
v
)
{
this
.
refresh
=
v
;
this
.
loadTree
();
}
}
};
</
script
>
pages/produce/execute/index.vue
View file @
03194a8a
...
@@ -126,8 +126,8 @@ export default {
...
@@ -126,8 +126,8 @@ export default {
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
);
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
);
}
//产品装配
}
//产品装配
if
(
number
==
3
)
{
if
(
number
==
3
)
{
if
(
this
.
$route
.
query
.
dispatchStatus
!=
0
)
{
if
(
this
.
$route
.
query
.
dispatchStatus
!=
0
)
{
return
this
.
$Message
.
info
(
"此订单未完成!不能进行工时分配。"
);
return
this
.
$Message
.
info
(
"此订单未完成!不能进行工时分配。"
);
}
}
this
.
detail
=
()
=>
import
(
"./taskTime/index"
);
this
.
detail
=
()
=>
import
(
"./taskTime/index"
);
}
//工时分配
}
//工时分配
...
...
pages/produce/execute/indexWorkHour.vue
0 → 100644
View file @
03194a8a
<
style
lang=
"less"
>
@import "./execute.less";
</
style
>
<
template
>
<div
class=
"execute_box"
>
<component
:is=
"detail"
:gdid=
"gdId"
:row=
"row"
/>
<a
class=
"gd_list"
@
click=
"changeFresh"
>
工单列表
</a>
<!-- 工单列表 -->
<Drawer
placement=
"left"
class=
"gd_box"
:closable=
"false"
:inner=
"true"
:transfer=
"false"
v-model=
"orderlistMode"
>
<div
slot=
"header"
>
<div
class=
"header"
>
<a
class=
"gd_tt"
@
click=
"goToOrder"
>
<Icon
type=
"ios-undo-outline"
/>
工时提交列表
</a>
<Dictionary
code=
"orderList.workHourStatus"
class=
"select_star fr"
v-model=
"odermodel"
@
on-change=
"searchOrder"
></Dictionary>
</div>
<div
class=
"select_t"
style=
"height:40px"
>
<Button
@
click=
"changeAsc"
class=
"fr"
shape=
"circle"
icon=
"md-calendar"
>
{{
ascTitle
}}
</Button>
</div>
</div>
<!-- 列表卡片主内容 -->
<orderlist
ref=
"orderlistref"
:asc=
"asc"
:statu=
"statu"
:refresh=
"refresh"
:order=
"inputId"
/>
</Drawer>
</div>
</
template
>
<
script
>
import
functional
from
"./components/functional"
;
import
orderlist
from
"./components/orderlistWorkHour"
;
export
default
{
name
:
'indexWorkHour'
,
components
:
{
functional
,
orderlist
},
data
()
{
return
{
orderTitle
:
"进度汇报"
,
orderindex
:
0
,
listLength
:
0
,
//工单数量
starmodal
:
true
,
orderlistMode
:
false
,
functionalMode
:
false
,
gdId
:
0
,
detail
:
null
,
row
:
{},
odermodel
:
-
9
,
orderId
:
this
.
$route
.
query
.
id
,
condition
:
[],
inputId
:
null
,
asc
:
false
,
ascTitle
:
"时间正序排序"
,
statu
:
0
,
refresh
:
true
};
},
created
()
{
let
row
=
{};
row
.
id
=
this
.
$route
.
query
.
id
;
row
.
orderId
=
this
.
$route
.
query
.
orderId
;
row
.
executeId
=
this
.
$route
.
query
.
executeId
;
row
.
headid
=
this
.
$route
.
query
.
headid
;
row
.
routingdetailId
=
this
.
$route
.
query
.
routid
;
row
.
mesCode
=
this
.
$route
.
query
.
mesCode
;
row
.
productName
=
this
.
$route
.
query
.
productName
;
row
.
drawnNumber
=
this
.
$route
.
query
.
drawnNumber
;
row
.
count
=
this
.
$route
.
query
.
quantity
;
row
.
subWorkHourStatus
=
this
.
$route
.
query
.
subWorkHourStatus
;
this
.
row
=
row
;
this
.
inputId
=
this
.
$route
.
query
.
id
;
this
.
detail
=
()
=>
import
(
"./taskTime/index"
);
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
mounted
()
{},
comments
:
{},
methods
:
{
// 返回工单列表
goToOrder
()
{
this
.
$router
.
push
(
"/produce/workHour"
);
},
searchOrder
(
value
)
{
if
(
value
==
null
||
typeof
value
==
"undefined"
)
{
value
=
-
9
;
}
this
.
statu
=
value
;
// this.$refs.orderlistref.loadTree(value);
},
changeTitle
(
number
,
type
)
{
this
.
orderTitle
=
type
;
this
.
orderindex
=
number
;
let
row
=
{
id
:
this
.
$route
.
query
.
id
,
orderId
:
this
.
$route
.
query
.
orderId
,
executeId
:
this
.
$route
.
query
.
executeId
,
headid
:
this
.
$route
.
query
.
headid
,
routingdetailId
:
this
.
$route
.
query
.
routid
,
mesCode
:
this
.
$route
.
query
.
mesCode
,
productName
:
this
.
$route
.
query
.
productName
,
drawnNumber
:
this
.
$route
.
query
.
drawnNumber
,
count
:
this
.
$route
.
query
.
quantity
,
subWorkHourStatus
:
this
.
$route
.
query
.
subWorkHourStatus
,
};
this
.
row
=
row
;
this
.
inputId
=
this
.
$route
.
query
.
id
;
if
(
number
==
3
)
{
if
(
this
.
$route
.
query
.
dispatchStatus
!=
0
)
{
return
this
.
$Message
.
info
(
"此订单未完成!不能进行工时分配。"
);
}
this
.
detail
=
()
=>
import
(
"./taskTime/index"
);
}
//工时分配
},
//按时间排序按钮
changeAsc
()
{
this
.
asc
=
!
this
.
asc
;
if
(
this
.
asc
)
{
this
.
ascTitle
=
"时间正序排序"
;
}
else
{
this
.
ascTitle
=
"时间倒序排序"
;
}
},
//刷新orderlist列表
changeFresh
()
{
this
.
refresh
=
!
this
.
refresh
;
this
.
orderlistMode
=
true
;
}
},
watch
:
{
"$route.query.id"
(
v
)
{
this
.
row
.
id
=
v
;
this
.
inputId
=
v
;
this
.
detail
=
()
=>
import
(
"./taskTime/index"
);
}
}
};
</
script
>
pages/produce/workHour/index.vue
View file @
03194a8a
<
template
>
<
template
>
<div
class=
"aps-r"
>
<div
class=
"aps-r"
>
<DataGrid
<DataGrid
:columns=
"columns"
ref=
"grid"
:batch=
"false"
:type=
"typeInfo"
:span=
"6"
:lazy=
"true"
:conditions=
"easySearch"
:action=
"action"
:gutter=
"40"
>
:columns=
"columns"
<template
slot=
"easySearch"
>
ref=
"grid"
<Form
ref=
"formInline"
:model=
"easySearch"
inline
>
:batch=
"false"
<FormItem
prop=
"keys"
>
:type=
"typeInfo"
<Input
placeholder=
"请输入订单编号/产品名称/图号"
v-model=
"easySearch.keys.value"
v-width=
"260"
clearable
/>
:span=
"6"
</FormItem>
: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>
<FormItem>
<
Dictionary
code=
"taskList.status"
placeholder=
"请选择工单状态"
:multiple=
"true"
v-model=
"easySearch.DispatchStatus.value"
></D
ictionary>
<
dictionary
style=
"width:240px"
placeholder=
'请选择工时提交状态'
code=
"orderList.workHourStatus"
v-model=
"easySearch.SubmitState.value"
></d
ictionary>
</FormItem>
</FormItem>
-->
<FormItem>
<!--
<FormItem>
<Button
type=
"primary"
@
click=
"search"
>
查询
</Button>
<Button
type=
"primary"
@
click=
"search"
>
查询
</Button>
</FormItem>
</FormItem>
-->
</Form>
</Form>
</
template
>
</
template
>
<
template
slot=
"searchForm"
>
<
template
slot=
"searchForm"
>
<Search
/>
<Search
/>
</
template
>
</
template
>
<
template
slot=
"buttons"
>
<
template
slot=
"buttons"
>
<Button
:icon=
"iconInfo"
shape=
"circle"
:title=
"titleInfo"
@
click=
"changeShwo"
></Button>
<Button
</
template
>
:icon=
"iconInfo"
<
template
slot=
"card"
slot-scope=
"{ row }"
>
shape=
"circle"
<div
class=
"body"
@
click=
"
:title=
"titleInfo"
@
click=
"changeShwo"
></Button>
</
template
>
<
template
slot=
"card"
slot-scope=
"{ row }"
>
<div
class=
"body"
@
click=
"
toExecute(
toExecute(
row.id,
row.id,
row.orderId,
row.orderId,
...
@@ -68,45 +32,34 @@
...
@@ -68,45 +32,34 @@
row.status,
row.status,
row.mesCode,
row.mesCode,
row.productName,
row.productName,
row.drawnNumber
row.drawnNumber,
row.subWorkHourStatus
)
)
"
"
>
>
<Row
class=
"title-i"
>
<Row
class=
"title-i"
>
<Col
:span=
"10"
class=
"order-code"
>
<Col
:span=
"10"
class=
"order-code"
>
<Ellipsis
:text=
"row.productName"
:lines=
"1"
tooltip
transfer
/>
<Ellipsis
:text=
"row.productName"
:lines=
"1"
tooltip
transfer
/>
</Col>
</Col>
<Col
:span=
"10"
class=
"order-code"
>
<Col
:span=
"10"
class=
"order-code"
>
<Ellipsis
:text=
"row.mesCode"
:lines=
"1"
tooltip
transfer
/>
<Ellipsis
:text=
"row.mesCode"
:lines=
"1"
tooltip
transfer
/>
</Col>
</Col>
<Col
:span=
"4"
>
<Col
:span=
"4"
>
<div
class=
"statuBg"
:style=
"tdStyle(row.subWorkHourStatus)"
></div>
<div
class=
"statuBg"
:style=
"tdStyle(row.subWorkHourStatus)"
></div>
<div
class=
"boxTitle"
>
<div
class=
"boxTitle"
>
<div
class=
"text"
>
<div
class=
"text"
>
<state
code=
"orderList.workHourStatus"
ref=
"state"
:value=
"row.subWorkHourStatus"
type=
"text"
:color=
"false"
></state>
<state
</div>
code=
"workHour.status"
</div>
ref=
"state"
</Col>
:value=
"row.subWorkHourStatus"
</Row>
type=
"text"
<div
class=
"panel-text"
>
:color=
"false"
<Row>
></state>
<Col
span=
"8"
>
</div>
<div
class=
"img-i"
>
</div>
<img
:src=
"downUrl + row.productUrl"
v-if=
"row.productUrl"
/>
</Col>
<img
src=
"@/assets/imgicon/chan_Pin.png"
v-else
width=
"100%"
height=
"100%"
/>
</Row>
</div>
<div
class=
"panel-text"
>
<!--
<img
<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)"
:src=
"getUrl(row.productUrl)"
width=
"120"
width=
"120"
height=
"120"
height=
"120"
...
@@ -114,424 +67,404 @@
...
@@ -114,424 +67,404 @@
style=
"border:#cacbd0 dashed 1px"
style=
"border:#cacbd0 dashed 1px"
onerror=
"this.src='/imgicon/noPic_product.png';"
onerror=
"this.src='/imgicon/noPic_product.png';"
/>
-->
/>
-->
</Col>
</Col>
<Col
span=
"16"
class=
"row"
>
<Col
span=
"16"
class=
"row"
>
<p>
{{
l
(
"beginTime"
)
}}
:
{{
row
.
beginTime
}}
</p>
<p>
{{
l
(
"beginTime"
)
}}
:
{{
row
.
beginTime
}}
</p>
<p>
<p>
<span
v-if=
"getStatus(row.status)"
<span
v-if=
"getStatus(row.status)"
>
{{
l
(
"planEndTime"
)
}}
:
</span>
>
{{
l
(
"planEndTime"
)
}}
:
</span
<span
v-else
>
{{
l
(
"endTime"
)
}}
:
</span>
>
{{
row
.
endTime
}}
<span
v-else
>
{{
l
(
"endTime"
)
}}
:
</span>
</p>
{{
row
.
endTime
}}
<p
v-if=
"getStatus(row.status) && getTimes(row.endTime) > 0"
>
</p>
剩余时间:
<p
v-if=
"getStatus(row.status) && getTimes(row.endTime) > 0"
>
<OutputTime
:value=
"getTimes(row.endTime)"
style=
"display: inline"
></OutputTime>
剩余时间:
</p>
<OutputTime
:value=
"getTimes(row.endTime)"
style=
"display: inline"
></OutputTime>
</p>
<Row>
<Row>
<Col
span=
"12"
>
<Col
span=
"12"
>
<p>
{{
l
(
"quantity"
)
}}
:
{{
row
.
quantity
}}
</p></Col
<p>
{{
l
(
"quantity"
)
}}
:
{{
row
.
quantity
}}
</p>
>
</Col>
<Col
span=
"12"
<Col
span=
"12"
>
><p>
工序号:
{{
row
.
taskSeq
}}
</p></Col
<p>
工序号:
{{
row
.
taskSeq
}}
</p>
>
</Col>
</Row>
</Row>
<p>
工序名称:
{{
row
.
taskName
}}
</p>
<p>
工序名称:
{{
row
.
taskName
}}
</p>
</Col>
</Col>
</Row>
</Row>
<Row
class=
"rowBottom"
>
<Row
class=
"rowBottom"
>
<Col
span=
"14"
>
{{
l
(
"drawnNumber"
)
}}
:
{{
row
.
drawnNumber
}}
</Col>
<Col
span=
"14"
>
{{
l
(
"drawnNumber"
)
}}
:
{{
row
.
drawnNumber
}}
</Col>
<Col
span=
"10"
class=
"tr"
>
<Col
span=
"10"
class=
"tr"
>
<Icon
<Icon
type=
"md-alert"
size=
"18"
color=
"#FFA000"
v-if=
"
type=
"md-alert"
size=
"18"
color=
"#FFA000"
v-if=
"
getStatus(row.status) &&
getStatus(row.status) &&
getTimes(row.endTime)
<
86400
&&
getTimes(row.endTime)
<
86400
&&
getTimes
(
row
.
endTime
)
>
0
getTimes
(
row
.
endTime
)
>
0
"
" />
/>
<span
style=
"color: #ffa000"
v-if=
"
<span
style=
"color: #ffa000"
v-if=
"
getStatus(row.status) &&
getStatus(row.status) &&
getTimes(row.endTime)
<
86400
&&
getTimes(row.endTime)
<
86400
&&
getTimes
(
row
.
endTime
)
>
0
getTimes
(
row
.
endTime
)
>
0
"
">预警
</span>
>预警
</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>
<Icon
</Col>
type=
"md-timer"
</Row>
size=
"18"
</div>
color=
"#FE7777"
</div>
v-if=
"getStatus(row.status) && compareTime(row.endTime)"
</
template
>
/>
<span
style=
"color: #fe7777"
v-if=
"getStatus(row.status) && compareTime(row.endTime)"
>
超期
</span
>
</Col>
</Row>
</div>
</div>
</
template
>
</DataGrid>
</DataGrid>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
Api
from
"./api"
;
import
Api
from
"./api"
;
import
Search
from
"../search"
;
import
Search
from
"../search"
;
export
default
{
export
default
{
name
:
"starOrder"
,
name
:
"starOrder"
,
components
:
{
components
:
{
Search
,
Search
,
},
},
data
()
{
data
()
{
return
{
return
{
action
:
Api
.
index
,
action
:
Api
.
index
,
easySearch
:
{
easySearch
:
{
keys
:
{
keys
:
{
op
:
"mesCode,productName,drawnNumber"
,
op
:
"mesCode,productName,drawnNumber"
,
value
:
null
,
value
:
null
,
},
},
DispatchStatus
:
{
DispatchStatus
:
{
op
:
"In"
,
op
:
"In"
,
value
:
[
0
],
value
:
[
0
],
},
},
SubmitState
:
{
SubmitState
:
{
op
:
"In"
,
op
:
"In"
,
value
:
"1"
,
value
:
"1"
,
},
},
},
},
downUrl
:
fileUrlDown
,
downUrl
:
fileUrlDown
,
columns
:
[
columns
:
[{
{
title
:
this
.
l
(
"Id"
),
title
:
this
.
l
(
"Id"
),
key
:
"id"
,
key
:
"id"
,
width
:
80
,
width
:
80
,
align
:
"left"
,
align
:
"left"
,
},
{
title
:
this
.
l
(
"mesCode"
),
key
:
"mesCode"
,
width
:
240
,
align
:
"left"
,
},
{
key
:
"subWorkHourStatus"
,
title
:
this
.
l
(
"subWorkHourStatus"
),
align
:
"center"
,
high
:
true
,
code
:
"workHour.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
,
params
.
row
.
subWorkHourStatus
),
},
},
"查看"
),
]
);
},
},
],
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
)
{
title
:
this
.
l
(
"mesCode"
),
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
key
:
"mesCode"
,
width
:
240
,
align
:
"left"
,
},
},
{
toExecute
(
key
:
"subWorkHourStatus"
,
id
,
title
:
this
.
l
(
"subWorkHourStatus"
),
orderId
,
align
:
"center"
,
executeId
,
high
:
true
,
headid
,
code
:
"workHour.status"
,
routingDetailId
,
width
:
120
,
quantity
,
status
,
mesCode
,
productName
,
drawnNumber
,
subWorkHourStatus
)
{
//跳转到对应操作页面 获取id:this.$route.query.id
this
.
$router
.
push
({
path
:
"/produce/execute/indexWorkHour"
,
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
,
subWorkHourStatus
:
subWorkHourStatus
//工时提交状态
},
});
},
},
{
tdStyle
(
val
)
{
key
:
"productName"
,
//动态根据状态值加载状态值对应的颜色
title
:
this
.
l
(
"productName"
),
let
temDic
=
this
.
$store
.
getters
.
dictionaryByKey
(
"orderList.workHourStatus"
);
align
:
"left"
,
let
temColor
=
"#666"
;
high
:
true
,
temDic
.
forEach
((
data
)
=>
{
if
(
Number
(
data
.
code
)
==
val
)
{
temColor
=
data
.
color
;
}
});
var
style
=
{};
style
[
"border-top"
]
=
" solid 38px "
+
temColor
;
return
style
;
},
},
{
changeShwo
()
{
key
:
"drawnNumber"
,
//显示模式切换
title
:
this
.
l
(
"drawnNumber"
),
if
(
this
.
typeInfo
==
"card"
)
{
align
:
"left"
,
this
.
typeInfo
=
"table"
;
high
:
true
,
this
.
iconInfo
=
"md-list"
;
this
.
titleInfo
=
"列表模式"
;
}
else
{
this
.
typeInfo
=
"card"
;
this
.
iconInfo
=
"md-apps"
;
this
.
titleInfo
=
"卡片模式"
;
}
},
},
{
compareTime
(
dateStart
)
{
key
:
"quantity"
,
//比较当前时间和计划完成时间
title
:
this
.
l
(
"quantity"
),
let
planEndTime
=
new
Date
(
dateStart
).
getTime
();
align
:
"right"
,
let
res
=
true
;
width
:
120
,
if
(
this
.
nowTime
-
planEndTime
>
0
)
{
high
:
true
,
res
=
true
;
}
else
{
res
=
false
;
}
return
res
;
},
},
{
getTimes
(
dateStart
)
{
key
:
"beginTime"
,
//返回计划完成时间和当前时间的差值
title
:
this
.
l
(
"beginTime"
),
let
planEndTime
=
new
Date
(
dateStart
).
getTime
();
align
:
"center"
,
let
res
=
0
;
width
:
180
,
if
(
this
.
nowTime
-
planEndTime
>
0
)
{
high
:
true
,
res
=
0
;
}
else
{
res
=
(
this
.
nowTime
-
planEndTime
)
/
1000
;
}
return
res
;
},
},
{
getStatus
(
status
)
{
key
:
"endTime"
,
//根据状态返回未开工、执行中、暂停状态的bool值
title
:
this
.
l
(
"endTime"
),
let
res
=
true
;
align
:
"center"
,
if
(
status
==
12
||
status
==
14
||
status
==
5
)
{
width
:
180
,
res
=
true
;
high
:
true
,
}
else
{
res
=
false
;
}
return
res
;
},
},
{
getUrl
(
url
)
{
title
:
"操作"
,
//返回img需要显示的src值
key
:
"action"
,
let
tempUrl
=
""
;
width
:
140
,
if
(
url
&&
url
.
length
>
0
)
{
align
:
"center"
,
tempUrl
=
this
.
downUrl
+
url
;
render
:
(
h
,
params
)
=>
{
}
else
{
return
h
(
tempUrl
=
iconImg
+
"noPic_product.png"
;
"div"
,
}
{
return
tempUrl
;
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
),
},
},
"查看"
),
]
);
},
},
},
],
l
(
key
)
{
typeInfo
:
"card"
,
let
vkey
=
"order_list"
+
"."
+
key
;
iconInfo
:
"md-apps"
,
return
this
.
$t
(
vkey
)
||
key
;
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
(
"workHour.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
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
.aps-r {
.aps-r {
// width: 100%;
// width: 100%;
// height: 100%;
// height: 100%;
// overflow: auto;
// overflow: auto;
// padding: 15px 0 15px 15px;
// padding: 15px 0 15px 15px;
height: calc(100vh - 110px);
height: calc(100vh - 110px);
.body {
.body {
background: white;
background: white;
border-radius: 4px 0 4px 4px;
border-radius: 4px 0 4px 4px;
border: #cacbd0 solid 1px;
border: #cacbd0 solid 1px;
margin-bottom: 30px;
margin-bottom: 30px;
.title-i {
.title-i {
padding: 0 0 0 8px;
padding: 0 0 0 8px;
height: 38px;
height: 38px;
line-height: 38px;
line-height: 38px;
color: #2680eb;
color: #2680eb;
font-size: 14px;
font-size: 14px;
font-weight: bold;
font-weight: bold;
border-bottom: #cacbd0 dotted 1px;
border-bottom: #cacbd0 dotted 1px;
.btn-click {
.btn-click {
text-align: right;
text-align: right;
a {
a {
color: #fff;
color: #fff;
}
}
a:hover {
a:hover {
color: #249e91;
color: #249e91;
}
}
}
}
}
}
.panel-text {
.panel-text {
padding: 5px 8px;
padding: 5px 8px;
.img-i {
.img-i {
width: 120px;
width: 120px;
height: 120px;
height: 120px;
overflow: hidden;
overflow: hidden;
border: #cacbd0 dashed 1px;
border: #cacbd0 dashed 1px;
//img {
//img {
// width: 90px;
// width: 90px;
// height: 90px;
// height: 90px;
//}
//}
}
}
.row {
.row {
color: #666666;
color: #666666;
padding-left: 10px;
padding-left: 10px;
p {
p {
line-height: 30px;
line-height: 30px;
}
}
}
}
}
}
}
}
.body:hover {
.body:hover {
cursor: pointer;
cursor: pointer;
box-shadow: 0 0 10px #888888;
box-shadow: 0 0 10px #888888;
}
}
}
}
.statuBg {
.statuBg {
height: 0px;
height: 0px;
width: 0;
width: 0;
border-left: solid 50px transparent;
border-left: solid 50px transparent;
float: right;
float: right;
margin-right: -1px;
margin-right: -1px;
}
}
.boxTitle {
.boxTitle {
color: white;
color: white;
float: right;
float: right;
margin-top: -42px;
margin-top: -42px;
/* Rotate div */
/* Rotate div */
transform: rotate(37deg);
transform: rotate(37deg);
-ms-transform: rotate(37deg);
-ms-transform: rotate(37deg);
/* Internet Explorer */
/* Internet Explorer */
-moz-transform: rotate(37deg);
-moz-transform: rotate(37deg);
/* Firefox */
/* Firefox */
-webkit-transform: rotate(37deg);
-webkit-transform: rotate(37deg);
/* Safari 和 Chrome */
/* Safari 和 Chrome */
-o-transform: rotate(37deg);
-o-transform: rotate(37deg);
/* Opera */
/* Opera */
.text {
.text {
font-size: 8px;
font-size: 8px;
font-weight: normal;
font-weight: normal;
}
}
}
}
.rowBottom .ivu-col-span-10 {
.rowBottom .ivu-col-span-10 {
height: 24px;
height: 24px;
padding-right: 10px;
padding-right: 10px;
}
}
</
style
>
</
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