Просмотр исходного кода

报价单 产品清单改为手动输入

zhaoxiaohai 3 лет назад
Родитель
Сommit
eea96cbbc4

+ 29 - 12
packageA/offers/modules/product/index.js

@@ -39,14 +39,16 @@ Component({
                     icon: "none"
                 })
                 res.data = res.data.map(value => {
-                    if (value.attinfos.length == 0) return value;
-                    value.attinfos = file.fileList(value.attinfos)
-                    let image = value.attinfos.find(v => v.fileType == "image");
-                    value.cover = image ? image.cover : "";
+                    if (value.attinfos.length != 0) {
+                        value.attinfos = file.fileList(value.attinfos)
+                        let image = value.attinfos.find(v => v.fileType == "image");
+                        value.cover = image ? image.cover : "";
+                    }
 
                     value.className = value.itemclass.length == 0 ? "暂无类目" : value.itemclass.map(v => v.itemclassname);
                     value.brandName = value.brand.length == 0 ? "暂无品牌" : value.brand.map(v => v.brandname);
-                    value.discountrate = value.discountrate * 100;
+                    value.discountrate = (value.discountrate * 100).toFixed(2);
+                    value.price = (value.price - 0).toFixed(2);
                     return value;
                 })
                 this.setData({
@@ -142,15 +144,11 @@ Component({
             detail
         }) {
             let i = queue.findIndex(v => v.sa_quotedprice_itemsid == detail.sa_quotedprice_itemsid);
-            if (i == -1) {
-                queue.push(detail)
-            } else {
-                queue[i] = detail;
-            };
+            i == -1 ? queue.push(detail) : queue[i] = detail;
             clearTimeout(downCounter)
             downCounter = setTimeout(() => {
                 this.changeItem(queue)
-            }, 2000);
+            }, 0);
         },
         changeItem(items) {
             console.log("修改", items)
@@ -163,7 +161,26 @@ Component({
                 }
             }, false).then(res => {
                 console.log("批量修改产品清单", res)
-                // if (res.msg != '成功') console
+                queue = [];
+                let list = this.data.list;
+                if (res.msg != '成功') {
+                    wx.showToast({
+                        title: res.msg,
+                        icon: "none"
+                    })
+                    this.setData({
+                        list
+                    })
+                    return;
+                }
+                items.forEach(v => {
+                    v.discountrate = (v.discountrate * 100).toFixed(2);
+                    let i = list.findIndex(value => v.sa_quotedprice_itemsid == value.sa_quotedprice_itemsid);
+                    if (i != -1) this.data.list[i] = {
+                        ...list[i],
+                        ...v
+                    }
+                });
             })
         }
     }

+ 34 - 6
packageA/offers/modules/product/list/index.js

