中航光电热表web
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

211 lines
7.9 KiB

<template>
<el-dialog title="添加量申报" append-to-body :modelValue="addQuantity" width="90%" @close="closeDialog" @open="open" fullscreen>
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="90">
<el-row>
<el-col :span="6">
<el-form-item label="作业中心" prop="wcId">
<el-select v-model="ruleForm.wcId" placeholder="请选择" @change="workChange">
<el-option v-for="item in options" :key="item.id" :label="item.wcName"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="" prop="dayRange">
<el-radio-group v-model="ruleForm.dayRange">
<el-radio :value="3">3天</el-radio>
<el-radio :value="7">7天</el-radio>
<el-radio :value="30">30天</el-radio>
<el-radio :value=" '' ">全部</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12" style="float: right;">
<el-form-item label="" prop="">
<el-button @click="handleSearch" type="primary">查询</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-descriptions class="margin-top" :column="4" border title="添加量"></el-descriptions>
<el-table :data="materialNeedsData" style="width: 50%;">
<el-table-column type="index" width="70" label="序号"></el-table-column>
<el-table-column label="作业槽" prop="slotName" align="center"></el-table-column>
<el-table-column label="测量值" prop="testVal" align="center"></el-table-column>
<el-table-column label="添加量" prop="addValue" align="center" width="150">
<template #default="scope">
<el-input-number v-model="scope.row.addValue" :min="1" controls-position="right"
size="small"></el-input-number>
</template>
</el-table-column>
</el-table>
<el-descriptions class="margin-top" :column="4" border title="镀层物料需求"></el-descriptions>
<el-table :data="tableData" :summary-method="getSummaries" show-summary>
<el-table-column type="index" width="70" label="序号"></el-table-column>
<el-table-column label="需求单号" prop="demandCode" align="center"></el-table-column>
<el-table-column label="物料编码" prop="plateGoodsCode" align="center"></el-table-column>
<el-table-column label="物料名称" prop="addValue" align="center" >
</el-table-column>
<el-table-column label="镀层物料需求(克)" prop="goodsDemand" align="center" >
</el-table-column>
<el-table-column label="银钾系数" prop="coefficient" align="center" >
</el-table-column>
<el-table-column label="申报量(克)" prop="addValue" align="center" >
</el-table-column>
<el-table-column label="使用量(克)" prop="useValue" align="center" >
<template #default="scope">
{{scope.row.goodsDemand - scope.row.surplus}}
</template>
</el-table-column>
<el-table-column label="剩余量(克)" prop="surplus" align="center" >
</el-table-column>
<el-table-column label="创建人" prop="createUserName" align="center" >
</el-table-column>
<el-table-column label="创建时间" prop="createTime" align="center" >
</el-table-column>
</el-table>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog">取 消</el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import {getTestValueList,getWorkCenter,getAddRequireList,add} from "@/api/productionManagement/addRequirements"
export default {
props: {
addQuantity: {
type: Boolean,
default: false
}
},
data() {
return {
radio:3,
addForm: {},
tableData: [],
ruleForm: {
dayRange: '',
wcId: ''
},
rules: {
wcId: [
{ required: true, message: '请选择作业中心', trigger: 'blur' },
],
// dayRange: [
// { required: true, message: '请选择', trigger: 'blur' },
// ]
},
materialNeedsData: [
],
options: []
}
},
mounted() {
this.ruleForm.wcId = null
console.log('ruleForm------------',this.ruleForm)
this.getWorkCenter();
},
methods: {
getWorkCenter(){
getWorkCenter().then(res => {
this.options = res.data.data
})
},
async handleSearch(){
console.log('rule------------',this.ruleForm)
this.$refs.ruleFormRef.validate(async valid =>{
if(valid){
let params = {
workCenterId:this.ruleForm.wcId,
dayRange:this.ruleForm.dayRange
}
try {
const res1 = await getTestValueList(params)
const res2 = await getAddRequireList(this.ruleForm)
this.materialNeedsData = res1.data.data
this.tableData = res2.data.data
console.log('res1------------',res1)
console.log('res2------------',res2)
} catch (error) {
console.log('error------------',error)
}
}
})
},
getSummaries (param){
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (index === 1) {
sums[index] = '-';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += ' ';
} else {
sums[index] = '-';
}
});
return sums;
},
workChange() {
},
open() {
this.addForm = {}
this.ruleForm = {}
console.log('11111111',this.ruleForm)
this.tableData = []
this.materialNeedsData = []
},
closeDialog(val) {
this.$emit('closeDialog',val);
},
submit() {
let params = {
assayContentDetailList:this.materialNeedsData,
recordIdList:this.tableData.map(item => item.id)
}
console.log('params------------',params)
add(params).then(res => {
if(res.data.code == 200) {
this.$message.success('新增成功')
this.closeDialog(true)
}
})
// this.closeDialog()
}
},
}
</script>
<style lang="scss" scoped>
.margin-top {
margin-top: 24px;
}
</style>