Browse Source

1. 当一个页面需要大量引用 icon 时,使用 image 代替 zui-svg-icon。zui-svg-icon 有性能问题,不能大量使用 2. icon 文件名称变更

shizhongqi 2 months ago
parent
commit
93f92953d2
96 changed files with 332 additions and 169 deletions
  1. 29 2
      hdApp/src/admin/home/apply.vue
  2. 88 88
      hdApp/src/admin/home/homeMenus.js
  3. 69 7
      hdApp/src/admin/home/mall.vue
  4. 130 61
      hdApp/src/admin/home/order.vue
  5. 0 0
      hdApp/src/assets/svg-icons/home/home-收款码.svg
  6. 10 10
      hdApp/src/pages.json
  7. 0 0
      hdApp/src/static/icons/add-bouquet.svg
  8. 1 0
      hdApp/src/static/icons/address.svg
  9. 0 0
      hdApp/src/static/icons/allot-in.svg
  10. 0 0
      hdApp/src/static/icons/allot-out.svg
  11. 0 0
      hdApp/src/static/icons/bouquet-billing.svg
  12. 0 0
      hdApp/src/static/icons/bouquet-quick-billing.svg
  13. 0 0
      hdApp/src/static/icons/bouquet.svg
  14. 0 0
      hdApp/src/static/icons/breakage.svg
  15. 0 0
      hdApp/src/static/icons/calculator-filled.svg
  16. 0 0
      hdApp/src/static/icons/calculator-outline.svg
  17. 0 0
      hdApp/src/static/icons/category-filled.svg
  18. 0 0
      hdApp/src/static/icons/category-outline.svg
  19. 0 0
      hdApp/src/static/icons/change-price-filled.svg
  20. 0 0
      hdApp/src/static/icons/change-price-outline.svg
  21. 0 0
      hdApp/src/static/icons/change-price-tag.svg
  22. 0 0
      hdApp/src/static/icons/customer-filled.svg
  23. 0 0
      hdApp/src/static/icons/customer-outline.svg
  24. 0 0
      hdApp/src/static/icons/delivery-outline.svg
  25. 0 0
      hdApp/src/static/icons/delivery.svg
  26. 0 0
      hdApp/src/static/icons/disassemble.svg
  27. 0 0
      hdApp/src/static/icons/dishonest-person.svg
  28. 0 0
      hdApp/src/static/icons/flour.svg
  29. 0 0
      hdApp/src/static/icons/inventory.svg
  30. 0 0
      hdApp/src/static/icons/list-2.svg
  31. 0 0
      hdApp/src/static/icons/list-3.svg
  32. 0 0
      hdApp/src/static/icons/list.svg
  33. 0 0
      hdApp/src/static/icons/mall-filled.svg
  34. 0 0
      hdApp/src/static/icons/mall-outline.svg
  35. 0 0
      hdApp/src/static/icons/member-level.svg
  36. 1 0
      hdApp/src/static/icons/message.svg
  37. 1 0
      hdApp/src/static/icons/more-2.svg
  38. 1 0
      hdApp/src/static/icons/more.svg
  39. 0 0
      hdApp/src/static/icons/my-filled.svg
  40. 0 0
      hdApp/src/static/icons/my-outline.svg
  41. 0 0
      hdApp/src/static/icons/order-filled.svg
  42. 0 0
      hdApp/src/static/icons/order-outline.svg
  43. 0 0
      hdApp/src/static/icons/order-volume-2.svg
  44. 0 0
      hdApp/src/static/icons/order-volume.svg
  45. 0 0
      hdApp/src/static/icons/pay-code-flow.svg
  46. 1 0
      hdApp/src/static/icons/pay-code.svg
  47. 0 0
      hdApp/src/static/icons/pic-text.svg
  48. 0 0
      hdApp/src/static/icons/plant-2.svg
  49. 0 0
      hdApp/src/static/icons/plant-billing.svg
  50. 0 0
      hdApp/src/static/icons/plant-material.svg
  51. 0 0
      hdApp/src/static/icons/plant-quick-billing.svg
  52. 0 0
      hdApp/src/static/icons/plant.svg
  53. 0 0
      hdApp/src/static/icons/price-increase.svg
  54. 0 0
      hdApp/src/static/icons/print-settings.svg
  55. 0 0
      hdApp/src/static/icons/procurement.svg
  56. 0 0
      hdApp/src/static/icons/profit-filled.svg
  57. 0 0
      hdApp/src/static/icons/profit-outline.svg
  58. 0 0
      hdApp/src/static/icons/purchase-record.svg
  59. 0 0
      hdApp/src/static/icons/quick-billing-circle.svg
  60. 0 0
      hdApp/src/static/icons/quick-billing.svg
  61. 0 0
      hdApp/src/static/icons/recharge.svg
  62. 0 0
      hdApp/src/static/icons/red-packet.svg
  63. 0 0
      hdApp/src/static/icons/settings-filled.svg
  64. 0 0
      hdApp/src/static/icons/shop-filled.svg
  65. 0 0
      hdApp/src/static/icons/shop-outline.svg
  66. 0 0
      hdApp/src/static/icons/sort-filled.svg
  67. 0 0
      hdApp/src/static/icons/sort-outline.svg
  68. 0 0
      hdApp/src/static/icons/sound-filled.svg
  69. 0 0
      hdApp/src/static/icons/staff-performance.svg
  70. 0 0
      hdApp/src/static/icons/staff.svg
  71. 0 0
      hdApp/src/static/icons/stats-2.svg
  72. 0 0
      hdApp/src/static/icons/stats-bar-filled.svg
  73. 0 0
      hdApp/src/static/icons/stats-bar-outline.svg
  74. 0 0
      hdApp/src/static/icons/stats-pie-filled.svg
  75. 0 0
      hdApp/src/static/icons/stats-pie-outline.svg
  76. 0 0
      hdApp/src/static/icons/stats.svg
  77. 0 0
      hdApp/src/static/icons/stock-in-filled.svg
  78. 0 0
      hdApp/src/static/icons/stock-in-outline.svg
  79. 0 0
      hdApp/src/static/icons/stock-warning.svg
  80. 0 0
      hdApp/src/static/icons/store-2.svg
  81. 0 0
      hdApp/src/static/icons/store-3.svg
  82. 0 0
      hdApp/src/static/icons/store-delete.svg
  83. 0 0
      hdApp/src/static/icons/store.svg
  84. 0 0
      hdApp/src/static/icons/task-filled.svg
  85. 0 0
      hdApp/src/static/icons/task-outline.svg
  86. 0 0
      hdApp/src/static/images/home/customer-filled.png
  87. 0 0
      hdApp/src/static/images/home/customer-outline.png
  88. 0 0
      hdApp/src/static/images/home/my-filled.png
  89. 0 0
      hdApp/src/static/images/home/my-outline.png
  90. 0 0
      hdApp/src/static/images/home/order-filled.png
  91. 0 0
      hdApp/src/static/images/home/order-outline.png
  92. 0 0
      hdApp/src/static/images/home/shop-filled.png
  93. 0 0
      hdApp/src/static/images/home/shop-outline.png
  94. 0 0
      hdApp/src/static/images/home/stock-in-filled.png
  95. 0 0
      hdApp/src/static/images/home/stock-in-outline.png
  96. 1 1
      hdApp/src/static/svg-icons-lib.js

+ 29 - 2
hdApp/src/admin/home/apply.vue

@@ -4,14 +4,24 @@
       <view v-for="item in applyMenuList" :key="item.title" class="apply-list_box">
         <view class="section-header">
           <view class="section-title">
-            <zui-svg-icon v-if="item.titleIcon" :icon="item.titleIcon" :width="sectionIconSize" :height="sectionIconSize" />
+            <image
+              v-if="item.titleIcon"
+              class="section-icon-img"
+              :src="iconSrc(item.titleIcon)"
+              mode="aspectFit"
+            />
             <text class="section-title-text">{{ item.title }}</text>
           </view>
         </view>
         <view class="icon-grid">
           <view v-for="s in item.list" :key="s.key" class="icon-item" @click="goPage(s)">
             <view class="icon-wrapper">
