Commit 8a7ddb29 authored by 佟礼's avatar 佟礼

料单确认

parents 4518c49d 9c542e45
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<state code="plan.order.guestName" :value="info.orderInfo.guestName+''" type="text"></state> <state code="plan.order.guestName" :value="info.orderInfo.guestName+''" type="text"></state>
</Filed> </Filed>
<Filed :span="6" :name="l('functionaryOffice')">>{{info.orderInfo.functionaryOffice}}</Filed> <Filed :span="6" :name="l('functionaryOffice')">{{info.orderInfo.functionaryOffice}}</Filed>
<Filed :span="6" :name="l('taskRequire')">{{info.orderInfo.taskRequire}}</Filed> <Filed :span="6" :name="l('taskRequire')">{{info.orderInfo.taskRequire}}</Filed>
<Filed :span="6" :name="l('taskInputDate')">{{info.orderInfo.taskInputDate}}</Filed> <Filed :span="6" :name="l('taskInputDate')">{{info.orderInfo.taskInputDate}}</Filed>
<Filed :span="6" :name="l('mainDepartmentId')"> <Filed :span="6" :name="l('mainDepartmentId')">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</FormItem> </FormItem>
</div> </div>
</div> </div>
<div class="filedset"> <div class="filedset h50">
<p class="title">快速设置</p> <p class="title">快速设置</p>
<div class="icon"> <div class="icon">
<Dropdown trigger="hover"> <Dropdown trigger="hover">
...@@ -59,23 +59,30 @@ ...@@ -59,23 +59,30 @@
</Dropdown> </Dropdown>
</div> </div>
<div class="slider"> <div class="slider">
<h3 v-text="entity.level"></h3>
<Slider <Slider
v-model="entity.level" v-model="level"
:step="1" :step="1"
:min="0" :min="0"
:max="levelRules.length-1" :max="5"
:marks="levelMarks" :marks="levelMarks"
show-stops show-stops
@on-change="setParameter" @on-change="setParameter"
></Slider> ></Slider>
</div> </div>
</div> </div>
<div class="filedset"> <div class="filedset h50">
<p class="title">应用范围</p> <p class="title">应用范围</p>
<div class="slider"> <div class="slider">
<Slider v-model="entity.flog" :step="1" :min="0" :max="5" :marks="marks" size="large"></Slider> <Slider
v-model="entity.flog"
:step="1"
:min="0"
:max="5"
:marks="marks"
:disabled="partTaskPk==0"
size="large"
></Slider>
<!-- :disabled="partTaskPk==0" -->
</div> </div>
</div> </div>
</Col> </Col>
...@@ -105,9 +112,19 @@ ...@@ -105,9 +112,19 @@
<span slot="close">不加班</span> <span slot="close">不加班</span>
</i-switch> </i-switch>
</FormItem> </FormItem>
<FormItem :label="l('efficiencyValue')" prop="efficiencyValue"> <Row>
<InputNumber v-model="entity.efficiencyValue" :step="0.1"></InputNumber> <Col :span="12">
<FormItem :label="l('efficiencyValue')" prop="efficiencyValue">
<InputNumber v-model="entity.efficiencyValue" :step="0.01"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('run_time')" prop="run_time">
<span v-text="run_time"></span>
</FormItem> </FormItem>
</Col>
</Row>
<Divider /> <Divider />
<FormItem :label="l('isDiscrete')" prop="lisan"> <FormItem :label="l('isDiscrete')" prop="lisan">
<i-switch v-model="entity.lisan" size="large"> <i-switch v-model="entity.lisan" size="large">
...@@ -116,10 +133,16 @@ ...@@ -116,10 +133,16 @@
</i-switch> </i-switch>
</FormItem> </FormItem>
<FormItem :label="l('discrete')" prop="discrete"> <FormItem :label="l('discrete')" prop="discrete">
<InputNumber v-model="entity.discrete"></InputNumber> <InputNumber
v-model="entity.discrete"
:disabled="count==0"
:min="1"
:max="count==0?1:count"
></InputNumber>
<!-- <span>{{count}}</span> -->
</FormItem> </FormItem>
<FormItem :label="l('discrete_percent')" prop="discrete_percent"> <FormItem :label="l('discrete_percent')" prop="discrete_percent">
<InputNumber v-model="entity.discrete_percent"></InputNumber> <span v-text="k"></span>
</FormItem> </FormItem>
</div> </div>
</Col> </Col>
...@@ -140,8 +163,7 @@ export default { ...@@ -140,8 +163,7 @@ export default {
partTaskPk: 0, partTaskPk: 0,
opTaskPk: 0, opTaskPk: 0,
taskSeq: "", taskSeq: "",
flog: 0, //参数应用范围 flog: 5, //参数应用范围
level: 0, //参数规则ID
calId: null, calId: null,
planState: true, planState: true,
planMethod: "重叠", // 平行 重叠 planMethod: "重叠", // 平行 重叠
...@@ -158,7 +180,9 @@ export default { ...@@ -158,7 +180,9 @@ export default {
multipleEquipPks: [], multipleEquipPks: [],
multipleEquipIds: "" //"设备id", 用英文逗号分隔 multipleEquipIds: "" //"设备id", 用英文逗号分隔
}, },
levelRules:[], // discrete_percent:1,//"离散度"
level: 0, //参数规则ID
levelRules: [],
levelMarks: { levelMarks: {
0: "慢", 0: "慢",
5: "快" 5: "快"
...@@ -206,6 +230,10 @@ export default { ...@@ -206,6 +230,10 @@ export default {
//生产计划数量 //生产计划数量
type: Number, type: Number,
default: 0 default: 0
},
run_time:{
type: Number,
default:0
} }
}, },
created() { created() {
...@@ -224,14 +252,12 @@ export default { ...@@ -224,14 +252,12 @@ export default {
apsGet() { apsGet() {
Api.apsGetall().then(res => { Api.apsGetall().then(res => {
if (res.success) { if (res.success) {
console.log(res.result)
this.levelRules = res.result; this.levelRules = res.result;
let max=this.levelRules.length-1; // let max = this.levelRules.length - 1;
// let marks = `{0:"慢", ${max}:"快"}`; // let marks = `{0:"慢", ${max}:"快"}`;
// marks = marks.replace(/(\d+):/g,"\"$1\":"); // marks = marks.replace(/(\d+):/g,"\"$1\":");
// this.levelMarks = JSON.parse(marks); // this.levelMarks = JSON.parse(marks);
// this.entity.level=0; this.level = 0;
} }
}); });
}, },
...@@ -249,12 +275,16 @@ export default { ...@@ -249,12 +275,16 @@ export default {
this.entity.lisan = u.parameterValue == "是"; this.entity.lisan = u.parameterValue == "是";
this.entity.isDiscrete = u.parameterValue; this.entity.isDiscrete = u.parameterValue;
} }
console.log(u);
}); });
}, },
handleSubmit() { handleSubmit() {
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
if (valid) { if (valid) {
if(this.opTaskPk==0&&this.partTaskPk>0&&this.entity.flog<1){
this.$Message.error("计划参数调整参数应用范围不能是工序级的")
this.entity.flog=1;
return;
}
this.entity.multipleEquipIds = this.entity.multipleEquipPks.join(); this.entity.multipleEquipIds = this.entity.multipleEquipPks.join();
this.entity.planMethod = this.entity.planState ? "重叠" : "平行"; this.entity.planMethod = this.entity.planState ? "重叠" : "平行";
this.entity.overTime = this.entity.over ? "不加班" : "加班"; this.entity.overTime = this.entity.over ? "不加班" : "加班";
...@@ -283,12 +313,34 @@ export default { ...@@ -283,12 +313,34 @@ export default {
return this.$t(vkey) || key; return this.$t(vkey) || key;
} }
}, },
watch:{ computed: {
"entity.partTaskPk"(v,n){ k() {
if(v){ if (this.count == 0) return 0;
else {
return (
(100 * this.count - 100 * this.entity.discrete) / (this.count - 1)
);
} }
} }
},
watch: {
partTaskPk(v, n) {
if (v == 0) {
this.entity.flog = 5;
} else if (v > 0 && this.opTaskPk == 0) {
this.entity.flog = 1;
} else {
this.entity.flog = 0;
}
this.entity.partTaskPk = v;
},
opTaskPk(v, n) {
this.entity.opTaskPk = v;
this.entity.taskSeq = this.taskSeq;
},
count(v, n) {
this.entity.discrete = 1;
}
} }
}; };
</script> </script>
...@@ -323,6 +375,9 @@ export default { ...@@ -323,6 +375,9 @@ export default {
} }
} }
} }
.h50{
height: 115px;
}
.click-btn { .click-btn {
text-align: right; text-align: right;
margin-top: 15px; margin-top: 15px;
......
...@@ -3,18 +3,18 @@ ...@@ -3,18 +3,18 @@
<Row> <Row>
<Col :span="12"> <Col :span="12">
<FormItem :label="l('tASKSEQ')" prop="tASKSEQ"> <FormItem :label="l('tASKSEQ')" prop="tASKSEQ">
<Input></Input> <Input v-model="entity.task_seq"></Input>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="12"> <Col :span="12">
<FormItem :label="l('tASKNAME')" prop="tASKNAME"> <FormItem :label="l('tASKNAME')" prop="tASKNAME">
<Input></Input> <Input v-model="entity.task_name"></Input>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="12"> <Col :span="12">
<FormItem :label="l('sHOPID')" prop="sHOPID"> <FormItem :label="l('sHOPID')" prop="sHOPID">
<!-- v-model="orderSearchForm.orderCat" --> <!-- v-model="orderSearchForm.orderCat" -->
<Select > <Select v-model="entity.sHOPID">
<Option value="" class="option-text">请选择</Option> <Option value="" class="option-text">请选择</Option>
<Option v-for="item in orderCatList" :value="item" :key="item">{{ item }}</Option> <Option v-for="item in orderCatList" :value="item" :key="item">{{ item }}</Option>
</Select> </Select>
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</Col> </Col>
<Col :span="12"> <Col :span="12">
<FormItem :label="l('eQUIPID')" prop="eQUIPID"> <FormItem :label="l('eQUIPID')" prop="eQUIPID">
<Select > <Select v-model="entity.eQUIPID">
<Option value="" class="option-text">请选择</Option> <Option value="" class="option-text">请选择</Option>
<Option v-for="item in orderCatList" :value="item" :key="item">{{ item }}</Option> <Option v-for="item in orderCatList" :value="item" :key="item">{{ item }}</Option>
</Select> </Select>
...@@ -30,16 +30,16 @@ ...@@ -30,16 +30,16 @@
</Col> </Col>
<Col :span="12"> <Col :span="12">
<FormItem label="关重资源名称" prop="rUNTIME"> <FormItem label="关重资源名称" prop="rUNTIME">
<Select > <Select v-model="entity.run_time">
<Option value="" class="option-text">请选择</Option> <Option value="" class="option-text">请选择</Option>
<Option v-for="item in orderCatList" :value="item" :key="item">{{ item }}</Option> <Option v-for="item in orderCatList" :value="item" :key="item">{{ item }}</Option>
</Select> </Select>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="12"> <Col :span="12" v-model="entity.rUNTIME">
<FormItem :label="l('rUNTIME')" prop="rUNTIME"> <FormItem :label="l('rUNTIME')" prop="rUNTIME">
<!-- v-model="value1" --> <!-- v-model="value1" -->
<InputNumber :max="100" :min="1"></InputNumber> <InputNumber v-model="entity.run_time" :max="100" :min="1"></InputNumber>
</FormItem> </FormItem>
</Col> </Col>
</Row> </Row>
...@@ -75,10 +75,7 @@ export default { ...@@ -75,10 +75,7 @@ export default {
}, },
methods: { methods: {
load(v) { load(v) {
// Api.get({ id: v }).then((r) => { this.entity = v
// this.entity = r.result
// this.$emit('on-load')
// })
}, },
handleSubmit() { handleSubmit() {
this.$refs.form.validate((v) => { this.$refs.form.validate((v) => {
...@@ -111,9 +108,10 @@ export default { ...@@ -111,9 +108,10 @@ export default {
} }
}, },
watch: { watch: {
eid(v) { row(v) {
if (v != 0) { if (v != {}) {
this.load(v) //alert(JSON.stringify(v))
this.entity = v
} }
} }
} }
......
This diff is collapsed.
...@@ -19,11 +19,11 @@ ...@@ -19,11 +19,11 @@
<DatePicker <DatePicker
type="date" type="date"
placeholder="设置基准日期" placeholder="设置基准日期"
style="width: 150px" style="width: 150px;"
v-model="entity.setTime" v-model="entity.setTime"
@on-change="getTime" @on-change="getTime"
></DatePicker> ></DatePicker>
<a style="font-weight:bold;" @click="addModal=true"> <a style="font-weight: bold;" @click="openAddModel(1)">
<Icon type="ios-options" size="14" />&nbsp;工序参数调整 <Icon type="ios-options" size="14" />&nbsp;工序参数调整
</a> </a>
</template> </template>
...@@ -38,11 +38,29 @@ ...@@ -38,11 +38,29 @@
</template> </template>
</DataGrid> </DataGrid>
<Modal v-model="addModal" title="工序参数设置" footer-hide width="1000"> <Modal v-model="addModal" title="工序参数设置" footer-hide width="1000">
<Add @on-close="cancel" @on-ok="addOk" /> <Add
@on-close="cancel"
@on-parameter-ok="addOk"
:opTaskPk="setParams.opTaskPk"
:partTaskPk="setParams.partTaskPk"
:taskSeq="setParams.taskSeq"
:count="setParams.count"
/>
</Modal> </Modal>
<Modal v-model="apsModal" title="确定APS排产" @on-ok="apsOk" @on-cancel="cancel"> <Modal v-model="apsModal" title="确定APS排产" @on-ok="apsOk" @on-cancel="cancel">
<p>确定进行APS排产?</p> <p>确定进行APS排产?</p>
</Modal> </Modal>
<Modal v-model="circleModal" title footer-hide :mask-closable="false">
<div slot="close"></div>
<Row>
<Col class="demo-spin-col" span="24">
<Spin fix>
<Icon type="ios-loading" size="36" class="demo-spin-icon-load"></Icon>
<div>APS排产进行中......</div>
</Spin>
</Col>
</Row>
</Modal>
</div> </div>
</template> </template>
<script> <script>
...@@ -197,7 +215,7 @@ export default { ...@@ -197,7 +215,7 @@ export default {
title: this.l("badjustflag"), title: this.l("badjustflag"),
align: "left", align: "left",
high: true, high: true,
hide:true, hide: true
}, },
{ {
title: "操作", title: "操作",
...@@ -213,7 +231,7 @@ export default { ...@@ -213,7 +231,7 @@ export default {
type: "icon", type: "icon",
title: "工序参数设置" title: "工序参数设置"
}, },
on: { click: () => this.openParms(params.row.id) } on: { click: () => this.openAddModel(2, params.row) }
}), }),
h("op", { h("op", {
attrs: { attrs: {
...@@ -239,7 +257,16 @@ export default { ...@@ -239,7 +257,16 @@ export default {
} }
} }
], ],
arrPartPkId: [] arrPartPkId: [],
//设置参数开始
setParams: {
opTaskPk: 0, //工单ID
partTaskPk: 0, //生产计划ID
taskSeq: "", //工序编号
count: 0 //生产计划数量
},
//设置参数结束
circleModal: false //进度条
}; };
}, },
mounted() { mounted() {
...@@ -258,7 +285,8 @@ export default { ...@@ -258,7 +285,8 @@ export default {
}); });
}, },
addOk() { addOk() {
this.$refs.grid.load(); this.list = [];
this.loadList();
this.addModal = false; this.addModal = false;
this.detailModal = false; this.detailModal = false;
this.editModal = false; this.editModal = false;
...@@ -326,11 +354,12 @@ export default { ...@@ -326,11 +354,12 @@ export default {
this.deletedlModal = false; this.deletedlModal = false;
this.apsModal = false; this.apsModal = false;
}, },
onDragDrop(a, b) {//拖拽排序 onDragDrop(a, b) {
//拖拽排序
//this.list.splice(b, 1, ...this.list.splice(a, 1, this.list[b])); //this.list.splice(b, 1, ...this.list.splice(a, 1, this.list[b]));
let tempArray=this.list[a] let tempArray = this.list[a];
this.list.splice(a,1) this.list.splice(a, 1);
this.list.splice(b,0,tempArray) this.list.splice(b, 0, tempArray);
}, },
openParms(id) { openParms(id) {
this.addModal = true; this.addModal = true;
...@@ -359,6 +388,7 @@ export default { ...@@ -359,6 +388,7 @@ export default {
}, },
//确定aps排产 //确定aps排产
apsOk() { apsOk() {
this.circleModal = true;
//APS排产前订单优先级功能 //APS排产前订单优先级功能
let parmsOrderpriority = { alls: [] }; let parmsOrderpriority = { alls: [] };
let arryIds = []; let arryIds = [];
...@@ -378,7 +408,7 @@ export default { ...@@ -378,7 +408,7 @@ export default {
Api.apsdatachecked().then(res1 => { Api.apsdatachecked().then(res1 => {
if (res1.success) { if (res1.success) {
if (res1.result.res) { if (res1.result.res) {
// this.$Message.success("数据校验成功"); // this.$Message.success("数据校验成功");
//排产计算 //排产计算
let paramsTime = { let paramsTime = {
setTime: this.entity.setTime setTime: this.entity.setTime
...@@ -387,6 +417,7 @@ export default { ...@@ -387,6 +417,7 @@ export default {
if (res2.success) { if (res2.success) {
if (res2.result.res) { if (res2.result.res) {
this.$Message.success("排产计算成功"); this.$Message.success("排产计算成功");
this.circleModal = false;
this.$router.push({ this.$router.push({
name: "aps-results" name: "aps-results"
// params: { customerId: id } // params: { customerId: id }
...@@ -412,6 +443,25 @@ export default { ...@@ -412,6 +443,25 @@ export default {
this.$Message.error("操作失败:排序"); this.$Message.error("操作失败:排序");
} }
}); });
},
//打开设置参数
openAddModel(type, row) {
if (type == 2) {
this.setParams = {
opTaskPk: 0,
partTaskPk: row.part_task_pk,
taskSeq: "",
count: row.plan_qty
};
} else {
this.setParams = {
opTaskPk: 0,
partTaskPk: 0,
taskSeq: "",
count: 0
};
}
this.addModal = true;
} }
} }
}; };
...@@ -420,4 +470,32 @@ export default { ...@@ -420,4 +470,32 @@ export default {
.drag { .drag {
cursor: move; cursor: move;
} }
</style> .demo-spin-icon-load {
\ No newline at end of file animation: ani-demo-spin 1s linear infinite;
}
@keyframes ani-demo-spin {
from {
transform: rotate(0deg);
}
50% {
transform: rotate(180deg);
}
to {
transform: rotate(360deg);
}
}
.demo-spin-col {
height: 100px;
position: relative;
border: 0px solid #eee;
}
.vertical-center-modal {
display: flex;
align-items: center;
justify-content: center;
.ivu-modal {
top: 0;
}
}
</style>
...@@ -14,4 +14,10 @@ export default { ...@@ -14,4 +14,10 @@ export default {
getdetail(params) { getdetail(params) {
return Api.get(`${apsUrl}/scheduletotal/getdetail`, params); return Api.get(`${apsUrl}/scheduletotal/getdetail`, params);
}, },
processschemedispatch(params) {
return Api.post(`${apsUrl}/apspoolappservices/processschemedispatch`, params);
},
moveintoaps() {//跳转进入排产池前判断
return Api.post(`${PlanUrl}/messchedule/moveintoaps`);
},
} }
...@@ -51,6 +51,7 @@ export default { ...@@ -51,6 +51,7 @@ export default {
isactive: 0, isactive: 0,
data: [], data: [],
list: [], list: [],
id: "",
columns: [ columns: [
{ {
type: "expand", type: "expand",
...@@ -99,25 +100,25 @@ export default { ...@@ -99,25 +100,25 @@ export default {
{ {
title: "计划开始时间", title: "计划开始时间",
key: "plan_start", key: "plan_start",
width: 220, width: 200,
align: "center" align: "center"
}, },
{ {
title: "计划结束时间", title: "计划结束时间",
key: "plan_start", key: "plan_start",
width: 220, width: 200,
align: "center" align: "center"
}, },
{ {
title: "投料时间", title: "投料时间",
key: "demand_start", key: "demand_start",
width: 220, width: 200,
align: "center" align: "center"
}, },
{ {
title: "节点时间", title: "节点时间",
key: "demand_finish", key: "demand_finish",
width: 220, width: 200,
align: "center" align: "center"
}, },
{ {
...@@ -153,6 +154,7 @@ export default { ...@@ -153,6 +154,7 @@ export default {
}, },
listData(id, index) { listData(id, index) {
this.isactive = index; this.isactive = index;
this.id = id;
Api.paged({ scheduleId: id }) Api.paged({ scheduleId: id })
.then(r => { .then(r => {
if (r.success) { if (r.success) {
...@@ -183,11 +185,33 @@ export default { ...@@ -183,11 +185,33 @@ export default {
} }
}, },
parameter() {}, parameter() {
addOk() {}, Api.processschemedispatch({
cancel() {}, id: this.id
}).then(r => {
if (r.result) {
this.$Message.success(r.result.retmsg);
this.orderlist();
} else {
this.$Message.success("下发失败");
}
});
},
comeBlck() { comeBlck() {
this.$router.push({ path: "/aps/aps" }); this.$router.push({ path: "/aps/aps" });
Api.moveintoaps().then(res => {
if (res.success) {
if (res.result.res) {
this.$router.push({
name: "aps-aps"
});
} else {
this.$router.push({
name: "aps-plan"
});
}
}
});
} }
} }
}; };
......
<style lang="less"> <style lang="less">
@import "../../../processDesign/Process/menu.less"; @import "../processDesign/Process/menu.less";
</style> </style>
<template> <template>
<div class="new_box"> <div class="new_box">
...@@ -335,7 +335,7 @@ export default { ...@@ -335,7 +335,7 @@ export default {
this.newModel = true; this.newModel = true;
}, },
loaddata(orderid) { loaddata(orderid) {
if (this.formValidate.id != 0) {
var url = var url =
`${designUrl}/ordersupport/getbyid?id=` + this.formValidate.id; `${designUrl}/ordersupport/getbyid?id=` + this.formValidate.id;
service.get(`${url}`).then(response => { service.get(`${url}`).then(response => {
...@@ -351,7 +351,7 @@ export default { ...@@ -351,7 +351,7 @@ export default {
obj.actual_quantity = obj.quantity; obj.actual_quantity = obj.quantity;
} }
}); });
}
}, },
SaveLd() {}, SaveLd() {},
......
...@@ -53,7 +53,7 @@ function errorLog (err) { ...@@ -53,7 +53,7 @@ function errorLog (err) {
// 创建一个 axios 实例 // 创建一个 axios 实例
const service = axios.create({ const service = axios.create({
baseURL: Setting.apiBaseURL, baseURL: Setting.apiBaseURL,
timeout: 5000, // 请求超时时间 timeout: 60000, // 请求超时时间
transformRequest:[(data)=>{ transformRequest:[(data)=>{
function dateFormat(date, fmt) { function dateFormat(date, fmt) {
if (null == date || undefined == date) return ''; if (null == date || undefined == date) return '';
......
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