Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop

This commit is contained in:
caoqianming 2021-11-10 10:03:58 +08:00
commit 3acf51667d
1 changed files with 210 additions and 159 deletions

View File

@ -107,48 +107,50 @@
>{{ item.name }}</el-button
>
</el-card>
<el-card class="box-card">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>半成品</span>
</div>
<el-table
:data="wproductData"
@selection-change="handleSelectionChange"
border
fit
stripe
style="width: 100%"
max-height="300"
>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column type="index" width="50" />
<el-table-column label="半成品编号">
<template slot-scope="scope">{{ scope.row.number }}</template>
</el-table-column>
<el-table-column label="半成品状态">
<template slot-scope="scope">{{ scope.row.m_state_.name }}</template>
</el-table-column>
<el-table-column label="所在子工序">
<template slot-scope="scope">{{ scope.row.p_state_.name }}</template>
</el-table-column>
<el-table-column label="所在子工序执行状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.is_executed" >已执行</el-tag>
<el-tag v-else >待执行</el-tag>
</template>
</el-table-column>
<el-table-column label="更新时间">
<template slot-scope="scope">{{ scope.row.update_time }}</template>
</el-table-column>
</el-table>
<el-table
:data="wproductData"
@selection-change="handleSelectionChange"
border
fit
stripe
style="width: 100%"
max-height="300"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column type="index" width="50" />
<el-table-column label="半成品编号">
<template slot-scope="scope">{{ scope.row.number }}</template>
</el-table-column>
<el-table-column label="半成品状态">
<template slot-scope="scope">{{
scope.row.m_state_.name
}}</template>
</el-table-column>
<el-table-column label="所在子工序">
<template slot-scope="scope">{{
scope.row.p_state_.name
}}</template>
</el-table-column>
<el-table-column label="所在子工序执行状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.is_executed">已执行</el-tag>
<el-tag v-else>待执行</el-tag>
</template>
</el-table-column>
<el-table-column label="更新时间">
<template slot-scope="scope">{{
scope.row.update_time
}}</template>
</el-table-column>
</el-table>
</el-card>
</el-col>
<el-col :span="12">
@ -308,55 +310,100 @@
>
</el-step>
</el-steps>
<el-row :gutter="24">
<el-col :span="12">
<el-card class="box-card" v-if="values === 0">
<div slot="header" class="clearfix">
<span>消耗物料表</span>
</div>
<el-table :data="input" border style="width: 100%">
<el-table-column
prop="material__name"
label="物料名称"
width="180"
>
</el-table-column>
<el-table-column
prop="material__batch"
label="物料批次"
width="180"
>
</el-table-column>
<el-table-column prop="count" label="可用数量" width="180">
</el-table-column>
<el-table-column prop="count_input" label="使用数量" width="180">
<template slot-scope="scope">
<el-form :model="scope.row">
<el-form-item size="mini">
<el-input-number
v-model="scope.row.count_input"
:min="0"
:value="0"
></el-input-number>
</el-form-item>
</el-form>
</template>
</el-table-column>
</el-table>
</el-card>
</el-col>
<el-col :span="12">
<el-card class="box-card" v-if="values === 0">
<div slot="header" class="clearfix">
<span>产出物料表</span>
</div>
<el-table
:data="output"
v-if="showPrise"
border
style="width: 100%"
>
<el-table-column
prop="material__name"
label="物料名称"
width="180"
>
</el-table-column>
<el-table-column prop="count_output" label="产出数量" width="180">
<template slot-scope="scope">
<el-form :model="scope.row">
<el-form-item size="mini">
<el-input-number
v-model="scope.row.count_output"
:min="0"
:value="0"
></el-input-number>
</el-form-item>
</el-form>
</template>
</el-table-column>
</el-table>
</el-card>
</el-col>
</el-row>
<el-card class="box-card" v-if="values === 0">
<div slot="header" class="clearfix">
<span>消耗物料表</span>
</div>
<el-table :data="input" border style="width: 100%">
<el-table-column prop="material__name" label="物料名称" width="180">
</el-table-column>
<el-table-column prop="material__batch" label="物料批次" width="180">
</el-table-column>
<el-table-column prop="count" label="可用数量" width="180">
</el-table-column>
<el-table-column prop="count_input" label="使用数量" width="180">
<template slot-scope="scope" >
<el-form :model="scope.row">
<el-form-item size="mini">
<el-input-number v-model="scope.row.count_input" :min="0" :value="0"></el-input-number>
<span>备注</span>
</div>
<el-form ref="form" label-width="80px">
<el-form-item label="操作备注">
<el-input v-model="remark" width="300"></el-input>
</el-form-item>
</el-form>
</template>
</el-table-column>
</el-table>
</el-form>
</el-card>
<el-card class="box-card" v-if="values === 0">
<div slot="header" class="clearfix">
<span>产出物料表</span>
</div>
<el-table :data="output" border style="width: 100%">
<el-table-column prop="material__name" label="物料名称" width="180">
</el-table-column>
<el-table-column prop="count_output" label="产出数量" width="180">
<template slot-scope="scope" >
<el-form :model="scope.row">
<el-form-item size="mini">
<el-input-number v-model="scope.row.count_output" :min="0" :value="0"></el-input-number>
</el-form-item>
</el-form>
</template>
</el-table-column>
</el-table>
</el-card>
<el-card class="box-card" v-for="(itemf,$index) in otherforms" :key="$index" >
<el-form label-width="80px" label-position="right" v-if="values === $index+1">
<el-row v-for="(item, $index) in itemf.form_fields" :key="$index">
<el-card
class="box-card"
v-for="(itemf, $index) in otherforms"
:key="$index"
>
<el-form
label-width="80px"
label-position="right"
v-if="values === $index + 1"
>
<el-row v-for="(item, $index) in itemf.form_fields" :key="$index">
<el-form-item
v-if="item.field_type === 'string'"
:label="item.field_name"
@ -447,9 +494,9 @@
</el-select>
</el-form-item>
</el-row>
</el-form>
</el-form>
</el-card>
<el-button
style="margin-top: 12px"
@click="next"
@ -475,7 +522,12 @@
import { getsubproductionplanList, createPick_need } from "@/api/pm";
import checkPermission from "@/utils/permission";
import { getProcessList } from "@/api/mtm";
import { createPick, getwmaterialList,submitWork,getwproductList} from "@/api/wpm";
import {
createPick,
getwmaterialList,
submitWork,
getwproductList,
} from "@/api/wpm";
import { getWarehouseList } from "@/api/inm";
import { createWork } from "@/api/wpm";
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
@ -494,11 +546,13 @@ export default {
page: 1,
page_size: 20,
},
remark: "",
values: 0,
active: 0,
activeName: "1",
havewl: "",
needwl: "",
showPrise: false,
state_: {
0: "制定中",
1: "已下达",
@ -518,26 +572,26 @@ export default {
picks: [],
pickData: {},
steps: [],
step:null,
processOption:"",
step: null,
processOption: "",
subproduction_plan: "",
form1: [],
form2: [],
form3: [],
input: [],
output: [],
forms:[],
inputData:[],
outputData:[],
field1:[],
field2:[],
fromData:[],
wproductData:"",
wpID:[],
multipleSelection: [],
wproducts:[],
otherforms:[],
from:[],
forms: [],
inputData: [],
outputData: [],
field1: [],
field2: [],
fromData: [],
wproductData: "",
wpID: [],
multipleSelection: [],
wproducts: [],
otherforms: [],
from: [],
};
},
process: "",
@ -549,7 +603,7 @@ export default {
},
methods: {
checkPermission,
//选项卡切换
handleClick(tab) {
this.process = tab.name;
@ -639,7 +693,7 @@ export default {
this.pickData.warehouse = this.need.warehouse;
this.pickData.picks = this.picks;
// console.log(this.pickData);
// console.log(this.pickData);
createPick(this.pickData).then((res) => {
if (res.code >= 200) {
@ -654,95 +708,92 @@ export default {
next() {
if (this.values++ > this.forms.length) this.values = 0;
},
handleSelectionChange(val) {
let _this = this;
handleSelectionChange(val) {
let _this = this;
_this.wpID = [];
val.forEach((item) => {
_this.wpID.push(item.id);
val.forEach((item) => {
_this.wpID.push(item.id);
});
},
},
//车间操作
handlework(item) {
this.step=item.id;
// console.log(this.wpID);
this.step = item.id;
// console.log(this.wpID);
createWork({
step: item.id,
wproducts:this.wpID,
wproducts: this.wpID,
subproduction_plan: this.subproduction_plan,
}).then((res) => {
if (res.code >= 200) {
this.dialogVisiblework = true;
this.forms=res.data.forms;
this.otherforms=res.data.forms.slice(0);//渲染生产表
this.otherforms.shift();
//console.log(this.otherforms)
this.input = res.data.forms[0].input; //消耗
this.output = res.data.forms[0].output; //产出
this.wproducts=res.data.forms[0].wproducts;
this.dialogVisiblework = true;
this.forms = res.data.forms;
this.otherforms = res.data.forms.slice(0); //渲染生产表
this.otherforms.shift();
//console.log(this.otherforms)
this.input = res.data.forms[0].input; //消耗
if (
res.data.forms[0].output !== undefined &&
res.data.forms[0].output.length > 0
) {
this.output = res.data.forms[0].output; //产出
this.showPrise = true;
}
this.wproducts = res.data.forms[0].wproducts;
}
});
},
//提交
submint(){
submint() {
this.form = [];
this.otherforms.forEach((item) => {
let _this = this;
_this.field1 = [];
item.form_fields.forEach((items) => {
_this.field1.push({
form_field:items.id,
field_value:items.sort
this.otherforms.forEach((item) => {
let _this = this;
_this.field1 = [];
item.form_fields.forEach((items) => {
_this.field1.push({
form_field: items.id,
field_value: items.sort,
});
});
})
})
this.form.push({
form:item.id,
record_data:_this.field1
})
this.form.push({
form: item.id,
record_data: _this.field1,
});
});
console.log(this.remark);
console.log( this.form);
submitWork({
step:this.step,
subproduction_plan:this.subproduction_plan,
wproducts:this.wproducts,
input: this.input,
submitWork({
step: this.step,
subproduction_plan: this.subproduction_plan,
wproducts: this.wproducts,
input: this.input,
output: this.output,
forms: this.from
forms: this.from,
remark: this.remark,
}).then((res) => {
if (res.code >= 200) {
this.dialogVisiblework = false;
this.dialogVisiblework = false;
this.$message.success("成功!");
this.getwproductLists();
this.getwproductLists();
}
});
},
//大工序下子工序产出的半成品
getwproductLists(){
getwproductList({page:0, subproduction_plan:this.subproduction_plan, p_state__process:this.process}).then((response) => {
getwproductLists() {
getwproductList({
page: 0,
subproduction_plan: this.subproduction_plan,
p_state__process: this.process,
}).then((response) => {
if (response.data) {
this.wproductData = response.data;
//console.log( this.wproductData)
}
});
}
},
},
};
</script>