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

料单确认

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