diff --git a/src/api/quotation/quotationHeader.js b/src/api/quotation/quotationHeader.js index 9d1f2a0..795ff8f 100644 --- a/src/api/quotation/quotationHeader.js +++ b/src/api/quotation/quotationHeader.js @@ -210,3 +210,6 @@ export const saveQuotationPropertiesItemAvailable = (data) => createAPI('/plm/qu * @returns {*} */ export const deleteQuotationPropertiesItemAvailable = (data) => createAPI('/plm/quotationPropertiesItemAvailable/delete','post',data); + + +export const updateQuoteStatus = (data) => createAPI('/quote/status','post',data); diff --git a/src/api/quotation/quote.js b/src/api/quotation/quote.js index c6dc948..59f7aba 100644 --- a/src/api/quotation/quote.js +++ b/src/api/quotation/quote.js @@ -6,3 +6,9 @@ export const getQuotePage = (data)=>createAPI(`/quote/page/${data.no}/${data.siz export const queryQuoteByInquiryNo = (data) => createAPI(`/quote/detail`,'post',data) + + +export const queryQuoteByProjectPartNo = (data) => createAPI(`/quote/detail/part`,'post',data) + +export const queryQuoteDetailBom = (data) => createAPI(`/quote/detail/bom`,'post',data) +export const queryQuoteDetailRouting = (data) => createAPI(`/quote/detail/routing`,'post',data) diff --git a/src/views/modules/code/item/itemValue.vue b/src/views/modules/code/item/itemValue.vue index b565b7e..b5d6e6e 100644 --- a/src/views/modules/code/item/itemValue.vue +++ b/src/views/modules/code/item/itemValue.vue @@ -341,10 +341,14 @@ export default { searchCodeItemDefsSeq(params).then(({data})=>{ if (data && data.code === 0){ this.itemDefs = data.rows; - if (this.itemDefs.length > 0){ + if (this.itemDefs.length > 0 && this.conditionDetailModal.seqNo === undefined){ this.conditionDetailModal.SQLStatementExecuteItem = this.itemDefs[0].itemNo; - this.saveCodeItemValue(this.itemDefs[0]); } + let params = { + itemNo: this.conditionDetailModal.SQLStatementExecuteItem, + site:this.itemValue.site, + } + this.saveCodeItemValue(params); }else { this.$message.warning(data.msg) } @@ -361,7 +365,7 @@ export default { if (data && data.code === 0){ this.saveItemValueList = data.rows; this.$nextTick(()=>{ - if (this.saveItemValueList.length > 0){ + if (this.saveItemValueList.length > 0 && this.conditionDetailModal.seqNo === undefined){ this.conditionDetailModal.SQLStatementExecuteValueItemNo = this.saveItemValueList[0].valueItemNo; } }) @@ -383,6 +387,7 @@ export default { Object.keys(this.conditionDetailModal).forEach(key => { this.conditionDetailModal[key] = undefined; }); + this.conditionDetailModal.seqNo = undefined; this.conditionDetailModal.SQLStatementExecuteFlag = 'N'; }, changeItemDef(val){ @@ -452,6 +457,7 @@ export default { }, handleEditConditionDetail(){ this.conditionDetailModal = {...this.conditionDetails[this.selectionDetailIndex]} + this.conditionDetailModal.SQLStatementExecuteItem = parseInt(this.conditionDetailModal.SQLStatementExecuteItem) this.searchCodeItemDefs(); this.itemDefModalVisible = true }, @@ -688,7 +694,7 @@ export default { - + @@ -697,20 +703,23 @@ export default { - - - + - + + +
- + + {{ `(${o.valueNo})${o.itemValue}` }} + {{o.conditionName}} +
diff --git a/src/views/modules/part/bomManagement.vue b/src/views/modules/part/bomManagement.vue index 985b835..0af4aa4 100644 --- a/src/views/modules/part/bomManagement.vue +++ b/src/views/modules/part/bomManagement.vue @@ -2366,13 +2366,37 @@ export default { }, activated() { - if (this.$route.params.partNo) { + if (this.$route.params && this.$route.params.type && this.$route.params.type === 'quote'){ + this.handleQueryBomByQuote(); + }else if (this.$route.params.partNo) { this.searchData.partNo = this.$route.params.partNo + this.getDataList() } - this.getDataList() }, // js methods: { + // === 报价查询 === + handleQueryBomByQuote(){ + let params = { + site:this.$route.params.site, + partNo:this.$route.params.partNo, + bomType:this.$route.params.bomType, + engChgLevel:this.$route.params.engChgLevel, + page:this.pageIndex, + limit:this.pageSize + } + this.queryLoading = true + bomManagementSearch(params).then(({data})=>{ + if (data && data.code === 0) { + this.dataList = data.page.list + this.pageIndex = data.page.currPage + this.pageSize = data.page.pageSize + this.totalPage = data.page.totalCount + this.$refs.selectDiv.setLengthAll( this.dataList.length) + } + this.queryLoading = false + }) + }, // ======== 分页相关方法 ======== /** * 每页数 diff --git a/src/views/modules/part/routingManagement.vue b/src/views/modules/part/routingManagement.vue index eb14cae..da9c4da 100644 --- a/src/views/modules/part/routingManagement.vue +++ b/src/views/modules/part/routingManagement.vue @@ -2281,14 +2281,38 @@ export default { }, activated() { - if (this.$route.params.partNo) { + if (this.$route.params && this.$route.params.type && this.$route.params.type === 'quote'){ + this.handleQueryRoutingByQuote(); + }else if (this.$route.params.partNo) { this.searchData.partNo = this.$route.params.partNo + this.getDataList() } - this.getDataList() }, // js methods: { + // === 报价查询 === + handleQueryRoutingByQuote(){ + let params = { + site:this.$route.params.site, + partNo:this.$route.params.partNo, + routingType:this.$route.params.routingType, + engChgLevel:this.$route.params.engChgLevel, + page:this.pageIndex, + limit:this.pageSize + } + this.queryLoading = true + routingManagementSearch(params).then(({data})=>{ + if (data && data.code === 0) { + this.dataList = data.page.list + this.pageIndex = data.page.currPage + this.pageSize = data.page.pageSize + this.totalPage = data.page.totalCount + this.$refs.selectDiv.setLengthAll( this.dataList.length) + } + this.queryLoading = false + }) + }, // ======== 分页相关方法 ======== /** * 每页数 diff --git a/src/views/modules/project/projectInfo/com_project_info_part.vue b/src/views/modules/project/projectInfo/com_project_info_part.vue index aa4493b..c2caef0 100644 --- a/src/views/modules/project/projectInfo/com_project_info_part.vue +++ b/src/views/modules/project/projectInfo/com_project_info_part.vue @@ -876,6 +876,38 @@ fixed: '', columnWidth: 100 }, + { + userId: this.$store.state.user.name, + functionId: 101002001, + serialNumber: '101002001Table4UnitPrice', + tableId: "101002001Table4", + tableName: "项目物料", + columnProp: "unitPrice", + headerAlign: "center", + align: "left", + columnLabel: "未税单价", + columnHidden: false, + columnImage: false, + status: true, + fixed: '', + columnWidth: 100 + }, + { + userId: this.$store.state.user.name, + functionId: 101002001, + serialNumber: '101002001Table4TaxUnitPrice', + tableId: "101002001Table4", + tableName: "项目物料", + columnProp: "taxUnitPrice", + headerAlign: "center", + align: "left", + columnLabel: "含税单价", + columnHidden: false, + columnImage: false, + status: true, + fixed: '', + columnWidth: 100 + }, { userId: this.$store.state.user.name, functionId: 101002001, diff --git a/src/views/modules/project/projectPart/projectPartQuote.vue b/src/views/modules/project/projectPart/projectPartQuote.vue new file mode 100644 index 0000000..95da20d --- /dev/null +++ b/src/views/modules/project/projectPart/projectPartQuote.vue @@ -0,0 +1,547 @@ + + + + + diff --git a/src/views/modules/project/projectPart/searchProjectPart.vue b/src/views/modules/project/projectPart/searchProjectPart.vue index fa46efe..0c7aea9 100644 --- a/src/views/modules/project/projectPart/searchProjectPart.vue +++ b/src/views/modules/project/projectPart/searchProjectPart.vue @@ -150,7 +150,7 @@ - + @@ -181,8 +181,10 @@ import sample from "../projectInfo/com_project_sample"; import test from "../projectInfo/com_project_test"; import quotationHeader from "../projectInfo/com_project_info_quotation"; + import ProjectPartQuote from "./projectPartQuote.vue"; export default { components: { + ProjectPartQuote, Chooselist, technicalSpecification, projectQuotation, diff --git a/src/views/modules/quotation/inquiry/inquiryQuoteDetail.vue b/src/views/modules/quotation/inquiry/inquiryQuoteDetail.vue index 3aa2385..24d0984 100644 --- a/src/views/modules/quotation/inquiry/inquiryQuoteDetail.vue +++ b/src/views/modules/quotation/inquiry/inquiryQuoteDetail.vue @@ -515,13 +515,17 @@ export default { }) }, handleClickDetail(row){ - this.$router.push({ - name: 'quotation-sellForQuotation', - params:{ - quotationHeaderId:row.quotationHeaderId, - from:'inquiry' - } - }) + if (this.$router.resolve('quotation-sellForQuotation').resolved.name === '404') { + this.$alert('权限不足,访问失败', '警告', {confirmButtonText: '确定',}) + } else { + this.$router.push({ + name: 'quotation-sellForQuotation', + params:{ + quotationHeaderId:row.quotationHeaderId, + from:'inquiry' + } + }) + } } }, watch:{ diff --git a/src/views/modules/quotation/sellForQuotation.vue b/src/views/modules/quotation/sellForQuotation.vue index e430fb7..1690bf5 100644 --- a/src/views/modules/quotation/sellForQuotation.vue +++ b/src/views/modules/quotation/sellForQuotation.vue @@ -110,7 +110,7 @@ width="160">