浏览代码

订单金额格式化

xiaohaizhao 2 年之前
父节点
当前提交
d8cdee1d65

+ 44 - 12
packageA/orderForm/detail.js

@@ -1,5 +1,6 @@
 const _Http = getApp().globalData.http;
-
+let figure = null; //免运费额度
+import currency from "../../utils/currency";
 Page({
     data: {
         loading: true,
@@ -31,7 +32,6 @@ Page({
             userrole: wx.getStorageSync('userrole')
         });
         this.getDetail(true);
-
         //销售分类
         _Http.basic({
             "classname": "sysmanage.develop.optiontype.optiontype",
@@ -75,30 +75,50 @@ Page({
             });
             this.setData({
                 detail: res.data,
-                loading: false
+                loading: false,
+                defaultamount: currency(res.data.defaultamount, {
+                    symbol: "¥",
+                    precision: 2
+                }).format()
             });
             if (init) {
                 this.partialRenewal(true)
-                let content = {};
+                let content = wx.getStorageSync('userrole') == '业务员' ? {
+                    sys_enterpriseid: this.data.detail.sys_enterpriseid
+                } : {};
                 //业务员根据指定经销商的免运费
-                if (wx.getStorageSync('userrole') == '业务员') content.sys_enterpriseid = this.data.detail.sys_enterpriseid;
-                //获取企业免邮额度
                 _Http.basic({
                     "id": 20220920084001,
                     content
                 }, false).then(res => {
-                    console.log("查询企业档案", res)
+                    console.log("查询企业档案获取企业免邮额度", res)
                     if (res.msg != '成功') return wx.showToast({
                         title: res.msg,
                         icon: "none"
                     })
-                    this.setData({
-                        figure: res.data.freefreightamount
-                    })
+                    figure = res.data.freefreightamount;
+                    this.setLogisticsMsg();
                 })
+            } else {
+                this.setLogisticsMsg();
             }
         })
     },
+    /* 免运费信息 */
+    setLogisticsMsg() {
+        let logistics = null;
+        if (figure == -1) {
+            logistics = '到付'
+        } else if (figure == 0) {
+            logistics = '预付'
+        } else {
+            let defaultamount = this.data.detail.defaultamount;
+            logistics = defaultamount >= figure ? '免运费' : '差' + currency(figure).subtract(defaultamount).value + '元免运费';
+        }
+        this.setData({
+            logistics
+        })
+    },
     /* 选择销售分类 */
     selectSaletype(e) {
         if (this.isEdit()) return;
@@ -384,7 +404,7 @@ Page({
         })
         let amount = (this.data.detail.order_rebate_userate * this.data.detail.defaultamount).toFixed(2); //最大可用金额
         let rebatebalance = this.data.detail.rebatebalance; //返利金账户余额
-        
+
         _Http.basic({
             "id": 20230218225002,
             "content": {
@@ -588,10 +608,22 @@ Page({
             content
         }).then(res => {
             console.log("订单列表", res)
+            if (res.msg != '成功') return;
+            /* 格式化价格 */
+            if (res.data.length != 0) res.data = res.data.map(v => {
+                v.defaultamount = currency(v.defaultamount, {
+                    symbol: "¥",
+                    precision: 2
+                }).format();
+                return v
+            })
             page.setData({
                 list: res.data,
                 "content.total": res.total,
-                amount: res.tips.amount || 0
+                amount: currency(res.tips.amount, {
+                    symbol: "¥",
+                    precision: 2
+                }).format()
             })
         })
     },

+ 3 - 11
packageA/orderForm/detail.wxml

@@ -117,23 +117,15 @@
 <view class="footer">
 	<view class="price">
 		<view class="count">
-			{{detail.defaultamount}}元
+			{{defaultamount}}元
 		</view>
 		<view>
-			{{detail.defaultamount>=figure?'免运费':'差'+gap.price(figure,detail.defaultamount)+'元免运费'}}
+			{{logistics}}
 		</view>
-
-
 	</view>
 	<view class="but-box">
 		<van-button custom-class='but delete' wx:if="{{detail.status=='新建'}}" bind:click="deleteItem">删除订单</van-button>
 		<van-button custom-class='but' wx:if="{{detail.status=='新建'}}" bind:click="submit">提交订单</van-button>
 		<van-button custom-class='but' wx:if="{{detail.status=='交期待确认'}}" bind:click="notarize">确认交期</van-button>
 	</view>
-</view>
-
-<wxs module="gap">
-	module.exports.price = function (figure, defaultamount) {
-		return (figure - defaultamount).toFixed(2)
-	}
-</wxs>
+</view>

+ 13 - 1
packageA/orderForm/index.js

@@ -1,4 +1,5 @@
 const _Http = getApp().globalData.http;
+import currency from "../../utils/currency";
 
 Page({
     data: {
@@ -64,6 +65,14 @@ Page({
         }).then(res => {
             console.log("订单列表", res)
             this.selectComponent('#ListBox').RefreshToComplete();
+            /* 格式化价格 */
+            if (res.data.length != 0) res.data = res.data.map(v => {
+                v.defaultamount = currency(v.defaultamount, {
+                    symbol: "¥",
+                    precision: 2
+                }).format();
+                return v
+            })
             this.setData({
                 list: res.pageNumber == 1 ? res.data : this.data.list.concat(res.data),
                 "content.pageNumber": res.pageNumber + 1,
@@ -71,7 +80,10 @@ Page({
                 "content.sort": res.sort,
                 "content.total": res.total,
                 loading: false,
-                amount: res.tips.amount || 0
+                amount: currency(res.tips.amount, {
+                    symbol: "¥",
+                    precision: 2
+                }).format()
             })
         })
     },

+ 1 - 1
packageA/orderForm/index.wxml

@@ -11,7 +11,7 @@
     <van-tab title="关闭" />
 </van-tabs>
 <view class="tips">
-    共计{{content.total}}单,合计¥{{amount}}
+    共计{{content.total}}单,合计{{amount}}
 </view>
 <Yl_ListBox id='ListBox' bind:getlist='getList'>
     <List list="{{list}}" userrole="{{userrole}}" />

+ 1 - 1
packageA/orderForm/modules/list/index.wxml

@@ -26,7 +26,7 @@
             共计{{item.qty}}件商品
         </view>
         <view class="amount">
-            合计:{{item.defaultamount}}元
+            合计:{{item.defaultamount}}元
         </view>
     </view>
     <view wx:if="{{item.contacts.length||item.name}}" class="bottom line-1">

+ 52 - 66
packageA/orderForm/modules/product/index.js

@@ -1,16 +1,22 @@
 const _Http = getApp().globalData.http,
-    file = require("../../../../utils/FormatTheAttachment");
+    file = require("../../../../utils/FormatTheAttachment"),
+    currency = require("../../../../utils/currency");
 let queue = [],
-    downCounter = null;
+    downCounter = null,
+    sa_orderid = 0,
+    CNY = num => currency(num, {
+        symbol: "¥",
+        precision: 2
+    }).format();
+
 Component({
     properties: {
         disabled: Boolean, //禁用
     },
     data: {
-        sa_orderid: 0,
-        "content": {
+        content: {
             nocache: true,
-            "pageNumber": 1,
+            pageNumber: 1,
             pageTotal: 1,
             total: null
         }
@@ -28,7 +34,7 @@ Component({
         getList(id, init) {
             let content = this.data.content;
             content.sa_orderid = id;
-
+            sa_orderid = id;
             if (init) content.pageNumber = 1;
             _Http.basic({
                 "id": "20221109093902",
@@ -39,13 +45,17 @@ Component({
                     title: res.msg,
                     icon: "none"
                 })
-                res.data = res.data.map(value => {
-                    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 : "";
-                    }
-                    return value;
+
+                res.data = res.data.map(v => {
+                    if (v.attinfos.length != 0) {
+                        v.attinfos = file.fileList(v.attinfos)
+                        let image = v.attinfos.find(v => v.fileType == "image");
+                        v.cover = image ? image.cover : "";
+                    };
+                    v.defaultprice = CNY(v.defaultprice)
+                    v.marketprice = CNY(v.marketprice)
+                    v.defaultamount = CNY(v.defaultamount)
+                    return v;
                 })
                 let page = getCurrentPages().find(v => v.__route__ == 'packageA/orderForm/detail').data.detail;
                 let base = {
@@ -60,7 +70,6 @@ Component({
                     "content.pageSize": res.pageSize,
                     "content.pageTotal": res.pageTotal,
                     "content.total": res.total,
-                    sa_orderid: id,
                     base
                 })
             })
@@ -75,7 +84,7 @@ Component({
                     if (res.confirm) _Http.basic({
                         "id": 20230104143802,
                         "content": {
-                            "sa_orderid": that.data.sa_orderid,
+                            sa_orderid,
                             "needdate": e.detail.value
                         }
                     }).then(res => {
@@ -100,8 +109,7 @@ Component({
         }) {
             let obj = detail,
                 index = this.data.list.findIndex(v => v.itemid == detail.itemid),
-                data = this.data.list[index],
-                calculatePrice = data.qty != obj.qty;
+                data = this.data.list[index];
             if (data.qty == obj.qty && data.remarks == obj.remarks && data.needdate == obj.needdate) return;
             _Http.basic({
                 "id": 20221109093602,
@@ -122,26 +130,11 @@ Component({
                     ...data,
                     ...obj
                 };
-                data.amount = data.qty * data.price;
-                if (res.msg == '成功' && calculatePrice) {
-                    let page = getCurrentPages()[getCurrentPages().length - 1];
-                    if (page) {
-                        let defaultamount = page.data.detail.defaultamount - data.defaultamount;
-                        data.defaultamount = ((data.qty - 0) * (data.defaultprice - 0)).toFixed(2);
-                        defaultamount = (defaultamount + (data.defaultamount - 0)).toFixed(2);
-                        page.setData({
-                            "detail.defaultamount": defaultamount - 0
-                        })
-                        if (page.data.detail.rebate_used == 1) page.setRebate_amount({
-                            detail: {
-                                value: defaultamount - 0
-                            }
-                        });
-                    }
-                }
+                data.defaultamount = CNY(currency(data.defaultprice).multiply(data.qty).format());
                 this.setData({
                     [`list[${index}]`]: data
                 })
+                this.updateThePrice();
             })
         },
         /* 删除 */
@@ -156,7 +149,7 @@ Component({
                     if (res.confirm) _Http.basic({
                         "id": 20221109093702,
                         "content": {
-                            sa_orderid: detail.sa_orderid,
+                            sa_orderid,
                             "sa_orderitemsids": [
                                 detail.sa_orderitemsid
                             ]
@@ -169,19 +162,7 @@ Component({
                         that.setData({
                             list: that.data.list.filter(v => v.sa_orderitemsid != detail.sa_orderitemsid)
                         });
-                        /* 更新金额 */
-                        let page = getCurrentPages()[getCurrentPages().length - 1];
-                        let defaultamount = (page.data.detail.defaultamount - detail.defaultamount).toFixed(2);
-                        if (page) {
-                            page.setData({
-                                "detail.defaultamount": defaultamount - 0
-                            })
-                            if (page.data.detail.rebate_used == 1) page.setRebate_amount({
-                                detail: {
-                                    value: defaultamount - 0
-                                }
-                            })
-                        }
+                        this.updateThePrice();
                     })
                 }
             })
@@ -211,7 +192,7 @@ Component({
 					"id":id,
 					"content": {
 						nocache:true,
-						"sa_orderid": this.data.sa_orderid, //订单ID
+						sa_orderid, //订单ID
 						"total": 0,
 						"where": {
 							"condition": ""
@@ -251,7 +232,7 @@ Component({
                             icon: "none"
                         });
                         if (s.msg == '成功') setTimeout(() => {
-                            that.getList(that.data.sa_orderid, true);
+                            that.getList(sa_orderid, true);
                             wx.navigateBack();
                             that.updateThePrice();
                         }, 300)
@@ -261,22 +242,27 @@ Component({
         },
         /* 使用接口更新总价 */
         updateThePrice() {
-            _Http.basic({
-                "id": 20230105101102,
-                "content": {
-                    "sa_orderid": this.data.sa_orderid
-                },
-            }).then(res => {
-                console.log("获取列表总价", res)
-                if (res.msg != '成功') return wx.showToast({
-                    title: `产品总价更新失败`,
-                    icon: "none"
-                });
-                let page = getCurrentPages()[getCurrentPages().length - 1];
-                if (page) page.setData({
-                    "detail.amount": res.data.amount - 0
-                })
-            })
+            // _Http.basic({
+            //     "id": 20230105101102,
+            //     "content": {
+            //         sa_orderid
+            //     },
+            // }).then(res => {
+            //     console.log("修改列表总价", res)
+            //     if (res.msg != '成功') return wx.showToast({
+            //         title: `产品总价更新失败`,
+            //         icon: "none"
+            //     });
+            //     let page = getCurrentPages()[getCurrentPages().length - 1];
+            //     if (page) {
+            //         this.setData({
+            //             "detail.defaultamount": CNY(res.data.amount)
+            //         })
+            //         page.setLogisticsMsg();
+            //     }
+            // })
+            let page = getCurrentPages().find(v => v.__route__ == 'packageA/orderForm/detail');
+            page.getDetail();
         }
     }
 })

+ 18 - 22
packageA/orderForm/modules/product/list/index.js

@@ -9,26 +9,25 @@ Component({
 		addGlobalClass: true
 	},
 	methods: {
-		toProductDetail(e) {
-			const {
-				item
-			} = e.currentTarget.dataset;
-			console.log(item)
-			/* wx.navigateTo({
-				url: `/packageA/market/detail?id=${item.sa_itemgroupid}&itemno=${item.itemno}`,
-			}) */
-
-		},
 		onBlur(e) {
 			let {
 				data,
 				name
 			} = e.currentTarget.dataset;
+			if (name == 'qty' && e.detail.value == 0) {
+				this.setData({
+					list: this.data.list
+				})
+				return wx.showToast({
+					title: '商品数量不可为0!',
+					icon: "none"
+				})
+			}
 			this.triggerEvent("changeProduct", {
-				"sa_orderitemsid": data.sa_orderitemsid,
-				"itemid": data.itemid,
-				"qty": name == 'qty' ? e.detail.value : data.qty,
-				"remarks": name == 'remarks' ? e.detail.value : data.remarks,
+				sa_orderitemsid: data.sa_orderitemsid,
+				itemid: data.itemid,
+				qty: name == 'qty' ? e.detail.value : data.qty,
+				remarks: name == 'remarks' ? e.detail.value : data.remarks,
 				needdate: data.needdate || "",
 				deliverydate: data.deliverydate || ""
 			})
@@ -38,19 +37,16 @@ Component({
 				data
 			} = e.currentTarget.dataset;
 			this.triggerEvent("changeProduct", {
-				"sa_orderitemsid": data.sa_orderitemsid,
-				"itemid": data.itemid,
-				"qty": data.qty,
-				"remarks": data.remarks,
+				sa_orderitemsid: data.sa_orderitemsid,
+				itemid: data.itemid,
+				qty: data.qty,
+				remarks: data.remarks,
 				needdate: e.detail.value || "",
 				deliverydate: data.deliverydate || ""
 			})
 		},
 		deleteProduct(e) {
-			let {
-				item
-			} = e.currentTarget.dataset;
-			this.triggerEvent("deleteItem", item)
+			this.triggerEvent("deleteItem", e.currentTarget.dataset.item)
 		},
 		isEdit() {
 			if (this.data.disabled) wx.showToast({

+ 1 - 1
packageA/orderForm/modules/product/list/index.scss

@@ -127,7 +127,7 @@
         align-items: center;
 
         .label {
-          width: 144rpx;
+          width: 110rpx;
           font-size: 24rpx;
           font-family: PingFang SC-Regular, PingFang SC;
           color: #666666;

+ 4 - 4
packageA/orderForm/modules/product/list/index.wxml

@@ -1,5 +1,5 @@
 <view class="product-item" wx:for="{{list}}" wx:key="sa_quotedprice_itemsid">
-    <navigator class="product" url="#" data-item="{{item}}" bindtap="toProductDetail">
+    <navigator class="product" url="#">
         <view class="mian">
             <view class="img" data-file="{{item.attinfos}}" catchtap="viewImage">
                 <van-image width="100%" height="100%" wx:if="{{item.cover}}" src="{{item.cover}}" use-loading-slot lazy-load>
@@ -28,8 +28,8 @@
                     <text class="line-1" style="margin-right: 6rpx;">可退数量:{{item.returnqty||' --'}}</text>
                 </view>
                 <view style="margin-top: 8rpx;">
-                    <text class="price">{{item.defaultprice}}元</text>
-                    <text class="old-price" wx:if="{{item.price<item.marketprice}}">{{item.marketprice}}元</text>
+                    <text class="price">{{item.defaultprice}}元</text>
+                    <text class="old-price">{{item.marketprice}}元</text>
                 </view>
             </view>
             <view wx:if="{{!disabled}}" class="delete" data-item="{{item}}" catchtap="deleteProduct">
@@ -44,7 +44,7 @@
                 <input disabled='{{disabled}}' bindtap="isEdit" class="input" style="width: 180rpx;" type="digit" value="{{item.qty}}" data-name="qty" data-data="{{item}}" bindblur="onBlur" />
             </view>
             <view class="money">
-                金额:<text>{{item.defaultamount}}元</text>
+                金额:<text>{{item.defaultamount}}元</text>
             </view>
         </view>