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/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 @@
+
+
+
+
+
+
+ {{ scope.row[item.columnProp]}}
+
+
+
+
+
+
+
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">
下达
+ @click="handleUpdateStatus(scope.row)">下达
编辑
删除
@@ -397,7 +397,7 @@ import {
} from '@/api/quotation/quotationInformation.js';
import QuoteDetail from "./sellForQuotation/quoteDetail.vue";
import {searchProjectInfoList} from "../../../api/quotation/quotationInformation";
-import {getQuotationHeaderByPagePost} from "../../../api/quotation/quotationHeader";
+import {getQuotationHeaderByPagePost, updateQuoteStatus} from "../../../api/quotation/quotationHeader";
import {getQuotePage} from "../../../api/quotation/quote";
export default {
@@ -1165,16 +1165,26 @@ export default {
this.$message.error('查询项目信息失败')
})
},
- editQuotationHeaderStatus(row, status) {
- let params = JSON.parse(JSON.stringify(row));
- params.quotationStatus = status;
- saveQuotationHeader(params).then(({data}) => {
- // 返回提示
- if (data.code === 200) {
- this.initData();
- this.restQuoteHeader();
+ handleUpdateStatus(row) {
+ this.$confirm(`是否确认下达?`, '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ }).then(()=>{
+ let params = {
+ ...row,
+ quotationStatus:'下达'
}
- this.$message.success(data.msg);
+ updateQuoteStatus(params).then(({data})=>{
+ if (data && data.code === 0){
+ this.$message.success(data.msg)
+ this.initData()
+ }else {
+ this.$message.warning(data.msg)
+ }
+ }).catch((error)=>{
+ this.$message.error(error)
+ })
})
},
restQuoteHeader() {
diff --git a/src/views/modules/quotation/sellForQuotation/quoteDetail.vue b/src/views/modules/quotation/sellForQuotation/quoteDetail.vue
index da79010..4375479 100644
--- a/src/views/modules/quotation/sellForQuotation/quoteDetail.vue
+++ b/src/views/modules/quotation/sellForQuotation/quoteDetail.vue
@@ -13,6 +13,7 @@ import {Decimal} from "decimal.js";
import {searchQuoteBomHeader, searchQuoteBomList} from "../../../../api/quotation/quoteOfBom";
import QuoteRouting from "./quotationDetail/quoteRouting.vue";
import {searchQuoteRoutingHeader} from "../../../../api/quotation/quoteOfRouting";
+import {queryQuoteDetailBom, queryQuoteDetailRouting} from "../../../../api/quotation/quote";
export default {
name:'quoteDetail',
@@ -1018,12 +1019,79 @@ export default {
},
handleToBom(row){
let params = {
-
+ quotationDetailId:row.quotationDetailId
}
-
+ queryQuoteDetailBom(params).then(({data})=>{
+ if (data && data.code === 0){
+ if (this.$router.resolve('part-bomManagement').resolved.name === '404') {
+ this.$alert('权限不足,访问失败', '警告', {confirmButtonText: '确定',})
+ } else {
+ let result = {
+ partNo:'',
+ site:'',
+ }
+ if (!data.row){
+ result.partNo = row.productNo
+ result.site = row.site
+ }else {
+ result = {
+ ...data.row
+ }
+ }
+ this.$router.push({
+ name:"part-bomManagement",
+ params:{
+ type:"quote",
+ site:result.site,
+ partNo: result.partNo,
+ engChgLevel:result.version,
+ bomType: result.bomType,
+ }})
+ }
+ }else {
+ this.$message.warning(data.msg);
+ }
+ }).catch((error)=>{
+ this.$message.error(error);
+ })
},
handleToRouting(row){
-
+ let params = {
+ quotationDetailId:row.quotationDetailId
+ }
+ queryQuoteDetailRouting(params).then(({data})=>{
+ if (data && data.code === 0){
+ if (this.$router.resolve('part-routingManagement').resolved.name === '404') {
+ this.$alert('权限不足,访问失败', '警告', {confirmButtonText: '确定',})
+ } else {
+ let result = {
+ partNo:'',
+ site:'',
+ }
+ if (!data.row){
+ result.partNo = row.productNo
+ result.site = row.site
+ }else {
+ result = {
+ ...data.row
+ }
+ }
+ this.$router.push({
+ name:"part-routingManagement",
+ params:{
+ type:"quote",
+ site:result.site,
+ partNo: result.partNo,
+ engChgLevel:result.version,
+ routingType: result.routingType,
+ }})
+ }
+ }else {
+ this.$message.warning(data.msg);
+ }
+ }).catch((error)=>{
+ this.$message.error(error);
+ })
}
},
}
@@ -1045,14 +1113,13 @@ export default {
下达
编辑
删除
- 删除
更多
- BOM
- Routing
+ BOM
+ Routing