|
|
|
@ -278,15 +278,6 @@ export default { |
|
|
|
codeDesc: '', |
|
|
|
}, |
|
|
|
propertyItemList: [], |
|
|
|
saveQuoteDetailRules: { |
|
|
|
partNo: [{required: true, message: '请输入物料编码', trigger: ['blur', 'change']}], |
|
|
|
partDesc: [{required: true, message: '请输入物料名称', trigger: ['blur', 'change']}], |
|
|
|
qty: [{required: true, message: '请输入数量', trigger: ['blur', 'change']}], |
|
|
|
}, |
|
|
|
quoteDetail: {}, |
|
|
|
quoteDetailVisible: false, |
|
|
|
quoteDetailActiveName: 'bom', |
|
|
|
saveLoading: false, |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
@ -418,79 +409,6 @@ export default { |
|
|
|
this.$message.error(error) |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleAgainQuote(row) { |
|
|
|
this.quoteDetail = {}; |
|
|
|
this.$confirm('确定重新报价该报价单吗?').then(() => { |
|
|
|
this.handleAgainQuoteOption(row); |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleAgainQuoteOption(row) { |
|
|
|
let params = { |
|
|
|
id: row.quoteId, |
|
|
|
createBy: this.$store.state.user.name, |
|
|
|
} |
|
|
|
this.queryLoading = true |
|
|
|
againQuote(params).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.$message.success(data.msg) |
|
|
|
this.handleQuery(); |
|
|
|
let params = { |
|
|
|
id: data.id, |
|
|
|
} |
|
|
|
this.handleQueryQuoteDetailById(params); |
|
|
|
} else { |
|
|
|
this.$message.warning(data.msg) |
|
|
|
this.queryLoading = false |
|
|
|
} |
|
|
|
}).catch((error) => { |
|
|
|
this.$message.error(error) |
|
|
|
this.queryLoading = false |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleQueryQuoteDetailById(row) { |
|
|
|
let params = { |
|
|
|
id: row.id, |
|
|
|
} |
|
|
|
queryQuoteDetailById(params).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.quoteDetail = data.row; |
|
|
|
this.quoteDetailVisible = true; |
|
|
|
this.quoteDetailActiveName = 'bom'; |
|
|
|
} else { |
|
|
|
this.$message.warning(data.msg) |
|
|
|
} |
|
|
|
}).catch((error) => { |
|
|
|
this.$message.error(error) |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleClickTab(tab) { |
|
|
|
if (this.activeName === 'routing') { |
|
|
|
this.$refs.routing.handleQueryQuoteDetailBomTree() |
|
|
|
} |
|
|
|
}, |
|
|
|
handleSaveQuoteDetailClick() { |
|
|
|
this.$refs.saveQuoteDetailForm.validate((valid, obj) => { |
|
|
|
if (valid) { |
|
|
|
this.handleUpdate(); |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleUpdate() { |
|
|
|
let params = { |
|
|
|
...this.quoteDetail, |
|
|
|
updateBy: this.$store.state.user.name, |
|
|
|
} |
|
|
|
updateQuoteDetail(params).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.$message.success(data.msg); |
|
|
|
this.quoteDetailVisible = false; |
|
|
|
} else { |
|
|
|
this.$message.warning(data.msg); |
|
|
|
} |
|
|
|
}).catch((error) => { |
|
|
|
this.$message.error(error); |
|
|
|
}) |
|
|
|
}, |
|
|
|
}, |
|
|
|
created() { |
|
|
|
this.getSiteAndBuByUserName(); |
|
|
|
@ -583,15 +501,6 @@ export default { |
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column fixed="right" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="100" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="{row,$index}"> |
|
|
|
<el-link @click="handleAgainQuote(row)">重新报价</el-link> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-pagination @size-change="handleSizeChange" |
|
|
|
@current-change="handlePageChange" |
|
|
|
@ -795,58 +704,6 @@ export default { |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<el-dialog :title="`报价明细`" top="10vh" v-drag :visible.sync="quoteDetailVisible" append-to-body |
|
|
|
:width="`${quoteDetail.id?1200:600}px`" :close-on-click-modal="false"> |
|
|
|
<el-form :model="quoteDetail" ref="saveQuoteDetailForm" :rules="saveQuoteDetailRules" label-position="top"> |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="物料名称" prop="partNo" :show-message="false"> |
|
|
|
<el-input v-model="quoteDetail.partNo" disabled></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="物料描述" prop="partDesc" :show-message="false"> |
|
|
|
<el-input v-model="quoteDetail.partDesc" disabled></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="3"> |
|
|
|
<el-form-item label="报价数量" prop="qty" :show-message="false"> |
|
|
|
<el-input-number v-model="quoteDetail.qty" style="width: 100%;" :controls="false" disabled></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-col :span="16"> |
|
|
|
<el-form-item label="备注" class="auto" :show-message="false"> |
|
|
|
<el-input type="textarea" resize="none" :autosize="{minRows: 3, maxRows: 3}" v-model="quoteDetail.remark" disabled></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<el-tabs v-model="quoteDetailActiveName" @tab-click="handleClickTab"> |
|
|
|
<el-tab-pane label="材料" name="bom"> |
|
|
|
<quote-detail-bom v-if="quoteDetailVisible" v-model:quoteDetail="quoteDetail"></quote-detail-bom> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="工艺" name="routing"> |
|
|
|
<quote-detail-routing ref="routing" v-if="quoteDetailVisible" |
|
|
|
v-model:quoteDetail="quoteDetail"></quote-detail-routing> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="工具" name="tool"> |
|
|
|
<quote-detail-tool v-if="quoteDetailVisible" v-model:quoteDetail="quoteDetail"></quote-detail-tool> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="其他成本" name="other"> |
|
|
|
<quote-detail-other v-if="quoteDetailVisible" v-model:quoteDetail="quoteDetail"></quote-detail-other> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="成本&价格" name="cost"> |
|
|
|
<quote-detail-cost v-model:quoteDetail="quoteDetail"></quote-detail-cost> |
|
|
|
</el-tab-pane> |
|
|
|
</el-tabs> |
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
<el-button type="primary" :loading="saveLoading" @click="handleSaveQuoteDetailClick">确 定</el-button> |
|
|
|
<el-button @click="quoteDetailVisible = false">取 消</el-button> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
|