shish 11 месяцев назад
Родитель
Сommit
24ad5df06f

+ 31 - 30
hdApp/src/admin/chat/chatPage.vue

@@ -38,10 +38,8 @@
             <view class="message-time">{{ message.time }}</view>
           </view>
 
-          <view v-if="message.messageType == 'goods'" class="message-content-wrapper">
-            <view class="username align-right" v-if="isMultiUser">{{
-              message.username
-            }}</view>
+          <view v-if="message.messageType == 'goods'" class="goods-content-wrapper">
+            <view class="username align-right" v-if="isMultiUser">{{message.username}}</view>
             <view class="goods-info left-bubble">
               <view class="goods-main">
                 <image class="goods-image" :src="message.goodsInfo.goodsImg" mode="aspectFill"></image>
@@ -52,7 +50,7 @@
                   <!-- <view class="sales-info">
                     <text class="delivery-time">48小时发</text>
                   </view> -->
-                  <text v-if="message.goodsInfo.goodsPriceType == 1" class="goods-price">¥{{ message.goodsInfo.goodsPrice }}</text>
+                  <text v-if="message.goodsInfo.goodsPriceType == 1" class="goods-price">¥{{ parseFloat(message.goodsInfo.goodsPrice).toFixed(2) }}</text>
                 </view>
               </view>
               <view class="goods-footer">
@@ -69,7 +67,7 @@
               <!-- 报价类型显示重新报价 -->
               <view v-if="message.goodsInfo.goodsPriceType == 2 && isExpired(message.timestamp)" class="action-buttons">
                 <form @submit.prevent="createQrotedPrice(message)">
-                  <text class="goods-price" v-if="message.goodsInfo.lastPrice || message.goodsInfo.goodsPrice">¥{{message.goodsInfo.lastPrice || message.goodsInfo.goodsPrice}}</text>
+                  <text class="goods-price" v-if="message.goodsInfo.lastPrice || message.goodsInfo.goodsPrice">¥{{parseFloat(message.goodsInfo.lastPrice || message.goodsInfo.goodsPrice).toFixed(2)}}</text>
                   <input class="price-input" type="number" v-model="message.quotedPrice" placeholder="输入价格" />
                   <button class="action-btn buy-btn" form-type="submit">重新报价</button>
                 </form>
@@ -90,10 +88,8 @@
             <view class="message-time align-right">{{ message.time }}</view>
           </view>
 
-          <view v-if="message.messageType == 'goods'" class="message-content-wrapper">
-            <view class="username align-right" v-if="isMultiUser">{{
-              message.username
-            }}</view>
+          <view v-if="message.messageType == 'goods'" class="goods-content-wrapper">
+            <view class="username align-right" v-if="isMultiUser">{{message.username}}</view>
             <view class="goods-info right-bubble">
               <view class="goods-main">
                 <image
@@ -108,7 +104,7 @@
                   <view class="sales-info">
                     <!-- <text class="delivery-time">48小时发</text> -->
                   </view>
-                  <text v-if="message.goodsInfo.goodsPriceType == 1" class="goods-price">¥{{ message.goodsInfo.goodsPrice }}</text>
+                  <text v-if="message.goodsInfo.goodsPriceType == 1" class="goods-price">¥{{ parseFloat(message.goodsInfo.goodsPrice).toFixed(2) }}</text>
                 </view>
               </view>
               <view class="goods-footer">
