diff --git a/src/api/test/testInformation.js b/src/api/test/testInformation.js
index 43b4286..d30d634 100644
--- a/src/api/test/testInformation.js
+++ b/src/api/test/testInformation.js
@@ -116,3 +116,10 @@ export const testInformationEditStatus = data => createAPI(`/plm/testInformation
export const testInfoEditEntry = data => createAPI(`/plm/testInformation/testInfoEditEntry`,'post',data)
export const getTestRemarkEntry = data => createAPI(`/plm/testInformation/getTestRemarkEntry`,'post',data)
+
+/**
+ * 更新测试主信息的材料总金额
+ * @param data
+ * @returns {*}
+ */
+export const updateMaterialTotalAmount = data => createAPI(`/plm/testInformation/updateMaterialTotalAmount`,'post',data)
\ No newline at end of file
diff --git a/src/views/modules/test/requestForTest.vue b/src/views/modules/test/requestForTest.vue
index cf9a911..6703f7e 100644
--- a/src/views/modules/test/requestForTest.vue
+++ b/src/views/modules/test/requestForTest.vue
@@ -409,7 +409,7 @@
-
+
@@ -705,7 +705,7 @@
+ v-model:data-list="testSoBomList" @refresh-test-info="handleRefreshTestInfo">
item.testNo === testNo)
+ if (currentRow) {
+ currentRow.materialTotalAmount = this.materialTotalAmount
+ }
+
+ // 如果在对话框模式,更新modalData
+ if (this.modalData && this.modalData.testNo === testNo) {
+ this.modalData.materialTotalAmount = this.materialTotalAmount
+ }
+
+ // 如果在主页面模式,更新testCurrentRow和testDetailData
+ if (this.testCurrentRow && this.testCurrentRow.testNo === testNo) {
+ this.testCurrentRow.materialTotalAmount = this.materialTotalAmount
+ this.testDetailData.materialTotalAmount = this.materialTotalAmount
+ }
+ },
partPageSizeChange(val) {
this.partPageSize = val
this.getProjectPartList();
diff --git a/src/views/modules/test/testSoBom/testTable.vue b/src/views/modules/test/testSoBom/testTable.vue
index fd4aad0..cda76ad 100644
--- a/src/views/modules/test/testSoBom/testTable.vue
+++ b/src/views/modules/test/testSoBom/testTable.vue
@@ -6,6 +6,7 @@ import {
updateTestSoBom,
removeBatchTestSoBom
} from "../../../../api/test/testSoBom";
+import {updateMaterialTotalAmount} from "../../../../api/test/testInformation";
import {searchPart, searchPartList} from '@/api/part/partInformation.js';
import numberInput from "../../common/numberInput.vue";
import {searchAllUmInformationList} from "../../../../api/part/umInformation";
@@ -547,6 +548,10 @@ export default {
if (data && data.code === 0 ){
this.$emit("change",data.rows)
this.restSoBom();
+ // 数据加载完成后,更新材料总金额
+ this.$nextTick(() => {
+ this.updateTestMaterialTotalAmount()
+ })
}else {
this.$message.error(data.msg)
}
@@ -667,6 +672,31 @@ export default {
handleCurrentChange(val){
this.no = val
this.initPartList()
+ },
+ // 更新测试主信息的材料总金额
+ updateTestMaterialTotalAmount(){
+ if (!this.testNo) {
+ return
+ }
+ // 计算当前所有材料的总金额
+ const totalAmount = this.dataList.reduce((sum, item) => {
+ return sum + (Number(item.totalCost) || 0)
+ }, 0)
+
+ const params = {
+ testNo: this.testNo,
+ materialTotalAmount: totalAmount
+ }
+
+ updateMaterialTotalAmount(params).then(({data}) => {
+ if (data && data.code === 0) {
+ // 更新成功,通知父组件刷新主信息
+ console.log('材料总金额更新成功:', totalAmount)
+ this.$emit('refresh-test-info')
+ }
+ }).catch((error) => {
+ console.error('更新材料总金额失败', error)
+ })
}
},