ouyang 13 часов назад
Родитель
Сommit
7c5b0b92aa

+ 3 - 2
mallApp/src/components/module/app-order-item.vue

@@ -65,15 +65,16 @@ export default {
 				margin-bottom: 10upx;
 				line-height: 1.4;
 			}
-			/* 商品名标签(团购/秒杀):橙色描边,与订单列表样式一致 */
+			/* 团购/秒杀描边:1px 避免 iPhone 亚像素边框缺边 */
 			.goods-name-tag {
 				display: inline-block;
+				box-sizing: border-box;
 				margin-right: 8upx;
 				padding: 0 6upx;
 				font-size: 20upx;
 				line-height: 1.4;
 				color: $auxiliaryColor2;
-				border: 1upx solid $auxiliaryColor2;
+				border: 1px solid $auxiliaryColor2;
 				border-radius: 4upx;
 				vertical-align: middle;
 			}

+ 3 - 2
mallApp/src/components/module/app-order-list.vue

@@ -65,15 +65,16 @@ export default {
 				margin-bottom: 10upx;
 				line-height: 1.4;
 			}
-			/* 商品名标签(团购/秒杀):橙色描边,与订单列表样式一致 */
+			/* 团购/秒杀描边:1px 避免 iPhone 亚像素边框缺边 */
 			.goods-name-tag {
 				display: inline-block;
+				box-sizing: border-box;
 				margin-right: 8upx;
 				padding: 0 6upx;
 				font-size: 20upx;
 				line-height: 1.4;
 				color: $auxiliaryColor2;
-				border: 1upx solid $auxiliaryColor2;
+				border: 1px solid $auxiliaryColor2;
 				border-radius: 4upx;
 				vertical-align: middle;
 			}

+ 13 - 10
mallApp/src/components/order/order-item.vue

@@ -7,7 +7,7 @@
     <!-- 店铺行:店名 + 状态 -->
     <view class="card-header">
       <view class="shop-row">
-		<sprite-icon name="dianpu-fill" :size="35" custom-class="member-crown-icon" />
+        <text class="iconfont icondianpuweixuanzhong shop-icon"></text>
         <text class="shop-name">{{ info.hdName || '花店' }}</text>
         <text class="iconfont iconxiangyou shop-arrow"></text>
       </view>
@@ -41,10 +41,10 @@
           />
           <view class="goods-info">
             <view class="goods-title-row">
-              <!-- 团购/秒杀:商品名前橙色描边标签,与详情页商品行保持一致 -->
+              <!-- 标签独立于截断容器:避免 iOS 上 overflow 裁掉 1upx 描边 -->
+              <text v-if="info.groupBuyId > 0" class="goods-name-tag">团购</text>
+              <text v-if="goods.seckillGoodsId > 0" class="goods-name-tag">秒杀</text>
               <view class="goods-name-wrap">
-                <text v-if="info.groupBuyId > 0" class="goods-name-tag">团购</text>
-                <text v-if="goods.seckillGoodsId > 0" class="goods-name-tag">秒杀</text>
                 <text class="goods-name">{{ goods.name || '商品' }}</text>
               </view>
             </view>
