Commit 2c9c78de authored by 仇晓婷's avatar 仇晓婷

整机排产

parent ff6e3b4b
...@@ -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); //手工排产:查询所在车间下的所有班组信息
// }, // },
......
...@@ -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%;
......
...@@ -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.taskname}}</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 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment