Browse Source

Merge branch 'master' of http://192.168.123.2:3000/ck/XiuXianGame

# Conflicts:
#	Assets/StreamingAssets/assetConfig.txt   resolved by master version
DESKTOP-FB72PO8\Administrator 1 ngày trước cách đây
mục cha
commit
3e018b7ec1

+ 13 - 1192
Assets/Res/Config/ShopConfig.json

@@ -2,1209 +2,30 @@
   "configList": [
     {
       "ID": 1,
-      "shopName": 169,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Coin"
-      ],
       "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 1,
+      "shopItemGroup": 1,
       "pageSortNum": 1,
-      "continueTime": -1
+      "RefreshType": 1,
+      "refreshCostItemId": -1,
+      "refreshLimit": -1
     },
     {
       "ID": 2,
-      "shopName": 170,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Coins_s"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 2,
-      "pageSortNum": 2,
-      "continueTime": -1
-    },
-    {
-      "ID": 3,
-      "shopName": 171,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Gem_Star_Blue"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 3,
-      "pageSortNum": 3,
-      "continueTime": -1
-    },
-    {
-      "ID": 4,
-      "shopName": 248,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Demo_Gem04"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 4,
-      "pageSortNum": 4,
-      "continueTime": -1
-    },
-    {
-      "ID": 5,
-      "shopName": 725,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Master"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 5,
-      "pageSortNum": 5,
-      "continueTime": -1
-    },
-    {
-      "ID": 6,
-      "shopName": 1400,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Challenger"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 6,
-      "pageSortNum": 6,
-      "continueTime": -1
-    },
-    {
-      "ID": 7,
-      "shopName": 268,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Gem_Star_Blue"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 7,
-      "pageSortNum": 7,
-      "continueTime": -1
-    },
-    {
-      "ID": 8,
-      "shopName": 269,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Demo_Gem04"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 8,
-      "pageSortNum": 8,
-      "continueTime": -1
-    },
-    {
-      "ID": 9,
-      "shopName": 270,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Master"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 9,
-      "pageSortNum": 9,
-      "continueTime": -1
-    },
-    {
-      "ID": 10,
-      "shopName": 271,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Challenger"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 10,
-      "pageSortNum": 10,
-      "continueTime": -1
-    },
-    {
-      "ID": 11,
-      "shopName": 3194,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Coin"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 11,
-      "pageSortNum": 11,
-      "continueTime": -1
-    },
-    {
-      "ID": 12,
-      "shopName": 3195,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Coins_s"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 12,
-      "pageSortNum": 12,
-      "continueTime": -1
-    },
-    {
-      "ID": 13,
-      "shopName": 3196,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Gem_Star_Blue"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 13,
-      "pageSortNum": 13,
-      "continueTime": -1
-    },
-    {
-      "ID": 14,
-      "shopName": 3197,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Demo_Gem04"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 14,
-      "pageSortNum": 14,
-      "continueTime": -1
-    },
-    {
-      "ID": 15,
-      "shopName": 3198,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Master"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 15,
-      "pageSortNum": 15,
-      "continueTime": -1
-    },
-    {
-      "ID": 16,
-      "shopName": 3199,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Challenger"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 16,
-      "pageSortNum": 16,
-      "continueTime": -1
-    },
-    {
-      "ID": 17,
-      "shopName": 3200,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Gem_Star_Blue"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 17,
-      "pageSortNum": 17,
-      "continueTime": -1
-    },
-    {
-      "ID": 18,
-      "shopName": 3201,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_Demo_Gem04"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 18,
-      "pageSortNum": 18,
-      "continueTime": -1
-    },
-    {
-      "ID": 19,
-      "shopName": 3202,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Master"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 19,
-      "pageSortNum": 19,
-      "continueTime": -1
-    },
-    {
-      "ID": 20,
-      "shopName": 3203,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Challenger"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 20,
-      "pageSortNum": 20,
-      "continueTime": -1
-    },
-    {
-      "ID": 21,
-      "shopName": 3204,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Challenger"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 21,
-      "pageSortNum": 21,
-      "continueTime": -1
-    },
-    {
-      "ID": 22,
-      "shopName": 3205,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Challenger"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 22,
-      "pageSortNum": 22,
-      "continueTime": -1
-    },
-    {
-      "ID": 23,
-      "shopName": 3206,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_GradeBadge_Challenger"
-      ],
-      "shopGroup": 1,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 23,
-      "pageSortNum": 23,
-      "continueTime": -1
-    },
-    {
-      "ID": 101,
-      "shopName": 300,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 101,
-      "pageSortNum": 1,
-      "continueTime": -1
-    },
-    {
-      "ID": 102,
-      "shopName": 301,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 102,
-      "pageSortNum": 2,
-      "continueTime": -1
-    },
-    {
-      "ID": 103,
-      "shopName": 302,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 103,
-      "pageSortNum": 3,
-      "continueTime": -1
-    },
-    {
-      "ID": 104,
-      "shopName": 303,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 104,
-      "pageSortNum": 4,
-      "continueTime": -1
-    },
-    {
-      "ID": 105,
-      "shopName": 304,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 105,
-      "pageSortNum": 5,
-      "continueTime": -1
-    },
-    {
-      "ID": 106,
-      "shopName": 305,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 106,
-      "pageSortNum": 6,
-      "continueTime": -1
-    },
-    {
-      "ID": 107,
-      "shopName": 306,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 107,
-      "pageSortNum": 7,
-      "continueTime": -1
-    },
-    {
-      "ID": 108,
-      "shopName": 307,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 108,
-      "pageSortNum": 8,
-      "continueTime": -1
-    },
-    {
-      "ID": 109,
-      "shopName": 1408,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 109,
-      "pageSortNum": 9,
-      "continueTime": -1
-    },
-    {
-      "ID": 110,
-      "shopName": 1409,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
-      "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 110,
-      "pageSortNum": 10,
-      "continueTime": -1
-    },
-    {
-      "ID": 111,
-      "shopName": 1410,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_eq_3_4_3"
-      ],
       "shopGroup": 2,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 111,
