Browse Source

20241115

java8
qiezi 1 year ago
parent
commit
93f4f58f27
  1. 17
      src/views/modules/quote/detail/primary/quoteDetailBom.vue
  2. 21
      src/views/modules/quote/index.vue
  3. 10
      src/views/modules/quote/primary/quoteTable.vue
  4. 143
      src/views/modules/quote/quoteDetailReport.vue

17
src/views/modules/quote/detail/primary/quoteDetailBom.vue

@ -161,23 +161,6 @@ export default {
status: true,
fixed: '',
columnWidth: 90,
}, {
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4NoteText',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'noteText',
headerAlign: "center",
align: "left",
columnLabel: '备注',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},
{
userId: this.$store.state.user.name,

21
src/views/modules/quote/index.vue

@ -2,6 +2,7 @@
import QuoteSearch from "./primary/quoteSearch.vue";
import QuoteTable from "./primary/quoteTable.vue";
import {
againQuote,
queryQuotePage,
queryQuoteRoleUser,
removeQuote,
@ -722,6 +723,25 @@ export default {
},
handleInquiryBlur(){
},
handleAgainQuote(row){
let params = {
id: row.id,
createBy: this.$store.state.user.name,
}
this.queryLoading = true
againQuote(params).then(({data}) => {
if (data && data.code === 0) {
this.$message.success(data.msg)
this.handleSearch();
} else {
this.$message.warning(data.msg)
this.queryLoading = false
}
}).catch((error) => {
this.$message.error(error)
this.queryLoading = false
})
}
},
created() {
@ -777,6 +797,7 @@ export default {
@rowClick="handleRowClick"
@updateStatus="handleUpdateStatus"
@queryById="handleQueryById"
@againQuote="handleAgainQuote"
:data-list="dataList"
:height="'35vh'">

10
src/views/modules/quote/primary/quoteTable.vue

@ -45,6 +45,15 @@ export default {
return {}
}
},
againQuote(row){
this.$confirm('确定重新报价吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$emit('againQuote',row)
})
}
}
}
</script>
@ -77,6 +86,7 @@ export default {
<a type="text" v-if="row.status === '草稿'" @click="handleRemoveClick(row,$index)">删除</a>
<a type="text" v-if="row.status === '草稿'" @click="handleUpdateStatus(row)">下达</a>
<a type="text" v-if="row.status === '下达'" @click="handleQueryById(row)">详情</a>
<a type="text" @click="againQuote(row)">重新报价</a>
</template>
</el-table-column>
</el-table>

143
src/views/modules/quote/quoteDetailReport.vue

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

Loading…
Cancel
Save