Kaynağa Gözat

Merge branch 'master' into release-20170915

yangc 8 yıl önce
ebeveyn
işleme
8736d95942
1 değiştirilmiş dosya ile 63 ekleme ve 43 silme
  1. 63 43
      components/store/CommodityInfo.vue

+ 63 - 43
components/store/CommodityInfo.vue

@@ -63,7 +63,7 @@
               <span class="name">数&nbsp;量</span>:
               <div class="input-group" style="width: 120px">
                 <div :class="fragment.canSub ? ' input-group-addon operate':'input-group-addon'" @click="fragment.canSub ?subNum():''" :style="!fragment.canSub ?'cursor: not-allowed;':''">-</div>
-                <input type="text" class="form-control" placeholder="数量" v-model="fragment.num" @change="inputNum()"style="padding: 0;min-width: 100px;text-align: center;"/>
+                <input type="text" class="form-control" placeholder="数量" v-model="fragment.num" @change="inputNum()" @input="onInput()" style="padding: 0;min-width: 100px;text-align: center;"/>
                 <div :class="fragment.canAdd ?'input-group-addon operate':'input-group-addon'" @click="fragment.canAdd ?addNum():''" :style="!fragment.canAdd ?'cursor: not-allowed;':''">+</div>
                 <!--   <div class="input-group-addon operate" @click="subNum()">-</div>
                    <input type="text" class="form-control" placeholder="数量" v-model="fragment.num" @change="inputNum()"style="padding: 0;min-width: 100px;text-align: center;"/>
@@ -176,6 +176,10 @@
           canSub: true}
       }
     },
+    watch: {
+      fragment: function (val, oldVal) {
+      }
+    },
     filters: {
       currency: function (num) {
         if (typeof num === 'number' && num > 0) {
@@ -228,6 +232,18 @@
       })
     },
     methods: {
+      onInput () {
+        let prices = this.commodity.prices
+        if (prices && prices.length) {
+          let _this = this
+          for (let i = 0; i < prices.length; i++) {
+            if (_this.fragment.num >= prices[i].start && _this.fragment.num < prices[i].end) {
+              _this.fragment.price = _this.fragment.currency === 'RMB' ? prices[i].rMBPrice : prices[i].uSDPrice
+              break
+            }
+          }
+        }
+      },
       loadSaveHistory () {
         if (this.user.logged) {
           this.$store.dispatch('shop/saveHistory', {id: this.commodity.batchCode})
@@ -245,55 +261,59 @@
         let buy = this.commodity.minBuyQty
         let reserve = this.commodity.reserve
         let breakUp = this.commodity.breakUp
-        newNum = parseInt(newNum)
-        if (breakUp) {
-          if (newNum < buy) {
-            this.$message.error('最小起订量为' + buy)
-            this.fragment.num = buy
-            this.fragment.canSub = false
-            this.fragment.canAdd = true
-          } else if (newNum > reserve) {
-            this.$message.error('库存不足')
-            this.fragment.num = reserve
-            this.fragment.canAdd = false
-            this.fragment.canSub = true
-          } else {
-            this.fragment.canSub = true
-            this.fragment.canAdd = true
-            this.fragment.num = newNum
-            newNum === buy && (this.fragment.canSub = false)
-            newNum === reserve && (this.fragment.canAdd = false)
-          }
+        if (!newNum) {
+          this.fragment.num = buy
         } else {
-          if (newNum < buy) {
-            this.$message.error('最小起订量为' + buy)
-            this.fragment.num = buy
-            this.fragment.canSub = false
-            if (newNum > reserve) {
+          newNum = parseInt(newNum)
+          if (breakUp) {
+            if (newNum < buy) {
+              this.$message.error('最小起订量为' + buy)
+              this.fragment.num = buy
+              this.fragment.canSub = false
+              this.fragment.canAdd = true
+            } else if (newNum > reserve) {
               this.$message.error('库存不足')
-              this.fragment.num = reserve - (reserve % pack)
+              this.fragment.num = reserve
               this.fragment.canAdd = false
+              this.fragment.canSub = true
+            } else {
+              this.fragment.canSub = true
+              this.fragment.canAdd = true
+              this.fragment.num = newNum
+              newNum === buy && (this.fragment.canSub = false)
+              newNum === reserve && (this.fragment.canAdd = false)
             }
-          } else if (newNum > reserve) {
-            this.fragment.canSub = true
-            this.fragment.canAdd = false
-            this.$message.error('库存不足')
-            this.fragment.num = reserve - (reserve % pack)
           } else {
-            this.fragment.canSub = true
-            this.fragment.canAdd = true
-            let remainder = newNum % pack
-            if (remainder !== 0) {
-              console.log(this.fragment.num)
-              this.$message.error('不支持拆包且包装量为' + pack)
-              // 这个直接赋值的,应该给这个值进行判断(Math.floor(newNum / pack) + 1) * pack
-              let res = (Math.floor(newNum / pack) + 1) * pack
-              this.fragment.num = res > reserve ? Math.floor(newNum / pack) * pack : res
+            if (newNum < buy) {
+              this.$message.error('最小起订量为' + buy)
+              this.fragment.num = buy
+              this.fragment.canSub = false
+              if (newNum > reserve) {
+                this.$message.error('库存不足')
+                this.fragment.num = reserve - (reserve % pack)
+                this.fragment.canAdd = false
+              }
+            } else if (newNum > reserve) {
+              this.fragment.canSub = true
+              this.fragment.canAdd = false
+              this.$message.error('库存不足')
+              this.fragment.num = reserve - (reserve % pack)
             } else {
-              this.fragment.num = newNum
+              this.fragment.canSub = true
+              this.fragment.canAdd = true
+              let remainder = newNum % pack
+              if (remainder !== 0) {
+//                console.log(this.fragment.num)
+                this.$message.error('不支持拆包且包装量为' + pack)
+                // 这个直接赋值的,应该给这个值进行判断(Math.floor(newNum / pack) + 1) * pack
+                let res = (Math.floor(newNum / pack) + 1) * pack
+                this.fragment.num = res > reserve ? Math.floor(newNum / pack) * pack : res
+              } else {
+                this.fragment.num = newNum
+              }
+              newNum === buy && (this.fragment.canSub = false)
+              newNum === reserve && (this.fragment.canAdd = false)
             }
-            newNum === buy && (this.fragment.canSub = false)
-            newNum === reserve && (this.fragment.canAdd = false)
           }
         }
       },