QuKatie 3 年 前
コミット
cb76618190

+ 40 - 50
src/views/exportTrade/customerInquiry/detailsPage.vue

@@ -48,16 +48,6 @@
               :disabled="detailData.status == 1"
             ></select-component>
           </template>
-          <template slot="exchangeRate">
-            <el-input
-              size="mini"
-              v-model="form.exchangeRate"
-              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
-              @change="rateChange"
-              placeholder="请输入 汇率"
-              :disabled="detailData.status == 1"
-            />
-          </template>
           <template slot="boxNumber">
             <el-input
               size="mini"
@@ -108,27 +98,6 @@
               :disabled="detailData.status == 1"
             />
           </template>
-          <template slot="grossProfit">
-            <el-input
-              size="mini"
-              v-model="form.grossProfit"
-              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/,
-            "$1.$2")'
-              placeholder="请输入 毛利额"
-              disabled
-            />
-          </template>
-          <template slot="grossProfitRate">
-            <el-input
-              size="mini"
-              v-model="form.grossProfitRate"
-              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
-              @change="grossProfitRateChange"
-              placeholder="请输入 毛利率"
-              disabled
-              ><template slot="append">%</template></el-input
-            >
-          </template>
         </avue-form>
       </basic-container>
       <containerTitle title="商品信息"></containerTitle>
@@ -246,6 +215,7 @@
               v-model="row.purchaseAmount"
               size="small"
               placeholder="请输入"
+              @change="priceChange(row)"
               oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
             ></el-input>
             <span v-else>{{ row.purchaseAmount | micrometerFormat }}</span>