@@ -9,27 +9,55 @@ Component({
         addGlobalClass: true
     },
     methods: {
-        /* 步进器回调 */
-        onStepper(e) {
+        onBlur(e) {
             let {
                 index,
                 name
-            } = e.currentTarget.dataset, {
-                    detail
-                } = e,
+            } = e.currentTarget.dataset,
+                detail = name == 'qty' ? e.detail.value - 0 : (e.detail.value - 0).toFixed(2),
                 item = this.data.list[index];
-            item[name] = detail;
             switch (name) {
                 case "qty":
+                    if (detail < item.orderminqty) {
+                        item.qty = item.orderminqty == 0 ? 1 : item.orderminqty;
+                    } else {
+                        item.qty = detail
+                        if (item.orderaddqty != 0) {
+                            let remainder = (detail - item.orderminqty) % item.orderaddqty;
+                            if (remainder != 0) {
+                                wx.showToast({
+                                    title: '数量不符合条件,已自动调整',
+                                    icon: "none"
+                                })
+                                item.qty = detail - remainder + item.orderaddqty;
+                            }
+                        };
+                    }
                     //改变数量 现数量*现价
                     item.amount = (item.price * item.qty).toFixed(2);
                     break;
                 case "discountrate":
+                    if (detail >= 100) {
+                        item.discountrate = 100
+                    } else if (detail <= 0) {
+                        item.discountrate = 1
+                    } else {
+                        item.discountrate = detail;
+                    }
                     //改变折扣 重新计算现价和总价
                     item.price = (item.marketprice * (item.discountrate / 100) - 0).toFixed(2);
                     item.amount = (item.price * item.qty).toFixed(2);
+                    console.log(item.price)
                     break;
                 case "price":
+                    if (detail >= item.marketprice) {
+                        item.price = item.marketprice
+                    } else if (detail <= 0) {
+                        item.discountrate = 1;
+                        item.price = (item.marketprice * (item.discountrate / 100) - 0).toFixed(2);
+                    } else {
+                        item.price = detail;
+                    }
                     //改变现价 重新计算总价和折扣
                     item.amount = (item.price * item.qty).toFixed(2);
                     item.discountrate = this.getPercent(item.price, item.marketprice).toFixed(2);

+ 0 - 1
packageA/offers/modules/product/list/index.json

@@ -1,6 +1,5 @@
 {
     "component": true,
     "usingComponents": {
-        "van-stepper": "@vant/weapp/stepper/index"
     }
 }

+ 13 - 0
packageA/offers/modules/product/list/index.scss

@@ -93,6 +93,18 @@
                 }
             }
 
+            .input {
+                height: 58rpx;
+                background: #FFFFFF;
+                border-radius: 8rpx;
+                border: 1rpx solid #CCCCCC;
+                font-size: 28rpx;
+                font-family: PingFang SC-Regular, PingFang SC;
+                color: #333333;
+                line-height: 44px;
+                text-align: center;
+            }
+
             .money {
                 flex: 1;
                 display: flex;
@@ -100,6 +112,7 @@
                 font-family: PingFang SC-Medium, PingFang SC;
                 color: #666666;
                 justify-content: flex-end;
+                margin-right: 20rpx;
 
                 text {
                     font-size: 28rpx;

+ 5 - 4
packageA/offers/modules/product/list/index.wxml

@@ -24,6 +24,7 @@
                 </view>
                 <view class="subfield">
                     <text class="line-1" style="margin-right: 6rpx;">牌价:{{item.marketprice||' --'}}</text>
+                    <text class="line-1" style="margin-right: 6rpx;">起订量:{{item.orderminqty||'1'}} 增量:{{item.orderaddqty||'--'}}</text>
                 </view>
             </view>
             <view class="delete" data-item="{{item}}" catchtap="deleteProduct">
@@ -33,19 +34,19 @@
     </navigator>
     <view class="bot">
         <view class="row">
-            <view style="margin-right: 10rpx;">
+            <view style="margin-right: 40rpx;">
                 <view class="label">数量({{item.unitname}}):</view>
-                <van-stepper value="{{ item.qty }}" disabled="{{disabled}}" min='1' input-width="90rpx" button-size="48rpx" data-name="qty" data-index="{{index}}" bind:change="onStepper" />
+                <input class="input" style="width: 180rpx;" type="digit" disabled="{{disabled}}" value="{{item.qty}}" data-name="qty" data-index="{{index}}" bindblur="onBlur" />
             </view>
             <view>
                 <view class="label">折扣(%):</view>
-                <van-stepper value="{{item.discountrate}}" disabled="{{disabled}}" min='0' max='100' input-width="90rpx" button-size="48rpx" data-name="discountrate" data-index="{{index}}" bind:change="onStepper" />
+                <input class="input" style="width: 170rpx;" type="digit" disabled="{{disabled}}" value="{{item.discountrate}}" data-name="discountrate" data-index="{{index}}" bindblur="onBlur" />
             </view>
         </view>
         <view class="row">
             <view>
                 <view class="label">单价(元):</view>
-                <van-stepper value="{{ item.price }}" min='0' disabled="{{disabled}}" max='{{item.marketprice}}' input-width="130rpx" button-size="48rpx" data-name="price" data-index="{{index}}" bind:change="onStepper" />
+                <input class="input" style="width: 180rpx;" type="digit" disabled="{{disabled}}" value="{{item.price}}" data-name="price" data-index="{{index}}" bindblur="onBlur" />
             </view>
             <view class="money">
                 金额:<text>¥{{item.amount}}</text>