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
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> |