Commit e9ec59aa authored by 仇晓婷's avatar 仇晓婷

排产

parent 8d77c5ed
import Api from '@/plugins/request' import Api from '@/plugins/request'
export default { export default {
getmesorder(params) { getpooltypeorderlist(params) {
return Api.get(`${apsManualUrl}/aps/getmesorder`, params); //待排产订单数据 return Api.get(`${PlanUrl}/messchedule/getpooltypeorderlist`, params); //排产池订单数据
}, },
gettaskseqinfo(params) { gettaskseqinfo(params) {
return Api.get(`${apsManualUrl}/aps/gettaskseqinfo`, params); //根据订单获取全部工序数据 return Api.get(`${PlanUrl}/aps/gettaskseqinfo`, params); //根据订单获取全部工序数据
}, },
getlist(params) { getlist(params) {
return Api.get(`${apsManualUrl}/mes_sys_shop_info/getlist`, params); //手工排产:查询所在车间下的所有班组信息 return Api.get(`${PlanUrl}/mes_sys_shop_info/getlist`, params); //手工排产:查询所在车间下的所有班组信息
}, },
getbyshopid(params) { getbyshopid(params) {
return Api.get(`${apsManualUrl}/mes_sys_user_info/getuserbyshopid`, params); //手工排产:根据班组ID,加载人员信息 return Api.get(`${PlanUrl}/mes_sys_user_info/getuserbyshopid`, params); //手工排产:根据班组ID,加载人员信息
}, },
getlistEquip(params) { getlistEquip(params) {
return Api.get(`${apsManualUrl}/mes_equip_info/getlist`, params); //手工排产:获取所在车间的设备 return Api.get(`${PlanUrl}/mes_equip_info/getlist`, params); //手工排产:获取所在车间的设备
}, },
getbyequippk(params) { getbyequippk(params) {
return Api.get(`${apsManualUrl}/mes_sys_user_info/getuserbyequippk`, params); //手工排产:根据设备ID,加载人员信息 return Api.get(`${PlanUrl}/mes_sys_user_info/getuserbyequippk`, params); //手工排产:根据设备ID,加载人员信息
}, },
} }
\ No newline at end of file
...@@ -20,7 +20,15 @@ ...@@ -20,7 +20,15 @@
</div> </div>
</Col> </Col>
</Row> </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 <!-- <CheckboxGroup
v-model="checkAllGroup" v-model="checkAllGroup"
@on-change="checkAllGroupChange" @on-change="checkAllGroupChange"
...@@ -38,6 +46,7 @@ export default { ...@@ -38,6 +46,7 @@ export default {
props: ["singleList"], props: ["singleList"],
data() { data() {
return { return {
chooseNum: null,
indeterminate: true, indeterminate: true,
checkAll: false, checkAll: false,
checkAllGroup: [], checkAllGroup: [],
...@@ -45,7 +54,20 @@ export default { ...@@ -45,7 +54,20 @@ export default {
show: -1, show: -1,
list: [ list: [
{ {
name: "张芳" name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
} }
], ],
taglistData: [] taglistData: []
...@@ -56,47 +78,74 @@ export default { ...@@ -56,47 +78,74 @@ export default {
// this.checkList() // this.checkList()
}, },
methods: { 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) { handleCheckAll(id) {
// console.log(this.list)
// this.list.map((u) => {
// console.log(u)
// })
// this.checkList(id)
this.checkAll = !this.checkAll; this.checkAll = !this.checkAll;
if (this.checkAll) { if (this.checkAll) {
let listNew = []; this.$refs.liId.forEach((element, index) => {
this.$refs.liId[index].className = "li-focus"; // 添加类
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 { } 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) { // checkAllGroupChange(data) {
console.log(data); // console.log(data);
console.log(this.list); // console.log(this.list);
this.checkAllGroup = data; // this.checkAllGroup = data;
this.$emit("changeData", this.checkAllGroup); // this.$emit("changeData", this.checkAllGroup);
if (data.length === this.list.length) { // if (data.length === this.list.length) {
this.indeterminate = false; // this.indeterminate = false;
this.checkAll = true; // this.checkAll = true;
} else if (data.length > 0) { // } else if (data.length > 0) {
this.indeterminate = true; // this.indeterminate = true;
this.checkAll = false; // this.checkAll = false;
} else { // } else {
this.indeterminate = false; // this.indeterminate = false;
this.checkAll = false; // this.checkAll = false;
} // }
}, // },
checkList(id) { checkList(id) {
if (this.resourcesType == 0) { if (this.resourcesType == 0) {
//班组 //班组
...@@ -145,6 +194,7 @@ export default { ...@@ -145,6 +194,7 @@ export default {
.checkbox-list { .checkbox-list {
.icon-down { .icon-down {
text-align: right; text-align: right;
cursor: pointer;
} }
.check-title { .check-title {
height: 40px; height: 40px;
...@@ -152,17 +202,27 @@ export default { ...@@ -152,17 +202,27 @@ export default {
padding: 0 10px; padding: 0 10px;
background: rgba(38, 128, 235, 0.5); background: rgba(38, 128, 235, 0.5);
} }
.row-name { ul {
text-align: center; min-height: 60px;
width: 100px; padding: 10px 5px;
height: 30; display: flex;
border-radius: 20px; li {
margin: 5px; list-style-type: none;
cursor: pointer; text-align: center;
background: rgba(38, 128, 235, 0.2); width: 100px;
} height: 30px;
.row-name:hover { line-height: 30px;
border: 1px solid rgba(38, 128, 235, 0.5); 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> </style>
\ No newline at end of file
...@@ -20,20 +20,21 @@ ...@@ -20,20 +20,21 @@
> >
<Row class="title-i"> <Row class="title-i">
<Col :span="20" class="order-code"> <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>
<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">
<span>工序:{{li.routing_schema}}</span> <span>工序:{{li.drawnNumber}}</span>
</div> </div>
<div class="time-s">{{li.demand_start}}{{li.demand_finish}}</div> <div class="time-s">{{li.demandFinishDate}}{{li.demandStartDate}}</div>
</div> </div>
</div> </div>
<div class="aps-r"> <div class="aps-r">
<div class="r-title">排产设置盘</div>
<Form :model="formItem" :label-width="100"> <Form :model="formItem" :label-width="100">
<FormItem label="工时"> <FormItem label="工时">
<DatePicker <DatePicker
...@@ -64,7 +65,7 @@ ...@@ -64,7 +65,7 @@
</Select> </Select>
</FormItem> </FormItem>
<FormItem> <FormItem v-if="formItem.radio==0">
<!-- <UserSelect ref="userSelected" v-model="formItem.DistributeMainRouting" /> --> <!-- <UserSelect ref="userSelected" v-model="formItem.DistributeMainRouting" /> -->
<div class="list-check"> <div class="list-check">
<Checkbox-List <Checkbox-List
...@@ -79,13 +80,18 @@ ...@@ -79,13 +80,18 @@
<!-- 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">
<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)" color="rgba(38,128,235,0.3)"
closable closable
@on-close="handleClose" @on-close="handleClose"
:key="index" :key="index"
v-for="(val, index) in tagGroup" v-for="(val, index) in tagGroup"
>{{val.name}}</Tag> >{{val.name}}</Tag>-->
</div> </div>
</FormItem> </FormItem>
<FormItem label="备注"> <FormItem label="备注">
...@@ -107,7 +113,7 @@ ...@@ -107,7 +113,7 @@
<script> <script>
import CheckboxList from "./checkboxList"; import CheckboxList from "./checkboxList";
// import Set from './set' // import Set from './set'
// import Api from './api' import Api from "./api";
export default { export default {
name: "list", name: "list",
components: { components: {
...@@ -119,32 +125,7 @@ export default { ...@@ -119,32 +125,7 @@ export default {
data() { data() {
return { return {
// activeindex: 1, // activeindex: 1,
list: [ 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
}
],
status: "0", //全部排产0,1为未排产;2为已排查; status: "0", //全部排产0,1为未排产;2为已排查;
partTaskPk: "", //车间 partTaskPk: "", //车间
result: [], result: [],
...@@ -174,7 +155,20 @@ export default { ...@@ -174,7 +155,20 @@ export default {
], ],
tagGroup: [ tagGroup: [
{ {
name: "张芳" name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
} }
], ],
cityList: [ cityList: [
...@@ -198,7 +192,7 @@ export default { ...@@ -198,7 +192,7 @@ export default {
}; };
}, },
created() { created() {
// this.orderlist() this.orderlist();
}, },
methods: { methods: {
// 过滤条件 // 过滤条件
...@@ -206,19 +200,21 @@ export default { ...@@ -206,19 +200,21 @@ export default {
console.log(a); console.log(a);
// this.orderlist(a); // this.orderlist(a);
}, },
orderlist(a) { orderlist() {
if (a == 0) { // if (a == 0) {
//全部 // //全部
} else if (a == 1) { // } else if (a == 1) {
//未排产 // //未排产
} else if (a == 2) { // } else if (a == 2) {
//已排产 // //已排产
} // }
Api.getmesorder({ status: 2, workshop_id: 3 }).then(r => { Api.getpooltypeorderlist({ PoolType: 2 }).then(r => {
// console.log(r) // console.log(r)
if (r.success) { if (r.success) {
r.result.forEach(e => {
return (e.checked = false);
});
this.list = r.result; this.list = r.result;
this.listData(r.result[0].part_task_pk, 0);
} }
}); });
}, },
...@@ -265,7 +261,8 @@ export default { ...@@ -265,7 +261,8 @@ export default {
}, },
setData(val) { setData(val) {
this.tagGroup = val; this.tagGroup = val;
} },
closeTag() {}
} }
}; };
</script> </script>
...@@ -336,6 +333,11 @@ export default { ...@@ -336,6 +333,11 @@ export default {
padding: 15px 15px 15px 30px; padding: 15px 15px 15px 30px;
margin-left: 20px; margin-left: 20px;
box-shadow: darkgrey 2px 2px 8px 1px; //边框阴影 box-shadow: darkgrey 2px 2px 8px 1px; //边框阴影
.r-title {
font-size: 14px;
font-weight: bold;
margin-bottom: 10px;
}
.list-check { .list-check {
border: 1px solid rgba(38, 128, 235, 0.5); border: 1px solid rgba(38, 128, 235, 0.5);
} }
...@@ -343,6 +345,19 @@ export default { ...@@ -343,6 +345,19 @@ export default {
width: 100%; width: 100%;
min-height: 50px; min-height: 50px;
border: 1px solid rgba(228, 230, 237, 1); 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;
}
}
} }
} }
} }
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<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="changeStatus" 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>
...@@ -45,18 +45,55 @@ ...@@ -45,18 +45,55 @@
</Col> </Col>
</Row> </Row>
<div class="right-body"> <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>
</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> </div>
</template> </template>
<script> <script>
import List from "./list.vue"; // import List from "./list.vue";
import Set from "./set";
import Api from "./api"; import Api from "./api";
export default { export default {
name: "list", name: "list",
components: { components: {
List Set
// List
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典 await store.dispatch("loadDictionary"); // 加载数据字典
...@@ -82,20 +119,33 @@ export default { ...@@ -82,20 +119,33 @@ export default {
], ],
status: "0", //全部排产0,1为未排产;2为已排查; status: "0", //全部排产0,1为未排产;2为已排查;
partTaskPk: "", //车间 partTaskPk: "", //车间
result: [], result: [
{
taskname: "工序名称",
equip_id: "制造资源",
equip_type: "排产资源",
resources_Type_Name: "备注信息"
},
{
taskname: "工序名称",
equip_id: "制造资源",
equip_type: "排产资源",
resources_Type_Name: "备注信息"
}
],
isactive: 0, isactive: 0,
selectName: "all" selectName: "all",
resourcesType: null,
set: false,
chaiNum: 1, //拆分数量
chaiModal: false
}; };
}, },
created() { created() {
// this.orderlist(); // this.orderlist();
}, },
methods: { methods: {
// 过滤条件 //排产池列表
changeStatus(a) {
console.log(a);
// this.orderlist(a);
},
orderlist() { orderlist() {
Api.getmesorder({ status: 2, workshop_id: 3 }).then(r => { Api.getmesorder({ status: 2, workshop_id: 3 }).then(r => {
// console.log(r) // console.log(r)
...@@ -105,26 +155,25 @@ export default { ...@@ -105,26 +155,25 @@ export default {
} }
}); });
}, },
//点击选中排产订单
listData(li, index) { listData(li, index) {
this.status = ""; // this.status = "";
this.partTaskPk = li; // this.partTaskPk = li;
this.tagClick("all"); // this.tagClick("all");
this.isactive = index; 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) { tagTata(name) {
if (name == "all") {
this.status = "";
}
if (name == "yi") {
this.status = 13;
}
if (name == "wei") {
this.status = 0;
}
let data = { let data = {
part_task_pk: this.partTaskPk, part_task_pk: this.partTaskPk,
status: this.status status: this.status
...@@ -136,7 +185,70 @@ export default { ...@@ -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> </script>
...@@ -227,6 +339,25 @@ export default { ...@@ -227,6 +339,25 @@ export default {
} }
.right-body { .right-body {
margin-top: 15px; 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;
}
}
} }
} }
} }
......
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