Explorar el Código

feat:叮当销售制单-需求调整

caoliqin hace 4 semanas
padre
commit
4faed779e6
Se han modificado 2 ficheros con 57 adiciones y 25 borrados
  1. 39 6
      src/views/components/order/createOrder.vue
  2. 18 19
      src/views/hisStore/storeOrder/list.vue

+ 39 - 6
src/views/components/order/createOder.vue → src/views/components/order/createOrder.vue

@@ -106,12 +106,21 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="改价" prop="payPrice">
+        <el-form-item label="改价" prop="payPrice" v-if="projectCode !== 'ddgy'">
           <el-input-number v-model="form.payPrice" placeholder="修改商品总价" size="medium" :precision="2" :min="0.01" :step="0.1" />
         </el-form-item>
-        <el-form-item label="物流代收" prop="amount" v-if="form.payType == '3'">
+        <el-form-item label="总价" prop="totalPrice" v-if="projectCode === 'ddgy'">
+          <el-input-number v-model="form.totalPrice" placeholder="修改商品总价" size="medium" :precision="2" :step="0.1" />
+        </el-form-item>
+        <el-form-item label="定金" prop="payPrice" v-if="projectCode === 'ddgy'">
+          <el-input-number v-model="form.payPrice" @change="syncAmountByTotalPriceAndDeposit" placeholder="修改实际支付金额" size="medium" :precision="2" :step="0.1" />
+        </el-form-item>
+        <el-form-item label="物流代收" prop="amount" v-if="form.payType == '3' && projectCode !== 'ddgy'">
           <el-input-number v-model="form.amount" placeholder="平台支付价格" size="medium" :precision="2" :min="0.01" :step="0.1" />
         </el-form-item>
+        <el-form-item label="代收货款" prop="amount" v-if="form.payType == '3' && projectCode === 'ddgy'">
+          <el-input-number v-model="form.amount" placeholder="代收货款价格" size="medium" :precision="2" :step="0.1" />
+        </el-form-item>
         <el-form-item label="订单备注" prop="mark">
           <el-input type="textarea" rows="2" v-model="form.mark" placeholder="" />
         </el-form-item>
