QuKatie 3 роки тому
батько
коміт
eabb554291

+ 17 - 15
src/components/part-dialog/main.vue

@@ -37,7 +37,7 @@
               size="small"
               type="text"
               style="padding:4px 10px;float:left"
-              @click="rePick(row.index)"
+              @click="rePick(row,index)"
               >选择</el-button
             >
             <span> {{ row.goodName }}</span>
@@ -91,7 +91,7 @@ export default {
       partVisible: false,
       selectionList: [],
       goodsIndex: null,
-      amoutSum:0
+      amoutSum: 0
     };
   },
   props: {
@@ -104,11 +104,16 @@ export default {
   },
   created() {},
   methods: {
-    rePick(row,index){
-            this.$message({
-        type: "warning",
-        message: "正在开发中!"
-      });
+    rePick(row, index) {
+      console.log()
+      this.$emit('partReData',{
+        ...row,
+        index: index
+      })
+      // this.$message({
+      //   type: "warning",
+      //   message: "正在开发中!"
+      // });
     },
     priceChange(row) {
       row.amout = _.multiply(
@@ -132,7 +137,7 @@ export default {
       this.partVisible = true;
     },
     closed() {
-      this.amoutSum=0
+      this.amoutSum = 0;
       this.$refs.crud.toggleSelection();
       this.$emit("partClosed");
     },
@@ -140,7 +145,7 @@ export default {
       this.selectionList = list;
     },
     importPart() {
-      this.$emit("importPart", this.data,this.amoutSum, this.goodsIndex);
+      this.$emit("importPart", this.data, this.amoutSum, this.goodsIndex);
       this.partVisible = false;
     },
     sizeChange(val) {
@@ -162,17 +167,14 @@ export default {
       if (columns.length > 0) {
         columns.forEach((item, index) => {
           sums[0] = "合计";
-          if (
-            item.property == "goodNumber" ||
-            item.property == "amout"
-          ) {
+          if (item.property == "goodNumber" || item.property == "amout") {
             let qtySum = 0;
             let amountSum = 0;
-            this.amoutSum=0
+            this.amoutSum = 0;
             data.forEach(e => {
               qtySum = _.add(qtySum, Number(e.goodNumber));
               amountSum = _.add(amountSum, Number(e.amout));
-              this.amoutSum=amountSum
+              this.amoutSum = amountSum;
             });
             //数量总计
             if (item.property == "goodNumber") {

+ 1 - 0
src/util/contrastData.js

@@ -24,6 +24,7 @@ export function contrastList(newlist, oldlist) {
         if (!reg.test(oldlist[i])) {
           delete oldlist[i].olditem
         }
+        console.log(newitem==Object,newitem==Array)
         if (newitem == olditem) {
           if (newlist[i][newitem] != oldlist[i][olditem]) {
             return true

+ 54 - 25
src/views/exportTrade/customerInquiry/detailsPage.vue

@@ -364,6 +364,7 @@
       :partList="partList"
       @importPart="importPart"
       @partClosed="partClosed"
+      @partReData="partReData"
     />
   </div>
 </template>
@@ -689,7 +690,7 @@ export default {
       subLoading: false,
       pageLoading: false,
       showBut: true,
-      partreData: {},
+      partreData: null,
       partType: false,
       partList: []
     };
@@ -745,6 +746,10 @@ export default {
     }
   },
   methods: {
+    partReData(row) {
+      this.partreData = row;
+      this.partOpen();
+    },
     saveSell() {
       if (!this.form.id) {
         return this.$message.error("此单据没有提交记录,请先提交");
@@ -780,9 +785,11 @@ export default {
     importPart(rows, sum, index) {
       this.data[index].partsList = rows;
       this.data[index].partsPrice = sum;
+      this.priceChange(this.data[index]);
     },
     partClosed() {
       this.partList = [];
+      this.partreData=null;
     },
     getcorpId(row) {
       this.data[row.index].corpId = row.id;
@@ -804,18 +811,21 @@ export default {
     priceChange(row) {
       const sum = _.multiply(
         _.add(
-          Number(
-            _.multiply(
-              row.price ? row.price : 0,
-              row.orderQuantity ? row.orderQuantity : 0
+          _.add(
+            Number(
+              _.multiply(
+                row.price ? row.price : 0,
+                row.orderQuantity ? row.orderQuantity : 0
+              )
+            ),
+            Number(
+              _.add(
+                Number(row.insurance ? row.insurance : 0),
+                Number(row.freight ? row.freight : 0)
+              )
             )
           ),
-          Number(
-            _.add(
-              Number(row.insurance ? row.insurance : 0),
-              Number(row.freight ? row.freight : 0)
-            )
-          )
+          Number(row.partsPrice ? row.partsPrice : 0)
         ),
         _.divide(row.discount ? row.discount : 10, 10)
       );
@@ -931,18 +941,39 @@ export default {
     },
     importGoods() {
       if (this.partType) {
-        this.selectionList.forEach(e => {
-          this.partList.push({
-            goodId: e.id,
-            goodTypeId: e.goodsTypeId,
-            goodTypeName: e.goodsTypeName,
-            goodName: e.cname,
-            price: e.price,
-            goodNumber: 0,
-            amout: 0,
-            $cellEdit: true
+        if (this.partreData) {
+          if (this.selectionList.length != 1) {
+            return this.$message.error("重新选择的时候只能选择一条数据");
+          } else {
+            this.selectionList.forEach(e => {
+              this.partList.forEach((item, index) => {
+                if (index == this.partreData.index) {
+                  item.goodId = e.id;
+                  item.goodTypeId = e.goodsTypeId;
+                  item.goodTypeName = e.goodsTypeName;
+                  item.goodName = e.cname;
+                  item.price = this.partreData.goodNumber;
+                  item.goodNumber = this.partreData.goodNumber;
+                  item.amout = this.partreData.amout;
+                  item.$cellEdit = true;
+                }
+              });
+            });
+          }
+        } else {
+          this.selectionList.forEach(e => {
+            this.partList.push({
+              goodId: e.id,
+              goodTypeId: e.goodsTypeId,
+              goodTypeName: e.goodsTypeName,
+              goodName: e.cname,
+              price: e.price,
+              goodNumber: 0,
+              amout: 0,
+              $cellEdit: true
+            });
           });
-        });
+        }
       } else if (this.reData) {
         if (this.selectionList.length != 1) {
           return this.$message.error("重新选择的时候只能选择一条数据");
@@ -1122,9 +1153,7 @@ export default {
     //返回列表
     backToList() {
       let orderFeesList = this.$refs.feeInfo.submitData();
-      console.log(
-      this.data, this.olddata
-      );
+      console.log(this.data, this.olddata);
       if (
         contrastObj(this.form, this.oldform) ||
         contrastList(this.data, this.olddata) ||

+ 27 - 13
src/views/exportTrade/salesContract/config/customerContact.json

@@ -70,23 +70,37 @@
       "overHidden": true
     },
     {
+      "label": "配件信息",
+      "prop": "partsList",
+      "index": 8,
+      "width": 100,
+      "overHidden": true
+    },
+    {
+      "label": "配件价格",
+      "prop": "partsPrice",
+      "index": 9,
+      "width": 100,
+      "overHidden": true
+    },
+    {
       "label": "供应商",
       "prop": "corpId",
-      "index": 8,
+      "index": 10,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "重点推荐",
       "prop": "priorityReferrer",
-      "index": 9,
+      "index": 11,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "推荐理由",
       "prop": "referrerReason",
-      "index": 10,
+      "index": 12,
       "width": 100,
       "overHidden": true,
       "cell": true
@@ -94,14 +108,14 @@
     {
       "label": "销售价",
       "prop": "price",
-      "index": 11,
+      "index": 13,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "计价单位",
       "prop": "unit",
-      "index": 12,
+      "index": 14,
       "width": 100,
       "overHidden": true,
       "cell": true,
@@ -115,56 +129,56 @@
     {
       "label": "数量",
       "prop": "orderQuantity",
-      "index": 13,
+      "index": 15,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "发货数量",
       "prop": "actualQuantity",
-      "index": 14,
+      "index": 16,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "保险",
       "prop": "insurance",
-      "index": 15,
+      "index": 17,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "运费",
       "prop": "freight",
-      "index": 16,
+      "index": 18,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "折扣",
       "prop": "discount",
-      "index": 17,
+      "index": 19,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "金额",
       "prop": "amount",
-      "index": 18,
+      "index": 20,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "税率",
       "prop": "taxRate",
-      "index": 19,
+      "index": 21,
       "width": 100,
       "overHidden": true
     },
     {
       "label": "备注",
       "prop": "remarks",
-      "index": 20,
+      "index": 22,
       "width": 100,
       "overHidden": true,
       "cell": true

+ 97 - 15
src/views/exportTrade/salesContract/detailsPage.vue

@@ -133,6 +133,15 @@
               >
               <span> {{ row.cname }}</span>
             </template>
+            <template slot="partsList" slot-scope="{ row, index }">
+              <el-button
+                size="small"
+                type="text"
+                @click="partrePick(row, index)"
+                :disabled="disabled"
+                >操作</el-button
+              >
+            </template>
             <template slot="itemType" slot-scope="{ row }">
               <el-select
                 v-if="row.$cellEdit"
@@ -378,6 +387,14 @@
       reportName="客户询价"
       @onClose="onClose()"
     ></report-dialog>
+    <part-dialog
+      ref="part"
+      @partOpen="partOpen()"
+      :partList="partList"
+      @importPart="importPart"
+      @partClosed="partClosed"
+      @partReData="partReData"
+    />
   </div>
 </template>
 
@@ -399,6 +416,7 @@ import {
 } from "@/api/basicData/salesContract";
 import _ from "lodash";
 import reportDialog from "@/components/report-dialog/main";
+import partDialog from "@/components/part-dialog/main";
 import { micrometerFormat } from "@/util/validate";
 import { contrastObj, contrastList } from "@/util/contrastData";
 import customerDialog from "@/components/customer-dialog/main";
@@ -746,8 +764,11 @@ export default {
       oldorderFeesList: [],
       oldorderFilesList: [],
       subLoading: false,
-       pageLoading: false,
-      showBut: true
+      pageLoading: false,
+      showBut: true,
+      partreData: null,
+      partType: false,
+      partList: []
     };
   },
   props: {
@@ -759,7 +780,8 @@ export default {
     reportDialog,
     feeInfo,
     uploadFile,
-    customerDialog
+    customerDialog,
+    partDialog
   },
   async created() {
     this.tableOption = await this.getColumnData(
@@ -812,6 +834,27 @@ export default {
     });
   },
   methods: {
+    partReData(row) {
+      this.partreData = row;
+      this.partOpen();
+    },
+    partOpen() {
+      this.partType = true;
+      this.newDetails();
+    },
+    partrePick(row, index) {
+      this.partList = row.partsList;
+      this.$refs.part.init(row.partsList, index);
+    },
+    importPart(rows, sum, index) {
+      this.data[index].partsList = rows;
+      this.data[index].partsPrice = sum;
+      this.priceChange(this.data[index]);
+    },
+    partClosed() {
+      this.partList = [];
+      this.partreData = null;
+    },
     saveSell() {
       if (!this.form.id) {
         return this.$message.error("此单据没有提交记录,请先提交");
@@ -855,18 +898,21 @@ export default {
     priceChange(row) {
       const sum = _.multiply(
         _.add(
-          Number(
-            _.multiply(
-              row.price ? row.price : 0,
-              row.orderQuantity ? row.orderQuantity : 0
+          _.add(
+            Number(
+              _.multiply(
+                row.price ? row.price : 0,
+                row.orderQuantity ? row.orderQuantity : 0
+              )
+            ),
+            Number(
+              _.add(
+                Number(row.insurance ? row.insurance : 0),
+                Number(row.freight ? row.freight : 0)
+              )
             )
           ),
-          Number(
-            _.add(
-              Number(row.insurance ? row.insurance : 0),
-              Number(row.freight ? row.freight : 0)
-            )
-          )
+          Number(row.partsPrice ? row.partsPrice : 0)
         ),
         _.divide(row.discount ? row.discount : 10, 10)
       );
@@ -949,8 +995,41 @@ export default {
       });
     },
     importGoods() {
-      if (this.reData) {
-        console.log(this.reData);
+      if (this.partType) {
+        if (this.partreData) {
+          if (this.selectionList.length != 1) {
+            return this.$message.error("重新选择的时候只能选择一条数据");
+          } else {
+            this.selectionList.forEach(e => {
+              this.partList.forEach((item, index) => {
+                if (index == this.partreData.index) {
+                  item.goodId = e.id;
+                  item.goodTypeId = e.goodsTypeId;
+                  item.goodTypeName = e.goodsTypeName;
+                  item.goodName = e.cname;
+                  item.price = this.partreData.goodNumber;
+                  item.goodNumber = this.partreData.goodNumber;
+                  item.amout = this.partreData.amout;
+                  item.$cellEdit = true;
+                }
+              });
+            });
+          }
+        } else {
+          this.selectionList.forEach(e => {
+            this.partList.push({
+              goodId: e.id,
+              goodTypeId: e.goodsTypeId,
+              goodTypeName: e.goodsTypeName,
+              goodName: e.cname,
+              price: e.price,
+              goodNumber: 0,
+              amout: 0,
+              $cellEdit: true
+            });
+          });
+        }
+      } else if (this.reData) {
         if (this.selectionList.length != 1) {
           return this.$message.error("重新选择的时候只能选择一条数据");
         } else {
@@ -1011,6 +1090,9 @@ export default {
       this.selectionList = [];
       this.treeDeptId = "";
       this.reData = null;
+      if (this.partType) {
+        this.partType = false;
+      }
     },
     goodsSelectionChange(list) {
       this.orderItemIds = [];