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
2c9c78de
Commit
2c9c78de
authored
Apr 26, 2020
by
仇晓婷
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
整机排产
parent
ff6e3b4b
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
264 additions
and
191 deletions
+264
-191
api.js
pages/aps/complete/api.js
+1
-0
index.vue
pages/aps/complete/index.vue
+182
-128
index.vue
pages/aps/stream/index.vue
+81
-63
No files found.
pages/aps/complete/api.js
View file @
2c9c78de
...
@@ -9,6 +9,7 @@ export default {
...
@@ -9,6 +9,7 @@ export default {
cmtwostepschedule
(
params
)
{
cmtwostepschedule
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/messchedule/cmtwostepschedule`
,
params
);
//整机排产--二级排产
return
Api
.
post
(
`
${
PlanUrl
}
/messchedule/cmtwostepschedule`
,
params
);
//整机排产--二级排产
},
},
// getlist(params) {
// getlist(params) {
// return Api.get(`${PlanUrl}/mes_sys_shop_info/getlist`, params); //手工排产:查询所在车间下的所有班组信息
// return Api.get(`${PlanUrl}/mes_sys_shop_info/getlist`, params); //手工排产:查询所在车间下的所有班组信息
// },
// },
...
...
pages/aps/complete/index.vue
View file @
2c9c78de
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
</RadioGroup>
</RadioGroup>
</Col>
</Col>
</Row>
</Row>
<div
class=
"left-down"
>
<div
<div
class=
"left-body"
class=
"left-body"
v-for=
"(li,index) in list"
v-for=
"(li,index) in list"
...
@@ -32,6 +33,7 @@
...
@@ -32,6 +33,7 @@
<div
class=
"time-s"
>
{{
li
.
demandFinishDate
}}
—
{{
li
.
demandStartDate
}}
</div>
<div
class=
"time-s"
>
{{
li
.
demandFinishDate
}}
—
{{
li
.
demandStartDate
}}
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"aps-r"
>
<div
class=
"aps-r"
>
<div
class=
"r-title"
>
排产设置盘
</div>
<div
class=
"r-title"
>
排产设置盘
</div>
<Form
:model=
"formItem"
:label-width=
"100"
>
<Form
:model=
"formItem"
:label-width=
"100"
>
...
@@ -51,26 +53,34 @@
...
@@ -51,26 +53,34 @@
<Radio
label=
"1"
>
班组
</Radio>
<Radio
label=
"1"
>
班组
</Radio>
</RadioGroup>
</RadioGroup>
</FormItem>
</FormItem>
<FormItem
label=
"人员分组形式"
v-if=
"formItem.radio==0"
>
<FormItem
label=
"人员"
v-if=
"formItem.radio==0"
>
<Dictionary
<UserSelect
ref=
"userSelected"
v-model=
"formItem.userIds"
style=
"width:300px"
:multiple=
"true"
/>
<!--
<Dictionary
disabled
disabled
code=
"aps.scheduling.groupingForm"
code=
"aps.scheduling.groupingForm"
v-model=
"formItem.resourcesType"
v-model=
"formItem.resourcesType"
type=
"radio"
type=
"radio"
></Dictionary>
></Dictionary>
-->
</FormItem>
</FormItem>
<FormItem
label=
"班组"
v-if=
"formItem.radio==1"
>
<FormItem
label=
"班组"
v-if=
"formItem.radio==1"
>
<Select
v-model=
"formItem.shopId"
style=
"width:300px"
multiple
>
<Select
v-model=
"formItem.shopId"
placeholder=
"请选择"
style=
"width:300px"
>
<Option
<Option
v-for=
"item in classList"
v-for=
"(item,index) in listClass"
:value=
"item.shopId"
:key=
"index"
:key=
"item.shopId"
:value=
"item.value"
>
{{
item
.
label
}}
</Option>
:label=
"item.label"
style=
"display:none"
></Option>
<Tree
key=
"mytree"
:data=
"workShop"
ref=
"mytree"
:render=
"renderContent"
></Tree>
</Select>
</Select>
</FormItem>
</FormItem>
<FormItem
v-if=
"formItem.radio==0"
>
<!--
<FormItem
v-if=
"formItem.radio==0"
>
<!--
<UserSelect
ref=
"userSelected"
v-model=
"formItem.DistributeMainRouting"
/>
-->
<div
class=
"list-check"
>
<div
class=
"list-check"
>
<Checkbox-List
<Checkbox-List
:single-list=
"li"
:single-list=
"li"
...
@@ -80,26 +90,19 @@
...
@@ -80,26 +90,19 @@
:key=
"index"
:key=
"index"
></Checkbox-List>
></Checkbox-List>
</div>
</div>
</FormItem>
</FormItem>
-->
<!-- v-if="tagGroup.lenght>0" -->
<!-- v-if="tagGroup.lenght>0" -->
<FormItem
label=
"已选择"
v-if=
"formItem.radio==0"
>
<
!--
<
FormItem
label=
"已选择"
v-if=
"formItem.radio==0"
>
<div
class=
"tag-list"
>
<div
class=
"tag-list"
>
<div
v-for=
"(item,index) in tagGroup"
:key=
"index"
class=
"tag-group"
>
<div
v-for=
"(item,index) in tagGroup"
:key=
"index"
class=
"tag-group"
>
<span>
{{
item
.
name
}}
&
nbsp
&
nbsp
{{
item
.
class
}}
</span>
<span>
{{
item
.
name
}}
&
nbsp
&
nbsp
{{
item
.
class
}}
</span>
<Icon
type=
"md-close"
@
click=
"closeTag"
/>
<Icon
type=
"md-close"
@
click=
"closeTag"
/>
</div>
</div>
<!--
<Tag
color=
"rgba(38,128,235,0.3)"
closable
@
on-close=
"handleClose"
:key=
"index"
v-for=
"(val, index) in tagGroup"
>
{{
val
.
name
}}
</Tag>
-->
</div>
</div>
</FormItem>
</FormItem>
-->
<FormItem
label=
"备注"
>
<FormItem
label=
"备注"
>
<Input
<Input
v-model=
"formItem.
textarea
"
v-model=
"formItem.
remark
"
type=
"textarea"
type=
"textarea"
:autosize=
"
{minRows: 2,maxRows: 5}"
:autosize=
"
{minRows: 2,maxRows: 5}"
placeholder="请输入备注信息"
placeholder="请输入备注信息"
...
@@ -136,57 +139,45 @@ export default {
...
@@ -136,57 +139,45 @@ export default {
time
:
""
,
time
:
""
,
beginTime
:
""
,
beginTime
:
""
,
endTime
:
""
,
endTime
:
""
,
textarea
:
""
remark
:
""
,
departmentTitle
:
""
,
shopId
:
""
,
userName
:
""
},
},
listGroup
:
[
// listGroup: [
{
// {
equip_name
:
"调试组"
,
// equip_name: "调试组",
isClick
:
true
// isClick: true
},
// },
{
// {
equip_name
:
"装配组"
// equip_name: "装配组",
}
// isClick: false
],
// }
tagGroup
:
[
// ],
{
// tagGroup: [
id
:
1
,
// {
name
:
"张芳"
,
// id: 1,
class
:
"1级"
// name: "张芳",
},
// class: "1级"
{
// },
id
:
2
,
// {
name
:
"张芳"
,
// id: 2,
class
:
"1级"
// name: "张芳",
},
// class: "1级"
{
// },
id
:
4
,
// {
name
:
"张芳"
,
// id: 4,
class
:
"1级"
// name: "张芳",
},
// class: "1级"
{
// },
id
:
5
,
// {
name
:
"张芳"
,
// id: 5,
class
:
"1级"
// name: "张芳",
}
// class: "1级"
],
// }
classList
:
[
// ],
{
workShop
:
[],
shopId
:
"0"
,
listClass
:
[],
label
:
"调试组"
},
{
shopId
:
"1"
,
label
:
"装配组"
},
{
shopId
:
"2"
,
label
:
"计划组"
},
{
shopId
:
"3"
,
label
:
"管理组"
}
],
orderIds
:
[]
orderIds
:
[]
};
};
},
},
...
@@ -232,18 +223,26 @@ export default {
...
@@ -232,18 +223,26 @@ export default {
lowerHair
()
{
lowerHair
()
{
if
(
this
.
formItem
.
radio
==
0
)
{
if
(
this
.
formItem
.
radio
==
0
)
{
//一级排产选择人员
//一级排产选择人员
let
urseId
=
[];
//
let urseId = [];
for
(
var
i
=
0
;
i
<
this
.
tagGroup
.
length
;
i
++
)
{
//
for (var i = 0; i
<
this
.
tagGroup
.
length
;
i
++
)
{
urseId
.
push
(
this
.
tagGroup
[
i
].
id
);
//
urseId.push(this.tagGroup[i].id);
}
//
}
let
params1
=
{
let
params1
=
{
orderIds
:
this
.
orderIds
,
orderIds
:
this
.
orderIds
,
userIds
:
urseId
,
userIds
:
this
.
formItem
.
userIds
,
beginTime
:
this
.
formItem
.
beginTime
,
beginTime
:
this
.
formItem
.
beginTime
,
endTime
:
this
.
formItem
.
endTime
endTime
:
this
.
formItem
.
endTime
,
remark
:
this
.
formItem
.
remark
,
userName
:
this
.
formItem
.
userName
};
};
Api
.
cmonestepschedule
(
params1
).
then
(
r
=>
{
Api
.
cmonestepschedule
(
params1
).
then
(
r
=>
{
if
(
r
.
success
)
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"下发成功"
);
this
.
orderlist
(
this
.
status
);
}
else
{
this
.
$Message
.
success
(
"下发失败"
);
this
.
formItem
=
{};
this
.
formItem
.
radio
=
0
;
}
}
});
});
}
else
if
(
this
.
formItem
.
radio
==
1
)
{
}
else
if
(
this
.
formItem
.
radio
==
1
)
{
...
@@ -252,15 +251,61 @@ export default {
...
@@ -252,15 +251,61 @@ export default {
orderIds
:
this
.
orderIds
,
orderIds
:
this
.
orderIds
,
shopId
:
this
.
formItem
.
shopId
,
shopId
:
this
.
formItem
.
shopId
,
beginTime
:
this
.
formItem
.
beginTime
,
beginTime
:
this
.
formItem
.
beginTime
,
endTime
:
this
.
formItem
.
endTime
endTime
:
this
.
formItem
.
endTime
,
remark
:
this
.
formItem
.
remark
};
};
Api
.
cmtwostepschedule
(
params2
).
then
(
r
=>
{
Api
.
cmtwostepschedule
(
params2
).
then
(
r
=>
{
if
(
r
.
success
)
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"下发成功"
);
this
.
orderlist
(
this
.
status
);
this
.
formItem
=
{};
this
.
formItem
.
radio
=
0
;
}
else
{
this
.
$Message
.
success
(
"下发失败"
);
}
});
}
},
//部门(班组)
getWorkshop
()
{
let
url
=
`
${
systemUrl
}
/user/userdepartmentsofworkshop`
;
this
.
$api
.
get
(
url
).
then
(
r
=>
{
if
(
r
.
result
)
{
this
.
workShop
=
r
.
result
;
}
}
});
});
},
renderContent
(
h
,
{
root
,
node
,
data
})
{
//渲染树的样式
return
h
(
"span"
,
{
style
:
{
cursor
:
"pointer"
},
on
:
{
click
:
()
=>
{
this
.
handleSelect
(
data
);
//手动选择树节点
}
}
}
},
},
closeOk
()
{},
data
.
title
);
},
handleSelect
(
data
)
{
let
obj
=
{
label
:
data
.
title
,
value
:
data
.
value
};
this
.
listClass
=
[];
this
.
listClass
.
push
(
obj
);
this
.
formItem
.
shopId
=
this
.
listClass
[
0
].
value
;
},
closeOk
()
{
this
.
formItem
=
{};
this
.
formItem
.
radio
=
0
;
},
close
()
{
close
()
{
this
.
$Modal
.
confirm
({
this
.
$Modal
.
confirm
({
title
:
"删除"
,
title
:
"删除"
,
...
@@ -277,10 +322,17 @@ export default {
...
@@ -277,10 +322,17 @@ export default {
handleClose
(
nodeKey
)
{
handleClose
(
nodeKey
)
{
// this.$refs.users.handleCheck({ checked: false, nodeKey: nodeKey });
// this.$refs.users.handleCheck({ checked: false, nodeKey: nodeKey });
},
},
setData
(
val
)
{
//
setData(val) {
this
.
tagGroup
=
val
;
//
this.tagGroup = val;
},
//
},
closeTag
()
{}
closeTag
()
{}
},
watch
:
{
"formItem.radio"
(
v
)
{
if
(
v
==
1
)
{
this
.
getWorkshop
();
}
}
}
}
};
};
</
script
>
</
script
>
...
@@ -298,9 +350,7 @@ export default {
...
@@ -298,9 +350,7 @@ export default {
.aps-l {
.aps-l {
width: 20%;
width: 20%;
border-right: 1px solid #e4e6ed;
border-right: 1px solid #e4e6ed;
height: 86vh;
padding: 0 15px 10px 10px;
padding: 0 15px 10px 10px;
overflow: auto;
.row-p {
.row-p {
border-bottom: 1px solid #e4e6ed;
border-bottom: 1px solid #e4e6ed;
padding: 5px;
padding: 5px;
...
@@ -313,6 +363,9 @@ export default {
...
@@ -313,6 +363,9 @@ export default {
text-align: right;
text-align: right;
}
}
}
}
.left-down {
height: 82vh;
overflow: auto;
.left-body {
.left-body {
margin-top: 15px;
margin-top: 15px;
border: 1px solid rgba(228, 230, 237, 1);
border: 1px solid rgba(228, 230, 237, 1);
...
@@ -345,6 +398,7 @@ export default {
...
@@ -345,6 +398,7 @@ export default {
}
}
}
}
}
}
}
.aps-r {
.aps-r {
border: 1px solid rgba(228, 230, 237, 0.5);
border: 1px solid rgba(228, 230, 237, 0.5);
width: 80%;
width: 80%;
...
...
pages/aps/stream/index.vue
View file @
2c9c78de
...
@@ -11,38 +11,40 @@
...
@@ -11,38 +11,40 @@
</RadioGroup>
</RadioGroup>
</Col>
</Col>
</Row>
</Row>
<div
class=
"left-down"
>
<div
<div
class=
"left-body"
class=
"left-body"
v-for=
"(li,index) in list"
v-for=
"(li,index) in list"
:key=
"index"
:key=
"index"
@
click=
"listData(li
)"
@
click=
"listData(li,index
)"
:class=
"isactive == index ? 'addclass' : '' "
:class=
"isactive == index ? 'addclass' : '' "
>
>
<Row
class=
"title-i"
>
<Row
class=
"title-i"
>
<Col
:span=
"20"
class=
"order-code"
>
订单号:
{{
li
.
order_id
}}
</Col>
<Col
:span=
"20"
class=
"order-code"
>
订单号:
{{
li
.
mesCode
}}
</Col>
<Col
:span=
"4"
class=
"order-ringht"
>
<Col
:span=
"4"
class=
"order-ringht"
>
<Icon
type=
"md-close"
@
click=
"close"
/>
<Icon
type=
"md-close"
@
click=
"close"
/>
</Col>
</Col>
</Row>
</Row>
<div
class=
"fa"
>
{{
li
.
routing_version
}}
</div>
<div
class=
"fa"
>
产品名称:
{{
li
.
productName
}}
</div>
<div
class=
"time-s"
>
<div
class=
"time-s"
>
<!--
<Icon
type=
"ios-copy"
/>
-->
<!--
<Icon
type=
"ios-copy"
/>
-->
<span>
工序:
{{
li
.
routing_schema
}}
</span>
<span>
工序:
{{
li
.
drawnNumber
}}
</span>
</div>
<div
class=
"time-s"
>
{{
li
.
demandFinishDate
}}
—
{{
li
.
demandStartDate
}}
</div>
</div>
</div>
<div
class=
"time-s"
>
{{
li
.
demand_start
}}
—
{{
li
.
demand_finish
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"aps-r"
>
<div
class=
"aps-r"
>
<!--
<div
class=
"g-list"
>
工序列表
</div>
-->
<!--
<div
class=
"g-list"
>
工序列表
</div>
-->
<Row
class=
"g-list"
>
<Row
class=
"g-list"
>
<Col
:span=
"2"
class=
"chan-chi"
>
工序列表
</Col>
<Col
:span=
"2"
class=
"chan-chi"
>
工序列表
</Col>
<Col
:span=
"22"
class=
"l-ringht"
>
<
!--
<
Col
:span=
"22"
class=
"l-ringht"
>
<RadioGroup
v-model=
"status"
type=
"button"
@
on-change=
"changeRodio"
size=
"small"
>
<RadioGroup
v-model=
"status"
type=
"button"
@
on-change=
"changeRodio"
size=
"small"
>
<Radio
label=
"0"
>
全部
</Radio>
<Radio
label=
"0"
>
全部
</Radio>
<Radio
label=
"1"
>
未排产
</Radio>
<Radio
label=
"1"
>
未排产
</Radio>
<Radio
label=
"2"
>
已排查
</Radio>
<Radio
label=
"2"
>
已排查
</Radio>
</RadioGroup>
</RadioGroup>
</Col>
</Col>
-->
</Row>
</Row>
<div
class=
"right-body"
>
<div
class=
"right-body"
>
<div
class=
"list"
>
<div
class=
"list"
>
...
@@ -50,14 +52,14 @@
...
@@ -50,14 +52,14 @@
<TimelineItem
v-for=
"(item, index) in result"
:key=
"index"
>
<TimelineItem
v-for=
"(item, index) in result"
:key=
"index"
>
<Badge
:count=
"index+ 1"
slot=
"dot"
:type=
"type(index)"
></Badge>
<Badge
:count=
"index+ 1"
slot=
"dot"
:type=
"type(index)"
></Badge>
<div
class=
"set-name"
>
<div
class=
"set-name"
>
<span
@
click=
"sets(item.routingHeaderId)"
>
{{
item
.
task
name
}}
</span>
&
nbsp
<span
@
click=
"sets(item.routingHeaderId)"
>
工序名称:
{{
item
.
name
}}
</span>
&
nbsp
<Tooltip
content=
"拆分工序"
placement=
"top"
>
<Tooltip
content=
"拆分工序"
placement=
"top"
>
<Icon
type=
"md-bluetooth"
@
click=
"split"
/>
<Icon
type=
"md-bluetooth"
@
click=
"split"
/>
</Tooltip>
</Tooltip>
<Icon
type=
"ios-trash"
@
click=
"remove"
/>
<Icon
type=
"ios-trash"
@
click=
"remove"
/>
</div>
</div>
<div>
{{
item
.
equip_id
}}
</div>
<div>
任务顺序:
{{
item
.
task_seq
}}
</div>
<div>
{{
item
.
equip_type
}}
</div>
<div>
数量:
{{
item
.
quantity
}}
</div>
<div>
{{
item
.
resources_Type_Name
}}
</div>
<div>
{{
item
.
resources_Type_Name
}}
</div>
</TimelineItem>
</TimelineItem>
</Timeline>
</Timeline>
...
@@ -144,18 +146,27 @@ export default {
...
@@ -144,18 +146,27 @@ export default {
},
},
//排产池列表
//排产池列表
orderlist
()
{
orderlist
()
{
Api
.
getpooltypeorderlist
({
PoolType
:
3
,
status
:
this
.
status
}).
then
(
r
=>
{
Api
.
getpooltypeorderlist
({
PoolType
:
3
,
status
:
this
.
status
}).
then
(
r
=>
{
// console.log(r)
// console.log(r)
if
(
r
.
success
)
{
if
(
r
.
result
)
{
r
.
result
.
forEach
(
e
=>
{
r
.
result
.
forEach
(
e
=>
{
return
(
e
.
checked
=
false
);
return
(
e
.
checked
=
false
);
});
});
this
.
list
=
r
.
result
;
this
.
list
=
r
.
result
;
if
(
r
.
result
[
0
])
{
this
.
tagTata
(
r
.
result
[
0
].
id
);
}
else
{
this
.
result
=
[];
}
}
else
{
this
.
$Message
.
info
(
"排产池数据请求失败"
);
}
}
});
});
},
},
//点击选中排产订单
//点击选中排产订单
listData
(
li
)
{
listData
(
li
,
index
)
{
console
.
log
(
li
);
this
.
isactive
=
index
;
this
.
isactive
=
index
;
this
.
group
.
orderId
=
li
.
id
;
this
.
group
.
orderId
=
li
.
id
;
this
.
tagTata
(
li
.
id
);
this
.
tagTata
(
li
.
id
);
...
@@ -169,9 +180,9 @@ export default {
...
@@ -169,9 +180,9 @@ export default {
});
});
},
},
//工序排产过滤
//工序排产过滤
changeRodio
(
a
)
{
//
changeRodio(a) {
console
.
log
(
a
);
//
console.log(a);
},
//
},
//删除排产订单
//删除排产订单
close
()
{
close
()
{
this
.
$Modal
.
confirm
({
this
.
$Modal
.
confirm
({
...
@@ -250,9 +261,9 @@ export default {
...
@@ -250,9 +261,9 @@ export default {
.aps-l {
.aps-l {
width: 20%;
width: 20%;
border-right: 1px solid #e4e6ed;
border-right: 1px solid #e4e6ed;
height: 86vh;
padding: 0 15px 10px 10px;
padding: 0 15px 10px 10px;
overflow: auto;
.row-p {
.row-p {
border-bottom: 1px solid #e4e6ed;
border-bottom: 1px solid #e4e6ed;
padding: 5px;
padding: 5px;
...
@@ -265,6 +276,9 @@ export default {
...
@@ -265,6 +276,9 @@ export default {
text-align: right;
text-align: right;
}
}
}
}
.left-down {
height: 82vh;
overflow: auto;
.left-body:hover {
.left-body:hover {
cursor: pointer;
cursor: pointer;
border-color: rgba(38, 128, 235, 0.5);
border-color: rgba(38, 128, 235, 0.5);
...
@@ -304,9 +318,11 @@ export default {
...
@@ -304,9 +318,11 @@ export default {
}
}
}
}
}
}
}
.aps-r {
.aps-r {
width: 80%;
width: 80%;
padding: 0 15px;
padding: 0 15px;
.g-list {
.g-list {
font-size: 14px;
font-size: 14px;
width: 100%;
width: 100%;
...
@@ -323,6 +339,8 @@ export default {
...
@@ -323,6 +339,8 @@ export default {
}
}
.right-body {
.right-body {
margin-top: 15px;
margin-top: 15px;
height: 82vh;
overflow: auto;
.list {
.list {
padding-left: 10px;
padding-left: 10px;
.set-name {
.set-name {
...
...
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