-              <zui-svg-icon v-if="s.icon" :icon="s.icon" :width="menuIconSize" :height="menuIconSize" />
+              <image
+                v-if="s.icon"
+                class="menu-icon-img"
+                :src="iconSrc(s.icon)"
+                mode="aspectFit"
+              />
               <view v-else class="icon-empty"></view>
             </view>
             <view class="icon-text">{{ s.name }}</view>
@@ -46,6 +56,9 @@ export default {
   methods: {
     ...HOME_MENU_BILLING_METHODS,
     init(){},
+    iconSrc(icon) {
+      return icon ? `/static/icons/${icon}.svg` : ''
+    },
     goPage(item) {
       navigateMenuItem(this, item)
     }
@@ -93,6 +106,13 @@ export default {
         .section-title-text {
           margin-left: 12upx;
         }
+
+        .section-icon-img {
+          flex-shrink: 0;
+          display: block;
+          width: 48upx;
+          height: 48upx;
+        }
       }
     }
 
@@ -129,6 +149,13 @@ export default {
             justify-content: center;
             line-height: 0;
           }
+
+          .menu-icon-img {
+            display: block;
+            width: 56upx;
+            height: 56upx;
+          }
+
           background: linear-gradient(135deg, #e9fff4 0%, #f3f7ff 100%);
           border-radius: 20upx;
           box-shadow: 0 1upx 2upx rgba(0, 0, 0, 0.06), 0 4upx 12upx rgba(0, 0, 0, 0.04);

+ 88 - 88
hdApp/src/admin/home/homeMenus.js

@@ -1,128 +1,128 @@
-const homeIcon = name => `home-${name}`
+const homeIcon = name => name
 
 export const APPLY_MENU_GROUPS = [
   {
     title: '花束',
-    titleIcon: homeIcon('花束'),
+    titleIcon: homeIcon('bouquet'),
     list: [
-      { name: '商城', icon: homeIcon('商城-filled'), url: '/admin/cg/mall', pf: 1 },
-      { name: '开单', icon: homeIcon('花束开单'), action: 'goHsKd', pf: 1 },
-      { name: '快捷开单', icon: homeIcon('花束快捷开单'), action: 'goHsKjKd', pf: 1 },
-      { name: '花束', icon: homeIcon('花束'), url: '/admin/goods/list', pf: 1 },
-      { name: '新增花束', icon: homeIcon('新增花束'), url: '/admin/goods/add', pf: 1 },
-      { name: '分类', icon: homeIcon('分类-filled'), url: '/admin/goods/category', pf: 1 },
-      { name: '排序', icon: homeIcon('排序-filled'), url: '/admin/goods/categorySort', pf: 1 },
-      //{ name: '列表', icon: homeIcon('列表3'), url: '/admin/goods/list', pf: 1 },
-      { name: '任务', icon: homeIcon('任务-filled'), url: '/admin/work/list', pf: 1 },
-      { name: '涨价设置', icon: homeIcon('涨价设置'), url: '/admin/goods/price-increase', pf: 1 }
+      { name: '商城', icon: homeIcon('mall-filled'), url: '/admin/cg/mall', pf: 1 },
+      { name: '开单', icon: homeIcon('bouquet-billing'), action: 'goHsKd', pf: 1 },
+      { name: '快捷开单', icon: homeIcon('bouquet-quick-billing'), action: 'goHsKjKd', pf: 1 },
+      { name: '花束', icon: homeIcon('bouquet'), url: '/admin/goods/list', pf: 1 },
+      { name: '新增花束', icon: homeIcon('add-bouquet'), url: '/admin/goods/add', pf: 1 },
+      { name: '分类', icon: homeIcon('category-filled'), url: '/admin/goods/category', pf: 1 },
+      { name: '排序', icon: homeIcon('sort-filled'), url: '/admin/goods/categorySort', pf: 1 },
+      //{ name: '列表', icon: homeIcon('list-3'), url: '/admin/goods/list', pf: 1 },
+      { name: '任务', icon: homeIcon('task-filled'), url: '/admin/work/list', pf: 1 },
+      { name: '涨价设置', icon: homeIcon('price-increase'), url: '/admin/goods/price-increase', pf: 1 }
     ]
   },
   {
     title: '绿植花材',
-    titleIcon: homeIcon('绿植'),
+    titleIcon: homeIcon('plant'),
     list: [
-      { name: '商城', icon: homeIcon('商城-filled'), url: '/admin/cg/item', pf: 1 },
-      { name: '绿植花材', icon: homeIcon('绿植花材'), url: '/admin/item/list2', pf: 1 },
-      { name: '开单', icon: homeIcon('绿植开单'), action: 'goItemKd', pf: 1 },
-      { name: '快捷开单', icon: homeIcon('绿植快捷开单'), action: 'goItemKjKd', pf: 1 },
-      { name: '排序', icon: homeIcon('排序-filled'), url: '/admin/itemClass/sort', pf: 1 },
-      { name: '改价', icon: homeIcon('改价-filled'), url: '/admin/changePrice/list2', pf: 1 },
-      { name: '报损', icon: homeIcon('报损'), url: '/admin/breakage/list', pf: 1 },
-      { name: '分类', icon: homeIcon('分类-filled'), url: '/admin/itemClass/list', pf: 1 },
-      //{ name: '列表', icon: homeIcon('列表-2'), url: '/admin/item/list2', pf: 1 },
-      { name: '拆散', icon: homeIcon('拆散'), url: '/admin/part/list', pf: 1 },
-      { name: '调拨出库', icon: homeIcon('调拨出库'), url: '/pagesStorehouse/allot/allotEx', pf: 0 },
-      { name: '调拨入库', icon: homeIcon('调拨入库'), url: '/pagesStorehouse/allot/allotPut', pf: 0 },
-      { name: '库存预警', icon: homeIcon('库存预警'), url: '/pagesStorehouse/stockWarn/manage', pf: 1 },
-      { name: '买花', icon: homeIcon('商城-filled'), url: '/pagesPurchase/order', pf: 1 },
-      { name: '买花记录', icon: homeIcon('购买记录'), url: '/pagesPurchase/shopping', pf: 1 },
-      { name: '盘点', icon: homeIcon('盘点'), url: '/pagesStorehouse/inventory/list', pf: 1 }
+      { name: '商城', icon: homeIcon('mall-filled'), url: '/admin/cg/item', pf: 1 },
+      { name: '绿植花材', icon: homeIcon('plant-material'), url: '/admin/item/list2', pf: 1 },
+      { name: '开单', icon: homeIcon('plant-billing'), action: 'goItemKd', pf: 1 },
+      { name: '快捷开单', icon: homeIcon('plant-quick-billing'), action: 'goItemKjKd', pf: 1 },
+      { name: '排序', icon: homeIcon('sort-filled'), url: '/admin/itemClass/sort', pf: 1 },
+      { name: '改价', icon: homeIcon('change-price-filled'), url: '/admin/changePrice/list2', pf: 1 },
+      { name: '报损', icon: homeIcon('breakage'), url: '/admin/breakage/list', pf: 1 },
+      { name: '分类', icon: homeIcon('category-filled'), url: '/admin/itemClass/list', pf: 1 },
+      //{ name: '列表', icon: homeIcon('list-2'), url: '/admin/item/list2', pf: 1 },
+      { name: '拆散', icon: homeIcon('disassemble'), url: '/admin/part/list', pf: 1 },
+      { name: '调拨出库', icon: homeIcon('allot-out'), url: '/pagesStorehouse/allot/allotEx', pf: 0 },
+      { name: '调拨入库', icon: homeIcon('allot-in'), url: '/pagesStorehouse/allot/allotPut', pf: 0 },
+      { name: '库存预警', icon: homeIcon('stock-warning'), url: '/pagesStorehouse/stockWarn/manage', pf: 1 },
+      { name: '买花', icon: homeIcon('mall-filled'), url: '/pagesPurchase/order', pf: 1 },
+      { name: '买花记录', icon: homeIcon('purchase-record'), url: '/pagesPurchase/shopping', pf: 1 },
+      { name: '盘点', icon: homeIcon('inventory'), url: '/pagesStorehouse/inventory/list', pf: 1 }
     ]
   },
   {
     title: '门店设置',
-    titleIcon: homeIcon('店铺-filled'),
+    titleIcon: homeIcon('shop-filled'),
     list: [
-      { name: '门店', icon: homeIcon('门店'), url: '/admin/shop/list', pf: 1 },
-      { name: '员工', icon: homeIcon('员工'), url: '/admin/staff/list', pf: 1 },
-      { name: '员工业绩', icon: homeIcon('员工业绩'), url: '/admin/staff/achieve', pf: 1 },
-      { name: '失信人员', icon: homeIcon('失信人员'), url: '/admin/ll/list', pf: 1 },
-      { name: '已删除家', icon: homeIcon('门店删除'), url: '/pagesPurchase/pb', pf: 1 },
-      { name: '会员等级', icon: homeIcon('会员等级'), url: '/admin/member/level', pf: 1 },
-      { name: '红包管理', icon: homeIcon('红包'), url: '/admin/hb/list', pf: 1 },
-      { name: '充值设置', icon: homeIcon('充值'), url: '/admin/recharge/rechargeSetting', pf: 1 },
-      { name: '收款码', icon: homeIcon('收款码'), url: '/admin/cg/code', pf: 1 },
-      { name: '收款流水', icon: homeIcon('收款码流水'), url: '/admin/order/scanPay', pf: 1 },
-      { name: '跑腿设置', icon: homeIcon('跑腿'), url: '/admin/delivery/deliveryManage', pf: 1 }
+      { name: '门店', icon: homeIcon('store'), url: '/admin/shop/list', pf: 1 },
+      { name: '员工', icon: homeIcon('staff'), url: '/admin/staff/list', pf: 1 },
+      { name: '员工业绩', icon: homeIcon('staff-performance'), url: '/admin/staff/achieve', pf: 1 },
+      { name: '失信人员', icon: homeIcon('dishonest-person'), url: '/admin/ll/list', pf: 1 },
+      { name: '已删除家', icon: homeIcon('store-delete'), url: '/pagesPurchase/pb', pf: 1 },
+      { name: '会员等级', icon: homeIcon('member-level'), url: '/admin/member/level', pf: 1 },
+      { name: '红包管理', icon: homeIcon('red-packet'), url: '/admin/hb/list', pf: 1 },
+      { name: '充值设置', icon: homeIcon('recharge'), url: '/admin/recharge/rechargeSetting', pf: 1 },
+      { name: '收款码', icon: homeIcon('pay-code'), url: '/admin/cg/code', pf: 1 },
+      { name: '收款流水', icon: homeIcon('pay-code-flow'), url: '/admin/order/scanPay', pf: 1 },
+      { name: '跑腿设置', icon: homeIcon('delivery'), url: '/admin/delivery/deliveryManage', pf: 1 }
     ]
   },
   {
     title: '硬件设置',
-    titleIcon: homeIcon('设置-filled'),
+    titleIcon: homeIcon('settings-filled'),
     list: [
-      { name: '打印设置', icon: homeIcon('打印设置'), url: '/admin/shop/print', pf: 1 },
-      { name: '音响设置', icon: homeIcon('声音_filled'), url: '/admin/shop/trumpet', pf: 1 },
-      { name: '操作台打印', icon: homeIcon('打印设置'), url: '/admin/shop/makePrint', pf: 1 },
-      { name: '操作台音响', icon: homeIcon('声音_filled'), url: '/admin/shop/makeTrumpet', pf: 1 }
+      { name: '打印设置', icon: homeIcon('print-settings'), url: '/admin/shop/print', pf: 1 },
+      { name: '音响设置', icon: homeIcon('sound-filled'), url: '/admin/shop/trumpet', pf: 1 },
+      { name: '操作台打印', icon: homeIcon('print-settings'), url: '/admin/shop/makePrint', pf: 1 },
+      { name: '操作台音响', icon: homeIcon('sound-filled'), url: '/admin/shop/makeTrumpet', pf: 1 }
     ]
   },
   {
     title: '数据统计',
-    titleIcon: homeIcon('统计-饼状-filled'),
+    titleIcon: homeIcon('stats-pie-filled'),
     list: [
-      { name: '利润表', icon: homeIcon('利润表-filled'), url: '/admin/stat/profit', pf: 1 },
-      { name: '收入统计', icon: homeIcon('统计-2'), url: '/admin/stat/kdIncome', pf: 1 },
-      { name: '花材销量', icon: homeIcon('单量'), url: '/admin/stat/productSale', pf: 1 },
-      { name: '客户单量', icon: homeIcon('单量-2'), url: '/admin/stat/customSale', pf: 1 },
-      { name: '采购统计', icon: homeIcon('进货-filled'), url: '/admin/stat/cgStat', pf: 1 },
-      { name: '采购花材', icon: homeIcon('采购'), url: '/admin/stat/cgItem', pf: 1 },
-      { name: '绿植统计', icon: homeIcon('绿植'), url: '/admin/stat/kindLz', pf: 1 },
-      { name: '损耗总览', icon: homeIcon('报损'), url: '/admin/stat/waste', pf: 1 },
-      { name: '挂账汇总', icon: homeIcon('收款码'), url: '/admin/custom/showTotalBalance', pf: 1 }
+      { name: '利润表', icon: homeIcon('profit-filled'), url: '/admin/stat/profit', pf: 1 },
+      { name: '收入统计', icon: homeIcon('stats-2'), url: '/admin/stat/kdIncome', pf: 1 },
+      { name: '花材销量', icon: homeIcon('order-volume'), url: '/admin/stat/productSale', pf: 1 },
+      { name: '客户单量', icon: homeIcon('order-volume-2'), url: '/admin/stat/customSale', pf: 1 },
+      { name: '采购统计', icon: homeIcon('stock-in-filled'), url: '/admin/stat/cgStat', pf: 1 },
+      { name: '采购花材', icon: homeIcon('procurement'), url: '/admin/stat/cgItem', pf: 1 },
+      { name: '绿植统计', icon: homeIcon('plant'), url: '/admin/stat/kindLz', pf: 1 },
+      { name: '损耗总览', icon: homeIcon('breakage'), url: '/admin/stat/waste', pf: 1 },
+      { name: '挂账汇总', icon: homeIcon('pay-code'), url: '/admin/custom/showTotalBalance', pf: 1 }
     ]
   },
   {
     title: '生产',
-    titleIcon: homeIcon('花束'),
+    titleIcon: homeIcon('bouquet'),
     actionText: '收起',
     list: [
-      { name: '工作单列表', icon: homeIcon('列表3'), url: '/admin/work/list', pf: 1 },
-      { name: '图文', icon: homeIcon('图文'), url: '/admin/picText/picTextList', pf: 1 },
-      { name: '花材统计', icon: homeIcon('统计-竖状-filled'), url: '/admin/stat/kind', pf: 1 },
-      { name: '员工统计', icon: homeIcon('员工'), url: '/admin/stat/makeStat', pf: 1 },
-      { name: '设置', icon: homeIcon('设置-filled'), url: '/admin/work/set', pf: 1 }
+      { name: '工作单列表', icon: homeIcon('list-3'), url: '/admin/work/list', pf: 1 },
+      { name: '图文', icon: homeIcon('pic-text'), url: '/admin/picText/picTextList', pf: 1 },
+      { name: '花材统计', icon: homeIcon('stats-bar-filled'), url: '/admin/stat/kind', pf: 1 },
+      { name: '员工统计', icon: homeIcon('staff'), url: '/admin/stat/makeStat', pf: 1 },
+      { name: '设置', icon: homeIcon('settings-filled'), url: '/admin/work/set', pf: 1 }
     ]
   }
 ]
 
 //菜单项配置, 用于快速菜单和更多菜单
 export const HOME_MENU_ITEMS = {
-  hsBill: { name: '开单', icon: homeIcon('花束开单'), action: 'goHsKd', pf: 1 },
-  hsQuickBill: { name: '快捷开单', icon: homeIcon('花束快捷开单'), action: 'goHsKjKd', pf: 1 },
-  itemBill: { name: '开单', icon: homeIcon('绿植开单'), action: 'goItemKd', pf: 1 },
-  itemQuickBill: { name: '快捷开单', icon: homeIcon('绿植快捷开单'), action: 'goItemKjKd', pf: 1 },
-  customer: { name: '客户', icon: homeIcon('客户-filled'), url: '/admin/home/member', type: 4, pf: 1 },
-  mall: { name: '商城', icon: homeIcon('商城-filled'), url: '/admin/cg/mall', pf: 1 },
-  itemMall: { name: '商城', icon: homeIcon('商城-filled'), url: '/admin/cg/item', pf: 1 },
-  task: { name: '任务', icon: homeIcon('任务-filled'), url: '/admin/work/list', pf: 1 },
-  //goods: { name: '商品', icon: homeIcon('花束'), url: '/admin/goods/list', pf: 1 },
-  flower: { name: '花束', icon: homeIcon('花束'), url: '/admin/goods/list', pf: 1 },
-  order: { name: '订单', icon: homeIcon('订单-filled'), url: '/admin/home/order', type: 4, pf: 1 },
-  payCode: { name: '收款码', icon: homeIcon('收款码'), url: '/admin/cg/code', pf: 1 },
-  flowerCategory: { name: '分类', icon: homeIcon('分类-filled'), url: '/admin/goods/category', pf: 1 },
-  flowerSort: { name: '排序', icon: homeIcon('排序-filled'), url: '/admin/goods/categorySort', pf: 1 },
-  plant: { name: '绿植花材', icon: homeIcon('绿植花材'), url: '/admin/item/list2', pf: 1 },
-  plantCategory: { name: '分类', icon: homeIcon('分类-filled'), url: '/admin/itemClass/list', pf: 1 },
-  plantSort: { name: '排序', icon: homeIcon('排序-filled'), url: '/admin/itemClass/sort', pf: 1 },
-  part: { name: '拆散', icon: homeIcon('拆散'), url: '/admin/part/list', pf: 1 },
-  changePrice: { name: '改价', icon: homeIcon('改价-filled'), url: '/admin/changePrice/list2', pf: 1 },
-  breakage: { name: '报损', icon: homeIcon('报损'), url: '/admin/breakage/list', pf: 1 },
-  calculator: { name: '计算器', icon: homeIcon('计算器-filled'), url: '/admin/tools/calculator', pf: 1 },
-  staff: { name: '员工', icon: homeIcon('员工'), url: '/admin/staff/list', pf: 1 },
-  profit: { name: '利润表', icon: homeIcon('利润表-filled'), url: '/admin/stat/profit', pf: 1 },
-  picText: { name: '图文', icon: homeIcon('图文'), url: '/admin/picText/picTextList', pf: 1 },
-  scanPay: { name: '收款码流水', icon: homeIcon('收款码流水'), url: '/admin/order/scanPay', pf: 1 },
-  redPacket: { name: '红包管理', icon: homeIcon('红包'), url: '/admin/hb/list', pf: 1 },
+  hsBill: { name: '开单', icon: homeIcon('bouquet-billing'), action: 'goHsKd', pf: 1 },
+  hsQuickBill: { name: '快捷开单', icon: homeIcon('bouquet-quick-billing'), action: 'goHsKjKd', pf: 1 },
+  itemBill: { name: '开单', icon: homeIcon('plant-billing'), action: 'goItemKd', pf: 1 },
+  itemQuickBill: { name: '快捷开单', icon: homeIcon('plant-quick-billing'), action: 'goItemKjKd', pf: 1 },
+  customer: { name: '客户', icon: homeIcon('customer-filled'), url: '/admin/home/member', type: 4, pf: 1 },
+  mall: { name: '商城', icon: homeIcon('mall-filled'), url: '/admin/cg/mall', pf: 1 },
+  itemMall: { name: '商城', icon: homeIcon('mall-filled'), url: '/admin/cg/item', pf: 1 },
+  task: { name: '任务', icon: homeIcon('task-filled'), url: '/admin/work/list', pf: 1 },
+  //goods: { name: '商品', icon: homeIcon('bouquet'), url: '/admin/goods/list', pf: 1 },
+  flower: { name: '花束', icon: homeIcon('bouquet'), url: '/admin/goods/list', pf: 1 },
+  order: { name: '订单', icon: homeIcon('order-filled'), url: '/admin/home/order', type: 4, pf: 1 },
+  payCode: { name: '收款码', icon: homeIcon('pay-code'), url: '/admin/cg/code', pf: 1 },
+  flowerCategory: { name: '分类', icon: homeIcon('category-filled'), url: '/admin/goods/category', pf: 1 },
+  flowerSort: { name: '排序', icon: homeIcon('sort-filled'), url: '/admin/goods/categorySort', pf: 1 },
+  plant: { name: '绿植花材', icon: homeIcon('plant-material'), url: '/admin/item/list2', pf: 1 },
+  plantCategory: { name: '分类', icon: homeIcon('category-filled'), url: '/admin/itemClass/list', pf: 1 },
+  plantSort: { name: '排序', icon: homeIcon('sort-filled'), url: '/admin/itemClass/sort', pf: 1 },
+  part: { name: '拆散', icon: homeIcon('disassemble'), url: '/admin/part/list', pf: 1 },
+  changePrice: { name: '改价', icon: homeIcon('change-price-filled'), url: '/admin/changePrice/list2', pf: 1 },
+  breakage: { name: '报损', icon: homeIcon('breakage'), url: '/admin/breakage/list', pf: 1 },
+  calculator: { name: '计算器', icon: homeIcon('calculator-filled'), url: '/admin/tools/calculator', pf: 1 },
+  staff: { name: '员工', icon: homeIcon('staff'), url: '/admin/staff/list', pf: 1 },
+  profit: { name: '利润表', icon: homeIcon('profit-filled'), url: '/admin/stat/profit', pf: 1 },
+  picText: { name: '图文', icon: homeIcon('pic-text'), url: '/admin/picText/picTextList', pf: 1 },
+  scanPay: { name: '收款码流水', icon: homeIcon('pay-code-flow'), url: '/admin/order/scanPay', pf: 1 },
+  redPacket: { name: '红包管理', icon: homeIcon('red-packet'), url: '/admin/hb/list', pf: 1 },
   //moreApply: { name: '更多', icon: homeIcon('more-2'), url: '/admin/home/apply', pf: 1, fixed: true }
 }
 

+ 69 - 7
hdApp/src/admin/home/mall.vue

@@ -82,7 +82,12 @@
         <view class="home-menu-grid quick-grid">
           <view class="home-menu-item" v-for="item in quickMenuList" :key="item.key" @click="handleMenuTap(item)">
             <view class="home-icon-box">
-              <zui-svg-icon v-if="item.icon" :icon="item.icon" :width="quickIconSize" :height="quickIconSize" />
+              <image
+                v-if="item.icon"
+                class="quick-menu-icon-img"
+                :src="iconSrc(item.icon)"
+                mode="aspectFit"
+              />
             </view>
             <view class="home-menu-text">{{ item.name }}</view>
           </view>
@@ -100,7 +105,12 @@
         <view class="home-menu-grid five-grid">
           <view class="home-menu-item" v-for="item in flowerMenuList" :key="item.key" @click="handleMenuTap(item)">
             <view class="home-icon-box">
-              <zui-svg-icon v-if="item.icon" :icon="item.icon" :width="menuIconSize" :height="menuIconSize" />
+              <image
+                v-if="item.icon"
+                class="home-menu-icon-img"
+                :src="iconSrc(item.icon)"
+                mode="aspectFit"
+              />
             </view>
             <view class="home-menu-text">{{ item.name }}</view>
           </view>
@@ -118,7 +128,12 @@
         <view class="home-menu-grid five-grid">
           <view class="home-menu-item" v-for="item in plantMenuList" :key="item.key" @click="handleMenuTap(item)">
             <view class="home-icon-box">
-              <zui-svg-icon v-if="item.icon" :icon="item.icon" :width="menuIconSize" :height="menuIconSize" />
+              <image
+                v-if="item.icon"
+                class="home-menu-icon-img"
+                :src="iconSrc(item.icon)"
+                mode="aspectFit"
+              />
             </view>
             <view class="home-menu-text">{{ item.name }}</view>
           </view>
@@ -148,7 +163,12 @@
         <view class="home-menu-grid more-grid">
           <view class="home-menu-item" v-for="item in moreMenuList" :key="item.key" @click="handleMenuTap(item)">
             <view class="home-icon-box small-icon-box">
-              <zui-svg-icon v-if="item.icon" :icon="item.icon" :width="moreIconSize" :height="moreIconSize" />
+              <image
+                v-if="item.icon"
+                class="more-menu-icon-img"
+                :src="iconSrc(item.icon)"
+                mode="aspectFit"
+              />
             </view>
             <view class="home-menu-text">{{ item.name }}</view>
           </view>
@@ -171,7 +191,12 @@
       <scroll-view class="editor-scroll" scroll-y>
         <view class="editor-group" v-for="group in editorCatalog" :key="group.title">
           <view class="editor-group-title">
-            <zui-svg-icon v-if="group.titleIcon" :icon="group.titleIcon" :width="editorSectionIconSize" :height="editorSectionIconSize" />
+            <image
+              v-if="group.titleIcon"
+              class="editor-section-icon-img"
+              :src="iconSrc(group.titleIcon)"
+              mode="aspectFit"
+            />
             <text class="editor-group-title-text">{{ group.title }}</text>
           </view>
           <view class="editor-list">
@@ -182,7 +207,12 @@
               :key="item.key"
               @click="toggleEditorItem(item)"
             >
-              <zui-svg-icon v-if="item.icon" :icon="item.icon" :width="editorIconSize" :height="editorIconSize" />
+              <image
+                v-if="item.icon"
+                class="editor-menu-icon-img"
+                :src="iconSrc(item.icon)"
+                mode="aspectFit"
+              />
               <view v-else class="editor-icon empty-editor-icon"></view>
               <view class="editor-name">{{ item.name }}</view>
               <view class="editor-check">{{ isEditorSelected(item) ? '已添加' : '添加' }}</view>
@@ -383,6 +413,9 @@ export default {
     handleMenuTap(item) {
       navigateMenuItem(this, item)
     },
+    iconSrc(icon) {
+      return icon ? `/static/icons/${icon}.svg` : ''
+    },
     scanCode(){
       uni.scanCode({
         onlyFromCamera: false,
@@ -790,6 +823,25 @@ export default {
   box-sizing: border-box;
   padding-top: 10upx;
   padding-bottom: 6upx;
+  line-height: 0;
+}
+
+.quick-menu-icon-img {
+  display: block;
+  width: 68upx;
+  height: 68upx;
+}
+
+.home-menu-icon-img {
+  display: block;
+  width: 64upx;
+  height: 64upx;
+}
+
+.more-menu-icon-img {
+  display: block;
+  width: 44upx;
+  height: 44upx;
 }
 
 .small-icon-box {
@@ -887,6 +939,13 @@ export default {
   margin-left: 12upx;
 }
 
+.editor-section-icon-img {
+  flex-shrink: 0;
+  display: block;
+  width: 48upx;
+  height: 48upx;
+}
+
 .editor-list {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
@@ -920,7 +979,10 @@ export default {
   border-radius: 10upx;
 }
 
-.editor-item zui-svg-icon {
+.editor-menu-icon-img {
+  display: block;
+  width: 40upx;
+  height: 40upx;
   margin-right: 12upx;
 }
 

+ 130 - 61
hdApp/src/admin/home/order.vue

@@ -69,7 +69,7 @@
         <view
           class="order-card"
           v-for="(item, index) in list.data"
-          :key="index"
+          :key="item.id || item.orderSn || index"
           @click="$util.pageTo({ url: '/admin/order/detail', query: { id: item.id } })"
         >
           <view class="card-header">
@@ -84,8 +84,8 @@
               <text class="tag debt-tag" v-if="item.debt == 1">挂账</text>
               <text class="tag refund-tag" v-if="item.refund == 1">有售后</text>
               <view class="status-label">
-                <zui-svg-icon v-if="orderStatusIcon(item)" :icon="orderStatusIcon(item)" :width="22" :height="22" />
-                <text>{{ orderStatusText(item) }}</text>
+                <zui-svg-icon v-if="item._statusIcon" :icon="item._statusIcon" :width="22" :height="22" />
+                <text>{{ item._statusText }}</text>
               </view>
             </view>
           </view>
@@ -100,7 +100,7 @@
               <view class="info-row">
                 <zui-svg-icon :icon="item.sendType == 1 ? 'order-时钟' : 'order-货车'" :width="22" :height="22" />
                 <text class="field-label">{{ item.sendType == 1 ? '取花:' : '配送:' }}</text>
-                <text class="field-value">{{ orderReachText(item) }}</text>
+                <text class="field-value">{{ item._reachText }}</text>
                 <text v-if="item.sendType == 1" class="pickup-tag">到店自取</text>
               </view>
               <view class="info-row">
@@ -116,7 +116,7 @@
               <view class="info-row">
                 <zui-svg-icon icon="order-时钟" :width="22" :height="22" />
                 <text class="field-label">时间:</text>
-                <text class="field-value">{{ shortDateTime(item.addTime) }}</text>
+                <text class="field-value">{{ item._addTimeText }}</text>
               </view>
               <view class="info-row">
                 <zui-svg-icon icon="order-编号" :width="22" :height="22" />
@@ -131,17 +131,17 @@
             </view>
 
             <view class="cover-price">
-              <image class="order-cover" :src="item.cover" mode="aspectFill"></image>
+              <image class="order-cover" :src="item.cover" mode="aspectFill" lazy-load></image>
               <view class="price-wrap">
-                <text v-if="item.sendCost > 0" class="freight-text">运费 ¥{{ formatMoney(item.sendCost) }}</text>
+                <text v-if="item.sendCost > 0" class="freight-text">运费 ¥{{ item._sendCostText }}</text>
                 <view v-if="item.forward == 0" class="price-line">
-                  <text v-if="item.orderPrice == item.actPrice">¥{{ formatMoney(item.orderPrice) }}</text>
+                  <text v-if="item.orderPrice == item.actPrice">¥{{ item._orderPriceText }}</text>
                   <view v-else>
-                    <text class="origin-price">¥{{ formatMoney(item.orderPrice) }}</text>
-                    <text> ¥{{ formatMoney(item.actPrice) }}</text>
+                    <text class="origin-price">¥{{ item._orderPriceText }}</text>
+                    <text> ¥{{ item._actPriceText }}</text>
                   </view>
                 </view>
-                <view v-else class="price-line reverse-price">红冲 -¥{{ formatMoney(item.orderPrice) }}</view>
+                <view v-else class="price-line reverse-price">红冲 -¥{{ item._orderPriceText }}</view>
               </view>
             </view>
           </view>
@@ -159,52 +159,35 @@
           <view class="action-row">
             <view
               class="outline-action"
-              :class="{ disabled: !(item.payStatus == 1 && (item.hasWork == 0 || item.hasWork == 2)) }"
-              @click.stop="item.payStatus == 1 && (item.hasWork == 0 || item.hasWork == 2) ? sendWork(item) : ''"
+              :class="{ disabled: !item._canSendWork }"
+              @click.stop="item._canSendWork ? sendWork(item) : ''"
             >
-              <zui-svg-icon icon="order-铃铛" :width="20" :height="20" :color="item.payStatus == 1 ? '#09C567' : '#b7bfc0'" />
+              <zui-svg-icon icon="order-铃铛" :width="20" :height="20" :color="item._isPaid ? '#09C567' : '#b7bfc0'" />
               <text>通知制作</text>
             </view>
 
-            <block v-if="item.status == 2">
-              <view class="outline-action" v-if="item.sendType == 1" @click.stop="getOrderFn(item)">已取货</view>
-              <view class="outline-action" v-else @click.stop="sendOrderFn(item)">自配送</view>
-            </block>
-            <view class="outline-action" v-if="item.status == 3" @click.stop="confirmReach(item)">确认送达</view>
+            <view class="outline-action" v-if="item._showFetchAction" @click.stop="getOrderFn(item)">已取货</view>
+            <view class="outline-action" v-if="item._showSelfDeliveryAction" @click.stop="sendOrderFn(item)">自配送</view>
+            <view class="outline-action" v-if="item._showConfirmReachAction" @click.stop="confirmReach(item)">确认送达</view>
 
             <view
               class="solid-action"
-              :class="{ disabled: item.payStatus != 1 }"
-              @click.stop="item.payStatus == 1 ? printOrder(item) : ''"
+              :class="{ disabled: !item._isPaid }"
+              @click.stop="item._isPaid ? printOrder(item) : ''"
             >
-              <zui-svg-icon icon="order-打印机" :width="22" :height="22" :color="item.payStatus == 1 ? '#fff' : '#b7bfc0'" />
+              <zui-svg-icon icon="order-打印机" :width="22" :height="22" :color="item._isPaid ? '#fff' : '#b7bfc0'" />
               <text>打印</text>
             </view>
 
-            <block v-if="item.payStatus == 0">
-              <view class="outline-action disabled">
-                <zui-svg-icon icon="home-跑腿-outline" :width="24" :height="24" :color="item.payStatus == 1 ? '#fff' : '#b7bfc0'" />
-                <text>呼叫跑腿</text>
-              </view>
-            </block>
-            <block v-else>
-              <view class="outline-action" v-if="item.sendStatus == -4 && item.status == 2" @click.stop="openExpressPage(item.id)">
-                <zui-svg-icon icon="home-跑腿-outline" :width="24" :height="24" :color="item.payStatus == 1 ? '#09C567' : '#b7bfc0'" />
-                <text>呼叫跑腿</text>
-              </view>
-              <view class="outline-action" v-else-if="[-1, -2].includes(Number(item.sendStatus)) && item.status == 2" @click.stop="openExpressPage(item.id)">
-                <zui-svg-icon icon="home-跑腿-outline" :width="24" :height="24" :color="item.payStatus == 1 ? '#09C567' : '#b7bfc0'" />
-                <text>重叫跑腿</text>
-              </view>
-              <view class="outline-action disabled" v-else-if="item.sendStatus == 5">
-                <zui-svg-icon icon="home-跑腿-outline" :width="24" :height="24" :color="item.payStatus == 1 ? '#09C567' : '#b7bfc0'" />
-                <text>跑腿完成</text>
-              </view>
-              <view class="outline-action disabled" v-else-if="[0, 1, 2, 3, 4, 10, 20, 30].includes(Number(item.sendStatus)) && item.payStatus == 1">
-                <zui-svg-icon icon="home-跑腿-outline" :width="24" :height="24" :color="item.payStatus == 1 ? '#09C567' : '#b7bfc0'" />
-                <text>已发跑腿</text>
-              </view>
-            </block>
+            <view
+              v-if="item._expressText"
+              class="outline-action"
+              :class="{ disabled: item._expressDisabled }"
+              @click.stop="item._expressDisabled ? '' : openExpressPage(item.id)"
+            >
+              <zui-svg-icon icon="home-跑腿-outline" :width="24" :height="24" :color="item._expressIconColor" />
+              <text>{{ item._expressText }}</text>
+            </view>
           </view>
         </view>
       </block>
@@ -276,6 +259,30 @@ import DateSelect from "@/components/module/dateSelect";
 import { getList } from "@/api/member";
 import { needWork } from "@/api/work";
 
+const ORDER_STATUS_TEXT_MAP = {
+  1: "待付款",
+  2: "待发货",
+  3: "配送中",
+  4: "已完成",
+  5: "已取消"
+};
+
+const RETRY_EXPRESS_STATUS_MAP = {
+  "-1": true,
+  "-2": true
+};
+
+const SENT_EXPRESS_STATUS_MAP = {
+  0: true,
+  1: true,
+  2: true,
+  3: true,
+  4: true,
+  10: true,
+  20: true,
+  30: true
+};
+
 export default {
   name: "order",
   components: {
@@ -309,6 +316,7 @@ export default {
       searchStyle: 0,
       searchText: "",
       lastSearchText: "",
+      orderListRequestId: 0,
       showFilterPanel: false,
       repeatOptions: [
         { label: "全部", value: -1 },
@@ -455,6 +463,7 @@ export default {
         needWork({ id: item.id }).then(res => {
           if (res.code == 1) {
             item.hasWork = 1;
+            this.prepareOrderItem(item);
             this.$msg(res.msg);
           }
         });
@@ -534,12 +543,12 @@ export default {
       });
     },
     getOrderList () {
-      let status = JSON.parse(JSON.stringify(this.tabIndex));
+      const requestId = ++this.orderListRequestId;
       return getListB({
         searchTime: this.searchTime,
         startTime: this.startTime,
         endTime: this.endTime,
-        status: status,
+        status: this.tabIndex,
         shopAdminId: this.shopAdminId,
         searchText: this.searchText,
         page: this.list.page,
@@ -547,15 +556,21 @@ export default {
         repeat: this.repeat,
         searchStyle: this.searchStyle
       }).then(res => {
+        if (requestId !== this.orderListRequestId) {
+          return false;
+        }
+        this.prepareOrderList(res);
         this.completes(res);
         if (this.$util.isEmpty(res.data)) {
           return false;
         }
-        this.tabs[0].value = Number(res.data.all || 0);
-        this.tabs[1].value = Number(res.data.waitPay || res.data.unPay || 0);
-        this.tabs[2].value = Number(res.data.waitSend || res.data.unSend || 0);
-        this.tabs[3].value = Number(res.data.sending || 0);
-        this.tabs[4].value = Number(res.data.complete || res.data.completed || 0);
+        this.tabs = [
+          { name: "全部", value: Number(res.data.all || 0) },
+          { name: "待付款", value: Number(res.data.waitPay || res.data.unPay || 0) },
+          { name: "待发货", value: Number(res.data.waitSend || res.data.unSend || 0) },
+          { name: "配送中", value: Number(res.data.sending || 0) },
+          { name: "已完成", value: Number(res.data.complete || res.data.completed || 0) }
+        ];
       });
     },
     change (e) {
@@ -572,6 +587,7 @@ export default {
         if (item) {
           item.status = orderStatus;
           item.sendStatus = Number(sendStatus);
+          this.prepareOrderItem(item);
         }
       }
     },
@@ -591,18 +607,71 @@ export default {
     selectExpress (orderId) {
       this.$util.pageTo({ url: "/admin/express/success", query: { orderId: orderId } });
     },
+    prepareOrderList (res) {
+      if (!res || !res.data) {
+        return;
+      }
+      const listKeys = ["list", "data"];
+      for (let i = 0; i < listKeys.length; i++) {
+        const key = listKeys[i];
+        if (Array.isArray(res.data[key])) {
+          res.data[key] = res.data[key].map(item => this.prepareOrderItem(item));
+          return;
+        }
+      }
+    },
+    prepareOrderItem (item) {
+      if (!item) {
+        return item;
+      }
+      const status = Number(item.status);
+      const sendType = Number(item.sendType);
+      const sendStatus = Number(item.sendStatus);
+      const isPaid = Number(item.payStatus) === 1;
+      const express = this.getExpressMeta(status, sendStatus, isPaid);
+
+      Object.assign(item, {
+        _statusText: this.orderStatusText(item),
+        _statusIcon: this.orderStatusIcon(item),
+        _reachText: this.orderReachText(item),
+        _addTimeText: this.shortDateTime(item.addTime),
+        _sendCostText: this.formatMoney(item.sendCost),
+        _orderPriceText: this.formatMoney(item.orderPrice),
+        _actPriceText: this.formatMoney(item.actPrice),
+        _isPaid: isPaid,
+        _canSendWork: isPaid && (Number(item.hasWork) === 0 || Number(item.hasWork) === 2),
+        _showFetchAction: status === 2 && sendType === 1,
+        _showSelfDeliveryAction: status === 2 && sendType !== 1,
+        _showConfirmReachAction: status === 3,
+        _expressText: express.text,
+        _expressDisabled: express.disabled,
+        _expressIconColor: express.iconColor
+      });
+      return item;
+    },
+    getExpressMeta (status, sendStatus, isPaid) {
+      if (!isPaid) {
+        return { text: "呼叫跑腿", disabled: true, iconColor: "#b7bfc0" };
+      }
+      if (sendStatus === -4 && status === 2) {
+        return { text: "呼叫跑腿", disabled: false, iconColor: "#09C567" };
+      }
+      if (RETRY_EXPRESS_STATUS_MAP[sendStatus] && status === 2) {
+        return { text: "重叫跑腿", disabled: false, iconColor: "#09C567" };
+      }
+      if (sendStatus === 5) {
+        return { text: "跑腿完成", disabled: true, iconColor: "#09C567" };
+      }
+      if (SENT_EXPRESS_STATUS_MAP[sendStatus]) {
+        return { text: "已发跑腿", disabled: true, iconColor: "#09C567" };
+      }
+      return { text: "", disabled: true, iconColor: "#09C567" };
+    },
     orderStatusText (item) {
       if (item.status == 2 && item.sendType == 1) {
         return "待取货";
       }
-      const statusMap = {
-        1: "待付款",
-        2: "待发货",
-        3: "配送中",
-        4: "已完成",
-        5: "已取消"
-      };
-      return statusMap[Number(item.status)] || "";
+      return ORDER_STATUS_TEXT_MAP[Number(item.status)] || "";
     },
     orderStatusIcon (item) {
       if (Number(item.status) == 4) {

+ 0 - 0
hdApp/src/assets/svg-icons/home/收款码.svg → hdApp/src/assets/svg-icons/home/home-收款码.svg


+ 10 - 10
hdApp/src/pages.json

@@ -627,32 +627,32 @@
 		"list": [
 			{
 				"pagePath": "admin/home/workbench",
-				"iconPath": "static/images/home/进货-outline.png",
-				"selectedIconPath": "static/images/home/进货-filled.png",
+				"iconPath": "static/images/home/stock-in-outline.png",
+				"selectedIconPath": "static/images/home/stock-in-filled.png",
 				"text": "进货"
 			},
 			{
 				"pagePath": "admin/home/mall",
-				"iconPath": "static/images/home/店铺-outline.png",
-				"selectedIconPath": "static/images/home/店铺-filled.png",
+				"iconPath": "static/images/home/shop-outline.png",
+				"selectedIconPath": "static/images/home/shop-filled.png",
 				"text": "店铺"
 			},
 			{
 				"pagePath": "admin/home/order",
-				"iconPath": "static/images/home/订单-outline.png",
-				"selectedIconPath": "static/images/home/订单-filled.png",
+				"iconPath": "static/images/home/order-outline.png",
+				"selectedIconPath": "static/images/home/order-filled.png",
 				"text": "订单"
 			},
 			{
 				"pagePath": "admin/home/member",
-				"iconPath": "static/images/home/客户-outline.png",
-				"selectedIconPath": "static/images/home/客户-filled.png",
+				"iconPath": "static/images/home/customer-outline.png",
+				"selectedIconPath": "static/images/home/customer-filled.png",
 				"text": "客户"
 			},
 			{
 				"pagePath": "admin/home/me",
-				"iconPath": "static/images/home/我的-outline.png",
-				"selectedIconPath": "static/images/home/我的-filled.png",
+				"iconPath": "static/images/home/my-outline.png",
+				"selectedIconPath": "static/images/home/my-filled.png",
 				"text": "我的"
 			}
 		]

+ 0 - 0
hdApp/src/assets/svg-icons/home/新增花束.svg → hdApp/src/static/icons/add-bouquet.svg


+ 1 - 0
hdApp/src/static/icons/address.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1758012649989" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10502" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512 64c-175.8 0-318.3 134.6-318.3 300.5 0 222.9 195.5 430.8 280.1 510.3 21.3 20.1 55.7 20.3 77.4 0.6 85.1-77.2 279.2-278.7 279.2-510.9C830.3 198.6 687.8 64 512 64z m0 401.1c-56.9 0-103.1-46.2-103.1-103.1S455.1 258.9 512 258.9c56.9 0 103.1 46.2 103.1 103.1S568.9 465.1 512 465.1z" p-id="10503"></path><path d="M364.5 926.5a147.5 21.5 0 1 0 295 0 147.5 21.5 0 1 0-295 0Z" p-id="10504"></path></svg>

+ 0 - 0
hdApp/src/assets/svg-icons/home/调拨入库.svg → hdApp/src/static/icons/allot-in.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/调拨出库.svg → hdApp/src/static/icons/allot-out.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/花束开单.svg → hdApp/src/static/icons/bouquet-billing.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/花束快捷开单.svg → hdApp/src/static/icons/bouquet-quick-billing.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/花束.svg → hdApp/src/static/icons/bouquet.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/报损.svg → hdApp/src/static/icons/breakage.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/计算器-filled.svg → hdApp/src/static/icons/calculator-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/计算器-outline.svg → hdApp/src/static/icons/calculator-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/分类-filled.svg → hdApp/src/static/icons/category-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/分类-outline.svg → hdApp/src/static/icons/category-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/改价-filled.svg → hdApp/src/static/icons/change-price-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/改价-outline.svg → hdApp/src/static/icons/change-price-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/改价-tag.svg → hdApp/src/static/icons/change-price-tag.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/客户-filled.svg → hdApp/src/static/icons/customer-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/客户-outline.svg → hdApp/src/static/icons/customer-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/跑腿-outline.svg → hdApp/src/static/icons/delivery-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/跑腿.svg → hdApp/src/static/icons/delivery.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/拆散.svg → hdApp/src/static/icons/disassemble.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/失信人员.svg → hdApp/src/static/icons/dishonest-person.svg


File diff suppressed because it is too large
+ 0 - 0
hdApp/src/static/icons/flour.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/盘点.svg → hdApp/src/static/icons/inventory.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/列表-2.svg → hdApp/src/static/icons/list-2.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/列表3.svg → hdApp/src/static/icons/list-3.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/列表.svg → hdApp/src/static/icons/list.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/商城-filled.svg → hdApp/src/static/icons/mall-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/商城-outline.svg → hdApp/src/static/icons/mall-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/会员等级.svg → hdApp/src/static/icons/member-level.svg


+ 1 - 0
hdApp/src/static/icons/message.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1756353563597" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="36986" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512 68.267c-243.95 0-443.733 169.813-443.733 382.293l0.068 6.639c2.833 143.445 97.724 270.438 241.408 333.79l4.779 2.048V921.6l0.102 2.611c1.894 26.505 32.768 41.063 54.545 24.662l154.42-116.156 3.003-0.068C763.87 826.044 955.733 658.79 955.733 450.56c0-212.48-199.782-382.293-443.733-382.293z m0 68.266c208.486 0 375.467 141.927 375.467 314.027S720.487 764.587 512 764.587l-3.157 0.153a34.133 34.133 0 0 0-17.357 6.707L382.788 853.18v-83.251A34.133 34.133 0 0 0 360.5 737.91C224.94 687.735 136.533 575.317 136.533 450.56c0-172.1 166.98-314.027 375.467-314.027z" fill="#2C2C2C" p-id="36987"></path><path d="M290.133 477.867a34.133 34.133 0 0 1 30.345 18.5l-1.621-2.424c38.126 58.778 95.897 92.826 165.512 94.72l6.161 0.086v68.266c-93.867 0-173.687-44.373-225.382-120.541l-3.567-5.36 0.17-0.119a34.133 34.133 0 0 1 28.382-53.128z" fill="#2C2C2C" p-id="36988"></path></svg>

+ 1 - 0
hdApp/src/static/icons/more-2.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1758013331870" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16231" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M682.666667 577.6384h236.305066C988.9792 577.6384 1024 612.6592 1024 682.666667v236.305066C1024 988.9792 988.9792 1024 918.971733 1024H682.666667c-70.007467 0-105.028267-35.0208-105.028267-105.028267V682.666667c0-70.007467 35.0208-105.028267 105.028267-105.028267zM105.028267 0H341.333333c70.007467 0 105.028267 35.0208 105.028267 105.028267V341.333333c0 70.007467-35.0208 105.028267-105.028267 105.028267H105.028267C35.0208 446.3616 0 411.3408 0 341.333333V105.028267C0 35.0208 35.0208 0 105.028267 0z m0 577.6384H341.333333c70.007467 0 105.028267 35.0208 105.028267 105.028267v236.305066C446.3616 988.9792 411.3408 1024 341.333333 1024H105.028267C35.0208 1024 0 988.9792 0 918.971733V682.666667c0-70.007467 35.0208-105.028267 105.028267-105.028267z m620.9536-156.228267c34.133333 34.133333 87.9616 34.133333 122.094933 0l136.533333-137.8304c34.133333-34.133333 34.133333-87.9616 0-122.094933l-136.533333-136.533333c-32.802133-32.836267-87.9616-32.836267-120.832 0l-137.796267 136.533333c-34.133333 34.133333-34.133333 87.9616 0 122.094933l136.533334 137.8304z" fill="#38BFD4" p-id="16232"></path></svg>

+ 1 - 0
hdApp/src/static/icons/more.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1758013104896" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15229" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M323.8912 131.072a51.2 51.2 0 0 1 71.4752-72.8064l6.5536 6.4512L753.664 478.8224a51.2 51.2 0 0 1 5.12 59.1872l-5.4272 7.5776-351.744 405.0944A51.2 51.2 0 0 1 318.8736 890.88l5.4272-7.4752 322.7648-371.9168L323.8912 131.072z" fill="#000000" fill-opacity=".45" p-id="15230"></path></svg>

+ 0 - 0
hdApp/src/assets/svg-icons/home/我的-filled.svg → hdApp/src/static/icons/my-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/我的-outline.svg → hdApp/src/static/icons/my-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/订单-filled.svg → hdApp/src/static/icons/order-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/订单-outline.svg → hdApp/src/static/icons/order-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/单量-2.svg → hdApp/src/static/icons/order-volume-2.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/单量.svg → hdApp/src/static/icons/order-volume.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/收款码流水.svg → hdApp/src/static/icons/pay-code-flow.svg


+ 1 - 0
hdApp/src/static/icons/pay-code.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1778842318737" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4864" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M465.74592 534.0672a20.48 20.48 0 0 1 20.48 20.48v312.14592a20.48 20.48 0 0 1-20.48 20.48H153.6a20.48 20.48 0 0 1-20.48-20.48V554.5472a20.48 20.48 0 0 1 20.48-20.48h312.14592z m293.49376 0v133.75488h61.44V534.0672h51.13344a20.48 20.48 0 0 1 20.48 20.48V742.4h-221.68064v-49.4336h-61.44v194.2016h-49.50528a20.48 20.48 0 0 1-20.48-20.48V554.5472a20.48 20.48 0 0 1 20.48-20.48h199.5776zM750.4128 803.84v83.328h-79.80032V803.84h79.80032z m141.8752 0v62.85312a20.48 20.48 0 0 1-20.48 20.48h-59.9552v-83.33824h80.4352z m-477.7472-198.0928H204.8v209.74592h209.74592V605.7472z m-104.86784 60.73344a44.1344 44.1344 0 1 1 0 88.27904 44.1344 44.1344 0 0 1 0-88.27904zM465.74592 128a20.48 20.48 0 0 1 20.48 20.48v312.14592a20.48 20.48 0 0 1-20.48 20.48H153.6a20.48 20.48 0 0 1-20.48-20.48V148.48a20.48 20.48 0 0 1 20.48-20.48h312.14592z m406.0672 0a20.48 20.48 0 0 1 20.48 20.48v312.14592a20.48 20.48 0 0 1-20.48 20.48H559.6672a20.48 20.48 0 0 1-20.48-20.48V148.48a20.48 20.48 0 0 1 20.48-20.48h312.14592z m-457.2672 71.68H204.8v209.74592h209.74592V199.68z m406.0672 0H610.8672v209.74592h209.74592V199.68zM309.67296 260.41344a44.1344 44.1344 0 1 1 0 88.27392 44.1344 44.1344 0 0 1 0-88.2688z m406.0672 0a44.1344 44.1344 0 1 1 0 88.27392 44.1344 44.1344 0 0 1 0-88.2688z" fill="#09C567" p-id="4865"></path></svg>

+ 0 - 0
hdApp/src/assets/svg-icons/home/图文.svg → hdApp/src/static/icons/pic-text.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/绿植-2.svg → hdApp/src/static/icons/plant-2.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/绿植开单.svg → hdApp/src/static/icons/plant-billing.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/绿植花材.svg → hdApp/src/static/icons/plant-material.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/绿植快捷开单.svg → hdApp/src/static/icons/plant-quick-billing.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/绿植.svg → hdApp/src/static/icons/plant.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/涨价设置.svg → hdApp/src/static/icons/price-increase.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/打印设置.svg → hdApp/src/static/icons/print-settings.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/采购.svg → hdApp/src/static/icons/procurement.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/利润表-filled.svg → hdApp/src/static/icons/profit-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/利润表-outline.svg → hdApp/src/static/icons/profit-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/购买记录.svg → hdApp/src/static/icons/purchase-record.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/快捷开单-圆.svg → hdApp/src/static/icons/quick-billing-circle.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/快捷开单.svg → hdApp/src/static/icons/quick-billing.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/充值.svg → hdApp/src/static/icons/recharge.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/红包.svg → hdApp/src/static/icons/red-packet.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/设置-filled.svg → hdApp/src/static/icons/settings-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/店铺-filled.svg → hdApp/src/static/icons/shop-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/店铺-outline.svg → hdApp/src/static/icons/shop-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/排序-filled.svg → hdApp/src/static/icons/sort-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/排序-outline.svg → hdApp/src/static/icons/sort-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/声音_filled.svg → hdApp/src/static/icons/sound-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/员工业绩.svg → hdApp/src/static/icons/staff-performance.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/员工.svg → hdApp/src/static/icons/staff.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/统计-2.svg → hdApp/src/static/icons/stats-2.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/统计-竖状-filled.svg → hdApp/src/static/icons/stats-bar-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/统计-竖状-outline.svg → hdApp/src/static/icons/stats-bar-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/统计-饼状-filled.svg → hdApp/src/static/icons/stats-pie-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/统计-饼状-outline.svg → hdApp/src/static/icons/stats-pie-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/统计.svg → hdApp/src/static/icons/stats.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/进货-filled.svg → hdApp/src/static/icons/stock-in-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/进货-outline.svg → hdApp/src/static/icons/stock-in-outline.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/库存预警.svg → hdApp/src/static/icons/stock-warning.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/门店-2.svg → hdApp/src/static/icons/store-2.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/门店-3.svg → hdApp/src/static/icons/store-3.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/门店删除.svg → hdApp/src/static/icons/store-delete.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/门店.svg → hdApp/src/static/icons/store.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/任务-filled.svg → hdApp/src/static/icons/task-filled.svg


+ 0 - 0
hdApp/src/assets/svg-icons/home/任务-outline.svg → hdApp/src/static/icons/task-outline.svg


+ 0 - 0
hdApp/src/static/images/home/客户-filled.png → hdApp/src/static/images/home/customer-filled.png


+ 0 - 0
hdApp/src/static/images/home/客户-outline.png → hdApp/src/static/images/home/customer-outline.png


+ 0 - 0
hdApp/src/static/images/home/我的-filled.png → hdApp/src/static/images/home/my-filled.png


+ 0 - 0
hdApp/src/static/images/home/我的-outline.png → hdApp/src/static/images/home/my-outline.png


+ 0 - 0
hdApp/src/static/images/home/订单-filled.png → hdApp/src/static/images/home/order-filled.png


+ 0 - 0
hdApp/src/static/images/home/订单-outline.png → hdApp/src/static/images/home/order-outline.png


+ 0 - 0
hdApp/src/static/images/home/店铺-filled.png → hdApp/src/static/images/home/shop-filled.png


+ 0 - 0
hdApp/src/static/images/home/店铺-outline.png → hdApp/src/static/images/home/shop-outline.png


+ 0 - 0
hdApp/src/static/images/home/进货-filled.png → hdApp/src/static/images/home/stock-in-filled.png


+ 0 - 0
hdApp/src/static/images/home/进货-outline.png → hdApp/src/static/images/home/stock-in-outline.png


File diff suppressed because it is too large
+ 1 - 1
hdApp/src/static/svg-icons-lib.js


Some files were not shown because too many files changed in this diff