@@ -243,8 +243,9 @@ export default {
 
 .shop-icon {
   flex-shrink: 0;
-  font-size: 32upx;
-  color: $greenColor;
+  font-size: 35upx;
+  color: $mainColor1;
+  line-height: 1;
 }
 
 .shop-name {
@@ -374,6 +375,7 @@ export default {
 
 .goods-title-row {
   display: flex;
+  flex-direction: row;
   align-items: flex-start;
 }
 
@@ -388,17 +390,19 @@ export default {
   -webkit-box-orient: vertical;
 }
 
-/* 商品名标签(团购/秒杀):橙色描边小标签,贴在商品名称左侧 */
+/* 团购/秒杀描边标签:用 1px 保证 iPhone 真机边框完整(1upx 易成亚像素缺边) */
 .goods-name-tag {
+  flex-shrink: 0;
   display: inline-block;
+  box-sizing: border-box;
+  margin-top: 4upx;
   margin-right: 8upx;
   padding: 0 6upx;
   font-size: 20upx;
   line-height: 1.4;
   color: $auxiliaryColor2;
-  border: 1upx solid $auxiliaryColor2;
+  border: 1px solid $auxiliaryColor2;
   border-radius: 4upx;
-  vertical-align: middle;
 }
 
 .goods-name {
@@ -406,7 +410,6 @@ export default {
   font-weight: 500;
   color: $fontColorMain;
   line-height: 1.4;
-  vertical-align: middle;
 }
 
 /* 相对整行 goods-row 右侧垂直居中 */

+ 10 - 4
mallApp/src/pages/custom/myDividend.vue

@@ -30,28 +30,28 @@
     <view class="stat-row">
       <view class="stat-item stat-item--link" @click="goInviteList">
         <view class="stat-icon-wrap">
-          <sprite-icon name="huiyuan-quanyi" :size="40" custom-class="stat-icon" />
+          <text class="iconfont iconkehuweixuanzhong stat-iconfont"></text>
         </view>
         <text class="stat-value">{{ stat.inviteCount || 0 }}人</text>
         <text class="stat-label">拉新人数</text>
       </view>
       <view class="stat-item stat-item--link" @click="goContribList">
         <view class="stat-icon-wrap">
-          <sprite-icon name="baoguo" :size="40" custom-class="stat-icon" />
+          <text class="iconfont iconorder stat-iconfont"></text>
         </view>
         <text class="stat-value">{{ stat.orderCount || 0 }}单</text>
         <text class="stat-label">分红订单</text>
       </view>
       <view class="stat-item">
         <view class="stat-icon-wrap">
-          <sprite-icon name="qianbao" :size="40" custom-class="stat-icon" />
+          <text class="iconfont iconfenhong stat-iconfont"></text>
         </view>
         <text class="stat-value">¥ {{ formatAmount(stat.monthCommission) }}</text>
         <text class="stat-label">本月分红</text>
       </view>
       <view class="stat-item stat-item--link" @click="goFlowList">
         <view class="stat-icon-wrap">
-          <sprite-icon name="yue-biandong" :size="40" custom-class="stat-icon" />
+          <text class="iconfont iconyuechaxun stat-iconfont"></text>
         </view>
         <text class="stat-link-text">变动明细</text>
         <text class="stat-arrow">›</text>
@@ -394,6 +394,12 @@ export default {
   justify-content: center;
 }
 
+.stat-iconfont {
+  font-size: 40upx;
+  color: $mainColor1;
+  line-height: 1;
+}
+
 .stat-value {
   margin-top: 12upx;
   font-size: 32upx;

+ 50 - 39
mallApp/src/pages/home/user.vue

@@ -37,10 +37,10 @@
             <!-- 贴在昵称下方左侧,避开右侧花朵装饰 -->
             <view class="profile-card__actions" @click.stop>
               <view class="profile-card__action" @click.stop="goChat">
-                <sprite-icon name="xiaoxi" :size="36" custom-class="profile-action-icon" />
+                <text class="iconfont iconmessage profile-action-icon"></text>
               </view>
               <view class="profile-card__action" @click.stop="goSettings">
-                <sprite-icon name="shezhi" :size="36" custom-class="profile-action-icon" />
+                <text class="iconfont iconshezhi profile-action-icon"></text>
               </view>
             </view>
           </view>
@@ -53,7 +53,7 @@
           <text class="section-title">我的订单</text>
           <view class="section-link" @click="goAllOrders">
             <text class="section-link__text">查看全部</text>
-            <text class="section-link__arrow"></text>
+            <text class="iconfont iconxiangyou section-link__arrow"></text>
           </view>
         </view>
         <view class="order-grid">
@@ -65,7 +65,7 @@
             @click="goOrderStatus(item)"
           >
             <view class="order-icon-wrap" :class="'order-icon-wrap--' + item.theme">
-              <sprite-icon :name="item.icon" :size="item.iconSize" custom-class="order-icon" />
+              <text class="iconfont order-iconfont" :class="item.iconfont"></text>
             </view>
             <text class="order-item__label">{{ item.name }}</text>
           </view>
@@ -86,16 +86,10 @@
             @click="onServiceClick(item)"
           >
             <view class="service-item__left">
-              <sprite-icon
-                v-if="item.icon"
-                :name="item.icon"
-                :size="item.iconSize || 48"
-                custom-class="service-icon"
-              />
-              <text v-else class="iconfont service-iconfont" :class="item.iconfont"></text>
+              <text class="iconfont service-iconfont" :class="item.iconfont"></text>
               <text class="service-item__label">{{ item.name }}</text>
             </view>
-            <text class="service-item__arrow"></text>
+            <text class="iconfont iconxiangyou service-item__arrow"></text>
           </view>
         </view>
       </view>
@@ -109,7 +103,6 @@
  * 原生 tabBar 入口,展示会员信息、订单状态快捷入口与服务菜单
  */
 import { mapGetters } from "vuex";
-import SpriteIcon from "@/components/sprite-icon/index.vue";
 import { getNavBarMetrics } from "@/utils/navBar";
 import { getShopUser } from "@/utils/auth";
 import { clearLogin } from "@/api/user";
@@ -117,26 +110,23 @@ import { SHOP_NAV_ACTIVE_KEY } from "@/constant/storageKeys";
 
 export default {
   name: "user",
-  components: {
-    SpriteIcon
-  },
   data() {
     return {
       constant: this.$constant,
       navMetrics: getNavBarMetrics(),
-      /** 订单快捷入口:status 对应订单 Tab;退款/售后走独立列表 url */
+      /** 订单快捷入口:iconfont;status 对应订单 Tab;退款/售后走独立列表 */
       orderShortcuts: [
-        { key: "pay", name: "待付款", icon: "qianbao", iconSize: 48, status: "1", theme: "pink" },
-        { key: "delivery", name: "待配送", icon: "huoche-da", iconSize: 48, status: "2", theme: "green" },
-        { key: "receive", name: "待收货", icon: "baoguo", iconSize: 48, status: "3", theme: "green" },
-        { key: "refund", name: "退款/售后", icon: "fanghu-yuan", iconSize: 48, url: "/pages/order/refund-list", theme: "pink" }
+        { key: "pay", name: "待付款", iconfont: "icondaifukuan", status: "1", theme: "green" },
+        { key: "delivery", name: "待配送", iconfont: "iconfahuo", status: "2", theme: "green" },
+        { key: "receive", name: "待收货", iconfont: "icondaishouhuo", status: "3", theme: "green" },
+        { key: "refund", name: "退款/售后", iconfont: "iconshouhou", url: "/pages/order/refund-list", theme: "green" }
       ],
-      /** 服务菜单 */
+      /** 服务菜单:统一 iconfont */
       serviceItems: [
-        { key: "coupon", name: "我的红包", icon: "youhuiquan-yellow", iconSize: 40, url: "/pages/hb/list" },
-        { key: "addressNew", name: "收货地址", iconfont: "iconditu", url: "/pages/user/address/list" },
-        { key: "hasDel", name: "已删花店", icon: "dianpu-fill", iconSize: 40, url: "/pages/hd/hasDel" },
-        { key: "logout", name: "退出登录", icon: "tuichu", iconSize: 40, action: "logout" }
+        { key: "coupon", name: "我的红包", iconfont: "iconhongbao", url: "/pages/hb/list" },
+        { key: "addressNew", name: "收货地址", iconfont: "iconshouhuodizhi", url: "/pages/user/address/list" },
+        { key: "hasDel", name: "已删花店", iconfont: "icondianpuweixuanzhong", url: "/pages/hd/hasDel" },
+        { key: "logout", name: "退出登录", iconfont: "icontuichu", action: "logout" }
       ]
     };
   },
@@ -371,6 +361,12 @@ export default {
   }
 }
 
+.profile-action-icon {
+  font-size: 36upx;
+  color: #4b5563;
+  line-height: 1;
+}
+
 .profile-card__content {
   position: relative;
   z-index: 1;
@@ -464,9 +460,9 @@ export default {
 }
 
 .section-link__arrow {
-  font-size: 28upx;
+  font-size: 22upx;
   color: #9ca3af;
-  margin-left: 4upx;
+  margin-left: 6upx;
   line-height: 1;
 }
 
@@ -501,10 +497,23 @@ export default {
 
 .order-icon-wrap--pink {
   background: #fce7f3;
+
+  .order-iconfont {
+    color: #ec4899;
+  }
 }
 
 .order-icon-wrap--green {
   background: #ecfdf3;
+
+  .order-iconfont {
+    color: #049e2c;
+  }
+}
+
+.order-iconfont {
+  font-size: 50upx;
+  line-height: 1;
 }
 
 .order-item__label {
@@ -519,17 +528,19 @@ export default {
   flex-direction: column;
 }
 
+/* 服务行:左右整行垂直居中 */
 .service-item {
   display: flex;
   flex-direction: row;
   align-items: center;
   justify-content: space-between;
-  padding: 28upx 0;
+  min-height: 96upx;
+  padding: 0;
   border-top: 1upx solid #f3f4f6;
-  margin-top: 20upx;
+  margin-top: 0;
+  box-sizing: border-box;
 
   &--first {
-    margin-top: 0;
     border-top: none;
   }
 }
@@ -540,28 +551,28 @@ export default {
   align-items: center;
   flex: 1;
   min-width: 0;
-}
-
-.service-item__left ::v-deep .service-icon {
-  margin-right: 20upx;
+  min-height: 96upx;
 }
 
 .service-iconfont {
-  font-size: 36upx;
-  color: #3b82f6;
+  font-size: 40upx;
+  color: #049e2c;
   margin-right: 20upx;
   flex-shrink: 0;
+  line-height: 1;
 }
 
 .service-item__label {
   font-size: 30upx;
   color: #374151;
+  line-height: 1.2;
 }
 
 .service-item__arrow {
-  font-size: 32upx;
-  color: #d1d5db;
+  font-size: 24upx;
+  color: #333333;
   flex-shrink: 0;
   margin-left: 16upx;
+  line-height: 1;
 }
 </style>

+ 34 - 8
mallApp/src/static/iconfont/iconfont.css

@@ -1,12 +1,11 @@
 @font-face {
-  font-family: 'iconfont';  /* project id 1525256 / hash fccrkfc081c */
-  /* fonts live in app-mall/web/iconfont;当前开发域 http 可访问 */
- src: url('http://api.shop.theflorist.cn/iconfont/iconfont.eot?t=202608271004'); /* IE9 */
- src: url('http://api.shop.theflorist.cn/iconfont/iconfont.eot?t=202608271004#iefix') format('embedded-opentype'), /* IE6-IE8 */
-	  url('http://api.shop.theflorist.cn/iconfont/iconfont.woff2?t=202608271004') format('woff2'),
-	  url('http://api.shop.theflorist.cn/iconfont/iconfont.woff?t=202608271004') format('woff'),
-	  url('http://api.shop.theflorist.cn/iconfont/iconfont.ttf?t=202608271004') format('truetype'),
-	  url('http://api.shop.theflorist.cn/iconfont/iconfont.svg?t=202608271004#iconfont') format('svg');
+  font-family: 'iconfont';  /* project id 1525256 */
+ src: url('http://api.shop.theflorist.cn/iconfont/iconfont.eot?t=202608271143'); /* IE9 */
+ src: url('http://api.shop.theflorist.cn/iconfont/iconfont.eot?t=202608271143#iefix') format('embedded-opentype'), /* IE6-IE8 */
+	  url('http://api.shop.theflorist.cn/iconfont/iconfont.woff2?t=202608271143') format('woff2'),
+	  url('http://api.shop.theflorist.cn/iconfont/iconfont.woff?t=202608271143') format('woff'),
+	  url('http://api.shop.theflorist.cn/iconfont/iconfont.ttf?t=202608271143') format('truetype'),
+	  url('http://api.shop.theflorist.cn/iconfont/iconfont.svg?t=202608271143#iconfont') format('svg');
 }
 
 .iconfont {
@@ -16,7 +15,33 @@
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
 }
+.icondaishouhuo:before {
+  content: "\e608";
+}
+
+.iconshouhou:before {
+  content: "\e70b";
+}
 
+.icondaipeisong:before {
+  content: "\e67c";
+}
+
+.icondaifukuan:before {
+  content: "\e704";
+}
+
+.iconshouhuodizhi:before {
+  content: "\e681";
+}
+
+.iconhongbao:before {
+  content: "\e784";
+}
+
+.icontuichu:before {
+  content: "\e60d";
+}
 
 .iconorder_fill:before {
   content: "\e714";
@@ -502,3 +527,4 @@
   content: "\e73c";
 }
 
+

+ 35 - 6
开发http/mallApp/src/static/iconfont/iconfont.css

@@ -1,11 +1,11 @@
 @font-face {
   font-family: 'iconfont';  /* project id 1525256 */
- src: url('http://api.shop.theflorist.cn/iconfont/iconfont.eot?t=1787794165716'); /* IE9 */
- src: url('http://api.shop.theflorist.cn/iconfont/iconfont.eot?t=1787794165716#iefix') format('embedded-opentype'), /* IE6-IE8 */
-	  url('http://api.shop.theflorist.cn/iconfont/iconfont.woff2?t=1787794165716') format('woff2'),
-	  url('http://api.shop.theflorist.cn/iconfont/iconfont.woff?t=1787794165716') format('woff'),
-	  url('http://api.shop.theflorist.cn/iconfont/iconfont.ttf?t=1787794165716') format('truetype'),
-	  url('http://api.shop.theflorist.cn/iconfont/iconfont.svg?t=1787794165716#iconfont') format('svg');
+ src: url('http://api.shop.theflorist.cn/iconfont/iconfont.eot?t=202608271143'); /* IE9 */
+ src: url('http://api.shop.theflorist.cn/iconfont/iconfont.eot?t=202608271143#iefix') format('embedded-opentype'), /* IE6-IE8 */
+	  url('http://api.shop.theflorist.cn/iconfont/iconfont.woff2?t=202608271143') format('woff2'),
+	  url('http://api.shop.theflorist.cn/iconfont/iconfont.woff?t=202608271143') format('woff'),
+	  url('http://api.shop.theflorist.cn/iconfont/iconfont.ttf?t=202608271143') format('truetype'),
+	  url('http://api.shop.theflorist.cn/iconfont/iconfont.svg?t=202608271143#iconfont') format('svg');
 }
 
 .iconfont {
@@ -15,6 +15,33 @@
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
 }
+.icondaishouhuo:before {
+  content: "\e608";
+}
+
+.iconshouhou:before {
+  content: "\e70b";
+}
+
+.icondaipeisong:before {
+  content: "\e67c";
+}
+
+.icondaifukuan:before {
+  content: "\e704";
+}
+
+.iconshouhuodizhi:before {
+  content: "\e681";
+}
+
+.iconhongbao:before {
+  content: "\e784";
+}
+
+.icontuichu:before {
+  content: "\e60d";
+}
 
 .iconorder_fill:before {
   content: "\e714";
@@ -499,3 +526,5 @@
 .iconyishiyong:before {
   content: "\e73c";
 }
+
+

+ 36 - 8
开发https/mallApp/src/static/iconfont/iconfont.css

@@ -1,12 +1,11 @@
 @font-face {
-  font-family: 'iconfont';  /* project id 1525256 / hash fccrkfc081c */
-  /* fonts live in app-mall/web/iconfont;当前开发域 http 可访问 */
- src: url('https://api.shop.theflorist.cn/iconfont/iconfont.eot?t=1787794165716'); /* IE9 */
- src: url('https://api.shop.theflorist.cn/iconfont/iconfont.eot?t=1787794165716#iefix') format('embedded-opentype'), /* IE6-IE8 */
-	  url('https://api.shop.theflorist.cn/iconfont/iconfont.woff2?t=1787794165716') format('woff2'),
-	  url('https://api.shop.theflorist.cn/iconfont/iconfont.woff?t=1787794165716') format('woff'),
-	  url('https://api.shop.theflorist.cn/iconfont/iconfont.ttf?t=1787794165716') format('truetype'),
-	  url('https://api.shop.theflorist.cn/iconfont/iconfont.svg?t=1787794165716#iconfont') format('svg');
+  font-family: 'iconfont';  /* project id 1525256 */
+ src: url('https://api.shop.theflorist.cn/iconfont/iconfont.eot?t=202608271143'); /* IE9 */
+ src: url('https://api.shop.theflorist.cn/iconfont/iconfont.eot?t=202608271143#iefix') format('embedded-opentype'), /* IE6-IE8 */
+	  url('https://api.shop.theflorist.cn/iconfont/iconfont.woff2?t=202608271143') format('woff2'),
+	  url('https://api.shop.theflorist.cn/iconfont/iconfont.woff?t=202608271143') format('woff'),
+	  url('https://api.shop.theflorist.cn/iconfont/iconfont.ttf?t=202608271143') format('truetype'),
+	  url('https://api.shop.theflorist.cn/iconfont/iconfont.svg?t=202608271143#iconfont') format('svg');
 }
 
 .iconfont {
@@ -16,6 +15,34 @@
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
 }
+.icondaishouhuo:before {
+  content: "\e608";
+}
+
+.iconshouhou:before {
+  content: "\e70b";
+}
+
+.icondaipeisong:before {
+  content: "\e67c";
+}
+
+.icondaifukuan:before {
+  content: "\e704";
+}
+
+.iconshouhuodizhi:before {
+  content: "\e681";
+}
+
+.iconhongbao:before {
+  content: "\e784";
+}
+
+.icontuichu:before {
+  content: "\e60d";
+}
+
 .iconorder_fill:before {
   content: "\e714";
 }
@@ -500,3 +527,4 @@
   content: "\e73c";
 }
 
+