@@ -208,7 +204,7 @@ export default {
       isKeyboardShow: false, // 键盘是否显示
       inputFocus: false, // 输入框焦点
       isInputFocused: false, // 标记输入框是否聚焦
-      expireTime: 12 * 60 * 60, // 商品报价有效窗口时长 -- 12小时
+      expireTime: 23 * 60 * 60, // 商品报价有效窗口时长 -- 23小时
     };
   },
   onLoad(options) {
@@ -251,7 +247,7 @@ export default {
       // 如果没有传入房间号,使用默认值或生成一个
       this.room = 'default_room';
     }
-    console.log('---------- this.room: ', this.room);
+    // console.log('---------- this.room: ', this.room);
 
     // 加载聊天记录
     this.loadChatHistory();
@@ -281,12 +277,11 @@ export default {
   },
   onUnload() {
     // 页面卸载时关闭WebSocket连接
-    this.isManualDisconnect = true; // 标记为主动断开
     this.disconnectWebSocket();
   },
   onHide() {
     // 页面隐藏时可以选择性地关闭连接(根据业务需求)
-    this.disconnectWebSocket()
+    this.disconnectWebSocket();
   },
   onShow() {
     // 页面显示时重新连接(如果之前断开了)
@@ -421,7 +416,9 @@ export default {
           // 只有在非主动断开的情况下才尝试重连
           if (!this.isManualDisconnect && this.reconnectCount < this.maxReconnectCount) {
             setTimeout(() => {
-              this.reconnectWebSocket();
+              if (!this.isManualDisconnect) {
+                this.reconnectWebSocket();
+              }
             }, 3000);
           }
           
@@ -669,7 +666,7 @@ export default {
           console.error('协议长度超限:', protocol.length);
           return false;
         }
-        console.log('protocal -- ', protocol, protocol.length)
+        // console.log('protocal -- ', protocol, protocol.length)
       }
 
       return true;
@@ -703,7 +700,7 @@ export default {
 
     // 处理 WebSocket 消息
     handleWebSocketMessage(data) {
-      console.log('---------- data: ', data);
+      // console.log('---------- data: ', data);
       try {
         // 尝试解析JSON,如果失败则认为是纯文本消息
         let messageData;
@@ -731,7 +728,7 @@ export default {
         }
 
         const messageType = messageData.messageType || "text";
-        console.log('messageType -- ', messageType);
+        // console.log('messageType -- ', messageType);
 
         // 创建消息对象
         const newMessage = {
@@ -749,7 +746,7 @@ export default {
           newMessage.goodsInfo = this.parseGoodsMessage(newMessage.message);
         }
 
-        console.log('收到 ---------- newMessage: ', newMessage);
+        // console.log('收到 ---------- newMessage: ', newMessage);
         // 添加到消息列表
         this.messageList.push(newMessage);
 
@@ -821,12 +818,12 @@ export default {
         };
 
         const json = JSON.stringify(messageData);
-        console.log('send ---------- json: ', json);
+        // console.log('send ---------- json: ', json);
         // 发送到WebSocket服务器
         this.socket.send({
           data: json,
           success: () => {
-            console.log('消息发送成功');
+            // console.log('消息发送成功');
           },
           fail: (error) => {
             console.error('消息发送失败:', error);
@@ -886,7 +883,7 @@ export default {
     },
     // 输入框聚焦事件
     onInputFocus() {
-      console.log('输入框聚焦');
+      // console.log('输入框聚焦');
       // 微信小程序中,聚焦时延迟滚动到底部
       setTimeout(() => {
         this.scrollToBottom();
@@ -898,7 +895,7 @@ export default {
 
     // 输入框失焦事件
     onInputBlur() {
-      console.log('输入框失焦');
+      // console.log('输入框失焦');
       this.isInputFocused = false
       // this.inputFocus = false
     },
@@ -998,7 +995,7 @@ export default {
         this.socket.send({
           data: json,
           success: () => {
-            console.log("商品消息发送成功");
+            // console.log("商品消息发送成功");
           },
           fail: (error) => {
             console.error("商品消息发送失败:", error);
@@ -1017,17 +1014,17 @@ export default {
       }
     },
     createQrotedPrice(message) {
-      console.log("createPrice", message)
+      // console.log("createPrice", message)
       createQuotedPrice({
         key: message.goodsInfo.key,
-        price: message.quotedPrice,
+        price: parseFloat(message.quotedPrice).toFixed(2),
       }).then(res => {
-        console.log("createQuotedPrice", res)
+        // console.log("createQuotedPrice", res)
         if (res.code == 1) {
           this.$msg("报价成功")
           message.goodsInfo.goodsPriceType = 2;
-          message.goodsInfo.goodsPrice = message.quotedPrice;
-          message.goodsInfo.lastPrice = message.quotedPrice;
+          message.goodsInfo.goodsPrice = parseFloat(message.quotedPrice).toFixed(2);
+          message.goodsInfo.lastPrice = parseFloat(message.quotedPrice).toFixed(2);
           message.quotedPrice = '';
           this.sendMessageOfGoodsPrice(message.goodsInfo)
         }
@@ -1146,6 +1143,10 @@ export default {
   min-width: 100upx;
 }
 
+.goods-content-wrapper {
+  width: 72%;
+}
+
 .username {
   font-size: 24upx;
   color: $fontColor3;

+ 28 - 1
hdApp/src/utils/format.js

@@ -36,6 +36,7 @@ function formatLocation(longitude, latitude) {
 		latitude: latitude.toString().split('.')
 	}
 }
+
 var dateUtils = {
 	UNITS: {
 		'年': 31557600000,
@@ -73,8 +74,34 @@ var dateUtils = {
 	}
 }
 
+/**
+ * 格式化价格为两位小数
+ * @param {number|string} price - 需要格式化的价格
+ * @param {number} decimals - 小数位数,默认为2
+ * @returns {string} 格式化后的价格字符串
+ */
+function formatPrice(price, decimals = 2) {
+	// 输入验证
+	if (price === null || price === undefined || price === '') {
+		return '0.00';
+	}
+
+	// 转换为数字
+	const numPrice = typeof price === 'string' ? parseFloat(price) : price;
+
+	// 检查是否为有效数字
+	if (isNaN(numPrice)) {
+		console.warn('formatPrice: Invalid price value:', price);
+		return '0.00';
+	}
+
+	// 格式化为指定小数位数
+	return numPrice.toFixed(decimals);
+}
+
 module.exports = {
 	formatTime: formatTime,
 	formatLocation: formatLocation,
-	dateUtils: dateUtils
+	dateUtils: dateUtils,
+	formatPrice: formatPrice
 }

+ 31 - 27
mallApp/src/pages/chat/chatPage.vue

@@ -38,7 +38,7 @@
             <view class="message-time">{{ message.time }}</view>
           </view>
 
-          <view v-if="message.messageType == 'goods'" class="message-content-wrapper">
+          <view v-if="message.messageType == 'goods'" class="goods-content-wrapper">
             <view class="username align-right" v-if="isMultiUser">{{
               message.username
             }}</view>
@@ -52,19 +52,21 @@
                   <!-- <view class="sales-info">
                     <text class="delivery-time">48小时发</text>
                   </view> -->
-                <!-- 2 是报价类型,专门为报价类型使用 -->
-                  <text v-if="message.goodsInfo.goodsPriceType == 2" class="goods-price">¥{{ message.goodsInfo.goodsPrice }}</text>
+                  <!-- 2 是报价类型,专门为报价类型使用 -->
+                  <text v-if="message.goodsInfo.goodsPriceType == 2" class="goods-price">¥{{ parseFloat(message.goodsInfo.goodsPrice).toFixed(2) }}</text>
                 </view>
               </view>
+
               <view class="goods-footer">
               </view>
+              
               <view v-if="message.goodsInfo.goodsPriceType == 2" class="action-buttons">
                 <button class="action-btn spec-btn" @click="toBuy(message.goodsInfo)">查看商品</button>
                 <button class="action-btn buy-btn" @click="toBuy(message.goodsInfo)">去购买</button>
               </view>
-              <view v-else>
+              <view v-else class="action-buttons">
                 <button class="action-btn spec-btn" @click="toGoodsDetail(message.goodsInfo)">查看商品</button>
-                <text>报价 {{ message.goodsInfo.goodsInfo.price }}</text>
+                <button v-if="message.goodsInfo.goodsPriceType == 1" class="action-btn buy-btn" @click="toBuy(message.goodsInfo)">去购买</button>
               </view>
             </view>
             <view class="message-time align-right">{{ message.time }}</view>
@@ -74,15 +76,13 @@
         <!-- 右侧消息(我的) -->
         <view class="message-right" v-if="message.isMine || message.customId">
           <view v-if="message.messageType == 'text'|| message.messageType != 'goods'" class="message-content-wrapper">
-            <view class="username align-right" v-if="isMultiUser">{{
-              message.username
-            }}</view>
+            <view class="username align-right" v-if="isMultiUser">{{ message.username}}</view>
             <view class="message-bubble right-bubble">
               <text class="message-text">{{ message.message }}</text>
             </view>
             <view class="message-time align-right">{{ message.time }}</view>
           </view>
-          <view v-if="message.messageType == 'goods'" class="message-content-wrapper">
+          <view v-if="message.messageType == 'goods'" class="goods-content-wrapper">
             <view class="username align-right" v-if="isMultiUser">{{
               message.username
             }}</view>
@@ -100,7 +100,7 @@
                   <view class="sales-info">
                     <!-- <text class="delivery-time">48小时发</text> -->
                   </view>
-                  <text v-if="message.goodsInfo.goodsPriceType == 1" class="goods-price">¥{{ message.goodsInfo.goodsPrice }}</text>
+                  <text v-if="message.goodsInfo.goodsPriceType == 1" class="goods-price">¥{{ parseFloat(message.goodsInfo.goodsPrice).toFixed(2) }}</text>
                 </view>
               </view>
               <view class="goods-footer">
@@ -134,7 +134,7 @@
         <image class="goods-image" :src="currentGoodsInfo.goodsImg" mode="aspectFill" />
         <view class="goods-details">
           <text class="goods-name">{{ currentGoodsInfo.goodsName }}</text>
-          <text v-if="currentGoodsInfo.goodsPriceType == 1" class="goods-price">¥{{ currentGoodsInfo.goodsPrice }}</text>
+          <text v-if="currentGoodsInfo.goodsPriceType == 1" class="goods-price">¥{{ parseFloat(currentGoodsInfo.goodsPrice).toFixed(2) }}</text>
         </view>
         <view class="goods-actions">
           <view class="close-icon" @click="closeGoodsCard">
@@ -229,7 +229,7 @@ export default {
     };
   },
   onLoad(options) {
-    console.log("---------- options: ", options);
+    // console.log("---------- options: ", options);
 
     if (options.goodsId) {
       this.currentGoodsInfo = {
@@ -278,7 +278,7 @@ export default {
       this.room = "default_room";
     }
     
-    console.log("---------- this.room: ", this.room);
+    // console.log("---------- this.room: ", this.room);
 
     // 加载聊天记录
     this.loadChatHistory();
@@ -308,7 +308,6 @@ export default {
   },
   onUnload() {
     // 页面卸载时关闭WebSocket连接
-    this.isManualDisconnect = true; // 标记为主动断开
     this.disconnectWebSocket();
   },
   onHide() {
@@ -473,7 +472,9 @@ export default {
           // 只有在非主动断开的情况下才尝试重连
           if (!this.isManualDisconnect && this.reconnectCount < this.maxReconnectCount) {
             setTimeout(() => {
-              this.reconnectWebSocket();
+              if (!this.isManualDisconnect) {
+                this.reconnectWebSocket();
+              }
             }, 3000);
           }
 
@@ -542,7 +543,6 @@ export default {
 
         // 验证协议字符串的合法性
         const isValid = this.validateProtocols(protocols);
-        console.log("协议验证结果:", isValid);
         if (!isValid) {
           this.$msg("协议验证失败");
           return;
@@ -575,7 +575,7 @@ export default {
           console.error("协议长度超限:", protocol.length);
           return false;
         }
-        console.log('protocal -- ', protocol, protocol.length)
+        // console.log('protocal -- ', protocol, protocol.length)
       }
 
       return true;
@@ -756,7 +756,7 @@ export default {
 
     // 处理WebSocket消息
     handleWebSocketMessage(data) {
-      console.log("---------- data: ", data);
+      // console.log("---------- data: ", data);
       try {
         // 尝试解析JSON,如果失败则认为是纯文本消息
         let messageData;
@@ -800,7 +800,7 @@ export default {
           newMessage.goodsInfo = this.parseGoodsMessage(messageData.message, messageData.timestamp);
         }
 
-        console.log("收到 ---------- newMessage: ", newMessage);
+        // console.log("收到 ---------- newMessage: ", newMessage);
         // 添加到消息列表
         this.messageList.push(newMessage);
 
@@ -871,7 +871,7 @@ export default {
         };
 
         const json = JSON.stringify(messageData);
-        console.log("send ---------- json: ", json);
+        // console.log("send ---------- json: ", json);
         // 发送到WebSocket服务器
         this.socket.send({
           data: json,
@@ -930,7 +930,7 @@ export default {
 
     // 输入框聚焦事件
     onInputFocus() {
-      console.log('输入框聚焦');
+      // console.log('输入框聚焦');
       // 微信小程序中,聚焦时延迟滚动到底部
       setTimeout(() => {
         this.scrollToBottom();
@@ -939,7 +939,7 @@ export default {
 
     // 输入框失焦事件
     onInputBlur() {
-      console.log('输入框失焦');
+      // console.log('输入框失焦');
     },
 
     // 输入内容变化事件
@@ -1025,7 +1025,7 @@ export default {
         this.socket.send({
           data: json,
           success: () => {
-            console.log("商品消息发送成功");
+            // console.log("商品消息发送成功");
           },
           fail: (error) => {
             console.error("商品消息发送失败:", error);
@@ -1093,7 +1093,7 @@ export default {
               if (res.code == 1) {
                 if (res.data.price != -1) {
                   parsed.goodsPriceType = 2; // 报价类型
-                  parsed.goodsPrice = res.data.price;
+                  parsed.goodsPrice = parseFloat(res.data.price).toFixed(2);
                 }
               }
             }).catch(err => {
@@ -1117,7 +1117,7 @@ export default {
     // 查看商品
     toGoodsDetail(goodsInfo) {
       this.disconnectWebSocket();
-      console.log("---------- goodsInfo: ", goodsInfo);
+      // console.log("---------- goodsInfo: ", goodsInfo);
       const goodsId = parseInt(goodsInfo.goodsId);
       const categoryId = parseInt(goodsInfo.categoryId);
       const hdId = parseInt(goodsInfo.hdId);
@@ -1143,12 +1143,12 @@ export default {
     // 去购买
     toBuy(goodsInfo) {
       this.disconnectWebSocket();
-      console.log("---------- goodsInfo: ", goodsInfo);
+      // console.log("---------- goodsInfo: ", goodsInfo);
       const goodsId = parseInt(goodsInfo.goodsId);
       const categoryId = parseInt(goodsInfo.categoryId);
       const hdId = parseInt(goodsInfo.hdId);
       const account = parseInt(goodsInfo.account);
-      const price = parseFloat(goodsInfo.goodsPrice);
+      const price = parseFloat(goodsInfo.goodsPrice).toFixed(2);
       const priceType = goodsInfo.goodsPriceType;
       if (isNaN(goodsId) || isNaN(categoryId) || isNaN(hdId) || isNaN(account) || isNaN(price)) {
         this.$msg("商品数据异常");
@@ -1326,6 +1326,10 @@ export default {
   min-width: 100upx;
 }
 
+.goods-content-wrapper {
+  width: 72%;
+}
+
 .username {
   font-size: 24upx;
   color: $fontColor3;

+ 80 - 70
mallApp/src/pages/goods/components/sel-popup.vue

@@ -8,22 +8,25 @@
             <div class="tui-number-box tui-bold tui-attr-title">
               <div class="tui-attr-title">数量</div>
               <div class="number-box-wrapper">
-                <number-box 
-                  :max="maxStock" 
-                  :min="1" 
-                  :value="buyNum" 
-                  :iconSize="36" 
-                  :height="60" 
-                  :width="120" 
+                <number-box
+                  :max="maxStock"
+                  :min="1"
+                  :value="buyNum"
+                  :iconSize="36"
+                  :height="60"
+                  :width="120"
                   :size="32"
-                  @change="change">
+                  @change="change"
+                >
                 </number-box>
               </div>
             </div>
           </div>
         </scroll-view>
         <div class="tui-popup-btn">
-          <button class="button-com red enhanced-btn" @click="nextFn">下一步</button>
+          <button class="button-com red enhanced-btn" @click="nextFn">
+            下一步
+          </button>
         </div>
       </div>
     </bottom-popup>
@@ -38,41 +41,41 @@ export default {
   components: {
     BottomPopup,
     NumberBox,
-    AppClose
+    AppClose,
   },
   props: {
     info: {
       type: Object,
       default: () => {
         return {};
-      }
+      },
     },
     buyNum: {
       type: Number,
-      default: 1
+      default: 1,
     },
     hdId: {
       type: Number,
-      default: 0
+      default: 0,
     },
-    account:{
-      type:Number,
-      default:0
+    account: {
+      type: Number,
+      default: 0,
     },
     show: {
       type: Boolean,
-      default: true
-    }
+      default: true,
+    },
   },
   data() {
     return {
-      selIndex: 0
+      selIndex: 0,
     };
   },
   computed: {
     maxStock() {
-      return 9999
-    }
+      return 9999;
+    },
   },
   methods: {
     change(e) {
@@ -82,58 +85,68 @@ export default {
       this.$emit("close");
     },
     nextFn() {
-      if(Number(this.info.price) <= 0){
-        this.$msg('商品还没有价格哦')
-        return false
+      if (Number(this.info.price) <= 0) {
+        this.$msg("商品还没有价格哦");
+        return false;
       }
-      uni.setStorageSync("buyGoodsDetil", this.info)
-      this.$util.pageTo({url:"/pages/order/buy?hdId="+this.hdId+'&goodsId='+this.info.id+'&goodsNum='+this.buyNum+'&selIndex='+this.selIndex+'&account='+this.account,type:2})
-    }
-  }
+      uni.setStorageSync("buyGoodsDetil", this.info);
+      this.$util.pageTo({
+        url: "/pages/order/buy",
+        query: {
+          hdId: this.hdId,
+          goodsId: this.info.id,
+          goodsNum: this.buyNum,
+          selIndex: this.selIndex,
+          account: this.account,
+        },
+        type: 2,
+      });
+    },
+  },
 };
 </script>
 
 <style lang="scss" scoped>
 ::v-deep.popup-wrap {
   .tui-popup-class {
-    border-top-left-radius: 24upx;
-    border-top-right-radius: 24upx;
+    border-top-left-radius: 24rpx;
+    border-top-right-radius: 24rpx;
     // 适配iphoneX
     padding-bottom: env(safe-area-inset-bottom);
   }
 
   .tui-popup-box {
     position: relative;
-    padding: 60upx 30upx 140upx;
+    padding: 60rpx 30rpx 140rpx;
     background: #fff;
-    min-height: 300upx;
+    min-height: 300rpx;
   }
 
   .tui-popup-btn {
     width: 100%;
     position: absolute;
     left: 0;
-    bottom: 0;
-    padding: 20upx 30upx 40upx 30upx;
-    padding-bottom: calc(40upx + env(safe-area-inset-bottom));
+    top: 250rpx;
+    padding: 20rpx 30rpx 20rpx 30rpx;
+    padding-bottom: calc(40rpx + env(safe-area-inset-bottom));
     @include disFlex(center, center);
-    border-top: 1upx solid $borderColor;
+    border-top: 1rpx solid $borderColor;
     background: #fff;
-    
+
     .button-com {
       width: 100%;
-      font-size: 36upx;
-      height: 110upx;
-      border-radius: 55upx;
+      font-size: 36rpx;
+      height: 110rpx;
+      border-radius: 55rpx;
       font-weight: 600;
-      letter-spacing: 2upx;
-      box-shadow: 0 8upx 24upx rgba(228, 31, 25, 0.3);
+      letter-spacing: 2rpx;
+      box-shadow: 0 8rpx 24rpx rgba(228, 31, 25, 0.3);
       display: flex;
       align-items: center;
       justify-content: center;
       line-height: 1;
       padding: 0;
-      
+
       &.enhanced-btn {
         background: linear-gradient(135deg, #ff4757 0%, #e41f19 100%);
         border: none;
@@ -142,36 +155,33 @@ export default {
     }
   }
 
-
   .tui-popup-scroll {
-    max-height: 400upx;
-    font-size: 28upx;
+    max-height: 400rpx;
+    font-size: 28rpx;
   }
 
   .tui-scrolldiv-box {
-    padding: 10upx 0;
+    padding: 10rpx 0;
   }
 
-
   .tui-attr-title {
-    padding: 0 0 20upx 0;
+    padding: 0 0 20rpx 0;
     color: #333;
-    font-size: 32upx;
+    font-size: 32rpx;
     font-weight: 600;
     text-align: left;
   }
 
-
   .tui-number-box {
     display: flex;
     align-items: center;
     justify-content: space-between;
-    padding: 30upx 0 40upx 0;
+    padding: 30rpx 0 40rpx 0;
     box-sizing: border-box;
     background: #fafafa;
-    border-radius: 16upx;
-    margin: 20upx 0;
-    padding: 40upx 30upx;
+    border-radius: 16rpx;
+    margin: 20rpx 0;
+    padding: 40rpx 30rpx;
   }
 
   .number-box-wrapper {
@@ -183,41 +193,41 @@ export default {
   // 覆盖 number-box 组件的样式
   ::v-deep .tui-numberbox {
     .tui-numbox-icon {
-      width: 60upx;
-      height: 60upx;
+      width: 60rpx;
+      height: 60rpx;
       border-radius: 50%;
       background: #fff;
       display: flex;
       align-items: center;
       justify-content: center;
-      box-shadow: 0 2upx 8upx rgba(0, 0, 0, 0.1);
+      box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
       padding: 0;
-      
+
       &:before {
-        font-size: 36upx !important;
+        font-size: 36rpx !important;
         font-weight: bold;
       }
-      
+
       &.tui-disabled {
         background: #f0f0f0;
         box-shadow: none;
-        
+
         &:before {
           color: #ccc !important;
         }
       }
     }
-    
+
     .tui-num-input {
-      width: 120upx !important;
-      height: 60upx !important;
-      margin: 0 20upx !important;
+      width: 120rpx !important;
+      height: 60rpx !important;
+      margin: 0 20rpx !important;
       background: #fff !important;
-      border-radius: 12upx !important;
-      border: 2upx solid #e8e8e8 !important;
-      font-size: 32upx !important;
+      border-radius: 12rpx !important;
+      border: 2rpx solid #e8e8e8 !important;
+      font-size: 32rpx !important;
       font-weight: 600 !important;
-      box-shadow: 0 2upx 8upx rgba(0, 0, 0, 0.08);
+      box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.08);
     }
   }
 }

+ 1 - 0
mallApp/src/pages/goods/detail.vue

@@ -12,6 +12,7 @@
           {{ data.price ? parseFloat(data.price).toFixed(2) : 0}}
         </text>
       </view>
+      <!--报价类型-->
       <view class="app-price app-bold" v-if="data.priceType == 2">
         <text>¥</text>
         <text class="app-size-34">

+ 3 - 4
mallApp/src/pages/order/buy.vue

@@ -54,7 +54,7 @@
 import TuiListCell from "@/components/plugin/list-cell";
 import AppDeliveryModule from "@/components/app-delivery";
 import AppListModule from "./components/app-order-list2";
-import { getShopUser } from "@/utils/auth";
+//import { getShopUser } from "@/utils/auth";
 import { getOrderShop } from "@/utils/config";
 import { createOrder,newFreight } from "@/api/order";
 import { getHasMap } from "@/api/express";
@@ -90,7 +90,7 @@ export default {
   },
   onLoad(option) {
     this.option = option || {};
-    this.init();
+    //this.init();
   },
   computed: {
     mayPayAmount(){
@@ -108,7 +108,7 @@ export default {
       this.isFreight = goodsInfo.freightType == '0'
 
       getOrderShop()
-      getShopUser();
+      //getShopUser();
 
       const goodsNum = Number(this.option.goodsNum || goodsInfo.buyNum || 0)
       goodsInfo.buyNum = goodsNum
@@ -123,7 +123,6 @@ export default {
       getHasMap().then(res => {
         this.hasMap = (res.data && res.data.hasMap) ? res.data.hasMap : 0
       })
-
     },
 		changeSendType(num){
 			this.form.sendType = num

+ 2 - 2
mallApp/src/pages/order/components/app-order-list2.vue

@@ -6,11 +6,11 @@
 					<image :src="info.cover" mode="aspectFill" style="width:130upx;height:130upx;"></image>
 				</div>
 				<div class="list-msg">
-					<div class="title">{{ info.name}}</div>
+					<div class="title">{{ info.name }}</div>
 				</div>
 			</div>
 			<div class="list-right">
-				<div class="price">¥{{info.price?parseFloat(Number((info.price).toFixed(2))):0}}</div>
+				<div class="price">¥{{info.price ? parseFloat(info.price).toFixed(2) : 0}}</div>
 				<div class="num">X{{info.buyNum}}</div>
 			</div>
 		</block>