@@ -560,6 +530,14 @@ export default {
             props: {
               label: "dictValue",
               value: "dictValue"
+            },
+            change: ({ value }) => {
+              if (value == "人民币") {
+                this.form.exchangeRate = 1;
+              }
+              if (value == "美元") {
+                this.form.exchangeRate = 6.3843;
+              }
             }
           },
           {
@@ -567,7 +545,8 @@ export default {
             prop: "exchangeRate",
             span: 8,
             slot: true,
-            row: true
+            row: true,
+            disabled: true
           },
           {
             label: "箱型",
@@ -602,13 +581,16 @@ export default {
           {
             label: "毛利额",
             prop: "grossProfit",
-            span: 8
+            span: 8,
+            disabled: true
           },
           {
             label: "毛利率",
             prop: "grossProfitRate",
             span: 8,
-            row: true
+            row: true,
+            append: "%",
+            disabled: true
           },
           {
             label: "备注",
@@ -784,6 +766,29 @@ export default {
         _.divide(row.discount ? row.discount : 10, 10)
       );
       row.amount = Number(sum ? sum : 0).toFixed(2);
+      let amountSum = 0;
+      let purchaseAmountSum = 0;
+      let grossProfitRate = 0;
+      this.data.forEach(e => {
+        amountSum = _.add(amountSum, Number(e.amount));
+        purchaseAmountSum = _.add(
+          purchaseAmountSum,
+          Number(
+            _.multiply(
+              Number(e.purchaseAmount ? e.purchaseAmount : 0),
+              Number(e.orderQuantity)
+            )
+          )
+        );
+        this.form.grossProfit = _.subtract(amountSum, purchaseAmountSum);
+        grossProfitRate = _.multiply(
+          _.divide(_.subtract(amountSum, purchaseAmountSum), amountSum),
+          100
+        );
+        this.form.grossProfitRate = Number(
+          grossProfitRate ? grossProfitRate : 0
+        ).toFixed(2);
+      });
     },
     discountChange(row) {
       if (row.discount >= 10) {
@@ -836,13 +841,6 @@ export default {
         });
       });
     },
-    rateChange(row) {
-      console.log(row);
-      if (row >= 100) {
-        this.form.exchangeRate = 0;
-        this.$message.error("汇率不能超过100%");
-      }
-    },
     rowSave(row) {
       this.$set(row, "$cellEdit", false);
     },
@@ -1022,7 +1020,7 @@ export default {
     //返回列表
     backToList() {
       let orderFeesList = this.$refs.feeInfo.submitData();
-      let form = this.form
+      let form = this.form;
       if (form.orderStatus == "录入" && this.oldform.orderStatus == "录入") {
         delete form.orderStatus;
         delete form.$orderStatus;
@@ -1069,19 +1067,11 @@ export default {
             let amountSum = 0;
             let insuranceSum = 0;
             let freightSum = 0;
-            let purchaseAmountSum = 0;
             data.forEach(e => {
               qtySum = _.add(qtySum, Number(e.orderQuantity));
               amountSum = _.add(amountSum, Number(e.amount));
               insuranceSum = _.add(insuranceSum, Number(e.insurance));
               freightSum = _.add(freightSum, Number(e.freight));
-              purchaseAmountSum = _.add(
-                purchaseAmountSum,
-                Number(
-                  _.multiply(Number(e.purchaseAmount?e.purchaseAmount:0), Number(e.orderQuantity))
-                )
-              );
-              // this.form.grossProfit=amountSum-purchaseAmountSum
             });
             //数量总计
             if (item.property == "orderQuantity") {

+ 12 - 12
src/views/exportTrade/purchaseContract/detailsPage.vue

@@ -32,15 +32,6 @@
               :disabled="detailData.status == 1"
             ></select-component>
           </template>
-          <template slot="exchangeRate">
-            <el-input
-              size="mini"
-              v-model="form.exchangeRate"
-              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
-              placeholder="请输入 汇率"
-              :disabled="detailData.status == 1"
-            />
-          </template>
         </avue-form>
       </basic-container>
       <div>
@@ -292,7 +283,7 @@ export default {
       },
       switchDialog: false,
       form: {
-        orderStatus:'录入'
+        orderStatus: "录入"
       },
       disabled: false,
       dialogVisible: false,
@@ -401,6 +392,14 @@ export default {
             props: {
               label: "dictValue",
               value: "dictValue"
+            },
+            change: ({ value }) => {
+              if (value == "人民币") {
+                this.form.exchangeRate = 1;
+              }
+              if (value == "美元") {
+                this.form.exchangeRate = 6.3843;
+              }
             }
           },
           {
@@ -408,7 +407,8 @@ export default {
             prop: "exchangeRate",
             span: 8,
             slot: true,
-            row: true
+            row: true,
+            disabled:true
           },
           {
             label: "备注",
@@ -689,7 +689,7 @@ export default {
           });
         });
       }
-       this.dialogVisible = false;
+      this.dialogVisible = false;
     },
     closeGoods() {
       this.selectionList = [];

+ 12 - 11
src/views/exportTrade/purchaseInquiry/detailsPage.vue

@@ -48,14 +48,6 @@
               :configuration="configuration"
             ></select-component>
           </template>
-          <template slot="exchangeRate">
-            <el-input
-              size="mini"
-              v-model="form.exchangeRate"
-              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
-              placeholder="请输入 汇率"
-              />
-          </template>
         </avue-form>
       </basic-container>
       <containerTitle title="商品信息"></containerTitle>
@@ -272,7 +264,7 @@ export default {
       },
       switchDialog: false,
       form: {
-        orderStatus:'录入'
+        orderStatus: "录入"
       },
       disabled: false,
       dialogVisible: false,
@@ -335,6 +327,14 @@ export default {
             props: {
               label: "dictValue",
               value: "dictValue"
+            },
+            change: ({ value }) => {
+              if (value == "人民币") {
+                this.form.exchangeRate = 1;
+              }
+              if (value == "美元") {
+                this.form.exchangeRate = 6.3843;
+              }
             }
           },
           {
@@ -342,7 +342,8 @@ export default {
             prop: "exchangeRate",
             span: 8,
             slot: true,
-            row: true
+            row: true,
+            disabled: true
           },
           {
             label: "备注",
@@ -574,7 +575,7 @@ export default {
           });
         });
       }
-       this.dialogVisible = false;
+      this.dialogVisible = false;
     },
     closeGoods() {
       this.selectionList = [];

+ 39 - 44
src/views/exportTrade/salesContract/detailsPage.vue

@@ -47,15 +47,6 @@
               :disabled="detailData.status == 1"
             ></select-component>
           </template>
-          <template slot="exchangeRate">
-            <el-input
-              size="mini"
-              v-model="form.exchangeRate"
-              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
-              placeholder="请输入 汇率"
-              :disabled="detailData.status == 1"
-            />
-          </template>
           <template slot="boxNumber">
             <el-input
               size="mini"
@@ -106,27 +97,6 @@
               :disabled="detailData.status == 1"
             />
           </template>
-          <template slot="grossProfit">
-            <el-input
-              size="mini"
-              v-model="form.grossProfit"
-              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/,
-            "$1.$2")'
-              placeholder="请输入 毛利额"
-              :disabled="detailData.status == 1"
-            />
-          </template>
-          <template slot="grossProfitRate">
-            <el-input
-              size="mini"
-              v-model="form.grossProfitRate"
-              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
-              @change="grossProfitRateChange"
-              placeholder="请输入 毛利率"
-              :disabled="detailData.status == 1"
-              ><template slot="append">%</template></el-input
-            >
-          </template>
         </avue-form>
       </basic-container>
       <div>
@@ -196,6 +166,7 @@
                 v-model="row.purchaseAmount"
                 size="small"
                 placeholder="请输入"
+                @change="priceChange(row)"
                 oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
               ></el-input>
               <span v-else>{{ row.purchaseAmount | micrometerFormat }}</span>
@@ -223,16 +194,6 @@
               ></el-input>
               <span v-else>{{ row.orderQuantity }}</span>
             </template>
-            <template slot="orderQuantity" slot-scope="{ row }">
-              <el-input
-                v-if="row.$cellEdit"
-                v-model="row.orderQuantity"
-                size="small"
-                oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
-                @change="quantityChange(row)"
-              ></el-input>
-              <span v-else>{{ row.orderQuantity }}</span>
-            </template>
             <template slot="discount" slot-scope="{ row }">
               <el-input
                 v-if="row.$cellEdit"
@@ -589,6 +550,14 @@ export default {
             props: {
               label: "dictValue",
               value: "dictValue"
+            },
+            change: ({ value }) => {
+              if (value == "人民币") {
+                this.form.exchangeRate = 1;
+              }
+              if (value == "美元") {
+                this.form.exchangeRate = 6.3843;
+              }
             }
           },
           {
@@ -596,7 +565,8 @@ export default {
             prop: "exchangeRate",
             span: 8,
             slot: true,
-            row: true
+            row: true,
+            disabled: true
           },
           {
             label: "箱型",
@@ -628,17 +598,19 @@ export default {
             prop: "oceanFreight",
             span: 8
           },
-
           {
             label: "毛利额",
             prop: "grossProfit",
-            span: 8
+            span: 8,
+            disabled: true
           },
           {
             label: "毛利率",
             prop: "grossProfitRate",
             span: 8,
-            row: true
+            row: true,
+            append: "%",
+            disabled: true
           },
           {
             label: "备注",
@@ -868,6 +840,29 @@ export default {
         _.divide(row.discount ? row.discount : 10, 10)
       );
       row.amount = Number(sum ? sum : 0).toFixed(2);
+      let amountSum = 0;
+      let purchaseAmountSum = 0;
+      let grossProfitRate = 0;
+      this.data.forEach(e => {
+        amountSum = _.add(amountSum, Number(e.amount));
+        purchaseAmountSum = _.add(
+          purchaseAmountSum,
+          Number(
+            _.multiply(
+              Number(e.purchaseAmount ? e.purchaseAmount : 0),
+              Number(e.orderQuantity)
+            )
+          )
+        );
+        this.form.grossProfit = _.subtract(amountSum, purchaseAmountSum);
+        grossProfitRate = _.multiply(
+          _.divide(_.subtract(amountSum, purchaseAmountSum), amountSum),
+          100
+        );
+        this.form.grossProfitRate = Number(
+          grossProfitRate ? grossProfitRate : 0
+        ).toFixed(2);
+      });
     },
     quantityChange(row) {
       if (Number(row.orderQuantity) < Number(row.actualQuantity)) {