-      "pageSortNum": 11,
-      "continueTime": -1
-    },
-    {
-      "ID": 201,
-      "shopName": 1600,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 201,
-      "pageSortNum": 1,
-      "continueTime": -1
-    },
-    {
-      "ID": 202,
-      "shopName": 1601,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 202,
+      "shopItemGroup": 2,
       "pageSortNum": 2,
-      "continueTime": -1
+      "RefreshType": 1,
+      "refreshCostItemId": -1,
+      "refreshLimit": -1
     },
     {
-      "ID": 203,
-      "shopName": 1602,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
+      "ID": 3,
       "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 203,
+      "shopItemGroup": 3,
       "pageSortNum": 3,
-      "continueTime": -1
-    },
-    {
-      "ID": 204,
-      "shopName": 1603,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 204,
-      "pageSortNum": 4,
-      "continueTime": -1
-    },
-    {
-      "ID": 205,
-      "shopName": 1604,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 205,
-      "pageSortNum": 5,
-      "continueTime": -1
-    },
-    {
-      "ID": 206,
-      "shopName": 1605,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 206,
-      "pageSortNum": 6,
-      "continueTime": -1
-    },
-    {
-      "ID": 207,
-      "shopName": 1606,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 207,
-      "pageSortNum": 7,
-      "continueTime": -1
-    },
-    {
-      "ID": 208,
-      "shopName": 1607,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 208,
-      "pageSortNum": 8,
-      "continueTime": -1
-    },
-    {
-      "ID": 209,
-      "shopName": 1608,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 209,
-      "pageSortNum": 9,
-      "continueTime": -1
-    },
-    {
-      "ID": 210,
-      "shopName": 1609,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 210,
-      "pageSortNum": 10,
-      "continueTime": -1
-    },
-    {
-      "ID": 211,
-      "shopName": 1610,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 211,
-      "pageSortNum": 11,
-      "continueTime": -1
-    },
-    {
-      "ID": 212,
-      "shopName": 1611,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 212,
-      "pageSortNum": 12,
-      "continueTime": -1
-    },
-    {
-      "ID": 213,
-      "shopName": 1612,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 213,
-      "pageSortNum": 13,
-      "continueTime": -1
-    },
-    {
-      "ID": 214,
-      "shopName": 1613,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 214,
-      "pageSortNum": 14,
-      "continueTime": -1
-    },
-    {
-      "ID": 215,
-      "shopName": 1614,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 215,
-      "pageSortNum": 15,
-      "continueTime": -1
-    },
-    {
-      "ID": 216,
-      "shopName": 1615,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 216,
-      "pageSortNum": 16,
-      "continueTime": -1
-    },
-    {
-      "ID": 217,
-      "shopName": 1616,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 217,
-      "pageSortNum": 17,
-      "continueTime": -1
-    },
-    {
-      "ID": 218,
-      "shopName": 1617,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 218,
-      "pageSortNum": 18,
-      "continueTime": -1
-    },
-    {
-      "ID": 219,
-      "shopName": 1618,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 219,
-      "pageSortNum": 19,
-      "continueTime": -1
-    },
-    {
-      "ID": 220,
-      "shopName": 1619,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 220,
-      "pageSortNum": 20,
-      "continueTime": -1
-    },
-    {
-      "ID": 221,
-      "shopName": 1620,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 221,
-      "pageSortNum": 21,
-      "continueTime": -1
-    },
-    {
-      "ID": 222,
-      "shopName": 1621,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 222,
-      "pageSortNum": 22,
-      "continueTime": -1
-    },
-    {
-      "ID": 223,
-      "shopName": 1622,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 223,
-      "pageSortNum": 23,
-      "continueTime": -1
-    },
-    {
-      "ID": 224,
-      "shopName": 1623,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 224,
-      "pageSortNum": 24,
-      "continueTime": -1
-    },
-    {
-      "ID": 225,
-      "shopName": 1624,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 225,
-      "pageSortNum": 25,
-      "continueTime": -1
-    },
-    {
-      "ID": 226,
-      "shopName": 1625,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 226,
-      "pageSortNum": 26,
-      "continueTime": -1
-    },
-    {
-      "ID": 227,
-      "shopName": 1626,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 227,
-      "pageSortNum": 27,
-      "continueTime": -1
-    },
-    {
-      "ID": 228,
-      "shopName": 1627,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 228,
-      "pageSortNum": 28,
-      "continueTime": -1
-    },
-    {
-      "ID": 229,
-      "shopName": 1628,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 229,
-      "pageSortNum": 29,
-      "continueTime": -1
-    },
-    {
-      "ID": 230,
-      "shopName": 1629,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 230,
-      "pageSortNum": 30,
-      "continueTime": -1
-    },
-    {
-      "ID": 231,
-      "shopName": 1630,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 231,
-      "pageSortNum": 31,
-      "continueTime": -1
-    },
-    {
-      "ID": 232,
-      "shopName": 1631,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 232,
-      "pageSortNum": 32,
-      "continueTime": -1
-    },
-    {
-      "ID": 233,
-      "shopName": 1632,
-      "shopDesc": null,
-      "shopShowTemplate": 3,
-      "shopShowTemplateParm": [
-        "icon_item_Gear_Boots"
-      ],
-      "shopGroup": 3,
-      "unlockType": 0,
-      "unlockValue": [
-        0
-      ],
-      "unlockMessage": 0,
-      "shopItemID": 233,
-      "pageSortNum": 33,
-      "continueTime": -1
+      "RefreshType": 1,
+      "refreshCostItemId": -1,
+      "refreshLimit": -1
     }
   ]
 }

+ 3 - 15
Assets/Res/Config/ShopGroupConfig.json

@@ -2,27 +2,15 @@
   "configList": [
     {
       "ID": 1,
-      "sortNum": 1,
-      "shopName": 1900,
-      "RefreshType": 1,
-      "refreshCostItemId": -1,
-      "refreshLimit": -1
+      "shopName": 1900
     },
     {
       "ID": 2,
-      "sortNum": 2,
-      "shopName": 1904,
-      "RefreshType": 1,
-      "refreshCostItemId": -1,
-      "refreshLimit": -1
+      "shopName": 1904
     },
     {
       "ID": 3,
-      "sortNum": 3,
-      "shopName": 1905,
-      "RefreshType": 1,
-      "refreshCostItemId": -1,
-      "refreshLimit": -1
+      "shopName": 1905
     }
   ]
 }

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 531 - 59
Assets/Res/Config/ShopItemConfig.json


+ 296 - 0
Assets/Res/UI/ShopPanel/ShopBtnWidget.prefab

