Commit dc9bb3c2 authored by renjintao's avatar renjintao

Merge branch 'master' of git.mes123.com:zhouyx/mes-ui

parents 154ad370 417d9426
import Api from '@/plugins/request'
export default {
// getpooltypeorderlist(params) {
// return Api.get(`${PlanUrl}/messchedule/getpooltypeorderlist`, params); //排产池订单数据
// },
getpooltypeorderlist(params) {
return Api.get(`${PlanUrl}/messchedule/getpooltypeorderlist`, params); //排产池订单数据
return Api.get(`${PlanUrl}/messchedule/getpooltypeorderlist_new`, params); //排产池订单数据
},
// getroutingdetails(params) {
// return Api.get(`${PlanUrl}/messchedule/getroutingdetails`, params); //工序信息
// },
getroutingdetails(params) {
return Api.get(`${PlanUrl}/messchedule/getroutingdetails`, params); //工序信息
return Api.get(`${PlanUrl}/messchedule/getroutingdetails_mutiroutinggroup`, params); //工序信息
},
flonestepschedule(params) {
return Api.post(`${PlanUrl}/messchedule/flonestepschedule`, params); //流水一级
......
......@@ -73,23 +73,33 @@
</Row>
<Row class="right-body">
<Col class="list" span="24">
<Card v-for="(li, i) in result" :key="i">
<p slot="title">
<Badge :count="i + 1"></Badge>
{{ li.routingCode }} / {{ li.routingName }}
</p>
<Timeline>
<TimelineItem v-for="(item, index) in result" :key="index">
<Badge :count="item.seq" slot="dot" :type="type(index)"></Badge>
<TimelineItem v-for="(item, index) in li.list" :key="index">
<Badge
:count="item.seq"
slot="dot"
:type="item.aps == 1 ? 'error' : 'success'"
></Badge>
<div class="set-name">
<span
@click="sets(item, index)"
@click="sets(i, item, index)"
class="mr20"
:class="active == index ? 'gongTitle' : ''"
>工序名称:{{ item.name }}</span
>
<op
title="拆分工序"
@click="split(item, index)"
@click="split(li, i, item, index)"
type="icon"
icon="ios-cut"
v-if="item.quantity > 1 && !item.chai"
></op>
>
</op>
<op
title="移除"
@click="remove(item, index)"
......@@ -97,7 +107,8 @@
icon="ios-trash"
oprate="delete"
v-if="item.chai"
></op>
>
</op>
</div>
<div class="content">数量:{{ item.quantity }}</div>
......@@ -123,6 +134,7 @@
<!-- <div>工序号:{{item.task_seq}}</div> -->
</TimelineItem>
</Timeline>
</Card>
<div>
<Drawer
title="排产设置盘"
......@@ -168,6 +180,7 @@
<script>
import Set from "./set";
import Api from "./api";
import { forEach } from "lodash";
export default {
name: "set",
components: {
......@@ -182,8 +195,9 @@ export default {
disabled: false,
chaiLIst: [],
mode: 1,
itemList: [],
curIndex: -1,
liIndex: -1,
indexId: 0,
active: null,
activeindex: 1,
......@@ -232,11 +246,6 @@ export default {
u.demandStartDate = u.demandStartDate.substr(0, 10);
});
this.list = r.result;
// if (r.result[0]) {
// this.tagTata(r.result[0].id);
// } else {
// this.result = [];
// }
} else {
this.$Message.info("排产池数据请求失败");
}
......@@ -259,20 +268,20 @@ export default {
tagTata(id) {
Api.getroutingdetails({ id: id }).then((r) => {
if (r.success) {
r.result.map((u) => {
// console.log(r)
r.result.map((e) => {
e.list.map((u) => {
u.seq = u.task_seq;
u.chaiCount = 0;
u.chai = false;
u.aps = 0;
});
});
this.result = r.result;
}
});
},
//工序排产过滤
// changeRodio(a) {
// console.log(a);
// },
//删除排产订单
close(id) {
let ids = [];
......@@ -295,36 +304,29 @@ export default {
},
});
},
//工序列表序列设置
type(i) {
// console.log(i);
if (i < this.result.length) {
return "normal";
} else if (i === this.result.length) {
return "success";
}
},
//设置工序
sets(item, index) {
sets(i, item, index) {
console.log(item);
this.set = true;
this.indexId = index;
this.liIndex = i;
this.detailId = item.detailId;
this.active = index;
this.$refs.setObj.formItem = {};
// this.group.orderId = item.orderId;
// this.group.routingHeaderId = item.routingHeaderId;
// this.$refs.setObj.formItem = {};
// this.$refs.setObj.formItem.radio = "0";
this.$refs.setObj.formItem.userIds = [];
},
//拆分工序
split(item, i) {
split(li, i, item, index) {
this.chaiModal = true;
this.curIndex = i;
this.maxnum = this.result[i].quantity - 1;
this.curIndex = index;
this.itemList = [];
this.liIndex = i;
this.itemList = li.list;
this.maxnum = item.quantity - 1;
},
//拆分保存
okChai() {
let items = this.$u.clone(this.result);
let items = this.$u.clone(this.itemList);
let curItem = items[this.curIndex];
curItem.aps = this.mode;
......@@ -342,20 +344,25 @@ export default {
total = this.curIndex;
}
items.splice(total, 0, addItem);
this.result = items;
console.log(items);
this.result[this.liIndex].list = items;
},
//删除工序
remove(item, index) {
let vroot = -1;
this.result.map((u, i) => {
let liIndex = -1;
this.result.map((e, v) => {
e.list.map((u, i) => {
if (!u.chai && u.detailId === item.detailId) {
vroot = i;
liIndex = v;
}
u.chaiCount = u.chaiCount - 1;
});
this.result[vroot].quantity += item.quantity;
});
this.result[liIndex].list[vroot].quantity += item.quantity;
var list = this.$u.clone(this.result);
list.splice(index, 1);
list[liIndex].list.splice(index, 1);
this.result = list;
},
//下发
......@@ -364,20 +371,21 @@ export default {
var items = [];
var obj = {};
if (this.mode == 1) {
for (let i = 0; i < this.result.length; i++) {
this.result.forEach((element) => {
for (let i = 0; i < element.list.length; i++) {
obj = {
detailId: this.result[i].detailId,
userIds: this.result[i].userIds,
quantity: this.result[i].quantity,
beginTime: this.result[i].beginTime,
endTime: this.result[i].endTime,
remark: this.result[i].remark,
detailId: element.list[i].detailId,
userIds: element.list[i].userIds,
quantity: element.list[i].quantity,
beginTime: element.list[i].beginTime,
endTime: element.list[i].endTime,
remark: element.list[i].remark,
};
items.push(obj);
}
let data = {
orderId: this.orderId,
routingHeaderId: this.routingHeaderId,
routingHeaderId: element.routingHeaderId,
items: items,
};
Api.flonestepschedule(data).then((r) => {
......@@ -389,21 +397,23 @@ export default {
this.$Message.info("下发失败");
}
});
});
} else if (this.mode == 2) {
for (let i = 0; i < this.result.length; i++) {
this.result.forEach((element) => {
for (let i = 0; i < element.list.length; i++) {
obj = {
detailId: this.result[i].detailId,
shopId: this.result[i].shopId,
quantity: this.result[i].quantity,
beginTime: this.result[i].beginTime,
endTime: this.result[i].endTime,
remark: this.result[i].remark,
detailId: element.list.length[i].detailId,
shopId: element.list.length[i].shopId,
quantity: element.list.length[i].quantity,
beginTime: element.list.length[i].beginTime,
endTime: element.list.length[i].endTime,
remark: element.list.length[i].remark,
};
items.push(obj);
}
let data = {
orderId: this.orderId,
routingHeaderId: this.routingHeaderId,
routingHeaderId: element.routingHeaderId,
items: items,
};
Api.fltwostepschedule(data).then((r) => {
......@@ -415,6 +425,7 @@ export default {
this.$Message.info("下发失败");
}
});
});
}
} else {
this.$Message.info("请先选择排产订单并设置工序");
......@@ -422,22 +433,24 @@ export default {
},
closeOk() {
this.set = false;
// this.active = null;
},
DetermineOk(val, index) {
let item = Object.assign(this.result[index], val);
let item = Object.assign(this.result[this.liIndex].list[index], val);
item.aps = this.mode;
this.$set(this.result, index, item);
this.$set(this.result[this.liIndex].list, index, item);
this.set = false;
},
},
computed: {
allow() {
let mode = this.mode;
var flag = true;
let oks = this.result.filter((u) => {
return u.aps == mode;
u.list.map((e) => {
if (e.aps != mode) flag = false;
});
});
return oks.length == this.result.length;
return flag;
},
},
};
......@@ -539,8 +552,8 @@ export default {
height: 82vh;
overflow: auto;
.list {
padding-left: 10px;
padding-top: 30px;
// padding-left: 10px;
// padding-top: 15px;
.set-name {
font-weight: bold;
height: 30px;
......@@ -568,6 +581,13 @@ export default {
.gong-list {
color: rgba(38, 128, 235, 0.7);
}
.ivu-card {
margin: 10px 0;
}
.ivu-timeline {
margin-left: 40px;
}
}
.xia-fa {
text-align: right;
......
<template>
<div class="set">
<Form :model="formItem" :label-width="100" :rules="ruleValidate" ref="formItem">
<Form
:model="formItem"
:label-width="100"
:rules="ruleValidate"
ref="formItem"
>
<FormItem label="工时" prop="time">
<DatePicker
type="datetimerange"
......@@ -8,7 +13,7 @@
placeholder="请选择工时"
@on-change="changeFormat"
v-model="formItem.time"
style="width:300px"
style="width: 300px"
></DatePicker>
</FormItem>
<!-- <FormItem label="类型">
......@@ -17,32 +22,41 @@
<Radio label="1">班组</Radio>
</RadioGroup>
</FormItem>-->
<FormItem label="人员" v-if="mode==1" prop="userIds">
<FormItem label="人员" v-if="mode == 1" prop="userIds">
<!-- <UserSelect
ref="userSelected"
v-model="formItem.userIds"
style="width:300px"
:multiple="true"
/>-->
<UserSelect v-model="formItem.userIds" :multiple="true" :type="2"/>
<UserSelect v-model="formItem.userIds" :multiple="true" :type="2" />
</FormItem>
<FormItem label="班组" v-if="mode==2" prop="shopId">
<Select v-model="formItem.shopId" placeholder="请选择" style="width:300px">
<FormItem label="班组" v-if="mode == 2" prop="shopId">
<Select
v-model="formItem.shopId"
placeholder="请选择"
style="width: 300px"
>
<Option
v-for="(item,index) in listClass"
v-for="(item, index) in listClass"
:key="index"
:value="item.value"
:label="item.label"
style="display:none"
style="display: none"
></Option>
<Tree key="mytree" :data="workShop" ref="mytree" :render="renderContent"></Tree>
<Tree
key="mytree"
:data="workShop"
ref="mytree"
:render="renderContent"
></Tree>
</Select>
</FormItem>
<FormItem label="备注">
<Input
v-model="formItem.remark"
type="textarea"
:autosize="{minRows: 2,maxRows: 5}"
:autosize="{ minRows: 2, maxRows: 5 }"
placeholder="请输入备注信息"
></Input>
</FormItem>
......@@ -60,7 +74,7 @@ export default {
props: {
detailId: Number,
indexId: Number,
mode: Number
mode: Number,
},
data() {
return {
......@@ -75,7 +89,7 @@ export default {
departmentTitle: "",
shopId: "",
shopName: "",
userIds: []
userIds: [],
},
workShop: [],
listClass: [],
......@@ -88,26 +102,26 @@ export default {
trigger: "blur",
fields: {
0: { type: "date", required: true, message: "请选择工时时间段" },
1: { type: "date", required: true, message: "请选择工时时间段" }
}
}
1: { type: "date", required: true, message: "请选择工时时间段" },
},
},
],
userIds: [
{
required: true,
message: "请选择人员",
type: "array",
trigger: "change",
},
],
// user: [
// {
// required: true,
// message: "请选择人员",
// type: "array",
// trigger: "change"
// }
// ],
shopId: [
{
required: true,
message: "请选择班组",
trigger: "change"
}
]
}
trigger: "change",
},
],
},
};
},
mounted() {
......@@ -120,7 +134,7 @@ export default {
if (this.formItem.userIds && this.formItem.userIds.length == 0) {
this.$Message.error("人员不能为空");
} else {
this.$refs["formItem"].validate(valid => {
this.$refs["formItem"].validate((valid) => {
if (valid) {
this.formItem.detailId = this.detailId;
this.$emit("on-DetermineOk", this.formItem, this.indexId);
......@@ -146,7 +160,7 @@ export default {
//部门(班组)
getWorkshop() {
let url = `${systemUrl}/department/getdepartmentsbyproterty`;
this.$api.get(url,{Property:2}).then(r => {
this.$api.get(url, { Property: 2 }).then((r) => {
if (r.result) {
this.workShop = r.result;
}
......@@ -158,13 +172,13 @@ export default {
"span",
{
style: {
cursor: "pointer"
cursor: "pointer",
},
on: {
click: () => {
this.handleSelect(data); //手动选择树节点
}
}
},
},
},
data.name
);
......@@ -172,21 +186,21 @@ export default {
handleSelect(data) {
let obj = {
label: data.name,
value: data.id
value: data.id,
};
this.listClass = [];
this.listClass.push(obj);
this.formItem.shopId = this.listClass[0].value;
this.formItem.shopName = this.listClass[0].label;
}
},
},
watch: {
"formItem.radio"(v) {
if (v == 1) {
this.getWorkshop();
}
}
}
},
},
};
</script>
<style lang="less" scoped>
......
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