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
e9ec59aa
Commit
e9ec59aa
authored
Apr 23, 2020
by
仇晓婷
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
排产
parent
8d77c5ed
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
332 additions
and
126 deletions
+332
-126
api.js
pages/aps/complete/api.js
+7
-7
checkboxList.vue
pages/aps/complete/checkboxList.vue
+105
-45
index.vue
pages/aps/complete/index.vue
+62
-47
index.vue
pages/aps/stream/index.vue
+158
-27
No files found.
pages/aps/complete/api.js
View file @
e9ec59aa
import
Api
from
'@/plugins/request'
export
default
{
get
mesorder
(
params
)
{
return
Api
.
get
(
`
${
apsManualUrl
}
/aps/getmesorder`
,
params
);
//待排产
订单数据
get
pooltypeorderlist
(
params
)
{
return
Api
.
get
(
`
${
PlanUrl
}
/messchedule/getpooltypeorderlist`
,
params
);
//排产池
订单数据
},
gettaskseqinfo
(
params
)
{
return
Api
.
get
(
`
${
apsManual
Url
}
/aps/gettaskseqinfo`
,
params
);
//根据订单获取全部工序数据
return
Api
.
get
(
`
${
Plan
Url
}
/aps/gettaskseqinfo`
,
params
);
//根据订单获取全部工序数据
},
getlist
(
params
)
{
return
Api
.
get
(
`
${
apsManual
Url
}
/mes_sys_shop_info/getlist`
,
params
);
//手工排产:查询所在车间下的所有班组信息
return
Api
.
get
(
`
${
Plan
Url
}
/mes_sys_shop_info/getlist`
,
params
);
//手工排产:查询所在车间下的所有班组信息
},
getbyshopid
(
params
)
{
return
Api
.
get
(
`
${
apsManual
Url
}
/mes_sys_user_info/getuserbyshopid`
,
params
);
//手工排产:根据班组ID,加载人员信息
return
Api
.
get
(
`
${
Plan
Url
}
/mes_sys_user_info/getuserbyshopid`
,
params
);
//手工排产:根据班组ID,加载人员信息
},
getlistEquip
(
params
)
{
return
Api
.
get
(
`
${
apsManual
Url
}
/mes_equip_info/getlist`
,
params
);
//手工排产:获取所在车间的设备
return
Api
.
get
(
`
${
Plan
Url
}
/mes_equip_info/getlist`
,
params
);
//手工排产:获取所在车间的设备
},
getbyequippk
(
params
)
{
return
Api
.
get
(
`
${
apsManual
Url
}
/mes_sys_user_info/getuserbyequippk`
,
params
);
//手工排产:根据设备ID,加载人员信息
return
Api
.
get
(
`
${
Plan
Url
}
/mes_sys_user_info/getuserbyequippk`
,
params
);
//手工排产:根据设备ID,加载人员信息
},
}
\ No newline at end of file
pages/aps/complete/checkboxList.vue
View file @
e9ec59aa
...
...
@@ -20,7 +20,15 @@
</div>
</Col>
</Row>
<div
class=
"row-name"
>
张芳
&
nbsp
&
nbsp 1级
</div>
<ul
v-if=
"singleList.isClick"
>
<li
ref=
"liId"
v-for=
"(item,index) in list"
:key=
"index"
@
click=
"onclick(index)"
>
{{
item
.
name
}}
&
nbsp
&
nbsp
{{
item
.
class
}}
</li>
</ul>
<!--
<CheckboxGroup
v-model=
"checkAllGroup"
@
on-change=
"checkAllGroupChange"
...
...
@@ -38,6 +46,7 @@ export default {
props
:
[
"singleList"
],
data
()
{
return
{
chooseNum
:
null
,
indeterminate
:
true
,
checkAll
:
false
,
checkAllGroup
:
[],
...
...
@@ -45,7 +54,20 @@ export default {
show
:
-
1
,
list
:
[
{
name
:
"张芳"
name
:
"张芳"
,
class
:
"1级"
},
{
name
:
"张芳"
,
class
:
"1级"
},
{
name
:
"张芳"
,
class
:
"1级"
},
{
name
:
"张芳"
,
class
:
"1级"
}
],
taglistData
:
[]
...
...
@@ -56,47 +78,74 @@ export default {
// this.checkList()
},
methods
:
{
onclick
(
index
)
{
if
(
this
.
$refs
.
liId
[
index
].
className
.
length
<=
0
)
{
this
.
$refs
.
liId
[
index
].
className
=
"li-focus"
;
// 添加类
let
list
=
[];
this
.
$refs
.
liId
.
forEach
((
element
,
index
)
=>
{
if
(
this
.
$refs
.
liId
[
index
].
className
)
{
list
.
push
(
this
.
$refs
.
liId
[
index
].
className
);
}
});
if
(
list
.
length
==
this
.
list
.
length
)
{
this
.
checkAll
=
true
;
}
}
else
{
this
.
$refs
.
liId
[
index
].
className
=
""
;
// 选中再取消的情况
this
.
checkAll
=
false
;
}
},
handleCheckAll
(
id
)
{
// console.log(this.list)
// this.list.map((u) => {
// console.log(u)
// })
// this.checkList(id)
this
.
checkAll
=
!
this
.
checkAll
;
if
(
this
.
checkAll
)
{
let
listNew
=
[];
this
.
list
.
map
(
u
=>
{
if
(
this
.
resourcesType
==
0
)
{
listNew
.
push
(
u
.
user_name
);
}
else
if
(
this
.
resourcesType
==
2
)
{
listNew
.
push
(
u
.
equip_name
);
}
this
.
$refs
.
liId
.
forEach
((
element
,
index
)
=>
{
this
.
$refs
.
liId
[
index
].
className
=
"li-focus"
;
// 添加类
});
this
.
checkAllGroup
=
listNew
;
this
.
$emit
(
"changeData"
,
this
.
checkAllGroup
);
}
else
{
this
.
checkAllGroup
=
[];
this
.
$refs
.
liId
.
forEach
((
element
,
index
)
=>
{
this
.
$refs
.
liId
[
index
].
className
=
""
;
// 选中再取消的情况
});
}
// // console.log(this.list)
// // this.list.map((u) => {
// // console.log(u)
// // })
// // this.checkList(id)
// this.checkAll = !this.checkAll;
// if (this.checkAll) {
// let listNew = [];
// this.list.map(u => {
// if (this.resourcesType == 0) {
// listNew.push(u.user_name);
// } else if (this.resourcesType == 2) {
// listNew.push(u.equip_name);
// }
// });
// this.checkAllGroup = listNew;
// this.$emit("changeData", this.checkAllGroup);
// } else {
// this.checkAllGroup = [];
// }
},
checkAllGroupChange
(
data
)
{
console
.
log
(
data
);
console
.
log
(
this
.
list
);
//
checkAllGroupChange(data) {
//
console.log(data);
//
console.log(this.list);
this
.
checkAllGroup
=
data
;
this
.
$emit
(
"changeData"
,
this
.
checkAllGroup
);
if
(
data
.
length
===
this
.
list
.
length
)
{
this
.
indeterminate
=
false
;
this
.
checkAll
=
true
;
}
else
if
(
data
.
length
>
0
)
{
this
.
indeterminate
=
true
;
this
.
checkAll
=
false
;
}
else
{
this
.
indeterminate
=
false
;
this
.
checkAll
=
false
;
}
},
//
this.checkAllGroup = data;
//
this.$emit("changeData", this.checkAllGroup);
//
if (data.length === this.list.length) {
//
this.indeterminate = false;
//
this.checkAll = true;
//
} else if (data.length > 0) {
//
this.indeterminate = true;
//
this.checkAll = false;
//
} else {
//
this.indeterminate = false;
//
this.checkAll = false;
//
}
//
},
checkList
(
id
)
{
if
(
this
.
resourcesType
==
0
)
{
//班组
...
...
@@ -145,6 +194,7 @@ export default {
.checkbox-list {
.icon-down {
text-align: right;
cursor: pointer;
}
.check-title {
height: 40px;
...
...
@@ -152,17 +202,27 @@ export default {
padding: 0 10px;
background: rgba(38, 128, 235, 0.5);
}
.row-name {
text-align: center;
width: 100px;
height: 30;
border-radius: 20px;
margin: 5px;
cursor: pointer;
background: rgba(38, 128, 235, 0.2);
}
.row-name:hover {
border: 1px solid rgba(38, 128, 235, 0.5);
ul {
min-height: 60px;
padding: 10px 5px;
display: flex;
li {
list-style-type: none;
text-align: center;
width: 100px;
height: 30px;
line-height: 30px;
border-radius: 20px;
margin: 0 5px;
cursor: pointer;
background: rgba(38, 128, 235, 0.15);
}
li:hover {
border: 1px solid rgba(38, 128, 235, 0.5);
}
.li-focus {
border: 1px solid rgba(38, 128, 235, 0.5);
}
}
}
</
style
>
\ No newline at end of file
pages/aps/complete/index.vue
View file @
e9ec59aa
...
...
@@ -20,20 +20,21 @@
>
<Row
class=
"title-i"
>
<Col
:span=
"20"
class=
"order-code"
>
<Checkbox
v-model=
"li.checked"
>
订单号:
{{
li
.
order_id
}}
</Checkbox>
<Checkbox
v-model=
"li.checked"
>
订单号:
{{
li
.
mesCode
}}
</Checkbox>
</Col>
<Col
:span=
"4"
class=
"order-ringht"
>
<Icon
type=
"md-close"
@
click=
"close"
/>
</Col>
</Row>
<div
class=
"fa"
>
{{
li
.
routing_version
}}
</div>
<div
class=
"fa"
>
产品名称:
{{
li
.
productName
}}
</div>
<div
class=
"time-s"
>
<span>
工序:
{{
li
.
routing_schema
}}
</span>
<span>
工序:
{{
li
.
drawnNumber
}}
</span>
</div>
<div
class=
"time-s"
>
{{
li
.
demand
_start
}}
—
{{
li
.
demand_finish
}}
</div>
<div
class=
"time-s"
>
{{
li
.
demand
FinishDate
}}
—
{{
li
.
demandStartDate
}}
</div>
</div>
</div>
<div
class=
"aps-r"
>
<div
class=
"r-title"
>
排产设置盘
</div>
<Form
:model=
"formItem"
:label-width=
"100"
>
<FormItem
label=
"工时"
>
<DatePicker
...
...
@@ -64,7 +65,7 @@
</Select>
</FormItem>
<FormItem>
<FormItem
v-if=
"formItem.radio==0"
>
<!--
<UserSelect
ref=
"userSelected"
v-model=
"formItem.DistributeMainRouting"
/>
-->
<div
class=
"list-check"
>
<Checkbox-List
...
...
@@ -79,13 +80,18 @@
<!-- v-if="tagGroup.lenght>0" -->
<FormItem
label=
"已选择"
v-if=
"formItem.radio==0"
>
<div
class=
"tag-list"
>
<Tag
<div
v-for=
"(item,index) in tagGroup"
:key=
"index"
class=
"tag-group"
>
<span>
{{
item
.
name
}}
&
nbsp
&
nbsp
{{
item
.
class
}}
</span>
<Icon
type=
"md-close"
@
click=
"closeTag"
/>
</div>
<!--
<Tag
color=
"rgba(38,128,235,0.3)"
closable
@
on-close=
"handleClose"
:key=
"index"
v-for=
"(val, index) in tagGroup"
>
{{
val
.
name
}}
</Tag>
>
{{
val
.
name
}}
</Tag>
-->
</div>
</FormItem>
<FormItem
label=
"备注"
>
...
...
@@ -107,7 +113,7 @@
<
script
>
import
CheckboxList
from
"./checkboxList"
;
// import Set from './set'
// import Api from './api'
import
Api
from
"./api"
;
export
default
{
name
:
"list"
,
components
:
{
...
...
@@ -119,32 +125,7 @@ export default {
data
()
{
return
{
// activeindex: 1,
list
:
[
{
part_task_pk
:
"euuei"
,
order_id
:
"hdhfk"
,
routing_version
:
"fsslllsl"
,
demand_start
:
"2020-3-30"
,
demand_finish
:
"2020-3-30"
,
checked
:
true
},
{
part_task_pk
:
"euuei"
,
order_id
:
"hdhfk"
,
routing_version
:
"fsslllsl"
,
demand_start
:
"2020-3-30"
,
demand_finish
:
"2020-3-30"
,
checked
:
true
},
{
part_task_pk
:
"euuei"
,
order_id
:
"hdhfk"
,
routing_version
:
"fsslllsl"
,
demand_start
:
"2020-3-30"
,
demand_finish
:
"2020-3-30"
,
checked
:
false
}
],
list
:
[],
status
:
"0"
,
//全部排产0,1为未排产;2为已排查;
partTaskPk
:
""
,
//车间
result
:
[],
...
...
@@ -174,7 +155,20 @@ export default {
],
tagGroup
:
[
{
name
:
"张芳"
name
:
"张芳"
,
class
:
"1级"
},
{
name
:
"张芳"
,
class
:
"1级"
},
{
name
:
"张芳"
,
class
:
"1级"
},
{
name
:
"张芳"
,
class
:
"1级"
}
],
cityList
:
[
...
...
@@ -198,7 +192,7 @@ export default {
};
},
created
()
{
// this.orderlist()
this
.
orderlist
();
},
methods
:
{
// 过滤条件
...
...
@@ -206,19 +200,21 @@ export default {
console
.
log
(
a
);
// this.orderlist(a);
},
orderlist
(
a
)
{
if
(
a
==
0
)
{
//全部
}
else
if
(
a
==
1
)
{
//未排产
}
else
if
(
a
==
2
)
{
//已排产
}
Api
.
get
mesorder
({
status
:
2
,
workshop_id
:
3
}).
then
(
r
=>
{
orderlist
()
{
//
if (a == 0) {
//
//全部
//
} else if (a == 1) {
//
//未排产
//
} else if (a == 2) {
//
//已排产
//
}
Api
.
get
pooltypeorderlist
({
PoolType
:
2
}).
then
(
r
=>
{
// console.log(r)
if
(
r
.
success
)
{
r
.
result
.
forEach
(
e
=>
{
return
(
e
.
checked
=
false
);
});
this
.
list
=
r
.
result
;
this
.
listData
(
r
.
result
[
0
].
part_task_pk
,
0
);
}
});
},
...
...
@@ -265,7 +261,8 @@ export default {
},
setData
(
val
)
{
this
.
tagGroup
=
val
;
}
},
closeTag
()
{}
}
};
</
script
>
...
...
@@ -336,6 +333,11 @@ export default {
padding: 15px 15px 15px 30px;
margin-left: 20px;
box-shadow: darkgrey 2px 2px 8px 1px; //边框阴影
.r-title {
font-size: 14px;
font-weight: bold;
margin-bottom: 10px;
}
.list-check {
border: 1px solid rgba(38, 128, 235, 0.5);
}
...
...
@@ -343,6 +345,19 @@ export default {
width: 100%;
min-height: 50px;
border: 1px solid rgba(228, 230, 237, 1);
.tag-group {
display: inline-block;
text-align: center;
width: 100px;
height: 30;
line-height: 30px;
border-radius: 20px;
margin: 5px;
background: rgba(38, 128, 235, 0.25);
.ivu-icon {
cursor: pointer;
}
}
}
}
}
...
...
pages/aps/stream/index.vue
View file @
e9ec59aa
...
...
@@ -37,7 +37,7 @@
<Row
class=
"g-list"
>
<Col
:span=
"2"
class=
"chan-chi"
>
工序列表
</Col>
<Col
:span=
"22"
class=
"l-ringht"
>
<RadioGroup
v-model=
"status"
type=
"button"
@
on-change=
"change
Status
"
size=
"small"
>
<RadioGroup
v-model=
"status"
type=
"button"
@
on-change=
"change
Rodio
"
size=
"small"
>
<Radio
label=
"0"
>
全部
</Radio>
<Radio
label=
"1"
>
未排产
</Radio>
<Radio
label=
"2"
>
已排查
</Radio>
...
...
@@ -45,18 +45,55 @@
</Col>
</Row>
<div
class=
"right-body"
>
<List
:result=
"result"
></List>
<div
class=
"list"
>
<Timeline>
<TimelineItem
v-for=
"(item, index) in result"
:key=
"index"
>
<Badge
:count=
"index+ 1"
slot=
"dot"
:type=
"type(index)"
></Badge>
<div
class=
"set-name"
>
<span
@
click=
"sets(item.resources_Type)"
>
{{
item
.
taskname
}}
</span>
&
nbsp
<Tooltip
content=
"拆分工序"
placement=
"top"
>
<Icon
type=
"md-bluetooth"
@
click=
"split"
/>
</Tooltip>
<Icon
type=
"ios-trash"
@
click=
"remove"
/>
</div>
<div>
{{
item
.
equip_id
}}
</div>
<div>
{{
item
.
equip_type
}}
</div>
<div>
{{
item
.
resources_Type_Name
}}
</div>
</TimelineItem>
</Timeline>
<div>
<Drawer
title=
"排产设置盘"
:closable=
"false"
v-model=
"set"
width=
"45%"
>
<Set
:resourcesType=
"resourcesType"
></Set>
</Drawer>
</div>
<!--
<List
:result=
"result"
></List>
-->
</div>
</div>
</div>
<!-- 拆分 fenModel -->
<Modal
v-model=
"chaiModal"
title=
"拆分工序"
:width=
"400"
:mask-closable=
"false"
ok-text=
"拆分"
@
on-ok=
"okChai()"
>
拆分数量:
<InputNumber
v-model=
"chaiNum"
></InputNumber>
<Slider
v-model=
"chaiNum"
:min=
"1"
></Slider>
</Modal>
</div>
</
template
>
<
script
>
import
List
from
"./list.vue"
;
// import List from "./list.vue";
import
Set
from
"./set"
;
import
Api
from
"./api"
;
export
default
{
name
:
"list"
,
components
:
{
List
Set
// List
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
...
...
@@ -82,20 +119,33 @@ export default {
],
status
:
"0"
,
//全部排产0,1为未排产;2为已排查;
partTaskPk
:
""
,
//车间
result
:
[],
result
:
[
{
taskname
:
"工序名称"
,
equip_id
:
"制造资源"
,
equip_type
:
"排产资源"
,
resources_Type_Name
:
"备注信息"
},
{
taskname
:
"工序名称"
,
equip_id
:
"制造资源"
,
equip_type
:
"排产资源"
,
resources_Type_Name
:
"备注信息"
}
],
isactive
:
0
,
selectName
:
"all"
selectName
:
"all"
,
resourcesType
:
null
,
set
:
false
,
chaiNum
:
1
,
//拆分数量
chaiModal
:
false
};
},
created
()
{
// this.orderlist();
},
methods
:
{
// 过滤条件
changeStatus
(
a
)
{
console
.
log
(
a
);
// this.orderlist(a);
},
//排产池列表
orderlist
()
{
Api
.
getmesorder
({
status
:
2
,
workshop_id
:
3
}).
then
(
r
=>
{
// console.log(r)
...
...
@@ -105,26 +155,25 @@ export default {
}
});
},
//点击选中排产订单
listData
(
li
,
index
)
{
this
.
status
=
""
;
this
.
partTaskPk
=
li
;
this
.
tagClick
(
"all"
);
//
this.status = "";
//
this.partTaskPk = li;
//
this.tagClick("all");
this
.
isactive
=
index
;
},
tagClick
(
name
)
{
this
.
selectName
=
name
;
this
.
tagTata
(
this
.
selectName
);
// 排产池过滤条件
changeStatus
(
a
)
{
console
.
log
(
a
);
// this.tagTata(a);
},
//工序排产过滤
changeRodio
(
a
)
{
console
.
log
(
a
);
// this.tagTata(a);
},
tagTata
(
name
)
{
if
(
name
==
"all"
)
{
this
.
status
=
""
;
}
if
(
name
==
"yi"
)
{
this
.
status
=
13
;
}
if
(
name
==
"wei"
)
{
this
.
status
=
0
;
}
let
data
=
{
part_task_pk
:
this
.
partTaskPk
,
status
:
this
.
status
...
...
@@ -136,7 +185,70 @@ export default {
}
});
},
close
()
{}
//删除排产订单
close
()
{
this
.
$Modal
.
confirm
({
title
:
"删除"
,
content
:
"<p>您确定要移除此订单吗</p>"
,
onOk
:
()
=>
{
this
.
$Message
.
success
(
"删除成功"
);
},
onCancel
:
()
=>
{
this
.
$Message
.
info
(
"您已取消删除"
);
}
});
},
//工序列表序列设置
type
(
i
)
{
if
(
i
==
0
)
{
return
"normal"
;
}
else
if
(
i
==
1
)
{
return
"normal"
;
}
else
if
(
i
==
2
)
{
return
"normal"
;
}
else
if
(
i
===
this
.
result
.
length
)
{
return
"success"
;
}
},
//设置工序
sets
(
name
)
{
this
.
set
=
true
;
// this.resourcesType = name;
// if (this.resourcesType == 0 || this.resourcesType == 2) {
// this.set = true;
// } else {
// this.set = false;
// // this.$Message.info('没有设置盘')
// }
},
//拆分工序
split
()
{
this
.
chaiModal
=
true
;
},
//拆分保存
okChai
()
{
// Api.saveTeamentry(this.chaiNum).then(res => {
// if (res.success) {
// this.getUserInfoFn();
// this.$Message.success("拆分成功。");
// } else {
// this.$Message.error("拆分失败...");
// }
// });
},
//删除工序
remove
()
{
this
.
$Modal
.
confirm
({
title
:
"删除"
,
content
:
"<p>您确定要移除此工序吗</p>"
,
onOk
:
()
=>
{
this
.
$Message
.
success
(
"删除成功"
);
},
onCancel
:
()
=>
{
this
.
$Message
.
info
(
"您已取消删除"
);
}
});
}
}
};
</
script
>
...
...
@@ -227,6 +339,25 @@ export default {
}
.right-body {
margin-top: 15px;
.list {
padding-left: 10px;
.set-name {
font-weight: bold;
color: rgba(38, 128, 235, 0.8);
span {
cursor: pointer;
}
.ivu-icon {
cursor: pointer;
}
.top {
text-align: center;
}
}
div {
height: 30px;
}
}
}
}
}
...
...
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