@@ -0,0 +1,296 @@
+%YAML 1.1
+%TAG !u! tag:yousandi.cn,2023:
+--- !u!1 &910660254783983298
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 6808499670976233397}
+  - component: {fileID: 6727951427968558837}
+  - component: {fileID: 4024400328895307312}
+  - component: {fileID: 3844985566212302591}
+  - component: {fileID: 4461412605857524956}
+  - component: {fileID: 722437814468193619}
+  - component: {fileID: 9027247075650066786}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: ShopBtnWidget
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6808499670976233397
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 910660254783983298}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 8364157556936206636}
+  m_Father: {fileID: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 2.2000122, y: -5.299988}
+  m_SizeDelta: {x: 122.5027, y: 69.178}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &6727951427968558837
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 910660254783983298}
+  m_CullTransparentMesh: 1
+--- !u!114 &4024400328895307312
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 910660254783983298}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3c247620ca3a1fd4ab2a2f3a5b287e07, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.9921569, g: 0.9803922, b: 0.9607844, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+  _icon_name: dec_xuanzhong
+  isNotLoadDeftIcon: 0
+  CurrSpriteAtlas: {fileID: 100100200, guid: ec7ecef974a85f145b7ba1bd986de220, type: 3}
+  packInfo:
+    packName: gongfa
+    packgJsonPath: /Art/UIAssets/TextrueJson\gongfa.txt
+    packgSpritePath: Assets/Res/UIAtlas/gongfa.spriteatlasv2
+    lasetJsonGUID: 6f6d3dad490d22d3028cfa941e8122a5
+  imageH: 96
+  useGradient: 0
+  topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
+  bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
+  direction: 0
+--- !u!114 &3844985566212302591
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 910660254783983298}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ef7878ea2dacc454894d556c1d97bca0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - StateInfos:
+    - Target: {fileID: 910660254783983298}
+      UIStateV4Types: 40000000
+      UIStateV4Datas:
+      - {x: 1, y: 1, z: 1, w: 1}
+      UIStateStrTypes: 00020000
+      UIStateStrDatas:
+      - dec_weixuanzhong
+  - StateInfos:
+    - Target: {fileID: 910660254783983298}
+      UIStateV4Types: 40000000
+      UIStateV4Datas:
+      - {x: 0.9921569, y: 0.9803922, z: 0.9607844, w: 1}
+      UIStateStrTypes: 00020000
+      UIStateStrDatas:
+      - dec_xuanzhong
+  AllComs:
+  - {fileID: 910660254783983298}
+  AllComsStateTypes: 40020000
+  CurrIndex: 1
+--- !u!114 &4461412605857524956
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 910660254783983298}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 09a9a136688f46fbb2a843418fc53144, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  isScriptControl: 1
+  uiToggleList: {fileID: 0}
+  CustomStateController: {fileID: 0}
+--- !u!114 &722437814468193619
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 910660254783983298}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 4024400328895307312}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &9027247075650066786
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 910660254783983298}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4810a0857c909354fa00c3aafdeac753, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  data:
+  - key: Icon_TuBiao
+    gameObject: {fileID: 1318777089123988677}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  isAssetBundle: 1
+--- !u!1 &3624944491826870057
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 8364157556936206636}
+  - component: {fileID: 2669854041791442755}
+  - component: {fileID: 1318777089123988677}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: Icon_TuBiao
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8364157556936206636
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3624944491826870057}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 6808499670976233397}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -2.2, y: 5}
+  m_SizeDelta: {x: 37.7637, y: 37.7637}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2669854041791442755
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3624944491826870057}
+  m_CullTransparentMesh: 1
+--- !u!114 &1318777089123988677
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3624944491826870057}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3c247620ca3a1fd4ab2a2f3a5b287e07, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+  _icon_name: icon_eq_1_4_1
+  isNotLoadDeftIcon: 0
+  CurrSpriteAtlas: {fileID: 100100200, guid: 77f77eea85838ad4b8734050364b4892, type: 3}
+  packInfo:
+    packName: daoju
+    packgJsonPath: /Art/UIAssets/TextrueJson\daoju.txt
+    packgSpritePath: Assets/Res/UIAtlas/daoju.spriteatlasv2
+    lasetJsonGUID: c28e54f99ed5b137a09ad8c2e8fcb311
+  imageH: 100
+  useGradient: 0
+  topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
+  bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
+  direction: 0

+ 7 - 0
Assets/Res/UI/ShopPanel/ShopBtnWidget.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: W30f53mtVCoNxFOFn42tv15Dz7z9W75XbW41klD+mTQxEjKTsnA9xtx2hahj
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 322 - 4
Assets/Res/UI/ShopPanel/ShopPanel.prefab

@@ -106,6 +106,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -261,6 +262,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -366,6 +368,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -455,6 +458,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -493,6 +497,7 @@ RectTransform:
   - {fileID: 5483804858800712353}
   - {fileID: 8638238359682716624}
   - {fileID: 4026368821550510728}
+  - {fileID: 7161950004458226643}
   m_Father: {fileID: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
@@ -538,6 +543,16 @@ MonoBehaviour:
     isAssetBundle: 0
     isList: 0
     ListCollectorDatas: []
+  - key: ShopBtnContent
+    gameObject: {fileID: 2155630256913753548}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: Text_Title
+    gameObject: {fileID: 1750515778562465097}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
   isAssetBundle: 1
 --- !u!1 &1302003458950461861
 GameObject:
@@ -848,8 +863,8 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 0, y: -31.8}
-  m_SizeDelta: {x: 671, y: 83.2}
+  m_AnchoredPosition: {x: 0, y: -54.2}
+  m_SizeDelta: {x: 671, y: 51.4366}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &1496106828387708543
 CanvasRenderer:
@@ -880,8 +895,8 @@ MonoBehaviour:
     m_PersistentCalls:
       m_Calls: []
   m_FontData:
-    m_Font: {fileID: 12800000, guid: a61334e31cf014203a72ff5de1c54c27, type: 3}
-    m_FontSize: 56
+    m_Font: {fileID: 12800000, guid: e588d93665211944387ec8c03c8726ae, type: 3}
+    m_FontSize: 35
     m_FontStyle: 1
     m_BestFit: 0
     m_MinSize: 10
@@ -1052,6 +1067,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -1162,6 +1178,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -1186,6 +1203,205 @@ MonoBehaviour:
   m_FlexibleWidth: -1
   m_FlexibleHeight: -1
   m_LayoutPriority: 1
+--- !u!1 &2860452402155454359
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 3102060229236276690}
+  - component: {fileID: 7389230264429348167}
+  - component: {fileID: 6699177354835457071}
+  - component: {fileID: 4788205196418179317}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: Viewport
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3102060229236276690
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2860452402155454359}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 2155630256913753548}
+  m_Father: {fileID: 7161950004458226643}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: -0.0000076294}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &7389230264429348167
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2860452402155454359}
+  m_CullTransparentMesh: 1
+--- !u!114 &6699177354835457071
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2860452402155454359}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4788205196418179317
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2860452402155454359}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_ShowMaskGraphic: 0
+--- !u!1 &2998140826415864308
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 7161950004458226643}
+  - component: {fileID: 3418447220514204929}
+  - component: {fileID: 7481308708714691600}
+  - component: {fileID: 3187707265222570493}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: Scroll View (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7161950004458226643
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2998140826415864308}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 3102060229236276690}
+  m_Father: {fileID: 3381095983556329995}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -2.3774, y: 695.8}
+  m_SizeDelta: {x: 725.2449, y: 84.2258}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3418447220514204929
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2998140826415864308}
+  m_CullTransparentMesh: 1
+--- !u!114 &7481308708714691600
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2998140826415864308}
+  m_Enabled: 0
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.392}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &3187707265222570493
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2998140826415864308}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Content: {fileID: 2155630256913753548}
+  m_Horizontal: 1
+  m_Vertical: 1
+  m_MovementType: 1
+  m_Elasticity: 0.1
+  m_Inertia: 1
+  m_DecelerationRate: 0.135
+  m_ScrollSensitivity: 1
+  m_Viewport: {fileID: 3102060229236276690}
+  m_HorizontalScrollbar: {fileID: 0}
+  m_VerticalScrollbar: {fileID: 0}
+  m_HorizontalScrollbarVisibility: 2
+  m_VerticalScrollbarVisibility: 2
+  m_HorizontalScrollbarSpacing: -3
+  m_VerticalScrollbarSpacing: -3
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
 --- !u!1 &3124443466795735463
 GameObject:
   m_ObjectHideFlags: 0
@@ -1307,6 +1523,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -1794,6 +2011,103 @@ MonoBehaviour:
   m_OnValueChanged:
     m_PersistentCalls:
       m_Calls: []
+--- !u!1 &5358063121342251245
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 2155630256913753548}
+  - component: {fileID: 188380537059896370}
+  - component: {fileID: 1545305050283568870}
+  - component: {fileID: 8013753906494284095}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: ShopBtnContent
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2155630256913753548
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5358063121342251245}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 3102060229236276690}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 300}
+  m_Pivot: {x: 0, y: 1}
+--- !u!114 &188380537059896370
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5358063121342251245}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 12
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  m_Spacing: 7.11
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!114 &1545305050283568870
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5358063121342251245}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 0
+--- !u!114 &8013753906494284095
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5358063121342251245}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: eb5ebcd40411455c96935cb00dbfcf1e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  lastSelectObj: {fileID: 0}
+  isRepeatHind: 0
+  isRDefaultShow: 0
+  index: -1
+  childObj: []
+  _allChildObj: []
 --- !u!1 &5547572506304762230
 GameObject:
   m_ObjectHideFlags: 0
@@ -1880,6 +2194,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson\all.txt
     packgSpritePath: 
     lasetJsonGUID: 
+  imageH: 249
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -2261,6 +2576,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -2749,6 +3065,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}
@@ -2853,6 +3170,7 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: 9ac47f5fba5fc4d9c019e3c208c4513e
+  imageH: 0
   useGradient: 0
   topOrLeftColor: {r: 1, g: 1, b: 1, a: 1}
   bottomOrRightColor: {r: 0, g: 0, b: 0, a: 1}

+ 12 - 36
Assets/Scripts/GameData/ExcelConfig/ShopConfig.cs

@@ -20,30 +20,6 @@ namespace Excel2Json
 public int ID;
 
 
-		/// <summary>
-		///品名
-		/// </summary>
-public int shopName;
-
-
-		/// <summary>
-		///商品介绍
-		/// </summary>
-public int shopDesc;
-
-
-		/// <summary>
-		///商品表现的模板
-		/// </summary>
-public int shopShowTemplate;
-
-
-		/// <summary>
-		///商品表现的模板de参数
-		/// </summary>
-public string[] shopShowTemplateParm;
-
-
 		/// <summary>
 		///页签所属商店
 		/// </summary>
@@ -51,39 +27,39 @@ public int shopGroup;
 
 
 		/// <summary>
-		///解锁条件 0=无 1=关卡 2=共鸣等级
+		///每个页面的商品shopitemID组
 		/// </summary>
-public int unlockType;
+public int shopItemGroup;
 
 
 		/// <summary>
-		///解锁参数
+		///页签排序 (小的在前面)
 		/// </summary>
-public int[] unlockValue;
+public int pageSortNum;
 
 
 		/// <summary>
-		///解锁描述
+		///刷新类型 0=不刷新 1=每日自动刷新 2=每周自动刷新 3=每月自动刷新 4=按开启时间固定间隔自动刷新 
 		/// </summary>
-public int unlockMessage;
+public int RefreshType;
 
 
 		/// <summary>
-		///对应的商品ID
+		///刷新消耗道具ID (此列不为-1时,可以手动刷新)
 		/// </summary>
-public int shopItemID;
+public int refreshCostItemId;
 
 
 		/// <summary>
-		///页签排序 (小的在前面)
+		///刷新消耗道具数量 (刷新次数增加消耗会改变,0表示免费)
 		/// </summary>
-public int pageSortNum;
+public int[] refreshCost;
 
 
 		/// <summary>
-		///持续时间(分钟) (-1永久)
+		///周期内刷新次数上限(如果有手动刷新,必须要填次数)
 		/// </summary>
-public int continueTime;
+public int refreshLimit;
 
 
 	}

+ 1 - 31
Assets/Scripts/GameData/ExcelConfig/ShopGroupConfig.cs

@@ -21,41 +21,11 @@ public int ID;
 
 
 		/// <summary>
-		///选项卡排序 -小的在前面
-		/// </summary>
-public int sortNum;
-
-
-		/// <summary>
-		///商店名 (左侧列表中名字)
+		///商店名 (顶部名字)
 		/// </summary>
 public int shopName;
 
 
-		/// <summary>
-		///刷新类型 0=不刷新 1=每日自动刷新 2=每周自动刷新 3=每月自动刷新 4=按开启时间固定间隔自动刷新 
-		/// </summary>
-public int RefreshType;
-
-
-		/// <summary>
-		///刷新消耗道具ID (此列不为-1时,可以手动刷新)
-		/// </summary>
-public int refreshCostItemId;
-
-
-		/// <summary>
-		///刷新消耗道具数量 (刷新次数增加消耗会改变,0表示免费)
-		/// </summary>
-public int[] refreshCost;
-
-
-		/// <summary>
-		///周期内刷新次数上限(如果有手动刷新,必须要填次数)
-		/// </summary>
-public int refreshLimit;
-
-
 	}
 
 }

+ 36 - 0
Assets/Scripts/GameData/ExcelConfig/ShopItemConfig.cs

@@ -68,6 +68,42 @@ public int buyCount;
 public int maxBuyCount;
 
 