@@ -144,13 +153,15 @@ export default {
     return {
       open: false,
       title: '创建订单',
+      projectCode: process.env.VUE_APP_PROJECT_CODE,
       form: {
         addressId: null,
         userId: null,
         products: [],
         payType: null,
-        payPrice: null,
-        amount: null,
+        totalPrice: undefined,
+        payPrice: undefined,
+        amount: undefined,
         mark: null,
       },
       rules: {
@@ -176,6 +187,14 @@ export default {
       payTypeOptions: [],
     };
   },
+  watch: {
+    "form.payPrice"() {
+      this.syncAmountByTotalPriceAndDeposit();
+    },
+    "form.totalPrice"() {
+      this.syncAmountByTotalPriceAndDeposit();
+    },
+  },
   created() {
     this.getDicts('store_pay_type').then(response => {
       this.payTypeOptions = response.data;
@@ -202,8 +221,9 @@ export default {
         userId: null,
         products: [],
         payType: null,
-        payPrice: null,
-        amount: null,
+        totalPrice: undefined,
+        payPrice: undefined,
+        amount: undefined,
         mark: null,
       };
       this.users = [];
@@ -291,6 +311,19 @@ export default {
       this.products.splice(this.products.findIndex(item => item.id === row.id), 1);
       this.compute();
     },
+    syncAmountByTotalPriceAndDeposit() {
+      if (this.projectCode !== 'ddgy') {
+        return;
+      }
+      if (this.form.totalPrice === null || this.form.totalPrice === undefined) {
+        return;
+      }
+      if (this.form.payPrice === null || this.form.payPrice === undefined) {
+        return;
+      }
+      const amount = Number((this.form.totalPrice - this.form.payPrice).toFixed(2));
+      this.$set(this.form, 'amount', amount > 0 ? amount : null);
+    },
     submitForm() {
       this.$refs.form.validate(valid => {
         if (this.products.length === 0) {

+ 18 - 19
src/views/hisStore/storeOrder/list.vue

@@ -476,17 +476,17 @@
             <el-form-item label="改价" prop="payPrice" v-if ="projectCode !== 'ddgy'">
               <el-input-number  v-model="form.payPrice" placeholder="修改商品总价" size="medium" :precision="2" :min=0.01 :step="0.1" />
             </el-form-item>
+            <el-form-item label="总价" prop="totalPrice" v-if ="projectCode === 'ddgy'">
+                <el-input-number  v-model="form.totalPrice" placeholder="修改商品总价" size="medium" :precision="2" :min=0.01 :step="0.1" />
+            </el-form-item>
             <el-form-item label="定金" prop="payPrice" v-if ="projectCode === 'ddgy'">
-                <el-input-number  v-model="form.payPrice" @change="syncTotalPriceByDepositAndAmount" placeholder="修改实际支付金额" size="medium" :precision="2" :min=0.01 :step="0.1" />
+                <el-input-number  v-model="form.payPrice" @change="syncAmountByTotalPriceAndDeposit" placeholder="修改实际支付金额" size="medium" :precision="2" :min=0.01 :step="0.1" />
             </el-form-item>
             <el-form-item label="物流代收" prop="amount" v-if="form.payType == '3' && projectCode !== 'ddgy'" >
               <el-input-number  v-model="form.amount" placeholder="平台支付价格" size="medium" :precision="2" :min=0.01 :step="0.1" />
             </el-form-item>
             <el-form-item label="代收货款" prop="amount" v-if="form.payType == '3' && projectCode === 'ddgy'">
-                <el-input-number  v-model="form.amount" @change="syncTotalPriceByDepositAndAmount" placeholder="代收货款价格" size="medium" :precision="2" :min=0.01 :step="0.1" />
-            </el-form-item>
-            <el-form-item label="总价" prop="totalPrice" v-if ="projectCode === 'ddgy'">
-                <el-input-number  v-model="form.totalPrice" @change="markTotalPriceManualEdited" placeholder="修改商品总价" size="medium" :precision="2" :min=0.01 :step="0.1" />
+                <el-input-number  v-model="form.amount" placeholder="代收货款价格" size="medium" :precision="2" :min=0.01 :step="0.1" />
             </el-form-item>
             <el-form-item label="订单备注" prop="mark">
               <el-input  type="textarea" rows="2" v-model="form.mark" placeholder="" />
@@ -564,7 +564,6 @@ export default {
       },
       tablekey:false,
       totalMoney:0.00,
-      isTotalPriceManualEdited: false,
       phone:null,
       userId: null,
       nickName: null,
@@ -685,10 +684,10 @@ export default {
         this.$refs.tree.filter(val);
       },
     "form.payPrice"() {
-      this.syncTotalPriceByDepositAndAmount();
+      this.syncAmountByTotalPriceAndDeposit();
     },
-    "form.amount"() {
-      this.syncTotalPriceByDepositAndAmount();
+    "form.totalPrice"() {
+      this.syncAmountByTotalPriceAndDeposit();
     },
   },
   created() {
@@ -886,20 +885,20 @@ export default {
         products:null,
 
       };
-      this.isTotalPriceManualEdited = false;
       this.resetForm("form");
     },
-    syncTotalPriceByDepositAndAmount() {
-      if (this.projectCode !== "ddgy" || this.isTotalPriceManualEdited) {
+    syncAmountByTotalPriceAndDeposit() {
+      if (this.projectCode !== "ddgy") {
         return;
       }
-      const payPrice = this.form.payPrice || 0;
-      const amount = this.form.amount || 0;
-      const totalPrice = Number((payPrice + amount).toFixed(2));
-      this.$set(this.form, "totalPrice", totalPrice > 0 ? totalPrice : null);
-    },
-    markTotalPriceManualEdited() {
-      this.isTotalPriceManualEdited = true;
+      if (this.form.totalPrice === null || this.form.totalPrice === undefined) {
+        return;
+      }
+      if (this.form.payPrice === null || this.form.payPrice === undefined) {
+        return;
+      }
+      const amount = Number((this.form.totalPrice - this.form.payPrice).toFixed(2));
+      this.$set(this.form, "amount", amount > 0 ? amount : null);
     },
     /** 搜索按钮操作 */
     handleQuery() {