|  | @@ -15,6 +15,7 @@
 | 
	
		
			
				|  |  |          @on-load="onLoad"
 | 
	
		
			
				|  |  |          @saveColumn="saveColumn"
 | 
	
		
			
				|  |  |          :cell-style="cellStyle"
 | 
	
		
			
				|  |  | +        :summary-method="summaryMethod"
 | 
	
		
			
				|  |  |        >
 | 
	
		
			
				|  |  |          <template slot-scope="scope" slot="grossProfitRate">
 | 
	
		
			
				|  |  |            {{ scope.row.grossProfitRate }}%
 | 
	
	
		
			
				|  | @@ -57,9 +58,9 @@
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  |            </el-date-picker>
 | 
	
		
			
				|  |  |          </template>
 | 
	
		
			
				|  |  | -        <template slot="dateValiditySearch">
 | 
	
		
			
				|  |  | +        <template slot="plannedDeliveryDateSearch">
 | 
	
		
			
				|  |  |            <el-date-picker
 | 
	
		
			
				|  |  | -            v-model="search.dateValidity"
 | 
	
		
			
				|  |  | +            v-model="search.plannedDeliveryDate"
 | 
	
		
			
				|  |  |              type="daterange"
 | 
	
		
			
				|  |  |              start-placeholder="开始日期"
 | 
	
		
			
				|  |  |              end-placeholder="结束日期"
 | 
	
	
		
			
				|  | @@ -118,6 +119,8 @@ import option from "./config/mainList.json";
 | 
	
		
			
				|  |  |  import { getList, remove, getPorts } from "@/api/basicData/salesContract";
 | 
	
		
			
				|  |  |  import detailPage from "./detailsPage.vue";
 | 
	
		
			
				|  |  |  import { defaultDate } from "@/util/date";
 | 
	
		
			
				|  |  | +import { micrometerFormat } from "@/util/validate";
 | 
	
		
			
				|  |  | +import _ from "lodash";
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    name: "customerInformation",
 | 
	
		
			
				|  |  |    data() {
 | 
	
	
		
			
				|  | @@ -129,7 +132,9 @@ export default {
 | 
	
		
			
				|  |  |          placeholder: "请点击右边按钮选择",
 | 
	
		
			
				|  |  |          dicData: []
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  | -      search: {},
 | 
	
		
			
				|  |  | +      search: {
 | 
	
		
			
				|  |  | +        businesDate: defaultDate()
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  |        form: {},
 | 
	
		
			
				|  |  |        option: {},
 | 
	
		
			
				|  |  |        parentId: 0,
 | 
	
	
		
			
				|  | @@ -146,7 +151,6 @@ export default {
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    components: { detailPage },
 | 
	
		
			
				|  |  |    async created() {
 | 
	
		
			
				|  |  | -    this.search.businesDate = defaultDate();
 | 
	
		
			
				|  |  |      this.option = await this.getColumnData(this.getColumnName(4), option);
 | 
	
		
			
				|  |  |      let _this = this;
 | 
	
		
			
				|  |  |      this.option.column.forEach(e => {
 | 
	
	
		
			
				|  | @@ -219,7 +223,17 @@ export default {
 | 
	
		
			
				|  |  |          params.orderStartDate = params.businesDate[0];
 | 
	
		
			
				|  |  |          params.orderEndDate = params.businesDate[1];
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +      if (params.plannedDeliveryDate) {
 | 
	
		
			
				|  |  | +        params.plannedDeliveryStart = params.plannedDeliveryDate[0];
 | 
	
		
			
				|  |  | +        params.plannedDeliveryEnd = params.plannedDeliveryDate[1];
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (params.createTime) {
 | 
	
		
			
				|  |  | +        params.createTimeStart = params.createTime[0];
 | 
	
		
			
				|  |  | +        params.createTimeEnd = params.createTime[1];
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        delete params.businesDate;
 | 
	
		
			
				|  |  | +      delete params.plannedDeliveryDate;
 | 
	
		
			
				|  |  | +      delete params.createTime;
 | 
	
		
			
				|  |  |        this.page.currentPage = 1;
 | 
	
		
			
				|  |  |        this.onLoad(this.page, params);
 | 
	
		
			
				|  |  |        done();
 | 
	
	
		
			
				|  | @@ -244,7 +258,7 @@ export default {
 | 
	
		
			
				|  |  |          this.dataList = res.data.data.records ? res.data.data.records : [];
 | 
	
		
			
				|  |  |          this.page.total = res.data.data.total;
 | 
	
		
			
				|  |  |          if (this.page.total) {
 | 
	
		
			
				|  |  | -          this.option.height = window.innerHeight - 380;
 | 
	
		
			
				|  |  | +          this.option.height = window.innerHeight - 500;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  |      },
 | 
	
	
		
			
				|  | @@ -261,6 +275,86 @@ export default {
 | 
	
		
			
				|  |  |        this.detailData = this.$options.data().detailData;
 | 
	
		
			
				|  |  |        this.show = true;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    summaryMethod({ columns, data }) {
 | 
	
		
			
				|  |  | +      const sums = [];
 | 
	
		
			
				|  |  | +      if (columns.length > 0) {
 | 
	
		
			
				|  |  | +        columns.forEach((item, index) => {
 | 
	
		
			
				|  |  | +          sums[0] = "合计";
 | 
	
		
			
				|  |  | +          if (
 | 
	
		
			
				|  |  | +            item.property == "minOrder" ||
 | 
	
		
			
				|  |  | +            item.property == "predictOceanFreight" ||
 | 
	
		
			
				|  |  | +            item.property == "referenceOceanFreight" ||
 | 
	
		
			
				|  |  | +            item.property == "oceanFreight" ||
 | 
	
		
			
				|  |  | +            item.property == "orderQuantity"||
 | 
	
		
			
				|  |  | +            item.property == "actualQuantity"||
 | 
	
		
			
				|  |  | +            item.property == "grossProfit"||
 | 
	
		
			
				|  |  | +            item.property == "amount"||
 | 
	
		
			
				|  |  | +            item.property == "purchaseAmount"
 | 
	
		
			
				|  |  | +          ) {
 | 
	
		
			
				|  |  | +            let qtySum = 0;
 | 
	
		
			
				|  |  | +            let instoreSum = 0;
 | 
	
		
			
				|  |  | +            let totalSum = 0;
 | 
	
		
			
				|  |  | +            let oceanFreightSum = 0;
 | 
	
		
			
				|  |  | +            let orderQuantitySum = 0;
 | 
	
		
			
				|  |  | +            let actualQuantitySum = 0;
 | 
	
		
			
				|  |  | +            let amountSum = 0;
 | 
	
		
			
				|  |  | +            let purchaseAmountSum = 0;
 | 
	
		
			
				|  |  | +            data.forEach(e => {
 | 
	
		
			
				|  |  | +              qtySum = _.add(qtySum, Number(e.minOrder));
 | 
	
		
			
				|  |  | +              instoreSum = _.add(instoreSum, Number(e.predictOceanFreight));
 | 
	
		
			
				|  |  | +              totalSum = _.add(totalSum, Number(e.referenceOceanFreight));
 | 
	
		
			
				|  |  | +              oceanFreightSum = _.add(oceanFreightSum, Number(e.oceanFreight));
 | 
	
		
			
				|  |  | +              orderQuantitySum = _.add(
 | 
	
		
			
				|  |  | +                orderQuantitySum,
 | 
	
		
			
				|  |  | +                Number(e.orderQuantity)
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  | +              actualQuantitySum = _.add(
 | 
	
		
			
				|  |  | +                actualQuantitySum,
 | 
	
		
			
				|  |  | +                Number(e.actualQuantity)
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  | +              amountSum = _.add(amountSum, Number(e.amount));
 | 
	
		
			
				|  |  | +              purchaseAmountSum = _.add(
 | 
	
		
			
				|  |  | +                purchaseAmountSum,
 | 
	
		
			
				|  |  | +                Number(e.purchaseAmount)
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            //数量总计
 | 
	
		
			
				|  |  | +            if (item.property == "minOrder") {
 | 
	
		
			
				|  |  | +              sums[index] = qtySum ? qtySum.toFixed(2) : "0.00";
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //入库金额总计
 | 
	
		
			
				|  |  | +            if (item.property == "predictOceanFreight") {
 | 
	
		
			
				|  |  | +              sums[index] = micrometerFormat(instoreSum);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //金额总计
 | 
	
		
			
				|  |  | +            if (item.property == "referenceOceanFreight") {
 | 
	
		
			
				|  |  | +              sums[index] = micrometerFormat(totalSum);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //实际海运费
 | 
	
		
			
				|  |  | +            if (item.property == "oceanFreight") {
 | 
	
		
			
				|  |  | +              sums[index] = micrometerFormat(oceanFreightSum);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (item.property == "orderQuantity") {
 | 
	
		
			
				|  |  | +              sums[index] = orderQuantitySum
 | 
	
		
			
				|  |  | +                ? orderQuantitySum.toFixed(2)
 | 
	
		
			
				|  |  | +                : "0.00";
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (item.property == "actualQuantity") {
 | 
	
		
			
				|  |  | +              sums[index] = actualQuantitySum
 | 
	
		
			
				|  |  | +                ? actualQuantitySum.toFixed(2)
 | 
	
		
			
				|  |  | +                : "0.00";
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (item.property == "amount") {
 | 
	
		
			
				|  |  | +              sums[index] = micrometerFormat(amountSum);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (item.property == "purchaseAmount") {
 | 
	
		
			
				|  |  | +              sums[index] = micrometerFormat(purchaseAmountSum);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      return sums;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      async saveColumn() {
 | 
	
		
			
				|  |  |        const inSave = await this.saveColumnData(
 | 
	
		
			
				|  |  |          this.getColumnName(4),
 | 
	
	
		
			
				|  | @@ -272,6 +366,11 @@ export default {
 | 
	
		
			
				|  |  |          this.$refs.crud.$refs.dialogColumn.columnBox = false;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  watch: {
 | 
	
		
			
				|  |  | +    option: function() {
 | 
	
		
			
				|  |  | +      this.search.businesDate = defaultDate();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  </script>
 |