+		/// <summary>
+		///商品所属分页 (shopConfig中ID)
+		/// </summary>
+public int shopItemGroup;
+
+
+		/// <summary>
+		///持续时间(分钟) (-1永久)
+		/// </summary>
+public int continueTime;
+
+
+		/// <summary>
+		///品名
+		/// </summary>
+public int shopName;
+
+
+		/// <summary>
+		///商品介绍
+		/// </summary>
+public int shopDesc;
+
+
+		/// <summary>
+		///商品表现的模板
+		/// </summary>
+public int shopShowTemplate;
+
+
+		/// <summary>
+		///商品表现的模板de参数
+		/// </summary>
+public string[] shopShowTemplateParm;
+
+
 	}
 
 }

+ 24 - 29
Assets/Scripts/GameLogic/Shop/ShopManger.cs

@@ -10,7 +10,7 @@ public class ShopManger : Singleton<ShopManger>
 {
     bool isBuy = false;
 
-    Dictionary<int, List<ShopConfig>> shopDic = new Dictionary<int, List<ShopConfig>>();
+    Dictionary<int, List<ShopItemConfig>> shopDic = new Dictionary<int, List<ShopItemConfig>>();
 
     private Dictionary<string, string> productDic = new Dictionary<string, string>();
 
@@ -43,18 +43,18 @@ public class ShopManger : Singleton<ShopManger>
     /// </summary>
     public ShopManger()
     {
-        ShopConfig[] shopConfigs = ConfigComponent.Instance.GetAll<ShopConfig>();
-        foreach (var config in shopConfigs)
+        ShopItemConfig[] shopItemConfigs = ConfigComponent.Instance.GetAll<ShopItemConfig>();
+        foreach (var config in shopItemConfigs)
         {
-            List<ShopConfig> shopConfigList = null;
-            if (!shopDic.ContainsKey(config.shopGroup))
+            List<ShopItemConfig> shopConfigList = null;
+            if (!shopDic.ContainsKey(config.shopItemGroup))
             {
-                shopConfigList = new List<ShopConfig>();
-                shopDic.Add(config.shopGroup, shopConfigList);
+                shopConfigList = new List<ShopItemConfig>();
+                shopDic.Add(config.shopItemGroup, shopConfigList);
             }
             else
             {
-                shopConfigList = shopDic[config.shopGroup];
+                shopConfigList = shopDic[config.shopItemGroup];
             }
 
             shopConfigList.Add(config);
@@ -152,9 +152,9 @@ public class ShopManger : Singleton<ShopManger>
 
         AccountFileInfo.Instance.playerData.shopDatas.Sort((AccountFileInfo.ShopData a, AccountFileInfo.ShopData b) =>
         {
-            ShopGroupConfig aa = ConfigComponent.Instance.Get<ShopGroupConfig>(a.id);
-            ShopGroupConfig bb = ConfigComponent.Instance.Get<ShopGroupConfig>(b.id);
-            return aa.sortNum.CompareTo(bb.sortNum);
+            ShopConfig aa = ConfigComponent.Instance.Get<ShopConfig>(a.id);
+            ShopConfig bb = ConfigComponent.Instance.Get<ShopConfig>(b.id);
+            return aa.pageSortNum.CompareTo(bb.pageSortNum);
         });
         AccountFileInfo.Instance.SavePlayerData();
     }
@@ -179,9 +179,9 @@ public class ShopManger : Singleton<ShopManger>
     public AccountFileInfo.ShopData RefenceShop(int id)
     {
         AccountFileInfo.ShopData shopData = new AccountFileInfo.ShopData();
-        ShopGroupConfig shopGroupConfig = ConfigComponent.Instance.Get<ShopGroupConfig>(id);
+        ShopConfig shopConfig = ConfigComponent.Instance.Get<ShopConfig>(id);
         shopData.id = id;
-        if (shopGroupConfig.RefreshType == 0)
+        if (shopConfig.RefreshType == 0)
         {
             shopData.refreshTime = -1;
         }
@@ -190,15 +190,15 @@ public class ShopManger : Singleton<ShopManger>
             shopData.refreshTime = TimeHelper.GetBaseRefreshTime(PlayerManager.Instance.serverTime);
         }
 
-        shopDic.TryGetValue(id, out List<ShopConfig> shopConfigList);
-        foreach (var shopConfig in shopConfigList)
+        shopDic.TryGetValue(id, out List<ShopItemConfig> shopConfigList);
+        foreach (var shopItemConfig in shopConfigList)
         {
             AccountFileInfo.ShopItem shopItem = new AccountFileInfo.ShopItem();
-            shopItem.id = shopConfig.ID;
+            shopItem.id = shopItemConfig.ID;
             shopItem.buyCount = 0;
-            if (shopConfig.continueTime > 0)
+            if (shopItemConfig.continueTime > 0)
             {
-                shopItem.endTime = PlayerManager.Instance.serverTime + shopConfig.continueTime * 60 * 1000;
+                shopItem.endTime = PlayerManager.Instance.serverTime + shopItemConfig.continueTime * 60 * 1000;
             }
 
             shopData.shopItemList.Add(shopItem);
@@ -236,7 +236,7 @@ public class ShopManger : Singleton<ShopManger>
         return null;
     }
 
-    public async CTask<List<ItemInfo>> BuyItem(int shopid, int count)
+    public async CTask<List<ItemInfo>> BuyItem(int shopItemId, int count)
     {
         if (isBuy)
         {
@@ -245,13 +245,13 @@ public class ShopManger : Singleton<ShopManger>
 
         isBuy = true;
 
-        ShopConfig shopConfig = ConfigComponent.Instance.Get<ShopConfig>(shopid);
-        ShopItemConfig shopItemConfig = ConfigComponent.Instance.Get<ShopItemConfig>(shopConfig.shopItemID);
-        AccountFileInfo.ShopData shopData = GetDbShop(shopConfig.shopGroup);
+        ShopItemConfig shopItemConfig = ConfigComponent.Instance.Get<ShopItemConfig>(shopItemId);
+        // ShopItemConfig shopItemConfig = ConfigComponent.Instance.Get<ShopItemConfig>(shopConfig.shopItemID);
+        AccountFileInfo.ShopData shopData = GetDbShop(shopItemConfig.shopItemGroup);
         AccountFileInfo.ShopItem shopItem = null;
         foreach (var s in shopData.shopItemList)
         {
-            if (s.id == shopid)
+            if (s.id == shopItemId)
             {
                 shopItem = s;
                 break;
@@ -294,16 +294,12 @@ public class ShopManger : Singleton<ShopManger>
         {
             var dic = new Dictionary<string, string>();
             dic.Add("buyItem", shopItemConfig.ID.ToString());
-            // YouLoftSDK.Instance.CustomEvent("OnclickAds", dic);
-            // isOk = await YouLoftSDK.Instance.ShowAd();
-
             isOk = true;
 
             if (isOk)
             {
                 dic = new Dictionary<string, string>();
                 dic.Add("buyItem", shopItemConfig.ID.ToString());
-                // YouLoftSDK.Instance.CustomEvent("AdsPlayOver", dic);
             }
         }
         else
@@ -333,10 +329,9 @@ public class ShopManger : Singleton<ShopManger>
             {
                 var dic = new Dictionary<string, string>();
                 dic.Add("ShopItemId", shopItemConfig.ID.ToString());
-                // YouLoftSDK.Instance.CustomEvent("BuyItemOver", dic);
             }
 
-            // EventManager.Instance.Dispatch(CustomEventType.RefenceRed, null);
+        
             return itemList;
         }
         else

+ 31 - 0
Assets/Scripts/GameUI/UI/ShopPanel/ShopBtnWidget.cs

@@ -0,0 +1,31 @@
+using Excel2Json;
+
+namespace Fort23.Mono
+{
+	[UIBinding(prefab = "ShopBtnWidget"  )]
+	public partial class ShopBtnWidget : ItemWidgetBasic
+	{
+		public ShopGroupConfig ShopGroupConfig;
+		private void Init()
+		{
+
+		}
+		public override void AddEvent()
+		{
+
+		}
+		public override void DelEvent()
+		{
+
+		}
+		public override void AddButtonEvent()
+		{
+			base.AddButtonEvent();
+		}
+
+		public void CustomInit(ShopGroupConfig shopGroupConfig)
+		{
+			this.ShopGroupConfig = shopGroupConfig;
+		}
+	}
+}

+ 11 - 0
Assets/Scripts/GameUI/UI/ShopPanel/ShopBtnWidget.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: CSkc5CKsAXiGlc7gTvK8o1EVQdyhg+y0alVcW8uH45mFXjC5rPYthdJoR+Yq
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 29 - 0
Assets/Scripts/GameUI/UI/ShopPanel/ShopBtnWidgetData.cs

@@ -0,0 +1,29 @@
+using Fort23.Core;
+using Fort23.UTool;
+using UnityEngine.UI;
+using UnityEngine;
+using System.Collections.Generic;
+namespace Fort23.Mono
+{
+	public partial class ShopBtnWidget 
+	{
+	  #region 自定义数据 
+	  private MyImage _Icon_TuBiao;
+	  public MyImage Icon_TuBiao
+	   {
+	   get{
+	      if (_Icon_TuBiao == null)
+	       {
+	         _Icon_TuBiao  = GetUIUnit<MyImage>("Icon_TuBiao"); 
+	       }
+	      return _Icon_TuBiao;
+	     }
+	   }
+	  #endregion 自定义数据结束 
+	 public override async CTask SetUIGameObject(GameObject gObjectPoolInterface)
+	{
+	 await base.SetUIGameObject(gObjectPoolInterface);
+	 Init();
+	}
+	}
+}

+ 11 - 0
Assets/Scripts/GameUI/UI/ShopPanel/ShopBtnWidgetData.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: XX8esy77VC90PvnT3jWncGIo5YWov3NHDmrqsskF7TBfAYAKkSecgQM8oEL4
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 3
Assets/Scripts/GameUI/UI/ShopPanel/ShopBuyItemPanel.cs

@@ -32,12 +32,12 @@ namespace Fort23.Mono
             UIManager.Instance.DormancyAllGComponent<WidgetItem>(_poolName);
 
             _shopItem = shopItem;
-            ShopConfig shopConfig = ConfigComponent.Instance.Get<ShopConfig>(shopItem.id);
-            _shopItemConfig = ConfigComponent.Instance.Get<ShopItemConfig>(shopConfig.shopItemID);
+         
+            _shopItemConfig = ConfigComponent.Instance.Get<ShopItemConfig>(shopItem.id);
             _callback = callback;
             WidgetItem itemWidget = await UIManager.Instance.CreateGComponent<WidgetItem>(null, ItemRoot, poolName: _poolName);
             itemWidget.InitWidget(new ItemInfo(_shopItemConfig.itemId[0], _shopItemConfig.itemCount[0]));
-            Text_name.text = LanguageManager.Instance.Text(shopConfig.shopName);
+            Text_name.text = LanguageManager.Instance.Text(_shopItemConfig.shopName);
             Text_desc.text = LanguageManager.Instance.Text(itemWidget.itemInfo.config.itemName);
             UseSlider.value = 1;
             UseSlider.minValue = 1;

+ 21 - 21
Assets/Scripts/GameUI/UI/ShopPanel/ShopItemWidgetType1.cs

@@ -11,7 +11,7 @@ namespace Fort23.Mono
     [UIBinding(prefab = "ShopItemWidgetType1")]
     public partial class ShopItemWidgetType1 : UIComponent
     {
-        private ShopConfig _shopConfig;
+        // private ShopConfig _shopConfig;
         private ShopItemConfig _shopItemConfig;
         private AccountFileInfo.ShopItem _shopItem;
         ItemConfig _itemConfig;
@@ -66,15 +66,15 @@ namespace Fort23.Mono
                     TipMessagePanel.OpenTipMessagePanel(811, Vector2.zero);
                     return;
                 }
-
-                if (_shopConfig.shopShowTemplate == 2)
-                {
-                    // BestGiftPanel.OpenPanel(_shopItem, BuyOkCallback);
-                }
-                else
-                {
-                    Buy();
-                }
+                Buy() ;
+                // if (_shopConfig.shopShowTemplate == 2)
+                // {
+                //     // BestGiftPanel.OpenPanel(_shopItem, BuyOkCallback);
+                // }
+                // else
+                // {
+                //    Buy() ;
+                // }
             });
         }
 
@@ -86,7 +86,7 @@ namespace Fort23.Mono
 
         private async void Buy()
         {
-            List<ItemInfo> itemInfos = await ShopManger.Instance.BuyItem(_shopConfig.ID,1);
+            List<ItemInfo> itemInfos = await ShopManger.Instance.BuyItem(_shopItemConfig.ID,1);
             if (itemInfos != null)
             {
                 // BagController.Instance.AddItem(itemInfos);
@@ -102,8 +102,8 @@ namespace Fort23.Mono
         public void CustomInit(AccountFileInfo.ShopItem shopItem)
         {
             this._shopItem = shopItem;
-            _shopConfig = ConfigComponent.Instance.Get<ShopConfig>(shopItem.id);
-            _shopItemConfig = ConfigComponent.Instance.Get<ShopItemConfig>(_shopConfig.shopItemID);
+            // _shopConfig = ConfigComponent.Instance.Get<ShopConfig>(shopItem.id);
+            _shopItemConfig = ConfigComponent.Instance.Get<ShopItemConfig>(shopItem.id);
             _itemConfig = ConfigComponent.Instance.Get<ItemConfig>(_shopItemConfig.itemId[0]);
             ItemConfig itemConfig = ConfigComponent.Instance.Get<ItemConfig>(_shopItemConfig.costItemId);
             Text_Price.text = _shopItemConfig.price.ToString();
@@ -128,22 +128,22 @@ namespace Fort23.Mono
                     PlayerManager.TimeToHSM((this._shopItem.endTime - PlayerManager.Instance.serverTime) / 1000);
             }
 
-            if (_shopConfig.shopShowTemplate == 1)
+            if (_shopItemConfig.shopShowTemplate == 1)
             {
                 scs.ChangeState(0);
-                Text_Type1Name.text = LanguageManager.Instance.Text(_shopConfig.shopName);
-                Text_Type1Des.text = LanguageManager.Instance.Text(_shopConfig.shopDesc);
+                Text_Type1Name.text = LanguageManager.Instance.Text(_shopItemConfig.shopName);
+                Text_Type1Des.text = LanguageManager.Instance.Text(_shopItemConfig.shopDesc);
             }
-            else if (_shopConfig.shopShowTemplate == 2)
+            else if (_shopItemConfig.shopShowTemplate == 2)
             {
-                Text_Type2Name.text = LanguageManager.Instance.Text(_shopConfig.shopName);
+                Text_Type2Name.text = LanguageManager.Instance.Text(_shopItemConfig.shopName);
                 scs.ChangeState(1);
             }
-            else if (_shopConfig.shopShowTemplate == 3)
+            else if (_shopItemConfig.shopShowTemplate == 3)
             {
                 scs.ChangeState(2);
-                Text_Type1Name.text = LanguageManager.Instance.Text(_shopConfig.shopName);
-                Text_Type1Des.text = LanguageManager.Instance.Text(_shopConfig.shopDesc);
+                Text_Type1Name.text = LanguageManager.Instance.Text(_shopItemConfig.shopName);
+                Text_Type1Des.text = LanguageManager.Instance.Text(_shopItemConfig.shopDesc);
             }
 
             string price = ShopManger.Instance.GetPrice(_shopItemConfig.giftID);

+ 6 - 6
Assets/Scripts/GameUI/UI/ShopPanel/ShopItemWidgetType2.cs

@@ -11,7 +11,7 @@ namespace Fort23.Mono
     [UIBinding(prefab = "ShopItemWidgetType2")]
     public partial class ShopItemWidgetType2 : UIComponent
     {
-        private ShopConfig _shopConfig;
+        // private ShopConfig _shopConfig;
         private ShopItemConfig _shopItemConfig;
         private AccountFileInfo.ShopItem _shopItem;
         ItemConfig _itemConfig;
@@ -41,7 +41,7 @@ namespace Fort23.Mono
                         return;
                     }
 
-                    List<ItemInfo> itemInfos = await ShopManger.Instance.BuyItem(_shopConfig.ID, 1);
+                    List<ItemInfo> itemInfos = await ShopManger.Instance.BuyItem(_shopItemConfig.ID, 1);
                     if (itemInfos != null)
                     {
                         RewardsPanel.OpenPanel(itemInfos);
@@ -72,7 +72,7 @@ namespace Fort23.Mono
                                 return;
                             }
 
-                            List<ItemInfo> itemInfos = await ShopManger.Instance.BuyItem(_shopConfig.ID, count);
+                            List<ItemInfo> itemInfos = await ShopManger.Instance.BuyItem(_shopItemConfig.ID, count);
                             if (itemInfos != null)
                             {
                                 RewardsPanel.OpenPanel(itemInfos);
@@ -92,8 +92,8 @@ namespace Fort23.Mono
         public void CustomInit(AccountFileInfo.ShopItem shopItem)
         {
             this._shopItem = shopItem;
-            _shopConfig = ConfigComponent.Instance.Get<ShopConfig>(shopItem.id);
-            _shopItemConfig = ConfigComponent.Instance.Get<ShopItemConfig>(_shopConfig.shopItemID);
+            // _shopConfig = ConfigComponent.Instance.Get<ShopConfig>(shopItem.id);
+            _shopItemConfig = ConfigComponent.Instance.Get<ShopItemConfig>(shopItem.id);
             if (_shopItemConfig.itemId != null)
             {
                 _itemConfig = ConfigComponent.Instance.Get<ItemConfig>(_shopItemConfig.itemId[0]);
@@ -159,7 +159,7 @@ namespace Fort23.Mono
             LayoutRebuilder.ForceRebuildLayoutImmediate(Group_Price.GetComponent<RectTransform>());
 
             Icon_PriceItem.icon_name = itemConfig.icon;
-            Icon_Item.icon_name = _shopConfig.shopShowTemplateParm[0];
+            Icon_Item.icon_name = _shopItemConfig.shopShowTemplateParm[0];
 
             Text_Name.text = LanguageManager.Instance.Text(_itemConfig.itemName);
             Text_Num.text = _shopItemConfig.itemCount[0].ToString();

+ 74 - 36
Assets/Scripts/GameUI/UI/ShopPanel/ShopPanel.cs

@@ -1,6 +1,9 @@
 using System.Collections.Generic;
+using Core.Language;
 using Core.Utility;
+using Excel2Json;
 using Fort23.Core;
+using Fort23.UTool;
 using GameLogic.Combat.CombatTool;
 
 namespace Fort23.Mono
@@ -13,6 +16,9 @@ namespace Fort23.Mono
         private List<ShopGroupWidgetType1> _shopGroupWidgetType1s = new List<ShopGroupWidgetType1>();
 
         List<EnergyWidget> _energyWidgets = new List<EnergyWidget>();
+        ShopBtnWidget currentSelectedShopBtnWidget;
+
+        List<ShopBtnWidget> _shopBtnWidgets = new List<ShopBtnWidget>();
 
         private void Init()
         {
@@ -38,10 +44,66 @@ namespace Fort23.Mono
             return base.GetFocus();
         }
 
-        public override CTask<bool> AsyncInit(object[] uiData)
+        public async override CTask<bool> AsyncInit(object[] uiData)
         {
+            ShopGroupConfig[] shopGroupConfigs = ConfigComponent.Instance.GetAll<ShopGroupConfig>();
+            foreach (var shopGroupConfig in shopGroupConfigs)
+            {
+                ShopBtnWidget shopBtnWidget = await UIManager.Instance.CreateGComponent<ShopBtnWidget>(null, ShopBtnContent);
+                shopBtnWidget.CustomInit(shopGroupConfig);
+                shopBtnWidget.OnClick = OnClick;
+                _shopBtnWidgets.Add(shopBtnWidget);
+                if (currentSelectedShopBtnWidget == null)
+                {
+                    currentSelectedShopBtnWidget = shopBtnWidget;
+                }
+            }
+
+            ShopBtnContent.GetComponent<UIToggleList>().GetChildObj();
+            currentSelectedShopBtnWidget.OnPointerClick();
+
             // isPauseCombat = uiData[0] as bool? == true;
-            return base.AsyncInit(uiData);
+            return await base.AsyncInit(uiData);
+        }
+
+        private async void OnClick(ItemWidgetBasic obj)
+        {
+            ShopBtnWidget shopBtnWidget = obj as ShopBtnWidget;
+            Text_Title.text = LanguageManager.Instance.Text(shopBtnWidget.ShopGroupConfig.shopName);
+            ShopBtnContent.GetComponent<UIToggleList>().ClickWidget(shopBtnWidget.own.GetComponent<UIToggleWidgetBasic>());
+            currentSelectedShopBtnWidget = shopBtnWidget;
+            foreach (var shopGroupWidgetType1 in _shopGroupWidgetType1s)
+            {
+                UIManager.Instance.DormancyGComponent(shopGroupWidgetType1);
+            }
+
+            _shopGroupWidgetType1s.Clear();
+            _shopDatas = ShopManger.Instance.GetAllShopConfig();
+
+
+            foreach (var shopData in _shopDatas)
+            {
+                ShopConfig shopConfig = ConfigComponent.Instance.Get<ShopConfig>(shopData.id);
+                if (shopConfig.shopGroup == shopBtnWidget.ShopGroupConfig.ID)
+                {
+                    // if (shopData.id == 1 || shopData.id == 5)
+                    // {
+                    //     ShopGroupWidgetType1 shopGroupWidgetType1 =
+                    //         await UIManager.Instance.CreateGComponentForObject<ShopGroupWidgetType1>(ShopGroupWidgetType1,
+                    //             null, Content, isInstance: true);
+                    //     _shopGroupWidgetType1s.Add(shopGroupWidgetType1);
+                    //     await shopGroupWidgetType1.CustomInit(shopData);
+                    // }
+                    // else
+                    {
+                        ShopGroupWidgetType1 shopGroupWidgetType1 =
+                            await UIManager.Instance.CreateGComponentForObject<ShopGroupWidgetType1>(ShopGroupWidgetType2,
+                                null, Content, isInstance: true);
+                        _shopGroupWidgetType1s.Add(shopGroupWidgetType1);
+                        await shopGroupWidgetType1.CustomInit(shopData);
+                    }
+                }
+            }
         }
 
 
@@ -67,7 +129,7 @@ namespace Fort23.Mono
 
         private void ShopRefence(IEventData e)
         {
-            CustomInit();
+            currentSelectedShopBtnWidget.OnPointerClick();
         }
 
         public override void AddButtonEvent()
@@ -75,38 +137,6 @@ namespace Fort23.Mono
             Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel<ShopPanel>(); });
         }
 
-        public async CTask CustomInit()
-        {
-            var dic = new Dictionary<string, string>();
-            // YouLoftSDK.Instance.CustomEvent("OpenShopPanel", dic);
-
-            foreach (var shopGroupWidgetType1 in _shopGroupWidgetType1s)
-            {
-                UIManager.Instance.DormancyGComponent(shopGroupWidgetType1);
-            }
-
-            _shopGroupWidgetType1s.Clear();
-            _shopDatas = ShopManger.Instance.GetAllShopConfig();
-            foreach (var shopData in _shopDatas)
-            {
-                // if (shopData.id == 1 || shopData.id == 5)
-                // {
-                //     ShopGroupWidgetType1 shopGroupWidgetType1 =
-                //         await UIManager.Instance.CreateGComponentForObject<ShopGroupWidgetType1>(ShopGroupWidgetType1,
-                //             null, Content, isInstance: true);
-                //     _shopGroupWidgetType1s.Add(shopGroupWidgetType1);
-                //     await shopGroupWidgetType1.CustomInit(shopData);
-                // }
-                // else
-                {
-                    ShopGroupWidgetType1 shopGroupWidgetType1 =
-                        await UIManager.Instance.CreateGComponentForObject<ShopGroupWidgetType1>(ShopGroupWidgetType2,
-                            null, Content, isInstance: true);
-                    _shopGroupWidgetType1s.Add(shopGroupWidgetType1);
-                    await shopGroupWidgetType1.CustomInit(shopData);
-                }
-            }
-        }
 
         public override void Close()
         {
@@ -123,6 +153,14 @@ namespace Fort23.Mono
 
             _energyWidgets.Clear();
 
+            foreach (var shopBtnWidget in _shopBtnWidgets)
+            {
+                UIManager.Instance.DormancyGComponent(shopBtnWidget);
+            }
+
+            _shopBtnWidgets.Clear();
+            currentSelectedShopBtnWidget = null;
+
             // MainUIPanel mainUIPanel = UIManager.Instance.GetComponent<MainUIPanel>();
             // if (mainUIPanel != null)
             // {
@@ -137,7 +175,7 @@ namespace Fort23.Mono
         {
             ShopPanel shopPanel = await UIManager.Instance.LoadAndOpenPanel<ShopPanel>(null, uiData: new object[] { isPauseCombat });
 
-            shopPanel.CustomInit();
+
             return shopPanel;
         }
     }

+ 22 - 0
Assets/Scripts/GameUI/UI/ShopPanel/ShopPanelData.cs

@@ -63,6 +63,28 @@ namespace Fort23.Mono
 	      return _Group_ResourceBar;
 	     }
 	   }
+	  private RectTransform _ShopBtnContent;
+	  public RectTransform ShopBtnContent
+	   {
+	   get{
+	      if (_ShopBtnContent == null)
+	       {
+	         _ShopBtnContent  = GetUIUnit<RectTransform>("ShopBtnContent"); 
+	       }
+	      return _ShopBtnContent;
+	     }
+	   }
+	  private Text _Text_Title;
+	  public Text Text_Title
+	   {
+	   get{
+	      if (_Text_Title == null)
+	       {
+	         _Text_Title  = GetUIUnit<Text>("Text_Title"); 
+	       }
+	      return _Text_Title;
+	     }
+	   }
 	  #endregion 自定义数据结束 
 	 public override async CTask SetUIGameObject(GameObject gObjectPoolInterface)
 	{

BIN
Excel2Json/Excel/Shop.xlsx


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác