Bläddra i källkod

update:商城国际化v0.1

RuHu.Xu 5 månader sedan
förälder
incheckning
80bd86a9d8
100 ändrade filer med 1079 tillägg och 597 borttagningar
  1. 2 1
      App.vue
  2. 43 0
      collect-chinese.js
  3. 199 0
      locale/en.json
  4. 41 0
      locale/index.js
  5. 194 0
      locale/zh-Hans.json
  6. 2 4
      main.js
  7. 215 229
      manifest.json
  8. 2 0
      package.json
  9. 4 4
      pages.json
  10. 5 1
      pages/index/index.vue
  11. 24 92
      pages/user/info.vue
  12. 60 25
      pages/user/setting.vue
  13. 1 2
      pages/user/wallet/score.vue
  14. 109 100
      sheep/components/s-menu-tools/s-menu-tools.vue
  15. 102 99
      sheep/components/s-order-card/s-order-card.vue
  16. 1 1
      sheep/components/s-share-modal/canvas-poster/useCanvas.js
  17. 22 8
      sheep/components/s-user-card/s-user-card.vue
  18. 8 8
      sheep/components/s-wallet-card/s-wallet-card.vue
  19. 19 2
      sheep/hooks/useApp.js
  20. 1 8
      sheep/hooks/useGoods.js
  21. 1 0
      sheep/store/app.js
  22. 12 1
      sheep/ui/su-tabbar-item/su-tabbar-item.vue
  23. 1 1
      unpackage/dist/build/web/assets/comment-item.a0333778.js
  24. 1 1
      unpackage/dist/build/web/assets/const.24444c58.js
  25. 0 0
      unpackage/dist/build/web/assets/detail-content-card.fb9524e8.js
  26. 0 0
      unpackage/dist/build/web/assets/index-a116b7fa.js
  27. 0 0
      unpackage/dist/build/web/assets/index-d8ee7f22.js
  28. 0 0
      unpackage/dist/build/web/assets/info-3c436651.css
  29. 0 0
      unpackage/dist/build/web/assets/md5.09e73eca.js
  30. 0 0
      unpackage/dist/build/web/assets/mp-html.02bc03c7.js
  31. 0 0
      unpackage/dist/build/web/assets/pages-activity-bargain-detail.20dd3718.js
  32. 0 0
      unpackage/dist/build/web/assets/pages-activity-bargain-list.34d37ca7.js
  33. 0 0
      unpackage/dist/build/web/assets/pages-activity-groupon-detail.285c9fdf.js
  34. 0 0
      unpackage/dist/build/web/assets/pages-activity-groupon-list.1c058ff3.js
  35. 0 0
      unpackage/dist/build/web/assets/pages-activity-groupon-order.158c340b.js
  36. 0 0
      unpackage/dist/build/web/assets/pages-activity-index.d71cc633.js
  37. 0 0
      unpackage/dist/build/web/assets/pages-activity-seckill-list.3421f660.js
  38. 0 0
      unpackage/dist/build/web/assets/pages-app-sign.19a87086.js
  39. 0 0
      unpackage/dist/build/web/assets/pages-chat-index.fbea0b6d.js
  40. 0 0
      unpackage/dist/build/web/assets/pages-chat-speechtotext.7c770fbe.js
  41. 0 0
      unpackage/dist/build/web/assets/pages-commission-commission-ranking.e04b6f51.js
  42. 0 0
      unpackage/dist/build/web/assets/pages-commission-goods.0498f42f.js
  43. 0 0
      unpackage/dist/build/web/assets/pages-commission-index.d1c74b87.js
  44. 0 0
      unpackage/dist/build/web/assets/pages-commission-order.e7233d18.js
  45. 0 0
      unpackage/dist/build/web/assets/pages-commission-promoter.7c111f94.js
  46. 0 0
      unpackage/dist/build/web/assets/pages-commission-team.70f1aae4.js
  47. 0 0
      unpackage/dist/build/web/assets/pages-commission-wallet.2416f024.js
  48. 0 0
      unpackage/dist/build/web/assets/pages-commission-withdraw.f8d102a1.js
  49. 0 0
      unpackage/dist/build/web/assets/pages-coupon-detail.fbf71d08.js
  50. 0 0
      unpackage/dist/build/web/assets/pages-coupon-list.1381b294.js
  51. 0 0
      unpackage/dist/build/web/assets/pages-goods-comment-add.1744ff2b.js
  52. 0 0
      unpackage/dist/build/web/assets/pages-goods-comment-list.ab68c2ef.js
  53. 0 0
      unpackage/dist/build/web/assets/pages-goods-groupon.fddcceb3.js
  54. 0 0
      unpackage/dist/build/web/assets/pages-goods-index.e88fd81d.js
  55. 0 0
      unpackage/dist/build/web/assets/pages-goods-list.eb2f34f8.js
  56. 0 0
      unpackage/dist/build/web/assets/pages-goods-seckill.6a3df18e.js
  57. 0 0
      unpackage/dist/build/web/assets/pages-index-cart.fb0d0399.js
  58. 0 0
      unpackage/dist/build/web/assets/pages-index-category.9208c486.js
  59. 0 0
      unpackage/dist/build/web/assets/pages-index-index.9b989730.js
  60. 0 0
      unpackage/dist/build/web/assets/pages-index-index.cd41edf1.js
  61. 0 0
      unpackage/dist/build/web/assets/pages-index-login.77804d45.js
  62. 1 1
      unpackage/dist/build/web/assets/pages-index-page.0e22454f.js
  63. 1 1
      unpackage/dist/build/web/assets/pages-index-search.c106810e.js
  64. 1 1
      unpackage/dist/build/web/assets/pages-index-user.eb2714b2.js
  65. 0 0
      unpackage/dist/build/web/assets/pages-order-aftersale-apply.fa084cbf.js
  66. 0 0
      unpackage/dist/build/web/assets/pages-order-aftersale-detail.d01b63d1.js
  67. 0 0
      unpackage/dist/build/web/assets/pages-order-aftersale-list.ccbcb187.js
  68. 1 1
      unpackage/dist/build/web/assets/pages-order-aftersale-log.7fdce7c3.js
  69. 0 0
      unpackage/dist/build/web/assets/pages-order-aftersale-return-delivery.a213d436.js
  70. 0 0
      unpackage/dist/build/web/assets/pages-order-confirm.a1788a09.js
  71. 0 0
      unpackage/dist/build/web/assets/pages-order-detail.4068ca00.js
  72. 0 0
      unpackage/dist/build/web/assets/pages-order-express-log.3b1d5ed1.js
  73. 0 0
      unpackage/dist/build/web/assets/pages-order-list.62c3343f.js
  74. 0 0
      unpackage/dist/build/web/assets/pages-order-otherlist.827f1fb5.js
  75. 0 0
      unpackage/dist/build/web/assets/pages-pay-index.9743df44.js
  76. 0 0
      unpackage/dist/build/web/assets/pages-pay-recharge-log.6266441a.js
  77. 0 0
      unpackage/dist/build/web/assets/pages-pay-recharge.8e4cf38b.js
  78. 0 0
      unpackage/dist/build/web/assets/pages-pay-result.6f4cb271.js
  79. 0 0
      unpackage/dist/build/web/assets/pages-pay-resultYuan.044007d2.js
  80. 1 1
      unpackage/dist/build/web/assets/pages-public-error.63c92a06.js
  81. 1 1
      unpackage/dist/build/web/assets/pages-public-faq.f0238fee.js
  82. 0 0
      unpackage/dist/build/web/assets/pages-public-merchant.96887a18.js
  83. 0 0
      unpackage/dist/build/web/assets/pages-public-merchantApplyList.4fb6a92a.js
  84. 1 1
      unpackage/dist/build/web/assets/pages-public-richtext.b4bc67a7.js
  85. 0 0
      unpackage/dist/build/web/assets/pages-public-setting.67f797d4.js
  86. 1 1
      unpackage/dist/build/web/assets/pages-public-webview.17c49db0.js
  87. 0 0
      unpackage/dist/build/web/assets/pages-shop-index.7f369a34.js
  88. 0 0
      unpackage/dist/build/web/assets/pages-user-address-edit.3403f95d.js
  89. 0 0
      unpackage/dist/build/web/assets/pages-user-address-list.aaa91966.js
  90. 0 0
      unpackage/dist/build/web/assets/pages-user-dummyAddress-edit.32f1ea53.js
  91. 0 1
      unpackage/dist/build/web/assets/pages-user-dummyAddress-list.2ea0ffb5.js
  92. 1 0
      unpackage/dist/build/web/assets/pages-user-dummyAddress-list.6bc25d70.js
  93. 0 0
      unpackage/dist/build/web/assets/pages-user-goods-collect.37dd73da.js
  94. 0 0
      unpackage/dist/build/web/assets/pages-user-goods-log.7cbc5e30.js
  95. 0 0
      unpackage/dist/build/web/assets/pages-user-goods-log.bd57f281.js
  96. 0 0
      unpackage/dist/build/web/assets/pages-user-info.9c96346c.js
  97. 0 0
      unpackage/dist/build/web/assets/pages-user-info.bb065dd9.js
  98. 0 0
      unpackage/dist/build/web/assets/pages-user-invoice-edit.4bc16442.js
  99. 1 0
      unpackage/dist/build/web/assets/pages-user-invoice-list.0f8d4e82.js
  100. 0 1
      unpackage/dist/build/web/assets/pages-user-invoice-list.6372fb68.js

+ 2 - 1
App.vue

@@ -13,7 +13,7 @@
 		cancelAutoSign,
 		resetSignStatusIfNeeded
 	} from './sheep/hooks/useModal';
-
+	
 	onShow((options) => {
 		autoSign()
 		// #ifdef APP-PLUS
@@ -44,6 +44,7 @@
 
 		// 加载Shopro底层依赖
 		ShoproInit();
+		
 		// 每天凌晨重置签到状态
 		resetSignStatusIfNeeded();
 	});

+ 43 - 0
collect-chinese.js

@@ -0,0 +1,43 @@
+// collect-chinese.js
+const glob = require('glob');
+const fs = require('fs');
+const path = require('path');
+
+const projectPath = './sheep'; // 修改为你的项目路径
+const outputPath = './zh-cn-sheep-config.json'; // 配置表输出路径
+const chineseRegex = /['"`]([^'"`\n]*[\u4e00-\u9fa5]+[^'"`\n]*)['"`]/g;
+
+let configObject = {};
+
+function collectChinese() {
+  try {
+    const files = glob.sync(`${projectPath}/**/*.{js,vue,ts,html}`);
+
+    files.forEach((file) => {
+      const content = fs.readFileSync(file, 'utf8');
+      let match;
+      while ((match = chineseRegex.exec(content)) !== null) {
+        const chineseText = match[1];
+        if (!configObject[chineseText]) {
+          configObject[chineseText] = '';
+        }
+      }
+    });
+
+    saveConfigFile();
+  } catch (err) {
+    console.error('Error while scanning files:', err);
+  }
+}
+
+function saveConfigFile() {
+  const sortedConfig = Object.keys(configObject).sort().reduce((obj, key) => {
+    obj[key] = configObject[key];
+    return obj;
+  }, {});
+
+  fs.writeFileSync(outputPath, JSON.stringify(sortedConfig, null, 2));
+  console.log(`Config file saved to ${outputPath}`);
+}
+
+collectChinese();

+ 199 - 0
locale/en.json

@@ -0,0 +1,199 @@
+{
+	"lang.en": "EngLish",
+	"lang.zh-hans": "简体中文",
+	"settings": "Settings",
+	"agreement": "User privacy Agreement",
+	"user_management": "User management",
+	"role_management": "Role management",
+	"menu_management": "Menu management",
+	"post_management": "Position management",
+	"org_management": "Organization management",
+	"add_user": "Add a user",
+	"about": "About",
+	"title.home":"Home",
+	"title.userinfo":"User Information",
+	"title.settings":"Settings",
+	"title.usercenter":"User Center",
+	"common": {
+		"home": "Home",
+		"category": "Category",
+		"cart": "Cart",
+		"my": "My",
+		"none":"None",
+		"search_products": "Search Products",
+		"buy_now": "Buy Now",
+		"sold": "Sold",
+		"points": "Points",
+		"cancel": "Cancel",
+		"confirm": "Confirm",
+		"submit": "Submit",
+		"save": "Save",
+		"delete": "Delete",
+		"edit": "Edit",
+		"close": "Close",
+		"back": "Back",
+		"next": "Next",
+		"previous": "Previous",
+		"yes": "Yes",
+		"no": "No",
+		"ok": "OK",
+		"loading": "Loading...",
+		"refresh": "Refresh",
+		"search": "Search",
+		"reset": "Reset",
+		"add": "Add",
+		"update": "Update",
+		"upload": "Upload",
+		"download": "Download",
+		"level":"Level",
+		"no_level":"No Level"
+	},
+	"menu": {
+	    "quick_menu": "Quick Menu",
+	    "search": "Search",
+	    "personal_center": "Center",
+	    "shopping_cart": "Cart",
+	    "browsing_history": "History",
+	    "my_favorites": "Favorites",
+	    "customer_service": "Service"
+	},
+
+
+	"user": {
+		"name": "Name",
+		"username": "Username",
+		"nickname": "Nickname",
+		"password": "Password",
+		"confirm_password": "Confirm password",
+		"email": "Email",
+		"phone": "Phone",
+		"avatar": "Avatar",
+		"status": "Status",
+		"create_time": "Create time",
+		"update_time": "Update time",
+		"last_login_time": "Last login time",
+		"last_login_ip": "Last login ip",
+		"clear_cache": "Clera cache",
+		"switch_language": "Switch language",
+		"log_out": "Log out",
+		"change": "Change",
+		"sex": "Sex",
+		"male": "Male",
+		"female": "Female",
+		"user_info": "User Information",
+		"unbind_reminder": "Unbinding Reminder",
+		"please_login":"Please Login"
+	},
+	"wallet": {
+	    "wallet": "Wallet",
+	    "balance": "Balance",
+	    "commission": "Commission",
+	    "consumption_points": "Consumption Points",
+	    "team": "Team",
+		"people":"People",
+		"generation_rules": "Net Worth Rules",
+		"benefits": "Net Worth Benefits",
+	    "recharge": "Recharge",
+	    "withdraw": "Withdraw",
+	    "transaction_record": "Transaction Record",
+	    "recharge_record": "Recharge Record",
+	    "withdraw_record": "Withdraw Record",
+	    "recharge_amount": "Recharge Amount",
+	    "recharge_method": "Recharge Method",
+	    "recharge_time": "Recharge Time",
+	    "withdraw_amount": "Withdraw Amount",
+	    "withdraw_method": "Withdraw Method",
+	    "withdraw_time": "Withdraw Time",
+	    "transaction_time": "Transaction Time",
+	    "transaction_type": "Transaction Type",
+	    "transaction_amount": "Transaction Amount",
+	    "transaction_status": "Transaction Status",
+	    "transaction_details": "Transaction Details",
+	    "recharge_success": "Recharge Successful",
+	    "withdraw_success": "Withdraw Successful",
+	    "recharge_failed": "Recharge Failed",
+	    "withdraw_failed": "Withdraw Failed",
+	    "recharge_processing": "Recharge Processing",
+	    "withdraw_processing": "Withdraw Processing",
+	    "recharge_confirm": "Confirm Recharge",
+	    "withdraw_confirm": "Confirm Withdraw",
+	    "recharge_confirm_message": "Are you sure you want to recharge?",
+	    "withdraw_confirm_message": "Are you sure you want to withdraw?",
+	    "recharge_success_message": "Recharge successful, please check your balance",
+	    "withdraw_success_message": "Withdraw successful, please check your balance",
+	    "recharge_failed_message": "Recharge failed, please try again later",
+	    "withdraw_failed_message": "Withdraw failed, please try again later",
+	    "recharge_processing_message": "Recharge processing, please try again later",
+	    "withdraw_processing_message": "Withdraw processing, please try again later",
+	    "recharge_amount_notnull": "Recharge amount cannot be empty",
+	    "withdraw_amount_notnull": "Withdraw amount cannot be empty",
+	    "recharge_method_notnull": "Recharge method cannot be empty",
+	    "withdraw_method_notnull": "Withdraw method cannot be empty",
+	    "recharge_amount_error": "Recharge amount must be greater than 0",
+	    "withdraw_amount_error": "Withdraw amount must be greater than 0",
+	    "recharge_amount_max": "Recharge amount cannot exceed 1,000,000",
+	    "withdraw_amount_max": "Withdraw amount cannot exceed 1,000,000",
+	    "recharge_amount_min": "Recharge amount cannot be less than 0.01",
+	    "withdraw_amount_min": "Withdraw amount cannot be less than 0.01",
+	    "recharge_amount_decimal": "Recharge amount can have at most two decimal places"
+	},
+	
+	"order": {
+		"pending_payment": "Pay Now",
+		"pending_shipment": "To Ship",
+		"pending_receipt": "To Receive",
+		"pending_review": "To Review",
+		"all_orders": "All Orders"
+	},
+	
+
+	"setting": {
+		"signature": "Personal Signature",
+		"set": "Settings",
+		"bind": "Bind",
+		"unbind": "Unbind",
+		"physical_address_management": "Physical Address Management",
+		"virtual_address_management": "Virtual Address Management",
+		"alipay_account": "Alipay Account",
+		"bank_card": "Bank Card",
+		"enter_platform": "Enter Platform",
+		"enter_merchant_backend": "Enter Merchant Backend",
+		"my_qrcode": "My QR Code",
+		"third_party_account_binding": "Third-party Account Binding",
+		"wechat_public_account": "WeChat Public Account",
+		"wechat_mini_program": "WeChat Mini Program",
+		"wechat_open_platform": "WeChat Open Platform",
+		"prompt": "Prompt",
+		"confirm_logout": "Confirm logout?"
+	},
+
+
+	"rules": {
+		"username": "Please enter your username",
+		"username_taken": "Username is already taken!",
+		"usernameNotnull": "Username cannot be empty",
+		"nickname": "Please enter your nickname",
+		"nicknameNotnull": "Nickname cannot be empty",
+		"password": "Please enter your password",
+		"passwordNotnull": "Password cannot be empty",
+		"confirm_password": "Please confirm your password",
+		"confirmPasswordNotnull": "Confirm password cannot be empty",
+		"email": "Please enter your email",
+		"emailNotnull": "Email cannot be empty",
+		"phone": "Please enter your phone number",
+		"phoneNotnull": "Phone number cannot be empty",
+		"avatar": "Please upload your avatar",
+		"avatarNotnull": "Avatar cannot be empty",
+		"sex": "Please select your gender",
+		"sexNotnull": "Gender cannot be empty",
+		"password_error": "Passwords do not match",
+		"click_change_password": "Click to change password",
+		"modify_success": "Modification successful, please log in again",
+		"unbind_warning": "After unbinding, you will no longer be able to log in to this account via WeChat",
+		"bind_phone": "Please bind your phone number"
+
+
+	}
+
+
+}

+ 41 - 0
locale/index.js

@@ -0,0 +1,41 @@
+//引入配置文件
+import { createI18n } from "vue-i18n"; //引入vue-1i8n
+import en from './en.json';   // 英文
+import zhHans from './zh-Hans.json';  // 中文
+import { ref } from 'vue'
+
+
+const userLanguage = ref(uni.getStorageSync('userLanguage'));
+// 如果没有设置语言,则默认使用系统语言
+if(!userLanguage.value){
+	setLanguage(uni.getLocale() || 'en')
+	userLanguage.value = uni.getStorageSync('userLanguage')
+}
+
+//创建配置
+const i18n = createI18n({    
+	locale: userLanguage.value,
+	// legacy: false,
+	fallbackLocale: 'en-US',
+	messages: {
+		// legacy: false,
+		'en-US':en,
+		'zh-Hans':zhHans
+		
+	},
+})
+ 
+function setLanguage(language) {
+  userLanguage.value = language;
+  uni.setStorageSync('userLanguage', language); // 存储到缓存
+  uni.setLocale(language)
+  location.reload();
+}
+
+
+
+//导出配置
+export default i18n
+export {
+  setLanguage
+}

+ 194 - 0
locale/zh-Hans.json

@@ -0,0 +1,194 @@
+{
+	"lang.en": "EngLish",
+	"lang.zh-hans": "简体中文",
+	"settings": "设置",
+	"agreement": "用户隐私协议",
+	"user_management": "用户管理",
+	"role_management": "角色管理",
+	"menu_management": "菜单管理",
+	"post_management": "岗位管理",
+	"org_management": "组织管理",
+	"add_user": "新增用户",
+	"about": "关于",
+	"title.home":"首页",
+	"title.userinfo":"用户信息",
+	"title.settings":"用户设置",
+	"title.usercenter":"用户中心",
+	"common": {
+		"home": "首页",
+		"category": "分类",
+		"cart": "购物车",
+		"my": "我的",
+		"none":"无",
+		"search_products": "搜索商品",
+		"buy_now": "立即购买",
+		"sold": "已售",
+		"points": "积分",
+		"cancel": "取消",
+		"confirm": "确定",
+		"submit": "提交",
+		"save": "保存",
+		"delete": "删除",
+		"edit": "编辑",
+		"close": "关闭",
+		"back": "返回",
+		"next": "下一步",
+		"previous": "上一步",
+		"yes": "是",
+		"no": "否",
+		"ok": "好的",
+		"loading": "加载中...",
+		"refresh": "刷新",
+		"search": "搜索",
+		"reset": "重置",
+		"add": "添加",
+		"update": "更新",
+		"upload": "上传",
+		"download": "下载",
+		"level":"等级",
+		"no_level":"无等级"
+		
+	},
+	"menu": {
+	    "quick_menu": "快捷菜单",
+	    "search": "搜索",
+	    "personal_center": "个人中心",
+	    "shopping_cart": "购物车",
+	    "browsing_history": "浏览记录",
+	    "my_favorites": "我的收藏",
+	    "customer_service": "客服",
+	},
+
+	"user": {
+		"name":"名称",
+		"username": "用户名",
+		"nickname": "昵称",
+		"password": "密码",
+		"confirm_password": "确认密码",
+		"email": "邮箱",
+		"phone": "手机号",
+		"avatar": "头像",
+		"status": "状态",
+		"create_time": "创建时间",
+		"update_time": "更新时间",
+		"last_login_time": "最后登录时间",
+		"last_login_ip": "最后登录IP",
+		"clear_cache": "清理缓存",
+		"switch_language": "切换语言",
+		"log_out": "退出登录",
+		"change": "修改",
+		"sex": "性别",
+		"male": "男",
+		"female": "女",
+		"user_info": "用户信息",
+		"unbind_reminder": "解绑提醒",
+		"please_login":"请登录"
+	},
+	"wallet": {
+		"wallet": "钱包",
+		"balance": "余额",
+		"commission":"佣金",
+		"consumption_points":"消费分",
+		"team":"团队",
+		"people":"人",
+		"generation_rules": "身价产生规则",
+		"benefits": "身价权益",
+		"recharge": "充值",
+		"withdraw": "提现",
+		"transaction_record": "交易记录",
+		"recharge_record": "充值记录",
+		"withdraw_record": "提现记录",
+		"recharge_amount": "充值金额",
+		"recharge_method": "充值方式",
+		"recharge_time": "充值时间",
+		"withdraw_amount": "提现金额",
+		"withdraw_method": "提现方式",
+		"withdraw_time": "提现时间",
+		"transaction_time": "交易时间",
+		"transaction_type": "交易类型",
+		"transaction_amount": "交易金额",
+		"transaction_status": "交易状态",
+		"transaction_details": "交易详情",
+		"recharge_success": "充值成功",
+		"withdraw_success": "提现成功",
+		"recharge_failed": "充值失败",
+		"withdraw_failed": "提现失败",
+		"recharge_processing": "充值处理中",
+		"withdraw_processing": "提现处理中",
+		"recharge_confirm": "确认充值",
+		"withdraw_confirm": "确认提现",
+		"recharge_confirm_message": "您确定要充值吗?",
+		"withdraw_confirm_message": "您确定要提现吗?",
+		"recharge_success_message": "充值成功,请查看您的余额",
+		"withdraw_success_message": "提现成功,请查看您的余额",
+		"recharge_failed_message": "充值失败,请稍后再试",
+		"withdraw_failed_message": "提现失败,请稍后再试",
+		"recharge_processing_message": "充值处理中,请稍后再试",
+		"withdraw_processing_message": "提现处理中,请稍后再试",
+		"recharge_amount_notnull": "充值金额不能为空",
+		"withdraw_amount_notnull": "提现金额不能为空",
+		"recharge_method_notnull": "充值方式不能为空",
+		"withdraw_method_notnull": "提现方式不能为空",
+		"recharge_amount_error": "充值金额必须大于0",
+		"withdraw_amount_error": "提现金额必须大于0",
+		"recharge_amount_max": "充值金额不能超过1000000",
+		"withdraw_amount_max": "提现金额不能超过1000000",
+		"recharge_amount_min": "充值金额不能小于0.01",
+		"withdraw_amount_min": "提现金额不能小于0.01",
+		"recharge_amount_decimal": "充值金额最多只能有两位小数"
+	},
+	"order": {
+		"pending_payment": "待付款",
+		"pending_shipment": "待发货",
+		"pending_receipt": "待收货",
+		"pending_review": "待评价",
+		"all_orders": "全部订单"
+	},
+	
+	"setting": {
+		"signature": "个性签名",
+		"set": "设置",
+		"bind": "绑定",
+		"unbind": "解绑",
+		"physical_address_management": "实体收货地址管理",
+		"virtual_address_management": "虚拟收货地址管理",
+		"alipay_account": "支付宝账号",
+		"bank_card": "银行卡",
+		"enter_platform": "进入平台",
+		"enter_merchant_backend": "进入商家后台",
+		"my_qrcode": "我的二维码",
+		"third_party_account_binding": "第三方账号绑定",
+		"wechat_public_account": "微信公众号",
+		"wechat_mini_program": "微信小程序",
+		"wechat_open_platform": "微信开放平台",
+		"prompt": "提示",
+		"confirm_logout": "确认退出账号?"
+	},
+	
+	"rules": {
+		"username": "请输入用户名",
+		"username_taken": "用户名已被使用!",
+		"usernameNotnull": "用户名不能为空",
+		"nickname": "请输入昵称",
+		"nicknameNotnull": "昵称不能为空",
+		"password": "请输入密码",
+		"passwordNotnull": "密码不能为空",
+		"confirm_password": "请确认密码",
+		"confirmPasswordNotnull": "确认密码不能为空",
+		"email": "请输入邮箱",
+		"emailNotnull": "邮箱不能为空",
+		"phone": "请输入手机号",
+		"phoneNotnull": "手机号不能为空",
+		"avatar": "请上传头像",
+		"avatarNotnull": "头像不能为空",
+		"sex": "请选择性别",
+		"sexNotnull": "性别不能为空",
+		"password_error": "两次密码不一致",
+		"click_change_password": "点击修改密码",
+		"bind_phone": "请绑定手机号",
+		"unbind_warning": "解绑后您将无法通过微信登录此账号",
+		"modify_success": "修改成功,请重新登录"
+	}
+
+
+}

+ 2 - 4
main.js

@@ -1,17 +1,15 @@
 import App from './App';
 import { createSSRApp } from 'vue';
 import { setupPinia } from './sheep/store';
+import i18n from './locale';
 function clearLinkId() {
-  // 清理 Local Storage
   uni.removeStorageSync('linkId');
-  // console.log("五分钟,清了linkId");
 }
-// 每五分钟(300000 毫秒)清理一次缓存
 setInterval(clearLinkId, 300000);
 export function createApp() {
-	
   const app = createSSRApp(App);
   
+  app.use(i18n);
   setupPinia(app);
 
   return {

+ 215 - 229
manifest.json

@@ -1,241 +1,227 @@
 {
-  "name": "常来此购",
-  "appid": "__UNI__7806143",
-  "description": "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。",
-  "versionName": "1.8.3",
-  "versionCode": 183,
-  "transformPx": false,
-  "app-plus": {
-    "usingComponents": true,
-    "nvueCompiler": "uni-app",
-    "nvueStyleCompiler": "uni-app",
-    "compilerVersion": 3,
-    "nvueLaunchMode": "fast",
-    "splashscreen": {
-      "alwaysShowBeforeRender": true,
-      "waiting": true,
-      "autoclose": true,
-      "delay": 0
-    },
-    "safearea": {
-      "bottom": {
-        "offset": "none"
-      }
-    },
-    "modules": {
-      "Payment": {},
-      "Share": {},
-      "VideoPlayer": {},
-      "OAuth": {}
-    },
-    "distribute": {
-      "android": {
-        "permissions": [
-          "<uses-feature android:name=\"android.hardware.camera\"/>",
-          "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-          "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
-          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-          "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
-          "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
-          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-          "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
-          "<uses-permission android:name=\"android.permission.CAMERA\"/>",
-          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-          "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-          "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-          "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-          "<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
-          "<uses-permission android:name=\"android.permission.INTERNET\"/>",
-          "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
-          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-          "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
-          "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-          "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-          "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
-          "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
-          "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
-          "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
-          "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
-          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-          "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-          "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
-          "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
-          "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
-          "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
-          "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
-        ],
-        "minSdkVersion": 21,
-        "schemes": "shopro"
-      },
-      "ios": {
-        "urlschemewhitelist": [
-          "baidumap",
-          "iosamap"
-        ],
-        "dSYMs": false,
-        "privacyDescription": {
-          "NSPhotoLibraryUsageDescription": "需要同意访问您的相册选取图片才能完善该条目",
-          "NSPhotoLibraryAddUsageDescription": "需要同意访问您的相册才能保存该图片",
-          "NSCameraUsageDescription": "需要同意访问您的摄像头拍摄照片才能完善该条目",
-          "NSUserTrackingUsageDescription": "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
-        },
-        "urltypes": "shopro",
-        "capabilities": {
-          "entitlements": {
-            "com.apple.developer.associated-domains": [
-              "applinks:shopro.sheepjs.com"
-            ]
-          }
+    "name" : "常来此购",
+    "appid" : "__UNI__7806143",
+    "description" : "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。",
+    "versionName" : "1.8.3",
+    "versionCode" : 183,
+    "transformPx" : false,
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueCompiler" : "uni-app",
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "nvueLaunchMode" : "fast",
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
         },
-        "idfa": true
-      },
-      "sdkConfigs": {
-        "speech": {
-          "ifly": {}
+        "safearea" : {
+            "bottom" : {
+                "offset" : "none"
+            }
         },
-        "ad": {},
-        "oauth": {
-          "apple": {},
-          "weixin": {
-            "appid": "wxae7a0c156da9383b",
-            "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
-          }
+        "modules" : {
+            "Payment" : {},
+            "Share" : {},
+            "VideoPlayer" : {},
+            "OAuth" : {}
         },
-        "payment": {
-          "weixin": {
-            "__platform__": [
-              "ios",
-              "android"
-            ],
-            "appid": "wxae7a0c156da9383b",
-            "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
-          },
-          "alipay": {
-            "__platform__": [
-              "ios",
-              "android"
-            ]
-          }
-        },
-        "share": {
-          "weixin": {
-            "appid": "wxae7a0c156da9383b",
-            "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
-          }
+        "distribute" : {
+            "android" : {
+                "permissions" : [
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
+                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
+                ],
+                "minSdkVersion" : 21,
+                "schemes" : "shopro"
+            },
+            "ios" : {
+                "urlschemewhitelist" : [ "baidumap", "iosamap" ],
+                "dSYMs" : false,
+                "privacyDescription" : {
+                    "NSPhotoLibraryUsageDescription" : "需要同意访问您的相册选取图片才能完善该条目",
+                    "NSPhotoLibraryAddUsageDescription" : "需要同意访问您的相册才能保存该图片",
+                    "NSCameraUsageDescription" : "需要同意访问您的摄像头拍摄照片才能完善该条目",
+                    "NSUserTrackingUsageDescription" : "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
+                },
+                "urltypes" : "shopro",
+                "capabilities" : {
+                    "entitlements" : {
+                        "com.apple.developer.associated-domains" : [ "applinks:shopro.sheepjs.com" ]
+                    }
+                },
+                "idfa" : true
+            },
+            "sdkConfigs" : {
+                "speech" : {
+                    "ifly" : {}
+                },
+                "ad" : {},
+                "oauth" : {
+                    "apple" : {},
+                    "weixin" : {
+                        "appid" : "wxae7a0c156da9383b",
+                        "UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
+                    }
+                },
+                "payment" : {
+                    "weixin" : {
+                        "__platform__" : [ "ios", "android" ],
+                        "appid" : "wxae7a0c156da9383b",
+                        "UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
+                    },
+                    "alipay" : {
+                        "__platform__" : [ "ios", "android" ]
+                    }
+                },
+                "share" : {
+                    "weixin" : {
+                        "appid" : "wxae7a0c156da9383b",
+                        "UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
+                    }
+                }
+            },
+            "orientation" : [ "portrait-primary" ],
+            "splashscreen" : {
+                "androidStyle" : "common",
+                "iosStyle" : "common",
+                "useOriginalMsgbox" : true
+            },
+            "icons" : {
+                "android" : {
+                    "hdpi" : "unpackage/res/icons/72x72.png",
+                    "xhdpi" : "unpackage/res/icons/96x96.png",
+                    "xxhdpi" : "unpackage/res/icons/144x144.png",
+                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
+                },
+                "ios" : {
+                    "appstore" : "unpackage/res/icons/1024x1024.png",
+                    "ipad" : {
+                        "app" : "unpackage/res/icons/76x76.png",
+                        "app@2x" : "unpackage/res/icons/152x152.png",
+                        "notification" : "unpackage/res/icons/20x20.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "proapp@2x" : "unpackage/res/icons/167x167.png",
+                        "settings" : "unpackage/res/icons/29x29.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "spotlight" : "unpackage/res/icons/40x40.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
+                    },
+                    "iphone" : {
+                        "app@2x" : "unpackage/res/icons/120x120.png",
+                        "app@3x" : "unpackage/res/icons/180x180.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "notification@3x" : "unpackage/res/icons/60x60.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "settings@3x" : "unpackage/res/icons/87x87.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
+                    }
+                }
+            }
         }
-      },
-      "orientation": [
-        "portrait-primary"
-      ],
-      "splashscreen": {
-        "androidStyle": "common",
-        "iosStyle": "common",
-        "useOriginalMsgbox": true
-      },
-      "icons": {
-        "android": {
-          "hdpi": "unpackage/res/icons/72x72.png",
-          "xhdpi": "unpackage/res/icons/96x96.png",
-          "xxhdpi": "unpackage/res/icons/144x144.png",
-          "xxxhdpi": "unpackage/res/icons/192x192.png"
+    },
+    "quickapp" : {},
+    "quickapp-native" : {
+        "icon" : "/static/logo.png",
+        "package" : "com.example.demo",
+        "features" : [
+            {
+                "name" : "system.clipboard"
+            }
+        ]
+    },
+    "quickapp-webview" : {
+        "icon" : "/static/logo.png",
+        "package" : "com.example.demo",
+        "minPlatformVersion" : 1070,
+        "versionName" : "1.0.0",
+        "versionCode" : 100
+    },
+    "mp-weixin" : {
+        "appid" : "wx63c280fe3248a3e7",
+        "setting" : {
+            "urlCheck" : false,
+            "minified" : true,
+            "postcss" : true
         },
-        "ios": {
-          "appstore": "unpackage/res/icons/1024x1024.png",
-          "ipad": {
-            "app": "unpackage/res/icons/76x76.png",
-            "app@2x": "unpackage/res/icons/152x152.png",
-            "notification": "unpackage/res/icons/20x20.png",
-            "notification@2x": "unpackage/res/icons/40x40.png",
-            "proapp@2x": "unpackage/res/icons/167x167.png",
-            "settings": "unpackage/res/icons/29x29.png",
-            "settings@2x": "unpackage/res/icons/58x58.png",
-            "spotlight": "unpackage/res/icons/40x40.png",
-            "spotlight@2x": "unpackage/res/icons/80x80.png"
-          },
-          "iphone": {
-            "app@2x": "unpackage/res/icons/120x120.png",
-            "app@3x": "unpackage/res/icons/180x180.png",
-            "notification@2x": "unpackage/res/icons/40x40.png",
-            "notification@3x": "unpackage/res/icons/60x60.png",
-            "settings@2x": "unpackage/res/icons/58x58.png",
-            "settings@3x": "unpackage/res/icons/87x87.png",
-            "spotlight@2x": "unpackage/res/icons/80x80.png",
-            "spotlight@3x": "unpackage/res/icons/120x120.png"
-          }
-        }
-      }
-    }
-  },
-  "quickapp": {},
-  "quickapp-native": {
-    "icon": "/static/logo.png",
-    "package": "com.example.demo",
-    "features": [
-      {
-        "name": "system.clipboard"
-      }
-    ]
-  },
-  "quickapp-webview": {
-    "icon": "/static/logo.png",
-    "package": "com.example.demo",
-    "minPlatformVersion": 1070,
-    "versionName": "1.0.0",
-    "versionCode": 100
-  },
-  "mp-weixin": {
-    "appid": "wx63c280fe3248a3e7",
-    "setting": {
-      "urlCheck": false,
-      "minified": true,
-      "postcss": true
+        "optimization" : {
+            "subPackages" : true
+        },
+        "plugins" : {},
+        "lazyCodeLoading" : "requiredComponents",
+        "usingComponents" : {},
+        "permission" : {},
+        "requiredPrivateInfos" : [ "chooseAddress" ]
     },
-    "optimization": {
-      "subPackages": true
+    "mp-alipay" : {
+        "usingComponents" : true
     },
-    "plugins": {},
-    "lazyCodeLoading": "requiredComponents",
-    "usingComponents": {},
-    "permission": {},
-    "requiredPrivateInfos": [
-      "chooseAddress"
-    ]
-  },
-  "mp-alipay": {
-    "usingComponents": true
-  },
-  "mp-baidu": {
-    "usingComponents": true
-  },
-  "mp-toutiao": {
-    "usingComponents": true
-  },
-  "mp-jd": {
-    "usingComponents": true
-  },
-  "h5": {
-    "template": "index.html",
-    "router": {
-      "mode": "hash",
-      "base": "./"
+    "mp-baidu" : {
+        "usingComponents" : true
     },
-    "devServer": {
-      "port": 80,
-      "disableHostCheck": true
+    "mp-toutiao" : {
+        "usingComponents" : true
     },
-    "sdkConfigs": {
-      "maps": {}
+    "mp-jd" : {
+        "usingComponents" : true
     },
-    "async": {
-      "timeout": 20000
+    "h5" : {
+        "template" : "index.html",
+        "router" : {
+            "mode" : "hash",
+            "base" : "./"
+        },
+        "devServer" : {
+            "port" : 80,
+            "disableHostCheck" : true
+        },
+        "sdkConfigs" : {
+            "maps" : {}
+        },
+        "async" : {
+            "timeout" : 20000
+        },
+        "title" : "常来此购",
+        "optimization" : {
+            "treeShaking" : {
+                "enable" : true
+            }
+        }
     },
-    "title": "常来此购",
-    "optimization": {
-      "treeShaking": {
-        "enable": true
-      }
-    }
-  },
-  "vueVersion": "3"
-}
+    "vueVersion" : "3",
+    "locale" : "auto"
+}

+ 2 - 0
package.json

@@ -95,6 +95,8 @@
     "axios": "^1.7.2",
     "blueimp-md5": "^2.19.0",
     "dayjs": "^1.11.7",
+    "fs": "0.0.1-security",
+    "glob": "^11.0.0",
     "libphonenumber-js": "^1.11.2",
     "lodash": "^4.17.21",
     "luch-request": "^3.0.8",

+ 4 - 4
pages.json

@@ -10,7 +10,7 @@
 			"path": "pages/index/index",
 			"aliasPath": "/",
 			"style": {
-				"navigationBarTitleText": "首页",
+				"navigationBarTitleText":  "%title.home%",
 				"enablePullDownRefresh": true
 			},
 			"meta": {
@@ -23,7 +23,7 @@
 		{
 			"path": "pages/index/user",
 			"style": {
-				"navigationBarTitleText": "个人中心",
+				"navigationBarTitleText": "%title.usercenter%",
 				"enablePullDownRefresh": true
 			},
 			"meta": {
@@ -257,7 +257,7 @@
 			"pages": [{
 					"path": "info",
 					"style": {
-						"navigationBarTitleText": "我的信息"
+						"navigationBarTitleText": "%title.userinfo%"
 					},
 					"meta": {
 						"auth": true,
@@ -269,7 +269,7 @@
 				{
 					"path": "setting",
 					"style": {
-						"navigationBarTitleText": "用户设置"
+						"navigationBarTitleText": "%title.settings%"
 					},
 					"meta": {
 						"auth": true,

+ 5 - 1
pages/index/index.vue

@@ -3,7 +3,7 @@
 	<view v-if="template">
 		<!--{{android}} 
 		{{androidJiGuangId}} -->
-		<s-layout title="首页" navbar="custom" tabbar="/pages/index/index" :bgStyle="template.page"
+		<s-layout :title="$t('common.home')" navbar="custom" tabbar="/pages/index/index" :bgStyle="template.page"
 			:navbarStyle="template.style?.navbar" onShareAppMessage>
 			<s-block v-for="(item, index) in template.components" :key="index" :styles="item.property.style">
 				<s-block-item :type="item.id" :data="item.property" :styles="item.property.style" />
@@ -28,9 +28,12 @@
 		showWalletModal,
 		colseWalletModal
 	} from '@/sheep/hooks/useModal';
+
+	import { setLanguage } from '@/locale';
 	// 隐藏原生tabBar
 	uni.hideTabBar();
 	
+	
 	const template = computed(() => sheep.$store('app').template?.home);
 	// const android = computed(() => isAndroid());
 	// const androidJiGuangId = computed(() => getAndroidJiGuangId());
@@ -62,6 +65,7 @@
 
 
 	onLoad((options) => {
+		
 		// #ifdef MP
 		// 小程序识别二维码
 		if (options.scene) {

+ 24 - 92
pages/user/info.vue

@@ -1,6 +1,6 @@
 <!-- 用户信息 -->
 <template>
-	<s-layout title="用户信息" class="set-userinfo-wrap">
+	<s-layout :title="$t('user.user_info')" class="set-userinfo-wrap">
 		<uni-forms :model="state.model" :rules="state.rules" labelPosition="left" border class="form-box"
 			labelWidth='160'>
 			<!-- 头像 -->
@@ -12,19 +12,19 @@
 						<!-- #ifdef MP -->
 						<button class="ss-reset-button avatar-action-btn" open-type="chooseAvatar"
 							@chooseavatar="onChooseAvatar">
-							修改
+							{{$t('user.change')}}
 						</button>
 						<!-- #endif -->
 						<!-- #ifndef MP -->
-						<button class="ss-reset-button avatar-action-btn" @tap="onChangeAvatar">修改</button>
+						<button class="ss-reset-button avatar-action-btn" @tap="onChangeAvatar">{{$t('user.change')}}</button>
 						<!-- #endif -->
 					</view>
 				</view>
 			</view>
 
 			<view class="bg-white ss-p-x-30">
-				<uni-forms-item name="username" label="用户名" :error-message="state.usernameErrorMsg">
-					<uni-easyinput v-model="state.model.username" placeholder="设置用户名" :inputBorder="false"
+				<uni-forms-item name="username" :label="$t('user.username')" :error-message="state.usernameErrorMsg">
+					<uni-easyinput v-model="state.model.username" :placeholder="$t('rules.username')" :inputBorder="false"
 						:placeholderStyle="placeholderStyle" @blur="verifyUsername" :clearable="false">
 						<template v-slot:right>
 							<view v-if="!state.verifyUsername" class="icon">
@@ -36,11 +36,11 @@
 						</template>
 					</uni-easyinput>
 				</uni-forms-item>
-				<uni-forms-item name="nickname" label="昵称">
-					<uni-easyinput v-model="state.model.nickname" type="nickname" placeholder="设置昵称"
+				<uni-forms-item name="nickname" :label="$t('user.nickname')">
+					<uni-easyinput v-model="state.model.nickname" type="nickname" :placeholder="t('rules.nickname')"
 						:inputBorder="false" :placeholderStyle="placeholderStyle" :clearable="false" />
 				</uni-forms-item>
-				<uni-forms-item name="sex" label="性别">
+				<uni-forms-item name="sex" :label="$t('user.sex')">
 					<view class="ss-flex ss-col-center ss-h-100">
 						<radio-group @change="onChangeGender" class="ss-flex ss-col-center">
 							<label class="radio" v-for="item in sexRadioMap" :key="item.value">
@@ -54,8 +54,8 @@
 					</view>
 				</uni-forms-item>
 
-				<uni-forms-item name="mobile" label="手机号" @tap="onChangeMobile">
-					<uni-easyinput v-model="userInfo.mobile" placeholder="请绑定手机号" :inputBorder="false" disabled
+				<uni-forms-item name="mobile" :label="$t('user.phone')" @tap="onChangeMobile">
+					<uni-easyinput v-model="userInfo.mobile" :placeholder="t('user.bind_phone')" :inputBorder="false" disabled
 						:styles="{ disableColor: '#fff' }" :placeholderStyle="placeholderStyle" :clearable="false">
 						<template v-slot:right>
 							<view class="ss-flex ss-col-center">
@@ -70,35 +70,8 @@
 
 
 
-				<!-- <uni-forms-item name="mobile" label="支付宝账号" @tap="onChangeAlipayAccount">
-					<uni-easyinput v-model="alipayAccount" placeholder="请绑定支付宝账号" :inputBorder="false" disabled
-						:styles="{ disableColor: '#fff' }" :placeholderStyle="placeholderStyle" :clearable="false">
-						<template v-slot:right>
-							<view class="ss-flex ss-col-center">
-								<su-radio v-if="userInfo.verification?.mobile" :modelValue="true" />
-								<button v-else class="ss-reset-button ss-flex ss-col-center ss-row-center">
-									<text class="_icon-forward" style="color: #bbbbbb; font-size: 26rpx"></text>
-								</button>
-							</view>
-						</template>
-					</uni-easyinput>
-				</uni-forms-item>
-				<uni-forms-item name="mobile" label="银行卡" @tap="onChangeBankAccount">
-					<uni-easyinput v-model="bankAccount" placeholder="请绑定银行卡" :inputBorder="false" disabled
-						:styles="{ disableColor: '#fff' }" :placeholderStyle="placeholderStyle" :clearable="false">
-						<template v-slot:right>
-							<view class="ss-flex ss-col-center">
-								<su-radio v-if="userInfo.verification?.mobile" :modelValue="true" />
-								<button v-else class="ss-reset-button ss-flex ss-col-center ss-row-center">
-									<text class="_icon-forward" style="color: #bbbbbb; font-size: 26rpx"></text>
-								</button>
-							</view>
-						</template>
-					</uni-easyinput>
-				</uni-forms-item> -->
-
-				<uni-forms-item name="password" label="登录密码" @tap="onSetPassword">
-					<uni-easyinput v-model="userInfo.password" placeholder="点击修改登录密码" :inputBorder="false"
+				<uni-forms-item name="password" :label="$t('user.password')" @tap="onSetPassword">
+					<uni-easyinput v-model="userInfo.password" :placeholder="$t('rules.click_change_password')" :inputBorder="false"
 						:styles="{ disableColor: '#fff' }" disabled
 						placeholderStyle="color:#BBBBBB;font-size:28rpx;line-height:normal" :clearable="false">
 						<template v-slot:right>
@@ -113,55 +86,13 @@
 				</uni-forms-item>
 			</view>
 
-			<!-- <view class="bg-white ss-m-t-14">
-        <uni-list>
-          <uni-list-item
-            clickable
-            @tap="sheep.$router.go('/pages/user/address/list')"
-            title="地址管理"
-            showArrow
-            :border="false"
-            class="list-border"
-          />
-        </uni-list>
-      </view> -->
+
 		</uni-forms>
 
-		<!-- 当前社交平台的绑定关系,只处理 wechat 微信场景 -->
-		<!-- <view v-if="sheep.$platform.name !== 'H5'">
-			<view class="title-box ss-p-l-30">第三方账号绑定</view>
-			<view class="account-list ss-flex ss-row-between">
-				<view v-if="'WechatOfficialAccount' === sheep.$platform.name" class="ss-flex ss-col-center">
-					<image class="list-img" :src="sheep.$url.static('/static/images/WechatOfficialAccount.png')" />
-					<text class="list-name">微信公众号</text>
-				</view>
-				<view v-if="'WechatMiniProgram' === sheep.$platform.name" class="ss-flex ss-col-center">
-					<image class="list-img" :src="sheep.$url.static('/static/images/WechatMiniProgram.png')" />
-					<text class="list-name">微信小程序</text>
-				</view>
-				<view v-if="'App' === sheep.$platform.name" class="ss-flex ss-col-center">
-					<image class="list-img" :src="sheep.$url.static('/static/images/wechat.png')" />
-					<text class="list-name">微信开放平台</text>
-				</view>
-				<view class="ss-flex ss-col-center">
-					<view class="info ss-flex ss-col-center" v-if="state.thirdInfo">
-						<image class="avatar ss-m-r-20" :src="sheep.$url.cdn(state.thirdInfo.avatar)" />
-						<text class="name">{{ state.thirdInfo.nickname }}</text>
-					</view>
-					<view class="bind-box ss-m-l-20">
-						<button v-if="state.thirdInfo.openid" class="ss-reset-button relieve-btn"
-							@tap="unBindThirdOauth">
-							解绑
-						</button>
-						<button v-else class="ss-reset-button bind-btn" @tap="bindThirdOauth">绑定</button>
-					</view>
-				</view>
-			</view>
-		</view> -->
 
 		<su-fixed bottom placeholder bg="none">
 			<view class="footer-box ss-p-20">
-				<button class="ss-rest-button logout-btn" @tap="onSubmit">保存</button>
+				<button class="ss-rest-button logout-btn" @tap="onSubmit">{{$t('common.save')}}</button>
 			</view>
 		</su-fixed>
 	</s-layout>
@@ -191,7 +122,8 @@
 	import {
 		closeAuthModal,
 	} from '@/sheep/hooks/useModal';
-
+	import { useI18n } from 'vue-i18n';
+	const { t } = useI18n();
 	const state = reactive({
 		verifyUsername: true,
 		usernameErrorMsg: '',
@@ -205,11 +137,11 @@
 	const placeholderStyle = 'color:#BBBBBB;font-size:28rpx;line-height:normal';
 
 	const sexRadioMap = [{
-			name: '男',
+			name: t('user.male'),
 			value: '1',
 		},
 		{
-			name: '女',
+			name: t('user.female'),
 			value: '2',
 		}
 	];
@@ -303,10 +235,10 @@
 	// 解绑第三方账号
 	function unBindThirdOauth() {
 		uni.showModal({
-			title: '解绑提醒',
-			content: '解绑后您将无法通过微信登录此账号',
-			cancelText: '再想想',
-			confirmText: '确定',
+			title: t('rules.unbind_reminder'),
+			content:t('rules.unbind_warning'),
+			cancelText: t('common.cancel'),
+			confirmText: t('common.confirm'),
 			success: async function(res) {
 				if (!res.confirm) {
 					return;
@@ -339,7 +271,7 @@
 		} = await AuthUtil.verifyUsername(username);
 		// false就是已经有这个用户名,可以登录,true是没有,可以使用
 		if (!data) {
-			state.usernameErrorMsg = '用户名已被使用!'
+			state.usernameErrorMsg = t('rules.username_taken')
 			state.verifyUsername = data
 		} else {
 			state.usernameErrorMsg = ''
@@ -360,7 +292,7 @@
 			// 修改成功并且是修改了用户名退出登录
 			uni.showToast({
 				icon: 'success',
-				title: "修改成功,请重新登录",
+				title: t('rules.modify_success'),
 			});
 			// 成功后,只需要1秒后推出登录关闭弹窗
 			setTimeout(function() {

+ 60 - 25
pages/user/setting.vue

@@ -1,6 +1,6 @@
-<!-- 用户信息 -->
+<!-- 用户设置 -->
 <template>
-	<s-layout title="用户信息" class="set-userinfo-wrap">
+	<s-layout :title="$t('setting.set')" class="set-userinfo-wrap">
 		<uni-forms
 			:model="state.model"
 			:rules="state.rules"
@@ -15,7 +15,7 @@
 						:avatar-circle="true"
 						:title="state.model?.nickname"
 						:avatar="state.model?.avatar"
-						note="个性签名"
+						:note="$t('setting.signature')"
 						@tap="sheep.$router.go('/pages/user/info')"
 					>
 						<view class="chat-custom-right">
@@ -28,14 +28,14 @@
 					<uni-list-item
 						clickable
 						@tap="sheep.$router.go('/pages/user/address/list')"
-						title="实体收货地址管理"
+						:title="$t('setting.physical_address_management')"
 						showArrow
 						:border="false"
 					/>
 					<uni-list-item
 						clickable
 						@tap="sheep.$router.go('/pages/user/dummyAddress/list')"
-						title="虚拟收货地址管理"
+						:title="$t('setting.virtual_address_management')"
 						showArrow
 						:border="false"
 					/>
@@ -48,7 +48,7 @@
 					 @tap="onChangeAlipayAccount">
 						<template v-slot:body>
 							<p style="width: 100%"
-								>支付宝账号&nbsp;&nbsp;{{alipayAccount?alipayAccount:'未绑定'}}
+								>{{$t('setting.alipay_account')}}&nbsp;&nbsp;{{alipayAccount?alipayAccount:'未绑定'}}
 							</p>
 						</template>
 						
@@ -61,7 +61,7 @@
 					@tap="onChangeBankAccount">
 						<template v-slot:body>
 							<p style="width: 100%"
-								>银行卡&nbsp;&nbsp;{{bankAccount?bankAccount:'未绑定'}}
+								>{{$t('setting.bank_card')}}&nbsp;&nbsp;{{bankAccount?bankAccount:'未绑定'}}
 							</p>
 						</template>
 					</uni-list-item>
@@ -72,7 +72,7 @@
 						showArrow
 						:border="false"
 					/> -->
-					<uni-list-item
+					<!-- <uni-list-item
 						:clickable="!userInfo.mobile"
 						@tap="sheep.$router.go('/pages/user/address/list')"
 						title="实名认证"
@@ -84,7 +84,7 @@
 								>实名认证&nbsp;&nbsp;  未认证
 							</p>
 						</template>
-					</uni-list-item>
+					</uni-list-item> -->
 					<uni-list-item
 						v-if="userWallet.isPtSystemUser"
 						:clickable="true"
@@ -95,7 +95,7 @@
 					>
 						<template v-slot:body>
 							<p style="width: 100%"
-								>进入平台
+								>{{$t('setting.enter_platform')}}
 							</p>
 						</template>
 					</uni-list-item>
@@ -109,7 +109,22 @@
 					>
 						<template v-slot:body>
 							<p style="width: 100%"
-								>进入商家后台
+								>{{$t('setting.enter_merchant_backend')}}
+							</p>
+						</template>
+					</uni-list-item>
+					
+					<uni-list-item
+						v-if="isBetaUser()"
+						:clickable="true"
+						@tap="changeLanguage()"
+						title="切换语言"
+						showArrow
+						:border="false"
+					>
+						<template v-slot:body>
+							<p style="width: 100%"
+								>{{currentLang === 'en-US' ? 'Switch to Chinese': '切换为英文'}}
 							</p>
 						</template>
 					</uni-list-item>
@@ -121,7 +136,7 @@
 					>
 						<template v-slot:body>
 							<p style="width: 100%; display: flex; align-items: center">
-								我的二维码&nbsp;&nbsp;&nbsp;&nbsp;
+								{{$t('setting.enter_merchant_backend')}} &nbsp;&nbsp;&nbsp;&nbsp;
 								<su-image
 									class="content-img"
 									style="border: 1px solid #f4f4f4"
@@ -142,19 +157,19 @@
 		
 		<!-- 当前社交平台的绑定关系,只处理 wechat 微信场景 -->
 		<view v-if="sheep.$platform.name !== 'H5'">
-			<view class="title-box ss-p-l-30">第三方账号绑定</view>
+			<view class="title-box ss-p-l-30">{{$t('setting.third_party_account_binding')}}</view>
 			<view class="account-list ss-flex ss-row-between">
 				<view v-if="'WechatOfficialAccount' === sheep.$platform.name" class="ss-flex ss-col-center">
 					<image class="list-img" :src="sheep.$url.static('/static/images/WechatOfficialAccount.png')" />
-					<text class="list-name">微信公众号</text>
+					<text class="list-name">{{$t('setting.wechat_public_account')}}</text>
 				</view>
 				<view v-if="'WechatMiniProgram' === sheep.$platform.name" class="ss-flex ss-col-center">
 					<image class="list-img" :src="sheep.$url.static('/static/images/WechatMiniProgram.png')" />
-					<text class="list-name">微信小程序</text>
+					<text class="list-name">{{$t('setting.wechat_mini_program')}}</text>
 				</view>
 				<view v-if="'App' === sheep.$platform.name" class="ss-flex ss-col-center">
 					<image class="list-img" :src="sheep.$url.static('/static/images/wechat.png')" />
-					<text class="list-name">微信开放平台</text>
+					<text class="list-name">{{$t('setting.wechat_open_platform')}}</text>
 				</view>
 				<view class="ss-flex ss-col-center">
 					<view class="info ss-flex ss-col-center" v-if="state.thirdInfo">
@@ -164,9 +179,9 @@
 					<view class="bind-box ss-m-l-20">
 						<button v-if="state.thirdInfo.openid" class="ss-reset-button relieve-btn"
 							@tap="unBindThirdOauth">
-							解绑
+							{{ $t('setting.unbind') }}
 						</button>
-						<button v-else class="ss-reset-button bind-btn" @tap="bindThirdOauth">绑定</button>
+						<button v-else class="ss-reset-button bind-btn" @tap="bindThirdOauth">{{$t('setting.bind')}}</button>
 					</view>
 				</view>
 			</view>
@@ -175,7 +190,7 @@
 		<su-fixed bottom placeholder>
 			<view class="ss-p-x-20 ss-p-b-40">
 				<button class="loginout-btn ss-reset-button" @tap="onLogout" v-if="isLogin">
-					退出登录
+					{{$t('user.log_out')}}
 				</button>
 			</view>
 		</su-fixed>
@@ -196,9 +211,13 @@
 	import FileApi from '@/sheep/api/infra/file';
 	import UserApi from '@/sheep/api/member/user';
 	import AuthUtil from '@/sheep/api/member/auth';
+	import { isBetaUser } from '@/sheep/hooks/useApp.js'
 	import {
 		onLoad
 	} from '@dcloudio/uni-app';
+	import { setLanguage } from '@/locale'
+	import { useI18n } from 'vue-i18n';
+	const { t } = useI18n();
 	const userInfo = computed(() => sheep.$store('user').userInfo);
 	const userWallet = computed(() => sheep.$store('user').userWallet);
 	const alipayAccount = computed(() => {
@@ -261,10 +280,10 @@
 	// 解绑第三方账号
 	function unBindThirdOauth() {
 		uni.showModal({
-			title: '解绑提醒',
-			content: '解绑后您将无法通过微信登录此账号',
-			cancelText: '再想想',
-			confirmText: '确定',
+			title: t('user.unbind_reminder'),
+			content:t('rules.unbind_warning'),
+			cancelText: t('common.cancel'),
+			confirmText: t('common.confirm'),
 			success: async function(res) {
 				if (!res.confirm) {
 					return;
@@ -304,8 +323,10 @@
 	// 退出账号
 	function onLogout() {
 		uni.showModal({
-			title: '提示',
-			content: '确认退出账号?',
+			title: t('setting.prompt'),
+			content: t('setting.confirm_logout'),
+			cancelText: t('common.cancel'),
+			confirmText: t('common.confirm'),
 			success: async function(res) {
 				if (!res.confirm) {
 					return;
@@ -333,6 +354,20 @@
 			window.location.href = data;
 		}
 	}
+	const currentLang = computed(() => {
+		return uni.getStorageSync('userLanguage');
+	});
+	const changeLanguage = () => {
+		// setLanguage()
+		console.log(currentLang.value)
+		if(currentLang.value === 'en-US'){
+			setLanguage('zh-Hans');
+		}else{
+			setLanguage('en-US');
+		}
+	}
+
+
 	onBeforeMount(() => {
 		getUserInfo();
 	});

+ 1 - 2
pages/user/wallet/score.vue

@@ -123,7 +123,7 @@
 	} from 'vue';
 	import {
 		points2point,
-		// isBetaUser
+		
 	} from '@/sheep/hooks/useGoods';
 	import _ from 'lodash';
 	import dayjs from 'dayjs';
@@ -138,7 +138,6 @@
 	const userWallet = computed(() => sheep.$store('user').userWallet);
 	const statusBarHeight = sheep.$platform.device.statusBarHeight * 2;
 	const userInfo = computed(() => sheep.$store('user').userInfo);
-	// const isBeta = computed(() => isBetaUser(userInfo.value.username));
 	const sys_navBar = sheep.$platform.navbar;
 
 	const state = reactive({

+ 109 - 100
sheep/components/s-menu-tools/s-menu-tools.vue

@@ -1,118 +1,127 @@
 <!-- 全局 - 快捷入口 -->
 <template>
-  <su-popup :show="show" type="top" round="20" backgroundColor="#F0F0F0" @close="closeMenuTools">
-    <su-status-bar />
-    <view class="tools-wrap ss-m-x-30 ss-m-b-16">
-      <view class="title ss-m-b-34 ss-p-t-20">快捷菜单</view>
-      <view class="container-list ss-flex ss-flex-wrap">
-        <view class="list-item ss-m-b-24" v-for="item in list" :key="item.title">
-          <view class="ss-flex-col ss-col-center">
-            <button
-              class="ss-reset-button list-image ss-flex ss-row-center ss-col-center"
-              @tap="onClick(item)"
-            >
-              <image v-if="show" :src="sheep.$url.static(item.icon)" class="list-icon" />
-            </button>
-            <view class="list-title ss-m-t-20">{{ item.title }}</view>
-          </view>
-        </view>
-      </view>
-    </view>
-  </su-popup>
+	<su-popup :show="show" type="top" round="20" backgroundColor="#F0F0F0" @close="closeMenuTools">
+		<su-status-bar />
+		<view class="tools-wrap ss-m-x-30 ss-m-b-16">
+			<view class="title ss-m-b-34 ss-p-t-20">{{$t('menu.quick_menu')}}</view>
+			<view class="container-list ss-flex ss-flex-wrap">
+				<view class="list-item ss-m-b-24" v-for="item in list" :key="item.title">
+					<view class="ss-flex-col ss-col-center">
+						<button class="ss-reset-button list-image ss-flex ss-row-center ss-col-center"
+							@tap="onClick(item)">
+							<image v-if="show" :src="sheep.$url.static(item.icon)" class="list-icon" />
+						</button>
+						<view class="list-title ss-m-t-20">{{ item.title }}</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</su-popup>
 </template>
 
 <script setup>
-  import { reactive, computed } from 'vue';
-  import sheep from '@/sheep';
-  import { showMenuTools, closeMenuTools } from '@/sheep/hooks/useModal';
+	import {
+		reactive,
+		computed
+	} from 'vue';
+	import sheep from '@/sheep';
+	import {
+		showMenuTools,
+		closeMenuTools
+	} from '@/sheep/hooks/useModal';
 
-  const show = computed(() => sheep.$store('modal').menu);
+	const show = computed(() => sheep.$store('modal').menu);
+	import {
+		useI18n
+	} from 'vue-i18n';
+	const {
+		t
+	} = useI18n();
 
-  function onClick(item) {
-    closeMenuTools();
-    if (item.url) sheep.$router.go(item.url);
-  }
+	function onClick(item) {
+		closeMenuTools();
+		if (item.url) sheep.$router.go(item.url);
+	}
 
-  const list = [
-    {
-      url: '/pages/index/index',
-      icon: '/static/images/home.png',
-      title: '首页',
-    },
-    {
-      url: '/pages/index/search',
-      icon: '/static/images/search.png',
-      title: '搜索',
-    },
-    {
-      url: '/pages/index/user',
-      icon: '/static/images/user.png',
-      title: '个人中心',
-    },
-    {
-      url: '/pages/index/cart',
-      icon: '/static/images/cart.png',
-      title: '购物车',
-    },
-    {
-      url: '/pages/user/goods-log',
-      icon: '/static/images/browse.png',
-      title: '浏览记录',
-    },
-    {
-      url: '/pages/user/goods-collect',
-      icon: '/static/images/collect.png',
-      title: '我的收藏',
-    },
-    {
-      url: '/pages/chat/index',
-      icon: '/static/images/service.png',
-      title: '客服',
-    },
-  ];
+	const list = [{
+			url: '/pages/index/index',
+			icon: '/static/images/home.png',
+			title: t('common.home'),
+		},
+		{
+			url: '/pages/index/search',
+			icon: '/static/images/search.png',
+			title: t('common.search'),
+		},
+		{
+			url: '/pages/index/user',
+			icon: '/static/images/user.png',
+			title: t('menu.personal_center'),
+		},
+		{
+			url: '/pages/index/cart',
+			icon: '/static/images/cart.png',
+			title: t('menu.shopping_cart'),
+		},
+		{
+			url: '/pages/user/goods-log',
+			icon: '/static/images/browse.png',
+			title: t('menu.browsing_history'),
+		},
+		{
+			url: '/pages/user/goods-collect',
+			icon: '/static/images/collect.png',
+			title: t('menu.my_favorites'),
+		},
+		// {
+		// 	url: '/pages/chat/index',
+		// 	icon: '/static/images/service.png',
+		// 	title: t('menu.customer_service'),
+		// },
+	];
 </script>
 
 <style lang="scss" scoped>
-  .tools-wrap {
-    // background: #F0F0F0;
-    // box-shadow: 0px 0px 28rpx 7rpx rgba(0, 0, 0, 0.13);
-    // opacity: 0.98;
-    // border-radius: 0 0 20rpx 20rpx;
+	.tools-wrap {
+		// background: #F0F0F0;
+		// box-shadow: 0px 0px 28rpx 7rpx rgba(0, 0, 0, 0.13);
+		// opacity: 0.98;
+		// border-radius: 0 0 20rpx 20rpx;
 
-    .title {
-      font-size: 36rpx;
-      font-weight: bold;
-      color: #333333;
-    }
+		.title {
+			font-size: 36rpx;
+			font-weight: bold;
+			color: #333333;
+		}
 
-    .list-item {
-      width: calc(25vw - 20rpx);
+		.list-item {
+			width: calc(25vw - 20rpx);
 
-      .list-image {
-        width: 104rpx;
-        height: 104rpx;
-        border-radius: 52rpx;
-        background: var(--ui-BG);
+			.list-image {
+				width: 104rpx;
+				height: 104rpx;
+				border-radius: 52rpx;
+				background: var(--ui-BG);
 
-        .list-icon {
-          width: 54rpx;
-          height: 54rpx;
-        }
-      }
+				.list-icon {
+					width: 54rpx;
+					height: 54rpx;
+				}
+			}
 
-      .list-title {
-        font-size: 26rpx;
-        font-weight: 500;
-        color: #333333;
-      }
-    }
-  }
+			.list-title {
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #333333;
+			}
+		}
+	}
 
-  .uni-popup {
-    top: 0 !important;
-  }
+	.uni-popup {
+		top: 0 !important;
+	}
 
-  :deep(.button-hover) {
-    background: #fafafa !important;
-  }
-</style>
+	:deep(.button-hover) {
+		background: #fafafa !important;
+	}
+</style>

+ 102 - 99
sheep/components/s-order-card/s-order-card.vue

@@ -1,109 +1,112 @@
 <!-- 装修用户组件:用户订单 -->
 <template>
-  <view class="ss-order-menu-wrap ss-flex ss-col-center">
-    <view
-      class="menu-item ss-flex-1 ss-flex-col ss-row-center ss-col-center"
-      v-for="item in orderMap"
-      :key="item.title"
-      @tap="sheep.$router.go(item.path, { type: item.value })"
-    >
-      <uni-badge
-        class="uni-badge-left-margin"
-        :text="numData.orderCount[item.count]"
-        absolute="rightTop"
-        size="small"
-      >
-        <image class="item-icon" :src="sheep.$url.static(item.icon)" mode="aspectFit" />
-      </uni-badge>
-      <view class="menu-title ss-m-t-28">{{ item.title }}</view>
-    </view>
-  </view>
+	<view class="ss-order-menu-wrap ss-flex ss-col-center">
+		<view class="menu-item ss-flex-1 ss-flex-col ss-row-center ss-col-center" v-for="item in orderMap"
+			:key="item.title" @tap="sheep.$router.go(item.path, { type: item.value })">
+			<uni-badge class="uni-badge-left-margin" :text="numData.orderCount[item.count]" absolute="rightTop"
+				size="small">
+				<image class="item-icon" :src="sheep.$url.static(item.icon)" mode="aspectFit" />
+			</uni-badge>
+			<view class="menu-title ss-m-t-28">{{ item.title }}</view>
+		</view>
+	</view>
 </template>
 
 <script setup>
-  /**
-   * 装修组件 - 订单菜单组
-   */
-  import sheep from '@/sheep';
-  import { computed } from 'vue';
+	/**
+	 * 装修组件 - 订单菜单组
+	 */
+	import sheep from '@/sheep';
+	import {
+		computed
+	} from 'vue';
 
-  const orderMap = [
-    {
-      title: '待付款',
-      value: '1',
-      icon: '/static/images/no_pay.png',
-      path: '/pages/order/list',
-      type: 'unpaid',
-      count: 'unpaidCount',
-    },
-	{
-	  title: '待发货',
-	  value: '2',
-	  icon: '/static/images/change_order.png',
-	  path: '/pages/order/list',
-	  type: 'undelivered',
-	  count: 'undeliveredCount',
-	},
-    {
-      title: '待收货',
-      value: '3',
-      icon: '/static/images/no_take.png',
-      path: '/pages/order/list',
-      type: 'noget',
-      count: 'deliveredCount',
-    },
-    {
-      title: '待评价',
-      value: '4',
-      icon: '/static/images/no_comment.png',
-      path: '/pages/order/list',
-      type: 'nocomment',
-      count: 'uncommentedCount',
-    },
-    
-    {
-      title: '全部订单',
-      value: '0',
-      icon: '/static/images/all_order.png',
-      path: '/pages/order/list',
-    },
-  ];
+	import {
+		useI18n
+	} from 'vue-i18n';
+	const {
+		t
+	} = useI18n();
+	const orderMap = [{
+			title: t('order.pending_payment'),
+			value: '1',
+			icon: '/static/images/no_pay.png',
+			path: '/pages/order/list',
+			type: 'unpaid',
+			count: 'unpaidCount',
+		},
+		{
+			title: t('order.pending_shipment'),
+			value: '2',
+			icon: '/static/images/change_order.png',
+			path: '/pages/order/list',
+			type: 'undelivered',
+			count: 'undeliveredCount',
+		},
+		{
+			title: t('order.pending_receipt'),
+			value: '3',
+			icon: '/static/images/no_take.png',
+			path: '/pages/order/list',
+			type: 'noget',
+			count: 'deliveredCount',
+		},
+		{
+			title: t('order.pending_review'),
+			value: '4',
+			icon: '/static/images/no_comment.png',
+			path: '/pages/order/list',
+			type: 'nocomment',
+			count: 'uncommentedCount',
+		},
 
-  const numData = computed(() => sheep.$store('user').numData);
+		{
+			title: t('order.all_orders'),
+			value: '0',
+			icon: '/static/images/all_order.png',
+			path: '/pages/order/list',
+		},
+	];
+
+	const numData = computed(() => sheep.$store('user').numData);
 </script>
 
 <style lang="scss" scoped>
-  .ss-order-menu-wrap {
-    .menu-item {
-      height: 160rpx;
-      position: relative;
-      z-index: 10;
-      .menu-title {
-        font-size: 24rpx;
-        line-height: 24rpx;
-        color: #333333;
-      }
-      .item-icon {
-        width: 44rpx;
-        height: 44rpx;
-      }
-      .num-icon {
-        position: absolute;
-        right: 18rpx;
-        top: 18rpx;
-        // width: 40rpx;
-        padding: 0 8rpx;
-        height: 26rpx;
-        background: #ff4d4f;
-        border-radius: 13rpx;
-        color: #fefefe;
-        display: flex;
-        align-items: center;
-        .num {
-          font-size: 24rpx;
-          transform: scale(0.8);
-        }
-      }
-    }
-  }
-</style>
+	.ss-order-menu-wrap {
+		.menu-item {
+			height: 160rpx;
+			position: relative;
+			z-index: 10;
+
+			.menu-title {
+				font-size: 24rpx;
+				line-height: 24rpx;
+				color: #333333;
+			}
+
+			.item-icon {
+				width: 44rpx;
+				height: 44rpx;
+			}
+
+			.num-icon {
+				position: absolute;
+				right: 18rpx;
+				top: 18rpx;
+				// width: 40rpx;
+				padding: 0 8rpx;
+				height: 26rpx;
+				background: #ff4d4f;
+				border-radius: 13rpx;
+				color: #fefefe;
+				display: flex;
+				align-items: center;
+
+				.num {
+					font-size: 24rpx;
+					transform: scale(0.8);
+				}
+			}
+		}
+	}
+</style>

+ 1 - 1
sheep/components/s-share-modal/canvas-poster/useCanvas.js

@@ -110,7 +110,7 @@ export default async function useCanvas(options, vm) {
 	setTimeout(async () => {
 		
 		options.src = await qsc.toImage();
-		debugger
+		
 	}, 100);
 	return options;
 }

+ 22 - 8
sheep/components/s-user-card/s-user-card.vue

@@ -4,7 +4,7 @@
 		<view class="ss-flex ss-col-center ss-row-between ss-m-b-20">
 			<view class="left-box ss-flex ss-col-center ss-m-l-36">
 				<view class="avatar-box ss-m-r-24">
-					
+
 					<image class="avatar-img" :src="
               isLogin
                 ? sheep.$url.cdn(userInfo.avatar)
@@ -14,9 +14,9 @@
 				<view>
 					<view class="nickname-box ss-flex ss-col-center">
 						<view class="nick-name ss-m-r-20">{{ userInfo?.username || username }}</view>
-						
+
 					</view>
-					<view class="user-name ss-m-t-5">昵称:{{ userInfo?.nickname || nickname }}</view>
+					<view class="user-name ss-m-t-5">{{$t('user.nickname')}}:{{ userInfo?.nickname || nickname }}</view>
 				</view>
 			</view>
 			<view class="right-box ss-m-r-30">
@@ -25,7 +25,7 @@
 					<text class="cicon-service-o"></text>
 				</button> -->
 				<button class="ss-reset-button" @tap="sheep.$router.go('/pages/user/setting')">
-					<image src="@/static/icon/setting.png" class="audioPaly" style="width:40rpx;height:40rpx"/>
+					<image src="@/static/icon/setting.png" class="audioPaly" style="width:40rpx;height:40rpx" />
 				</button>
 			</view>
 		</view>
@@ -67,7 +67,9 @@
 		showShareModal,
 		showAuthModal
 	} from '@/sheep/hooks/useModal';
-
+	import {
+		useI18n
+	} from 'vue-i18n';
 
 	// 用户信息
 	const userInfo = computed(() => sheep.$store('user').userInfo);
@@ -88,11 +90,21 @@
 		},
 		nickname: {
 			type: String,
-			default: '请登录',
+			default: () => {
+				const {
+					t
+				} = useI18n();
+				return t('user.please_login');
+			}
 		},
 		username: {
 			type: String,
-			default: '无',
+			default: () => {
+				const {
+					t
+				} = useI18n();
+				return t('common.none');
+			}
 		},
 		vip: {
 			type: [String, Number],
@@ -135,9 +147,11 @@
 			color: #333333;
 			line-height: normal;
 		}
-		.user-name{
+
+		.user-name {
 			color: #999999;
 		}
+
 		.vip-img {
 			width: 30rpx;
 			height: 30rpx;

+ 8 - 8
sheep/components/s-wallet-card/s-wallet-card.vue

@@ -6,7 +6,7 @@
 				<view class="progress-bar" :style="{ width: progressWidth }">
 				</view>
 				<view class="progress-text">
-					{{userWallet.socialStatusLevel || "无等级"}}
+					{{userWallet.socialStatusLevel || $t('common.no_level')}}
 				</view>
 
 			</view>
@@ -52,19 +52,19 @@
 			<view class="menu-item ss-flex-1 ss-flex-col  ss-col-center ss-row-center"
 				@tap="sheep.$router.go('/pages/user/wallet/score')">
 				<view class="value-box ">
-					<view class="value-text">钱包</view>
+					<view class="value-text">{{$t('wallet.wallet')}}</view>
 				</view>
-				<view class="menu-title  ss-m-t-15">佣金:{{ points2point(userWallet.integralDO.currentQuota)  }}</view>
-				<view class="menu-title  ss-m-t-15">消费分:{{ points2point(userWallet.integralDO.consumptionPoints)  }}</view>
+				<view class="menu-title  ss-m-t-15 text-center">{{$t('wallet.commission')}}:{{ points2point(userWallet.integralDO.currentQuota)  }}</view>
+				<view class="menu-title  ss-m-t-15 text-center">{{$t('wallet.consumption_points')}}:{{ points2point(userWallet.integralDO.consumptionPoints)  }}</view>
 				<!-- <view class="menu-title ss-m-t-15">待确权:{{ points2point(userWallet.integralDO.freezeQuota)  }}</view> -->
 			</view>
 			<view class="menu-item ss-flex-1 ss-flex-col  ss-col-center ss-row-center"
 				@tap="sheep.$router.go('/pages/user/wallet/team')">
 				<view class="value-box ">
-					<view class="value-text">团队</view>
+					<view class="value-text">{{$t('wallet.team')}}</view>
 				</view>
 
-				<view class="menu-title ss-m-t-15">{{ userWallet.descNo  }}</view>
+				<view class="menu-title ss-m-t-15">{{ userWallet.descNo +" "+ $t('wallet.people') }}</view>
 			</view>
 
 		</view>
@@ -73,10 +73,10 @@
 		<su-popup :show="state.showProtocol" type="center" round="10" :isMaskClick="false" showClose @close="close">
 			<view class="head-nav">
 				<view :class="state.navIndex==0?'activite':''" class="ss-m-l-20" @click="checkIndex(0)">
-					身价产生规则
+					{{$t('wallet.generation_rules')}}
 				</view>
 				<view :class="state.navIndex==1?'activite':''" class="ss-m-l-20" @click="checkIndex(1)">
-					身价权益
+					{{$t('wallet.benefits')}}
 				</view>
 			</view>
 			<scroll-view class="scroll-view_H" scroll-y="true">

+ 19 - 2
sheep/hooks/useApp.js

@@ -1,9 +1,26 @@
+import sheep from '@/sheep';
+import {
+	computed
+} from 'vue';
+
+// 用户信息
+const userInfo = computed(() => sheep.$store('user').userInfo);
+
+/**
+ * 判断内测资格
+ * @return {boolean} 当前用户是否是内测用户
+ */
+export function isBetaUser() {
+	const username = userInfo.value.username;
+	return username === 'ru10' || username === '迷鹿' || username === '非繁';
+}
+
 /**
  * 判断是否安卓打开
  * @return { String } 是否是安卓打开
  */
 export function isAndroid() {
-  return window.Android && window.Android.getIdentifier();
+	return window.Android && window.Android.getIdentifier();
 }
 
 /**
@@ -11,5 +28,5 @@ export function isAndroid() {
  * @return { String } 是否是安卓打开
  */
 export function getAndroidJiGuangId() {
-  return window.Android && window.Android.getRegistrationID();
+	return window.Android && window.Android.getRegistrationID();
 }

+ 1 - 8
sheep/hooks/useGoods.js

@@ -3,14 +3,7 @@ import dayjs from 'dayjs';
 import $url from '@/sheep/url';
 import { formatDate } from '@/sheep/util';
 
-/**
- * 判断内测资格
- * @param {string} username 用户名
- * @return {boolean} 是否是内测用户
- */
-export function isBetaUser(username) {
-  return username === 'ru10' || username === '迷鹿' || username === '非繁';
-}
+
 
 /**
  * 格式化销量

+ 1 - 0
sheep/store/app.js

@@ -130,6 +130,7 @@ const adaptTemplate = async (appTemplate, templateId) => {
 	}
 
 	const tabBar = diyTemplate?.property?.tabBar;
+	
 	if (tabBar) {
 		appTemplate.basic.tabbar = tabBar
 		if (tabBar?.theme) {

+ 12 - 1
sheep/ui/su-tabbar-item/su-tabbar-item.vue

@@ -33,7 +33,7 @@
             color: isActive ? parentData.activeColor : parentData.color,
           }"
         >
-          {{ text }}
+          {{ t(`common.${text}`) }}
         </text>
       </slot>
     </template>
@@ -54,6 +54,10 @@
    *
    */
   import { deepMerge, addStyle, sleep, $parent } from '@/sheep/helper';
+ 
+	import { useI18n } from 'vue-i18n';
+	  
+ 
   export default {
     name: 'su-tabbar-item',
     props: {
@@ -126,10 +130,17 @@
         parent: {},
       };
     },
+	setup(){
+		const { t } = useI18n();
+		return {
+		  t
+		};
+	},
     created() {
       this.init();
     },
     methods: {
+		
       getParentData(parentName = '') {
         // 避免在created中去定义parent变量
         if (!this.parent) this.parent = {};

+ 1 - 1
unpackage/dist/build/web/assets/comment-item.76ac403b.js → unpackage/dist/build/web/assets/comment-item.a0333778.js

@@ -1 +1 @@
-import{m as s,n as e,f as l,g as a,w as t,k as r,u as c,v as i,l as m,F as u,r as n,i as o,y as d,j as p,D as f}from"./index-d8ee7f22.js";import{_}from"./uni-rate.85ea5b93.js";import{_ as y}from"./su-image.f01904af.js";import{_ as v}from"./_plugin-vue_export-helper.1b428a4d.js";const x=v({__name:"comment-item",props:{item:{type:Object,default(){}}},setup:v=>(x,g)=>{const h=d,j=p,k=s(e("uni-rate"),_),w=s(e("su-image"),y),b=f;return l(),a(j,null,{default:t((()=>{var s;return[r(j,{class:"user ss-flex ss-m-b-14"},{default:t((()=>[r(j,{class:"ss-m-r-20 ss-flex"},{default:t((()=>[r(h,{class:"avatar",src:v.item.userAvatar},null,8,["src"])])),_:1}),r(j,{class:"nickname ss-m-r-20"},{default:t((()=>[c(i(v.item.userNickname),1)])),_:1}),r(j,{class:""},{default:t((()=>[r(k,{readonly:!0,modelValue:v.item.scores,"onUpdate:modelValue":g[0]||(g[0]=s=>v.item.scores=s),size:"18"},null,8,["modelValue"])])),_:1})])),_:1}),r(j,{class:"content"},{default:t((()=>[c(i(v.item.content),1)])),_:1}),(null==(s=v.item.picUrls)?void 0:s.length)?(l(),a(j,{key:0,class:"ss-m-t-24"},{default:t((()=>[r(b,{class:"scroll-box","scroll-x":"","scroll-anchoring":""},{default:t((()=>[r(j,{class:"ss-flex"},{default:t((()=>[(l(!0),m(u,null,n(v.item.picUrls,((s,e)=>(l(),a(j,{key:s,class:"ss-m-r-10"},{default:t((()=>[r(w,{class:"content-img",isPreview:"",previewList:v.item.picUrls,current:e,src:s,height:120,width:120,mode:"aspectFill"},null,8,["previewList","current","src"])])),_:2},1024)))),128))])),_:1})])),_:1})])),_:1})):o("",!0),v.item.replyTime?(l(),a(j,{key:1,class:"ss-m-t-20 reply-box"},{default:t((()=>[r(j,{class:"reply-title"},{default:t((()=>[c("商家回复:")])),_:1}),r(j,{class:"reply-content"},{default:t((()=>[c(i(v.item.replyContent),1)])),_:1})])),_:1})):o("",!0)]})),_:1})}},[["__scopeId","data-v-c011c544"]]);export{x as c};
+import{m as s,n as e,f as l,g as a,w as t,k as r,u as c,v as i,l as m,F as u,r as n,i as o,y as d,j as p,D as f}from"./index-a116b7fa.js";import{_}from"./uni-rate.540043c1.js";import{_ as y}from"./su-image.cf5517c4.js";import{_ as v}from"./_plugin-vue_export-helper.1b428a4d.js";const x=v({__name:"comment-item",props:{item:{type:Object,default(){}}},setup:v=>(x,g)=>{const h=d,j=p,k=s(e("uni-rate"),_),w=s(e("su-image"),y),b=f;return l(),a(j,null,{default:t((()=>{var s;return[r(j,{class:"user ss-flex ss-m-b-14"},{default:t((()=>[r(j,{class:"ss-m-r-20 ss-flex"},{default:t((()=>[r(h,{class:"avatar",src:v.item.userAvatar},null,8,["src"])])),_:1}),r(j,{class:"nickname ss-m-r-20"},{default:t((()=>[c(i(v.item.userNickname),1)])),_:1}),r(j,{class:""},{default:t((()=>[r(k,{readonly:!0,modelValue:v.item.scores,"onUpdate:modelValue":g[0]||(g[0]=s=>v.item.scores=s),size:"18"},null,8,["modelValue"])])),_:1})])),_:1}),r(j,{class:"content"},{default:t((()=>[c(i(v.item.content),1)])),_:1}),(null==(s=v.item.picUrls)?void 0:s.length)?(l(),a(j,{key:0,class:"ss-m-t-24"},{default:t((()=>[r(b,{class:"scroll-box","scroll-x":"","scroll-anchoring":""},{default:t((()=>[r(j,{class:"ss-flex"},{default:t((()=>[(l(!0),m(u,null,n(v.item.picUrls,((s,e)=>(l(),a(j,{key:s,class:"ss-m-r-10"},{default:t((()=>[r(w,{class:"content-img",isPreview:"",previewList:v.item.picUrls,current:e,src:s,height:120,width:120,mode:"aspectFill"},null,8,["previewList","current","src"])])),_:2},1024)))),128))])),_:1})])),_:1})])),_:1})):o("",!0),v.item.replyTime?(l(),a(j,{key:1,class:"ss-m-t-20 reply-box"},{default:t((()=>[r(j,{class:"reply-title"},{default:t((()=>[c("商家回复:")])),_:1}),r(j,{class:"reply-content"},{default:t((()=>[c(i(v.item.replyContent),1)])),_:1})])),_:1})):o("",!0)]})),_:1})}},[["__scopeId","data-v-c011c544"]]);export{x as c};

+ 1 - 1
unpackage/dist/build/web/assets/const.8b26b80e.js → unpackage/dist/build/web/assets/const.24444c58.js

@@ -1 +1 @@
-import{bi as e}from"./index-d8ee7f22.js";const T={PRICE:{type:1,name:"满减"},PERCENT:{type:2,name:"折扣"}},s={DATE:{type:1,name:"固定日期可用"},TERM:{type:2,name:"领取之后可用"}},t={WAIT_START:"即将开始",STARTED:"进行中",END:"已结束"},a=(T,s)=>{const a=e();return a.isBefore(T)?t.WAIT_START:a.isAfter(s)?t.END:t.STARTED};export{s as C,T as P,t as T,a as g};
+import{bl as e}from"./index-a116b7fa.js";const T={PRICE:{type:1,name:"满减"},PERCENT:{type:2,name:"折扣"}},s={DATE:{type:1,name:"固定日期可用"},TERM:{type:2,name:"领取之后可用"}},t={WAIT_START:"即将开始",STARTED:"进行中",END:"已结束"},a=(T,s)=>{const a=e();return a.isBefore(T)?t.WAIT_START:a.isAfter(s)?t.END:t.STARTED};export{s as C,T as P,t as T,a as g};

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/detail-content-card.fb9524e8.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/index-a116b7fa.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/index-d8ee7f22.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/info-3c436651.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/md5.09e73eca.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/mp-html.02bc03c7.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-activity-bargain-detail.20dd3718.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-activity-bargain-list.34d37ca7.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-activity-groupon-detail.285c9fdf.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-activity-groupon-list.1c058ff3.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-activity-groupon-order.158c340b.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-activity-index.d71cc633.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-activity-seckill-list.3421f660.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-app-sign.19a87086.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-chat-index.fbea0b6d.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-chat-speechtotext.7c770fbe.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-commission-commission-ranking.e04b6f51.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-commission-goods.0498f42f.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-commission-index.d1c74b87.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-commission-order.e7233d18.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-commission-promoter.7c111f94.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-commission-team.70f1aae4.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-commission-wallet.2416f024.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-commission-withdraw.f8d102a1.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-coupon-detail.fbf71d08.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-coupon-list.1381b294.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-goods-comment-add.1744ff2b.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-goods-comment-list.ab68c2ef.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-goods-groupon.fddcceb3.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-goods-index.e88fd81d.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-goods-list.eb2f34f8.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-goods-seckill.6a3df18e.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-index-cart.fb0d0399.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-index-category.9208c486.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-index-index.9b989730.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-index-index.cd41edf1.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-index-login.77804d45.js


+ 1 - 1
unpackage/dist/build/web/assets/pages-index-page.c5121bc5.js → unpackage/dist/build/web/assets/pages-index-page.0e22454f.js

@@ -1 +1 @@
-import{_ as t,a as e}from"./s-block.d32870bf.js";import{z as s,o,Y as a,e as p,f as n,g as i,w as r,m as l,l as m,r as u,F as _,n as y,k as d}from"./index-d8ee7f22.js";import{_ as g}from"./s-layout.f0c3c0de.js";import"./phone-international-input.820beb02.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.be06496b.js";import"./uni-badge.a688eeeb.js";import"./su-image.f01904af.js";import"./su-swiper.8a3db4d2.js";import"./s-goods-column.7d3760a7.js";import"./points.c381a8e1.js";import"./useGoods.47707bb5.js";/* empty css                                                                     */import"./uni-load-more.0e9ac3e0.js";/* empty css                                                                *//* empty css                                                                      */import"./const.8b26b80e.js";import"./mp-html.454e9770.js";import"./pages-public-richtext.b4611cec.js";const c={__name:"page",setup(c){const j=s({name:"",components:[],navigationBar:{},page:{}});return o((async t=>{var e,s,o;let p=t.id;const{code:n,data:i}=await a.getDiyPage(p);0===n&&(j.name=i.name,j.components=null==(e=i.property)?void 0:e.components,j.navigationBar=null==(s=i.property)?void 0:s.navigationBar,j.page=null==(o=i.property)?void 0:o.page)})),p((()=>{})),(s,o)=>{const a=l(y("s-block-item"),t),p=l(y("s-block"),e),c=l(y("s-layout"),g);return n(),i(c,{title:j.name,navbar:"custom",bgStyle:j.page,navbarStyle:j.navigationBar,onShareAppMessage:"",showLeftButton:""},{default:r((()=>[(n(!0),m(_,null,u(j.components,((t,e)=>(n(),i(p,{key:e,styles:t.property.style},{default:r((()=>[d(a,{type:t.id,data:t.property,styles:t.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["title","bgStyle","navbarStyle"])}}};export{c as default};
+import{_ as t,a as e}from"./s-block.518b062a.js";import{z as s,o,Y as a,e as p,f as n,g as i,w as r,m as l,l as m,r as u,F as _,n as y,k as d}from"./index-a116b7fa.js";import{_ as g}from"./s-layout.4ae51839.js";import"./phone-international-input.b9f6c8e6.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.78aaa36c.js";import"./uni-badge.9d757a16.js";import"./su-image.cf5517c4.js";import"./su-swiper.ce1743f1.js";import"./s-goods-column.67cd78e3.js";import"./points.c381a8e1.js";import"./useGoods.6b315a78.js";/* empty css                                                                     */import"./uni-load-more.2682655d.js";/* empty css                                                                *//* empty css                                                                      */import"./const.24444c58.js";import"./mp-html.02bc03c7.js";import"./pages-public-richtext.b4bc67a7.js";const c={__name:"page",setup(c){const j=s({name:"",components:[],navigationBar:{},page:{}});return o((async t=>{var e,s,o;let p=t.id;const{code:n,data:i}=await a.getDiyPage(p);0===n&&(j.name=i.name,j.components=null==(e=i.property)?void 0:e.components,j.navigationBar=null==(s=i.property)?void 0:s.navigationBar,j.page=null==(o=i.property)?void 0:o.page)})),p((()=>{})),(s,o)=>{const a=l(y("s-block-item"),t),p=l(y("s-block"),e),c=l(y("s-layout"),g);return n(),i(c,{title:j.name,navbar:"custom",bgStyle:j.page,navbarStyle:j.navigationBar,onShareAppMessage:"",showLeftButton:""},{default:r((()=>[(n(!0),m(_,null,u(j.components,((t,e)=>(n(),i(p,{key:e,styles:t.property.style},{default:r((()=>[d(a,{type:t.id,data:t.property,styles:t.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["title","bgStyle","navbarStyle"])}}};export{c as default};

+ 1 - 1
unpackage/dist/build/web/assets/pages-index-search.d17d2303.js → unpackage/dist/build/web/assets/pages-index-search.c106810e.js

@@ -1 +1 @@
-import{z as s,o as t,Q as e,f as o,g as a,w as r,m as i,k as l,u as n,l as c,r as u,F as f,s as h,q as y,P as d,X as p,n as _,j as m,J as x,v as L}from"./index-d8ee7f22.js";import{b as g,_ as b}from"./s-layout.f0c3c0de.js";import{_ as j}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.820beb02.js";import"./useGoods.47707bb5.js";const k=j({__name:"search",setup(j){const k=s({historyList:[]});function w(s){s&&(!function(s){k.historyList.includes(s)&&k.historyList.splice(k.historyList.indexOf(s),1);k.historyList.unshift(s),k.historyList.length>=10&&(k.historyList.length=10);y("searchHistory",k.historyList)}(s),h.$router.go("/pages/goods/list",{keyword:s}))}function v(){d({title:"提示",content:"确认清除搜索历史吗?",success:function(s){s.confirm&&(k.historyTag=[],p("searchHistory"))}})}return t((()=>{k.historyList=e("searchHistory")||[]})),(s,t)=>{const e=i(_("uni-search-bar"),g),h=m,y=x,d=i(_("s-layout"),b);return o(),a(d,{class:"set-wrap",title:"搜索",bgStyle:{color:"#FFF"}},{default:r((()=>[l(h,{class:"ss-p-x-24"},{default:r((()=>[l(h,{class:"ss-flex ss-col-center"},{default:r((()=>[l(e,{class:"ss-flex-1",radius:"33",placeholder:"请输入关键字",cancelButton:"none",focus:!0,onConfirm:t[0]||(t[0]=s=>w(s.value))})])),_:1}),l(h,{class:"ss-flex ss-row-between ss-col-center"},{default:r((()=>[l(h,{class:"serach-history"},{default:r((()=>[n("搜索历史")])),_:1}),l(y,{class:"clean-history ss-reset-button",onClick:v},{default:r((()=>[n(" 清除搜索历史 ")])),_:1})])),_:1}),l(h,{class:"ss-flex ss-col-center ss-row-left ss-flex-wrap"},{default:r((()=>[(o(!0),c(f,null,u(k.historyList,((s,t)=>(o(),a(y,{class:"history-btn ss-reset-button",onClick:t=>w(s),key:t},{default:r((()=>[n(L(s),1)])),_:2},1032,["onClick"])))),128))])),_:1})])),_:1})])),_:1})}}},[["__scopeId","data-v-d3779116"]]);export{k as default};
+import{z as s,o as t,Q as e,f as o,g as a,w as r,m as i,k as l,u as n,l as c,r as u,F as f,s as h,q as y,P as d,X as p,n as _,j as m,J as x,v as L}from"./index-a116b7fa.js";import{b as g,_ as b}from"./s-layout.4ae51839.js";import{_ as j}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.b9f6c8e6.js";import"./useGoods.6b315a78.js";const k=j({__name:"search",setup(j){const k=s({historyList:[]});function w(s){s&&(!function(s){k.historyList.includes(s)&&k.historyList.splice(k.historyList.indexOf(s),1);k.historyList.unshift(s),k.historyList.length>=10&&(k.historyList.length=10);y("searchHistory",k.historyList)}(s),h.$router.go("/pages/goods/list",{keyword:s}))}function v(){d({title:"提示",content:"确认清除搜索历史吗?",success:function(s){s.confirm&&(k.historyTag=[],p("searchHistory"))}})}return t((()=>{k.historyList=e("searchHistory")||[]})),(s,t)=>{const e=i(_("uni-search-bar"),g),h=m,y=x,d=i(_("s-layout"),b);return o(),a(d,{class:"set-wrap",title:"搜索",bgStyle:{color:"#FFF"}},{default:r((()=>[l(h,{class:"ss-p-x-24"},{default:r((()=>[l(h,{class:"ss-flex ss-col-center"},{default:r((()=>[l(e,{class:"ss-flex-1",radius:"33",placeholder:"请输入关键字",cancelButton:"none",focus:!0,onConfirm:t[0]||(t[0]=s=>w(s.value))})])),_:1}),l(h,{class:"ss-flex ss-row-between ss-col-center"},{default:r((()=>[l(h,{class:"serach-history"},{default:r((()=>[n("搜索历史")])),_:1}),l(y,{class:"clean-history ss-reset-button",onClick:v},{default:r((()=>[n(" 清除搜索历史 ")])),_:1})])),_:1}),l(h,{class:"ss-flex ss-col-center ss-row-left ss-flex-wrap"},{default:r((()=>[(o(!0),c(f,null,u(k.historyList,((s,t)=>(o(),a(y,{class:"history-btn ss-reset-button",onClick:t=>w(s),key:t},{default:r((()=>[n(L(s),1)])),_:2},1032,["onClick"])))),128))])),_:1})])),_:1})])),_:1})}}},[["__scopeId","data-v-d3779116"]]);export{k as default};

+ 1 - 1
unpackage/dist/build/web/assets/pages-index-user.deac5a4c.js → unpackage/dist/build/web/assets/pages-index-user.eb2714b2.js

@@ -1 +1 @@
-import{h as s,c as e,p as t,s as a,b as o,d as r,e as p,o as i,q as l,t as n,f as u,g as m,w as _,m as d,l as y,r as c,F as j,n as g,k as b}from"./index-d8ee7f22.js";import{_ as v,a as f}from"./s-block.d32870bf.js";import{_ as k}from"./s-layout.f0c3c0de.js";import"./phone-international-input.820beb02.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.be06496b.js";import"./uni-badge.a688eeeb.js";import"./su-image.f01904af.js";import"./su-swiper.8a3db4d2.js";import"./s-goods-column.7d3760a7.js";import"./points.c381a8e1.js";import"./useGoods.47707bb5.js";/* empty css                                                                     */import"./uni-load-more.0e9ac3e0.js";/* empty css                                                                *//* empty css                                                                      */import"./const.8b26b80e.js";import"./mp-html.454e9770.js";import"./pages-public-richtext.b4611cec.js";const x={__name:"user",setup(x){s();const h=e((()=>a.$store("app").template.user)),S=e((()=>a.$store("user").isLogin));return t((()=>{a.$store("user").updateUserData()})),o((()=>{a.$store("user").updateUserData(),setTimeout((function(){r()}),800)})),p((()=>{})),i((s=>{s.linkId&&(l("linkId",s.linkId),S.value||n("register","register"))})),(s,e)=>{var t;const a=d(g("s-block-item"),v),o=d(g("s-block"),f),r=d(g("s-layout"),k);return u(),m(r,{title:"我的",tabbar:"/pages/index/user",navbar:"custom",bgStyle:h.value.page,navbarStyle:null==(t=h.value.style)?void 0:t.navbar,onShareAppMessage:""},{default:_((()=>[(u(!0),y(j,null,c(h.value.components,((s,e)=>(u(),m(o,{key:e,styles:s.property.style},{default:_((()=>[b(a,{type:s.id,data:s.property,styles:s.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["bgStyle","navbarStyle"])}}};export{x as default};
+import{h as s,c as e,p as t,s as a,b as o,d as r,e as p,o as i,q as l,t as n,f as u,g as m,w as _,m as d,l as y,r as c,F as j,n as g,k as b}from"./index-a116b7fa.js";import{_ as v,a as f}from"./s-block.518b062a.js";import{_ as k}from"./s-layout.4ae51839.js";import"./phone-international-input.b9f6c8e6.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.78aaa36c.js";import"./uni-badge.9d757a16.js";import"./su-image.cf5517c4.js";import"./su-swiper.ce1743f1.js";import"./s-goods-column.67cd78e3.js";import"./points.c381a8e1.js";import"./useGoods.6b315a78.js";/* empty css                                                                     */import"./uni-load-more.2682655d.js";/* empty css                                                                *//* empty css                                                                      */import"./const.24444c58.js";import"./mp-html.02bc03c7.js";import"./pages-public-richtext.b4bc67a7.js";const x={__name:"user",setup(x){s();const h=e((()=>a.$store("app").template.user)),S=e((()=>a.$store("user").isLogin));return t((()=>{a.$store("user").updateUserData()})),o((()=>{a.$store("user").updateUserData(),setTimeout((function(){r()}),800)})),p((()=>{})),i((s=>{s.linkId&&(l("linkId",s.linkId),S.value||n("register","register"))})),(s,e)=>{var t;const a=d(g("s-block-item"),v),o=d(g("s-block"),f),r=d(g("s-layout"),k);return u(),m(r,{title:"我的",tabbar:"/pages/index/user",navbar:"custom",bgStyle:h.value.page,navbarStyle:null==(t=h.value.style)?void 0:t.navbar,onShareAppMessage:""},{default:_((()=>[(u(!0),y(j,null,c(h.value.components,((s,e)=>(u(),m(o,{key:e,styles:s.property.style},{default:_((()=>[b(a,{type:s.id,data:s.property,styles:s.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["bgStyle","navbarStyle"])}}};export{x as default};

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-order-aftersale-apply.fa084cbf.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-order-aftersale-detail.d01b63d1.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-order-aftersale-list.ccbcb187.js


+ 1 - 1
unpackage/dist/build/web/assets/pages-order-aftersale-log.c544d496.js → unpackage/dist/build/web/assets/pages-order-aftersale-log.7fdce7c3.js

@@ -1 +1 @@
-import{f as t,g as s,w as a,k as e,E as l,i,u as o,v as n,x as d,s as c,I as u,j as r,z as m,o as f,ak as p,m as _,l as x,r as y,F as g,n as j}from"./index-d8ee7f22.js";import{_ as b}from"./s-layout.f0c3c0de.js";import{_ as h}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.820beb02.js";import"./useGoods.47707bb5.js";const k=h({__name:"log-item",props:{item:{type:Object,default(){}},index:{type:Number,default:0},data:{type:Object,default(){}}},setup:m=>(f,p)=>{const _=u,x=r;return t(),s(x,{class:"log-item ss-flex"},{default:a((()=>[e(x,{class:"log-icon ss-flex-col ss-col-center ss-m-r-20"},{default:a((()=>[e(_,{class:l(["cicon-title",0===m.index?"activity-color":""])},null,8,["class"]),m.data.length-1!==m.index?(t(),s(x,{key:0,class:"line"})):i("",!0)])),_:1}),e(x,null,{default:a((()=>[e(x,{class:"text"},{default:a((()=>[o(n(m.item.content),1)])),_:1}),e(x,{class:"date"},{default:a((()=>[o(n(d(c).$helper.timeFormat(m.item.createTime,"yyyy-mm-dd hh:MM:ss")),1)])),_:1})])),_:1})])),_:1})}},[["__scopeId","data-v-bbeb067c"]]),v=h({__name:"log",setup(l){const i=m({list:[]});return f((t=>{i.aftersaleId=t.id,async function(t){const{data:s}=await p.getAfterSaleLogList(t);i.list=s}(t.id)})),(l,o)=>{const n=r,d=_(j("s-layout"),b);return t(),s(d,{title:"售后进度"},{default:a((()=>[e(n,{class:"log-box"},{default:a((()=>[(t(!0),x(g,null,y(i.list,((l,o)=>(t(),s(n,{key:l.id},{default:a((()=>[e(k,{item:l,index:o,data:i.list},null,8,["item","index","data"])])),_:2},1024)))),128))])),_:1})])),_:1})}}},[["__scopeId","data-v-b61de3f9"]]);export{v as default};
+import{f as t,g as s,w as a,k as e,E as l,i,u as o,v as n,x as d,s as c,I as u,j as r,z as m,o as f,ak as p,m as _,l as x,r as y,F as g,n as j}from"./index-a116b7fa.js";import{_ as b}from"./s-layout.4ae51839.js";import{_ as h}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.b9f6c8e6.js";import"./useGoods.6b315a78.js";const k=h({__name:"log-item",props:{item:{type:Object,default(){}},index:{type:Number,default:0},data:{type:Object,default(){}}},setup:m=>(f,p)=>{const _=u,x=r;return t(),s(x,{class:"log-item ss-flex"},{default:a((()=>[e(x,{class:"log-icon ss-flex-col ss-col-center ss-m-r-20"},{default:a((()=>[e(_,{class:l(["cicon-title",0===m.index?"activity-color":""])},null,8,["class"]),m.data.length-1!==m.index?(t(),s(x,{key:0,class:"line"})):i("",!0)])),_:1}),e(x,null,{default:a((()=>[e(x,{class:"text"},{default:a((()=>[o(n(m.item.content),1)])),_:1}),e(x,{class:"date"},{default:a((()=>[o(n(d(c).$helper.timeFormat(m.item.createTime,"yyyy-mm-dd hh:MM:ss")),1)])),_:1})])),_:1})])),_:1})}},[["__scopeId","data-v-bbeb067c"]]),v=h({__name:"log",setup(l){const i=m({list:[]});return f((t=>{i.aftersaleId=t.id,async function(t){const{data:s}=await p.getAfterSaleLogList(t);i.list=s}(t.id)})),(l,o)=>{const n=r,d=_(j("s-layout"),b);return t(),s(d,{title:"售后进度"},{default:a((()=>[e(n,{class:"log-box"},{default:a((()=>[(t(!0),x(g,null,y(i.list,((l,o)=>(t(),s(n,{key:l.id},{default:a((()=>[e(k,{item:l,index:o,data:i.list},null,8,["item","index","data"])])),_:2},1024)))),128))])),_:1})])),_:1})}}},[["__scopeId","data-v-b61de3f9"]]);export{v as default};

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-order-aftersale-return-delivery.a213d436.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-order-confirm.a1788a09.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-order-detail.4068ca00.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-order-express-log.3b1d5ed1.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-order-list.62c3343f.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-order-otherlist.827f1fb5.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-pay-index.9743df44.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-pay-recharge-log.6266441a.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-pay-recharge.8e4cf38b.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-pay-result.6f4cb271.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-pay-resultYuan.044007d2.js


+ 1 - 1
unpackage/dist/build/web/assets/pages-public-error.2a3c2e85.js → unpackage/dist/build/web/assets/pages-public-error.63c92a06.js

@@ -1 +1 @@
-import{N as t,o as e,f as o,g as n,w as a,j as s,i as r,b7 as i,bU as c,m as l,n as p}from"./index-d8ee7f22.js";import{_ as u}from"./s-empty.be9b7e24.js";import{_}from"./_plugin-vue_export-helper.1b428a4d.js";/* empty css                                                                */const m=_({__name:"error",setup(_){const m=t(""),x=t("");async function y(){i({url:"/pages/index/index"}),await c()}return e((t=>{m.value=t.errCode,x.value=t.errMsg})),(t,e)=>{const i=l(p("s-empty"),u),c=s;return o(),n(c,{class:"error-page"},{default:a((()=>["NetworkError"===m.value?(o(),n(i,{key:0,icon:"/static/internet-empty.png",text:"网络连接失败",showAction:"",actionText:"重新连接",onClickAction:y,buttonColor:"#132b85"})):"TemplateError"===m.value?(o(),n(i,{key:1,icon:"/static/internet-empty.png",text:"未找到模板",showAction:"",actionText:"重新加载",onClickAction:y,buttonColor:"#132b85"})):""!==m.value?(o(),n(i,{key:2,icon:"/static/internet-empty.png",text:x.value,showAction:"",actionText:"重新加载",onClickAction:y,buttonColor:"#132b85"},null,8,["text"])):r("",!0)])),_:1})}}},[["__scopeId","data-v-189d7116"]]);export{m as default};
+import{N as t,o as e,f as o,g as n,w as a,j as s,i as r,ba as i,bX as c,m as l,n as p}from"./index-a116b7fa.js";import{_ as u}from"./s-empty.4d7f5239.js";import{_}from"./_plugin-vue_export-helper.1b428a4d.js";/* empty css                                                                */const m=_({__name:"error",setup(_){const m=t(""),x=t("");async function y(){i({url:"/pages/index/index"}),await c()}return e((t=>{m.value=t.errCode,x.value=t.errMsg})),(t,e)=>{const i=l(p("s-empty"),u),c=s;return o(),n(c,{class:"error-page"},{default:a((()=>["NetworkError"===m.value?(o(),n(i,{key:0,icon:"/static/internet-empty.png",text:"网络连接失败",showAction:"",actionText:"重新连接",onClickAction:y,buttonColor:"#132b85"})):"TemplateError"===m.value?(o(),n(i,{key:1,icon:"/static/internet-empty.png",text:"未找到模板",showAction:"",actionText:"重新加载",onClickAction:y,buttonColor:"#132b85"})):""!==m.value?(o(),n(i,{key:2,icon:"/static/internet-empty.png",text:x.value,showAction:"",actionText:"重新加载",onClickAction:y,buttonColor:"#132b85"},null,8,["text"])):r("",!0)])),_:1})}}},[["__scopeId","data-v-189d7116"]]);export{m as default};

+ 1 - 1
unpackage/dist/build/web/assets/pages-public-faq.41874598.js → unpackage/dist/build/web/assets/pages-public-faq.f0238fee.js

@@ -1 +1 @@
-import{z as s,o as t,s as e,f as a,g as l,w as o,m as n,k as r,l as c,r as i,F as p,i as u,n as _,u as m,v as d,j as f,I as g}from"./index-d8ee7f22.js";import{_ as y,a as j}from"./uni-collapse.42e89b02.js";import{_ as x}from"./s-empty.be9b7e24.js";import{_ as v}from"./s-layout.f0c3c0de.js";import{_ as b}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.820beb02.js";/* empty css                                                                */import"./useGoods.47707bb5.js";const h=b({__name:"faq",setup(b){const h=s({list:[],loading:!0});return t((()=>{e.$router.go("/pages/public/richtext",{title:"常见问题"})})),(s,t)=>{const e=f,b=g,k=n(_("uni-collapse-item"),y),F=n(_("uni-collapse"),j),w=n(_("s-empty"),x),z=n(_("s-layout"),v);return a(),l(z,{class:"set-wrap",title:"常见问题",bgStyle:{color:"#FFF"}},{default:o((()=>[r(F,null,{default:o((()=>[(a(!0),c(p,null,i(h.list,((s,t)=>(a(),l(k,{key:s},{title:o((()=>[r(e,{class:"ss-flex ss-col-center header"},{default:o((()=>[r(e,{class:"ss-m-l-20 ss-m-r-20 icon"},{default:o((()=>[r(e,{class:"rectangle"},{default:o((()=>[r(e,{class:"num ss-flex ss-row-center ss-col-center"},{default:o((()=>[m(d(t+1<10?"0"+(t+1):t+1),1)])),_:2},1024)])),_:2},1024),r(e,{class:"triangle"})])),_:2},1024),r(e,{class:"title ss-m-t-36 ss-m-b-36"},{default:o((()=>[m(d(s.title),1)])),_:2},1024)])),_:2},1024)])),default:o((()=>[r(e,{class:"content ss-p-l-78 ss-p-r-40 ss-p-b-50 ss-p-t-20"},{default:o((()=>[r(b,{class:"text"},{default:o((()=>[m(d(s.content),1)])),_:2},1024)])),_:2},1024)])),_:2},1024)))),128))])),_:1}),0!==h.list.length||h.loading?u("",!0):(a(),l(w,{key:0,text:"暂无常见问题",icon:"/static/collect-empty.png"}))])),_:1})}}},[["__scopeId","data-v-d403c664"]]);export{h as default};
+import{z as s,o as t,s as e,f as a,g as l,w as o,m as n,k as r,l as c,r as i,F as p,i as u,n as _,u as m,v as d,j as f,I as g}from"./index-a116b7fa.js";import{_ as y,a as j}from"./uni-collapse.89e4b8f9.js";import{_ as x}from"./s-empty.4d7f5239.js";import{_ as v}from"./s-layout.4ae51839.js";import{_ as b}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.b9f6c8e6.js";/* empty css                                                                */import"./useGoods.6b315a78.js";const h=b({__name:"faq",setup(b){const h=s({list:[],loading:!0});return t((()=>{e.$router.go("/pages/public/richtext",{title:"常见问题"})})),(s,t)=>{const e=f,b=g,k=n(_("uni-collapse-item"),y),F=n(_("uni-collapse"),j),w=n(_("s-empty"),x),z=n(_("s-layout"),v);return a(),l(z,{class:"set-wrap",title:"常见问题",bgStyle:{color:"#FFF"}},{default:o((()=>[r(F,null,{default:o((()=>[(a(!0),c(p,null,i(h.list,((s,t)=>(a(),l(k,{key:s},{title:o((()=>[r(e,{class:"ss-flex ss-col-center header"},{default:o((()=>[r(e,{class:"ss-m-l-20 ss-m-r-20 icon"},{default:o((()=>[r(e,{class:"rectangle"},{default:o((()=>[r(e,{class:"num ss-flex ss-row-center ss-col-center"},{default:o((()=>[m(d(t+1<10?"0"+(t+1):t+1),1)])),_:2},1024)])),_:2},1024),r(e,{class:"triangle"})])),_:2},1024),r(e,{class:"title ss-m-t-36 ss-m-b-36"},{default:o((()=>[m(d(s.title),1)])),_:2},1024)])),_:2},1024)])),default:o((()=>[r(e,{class:"content ss-p-l-78 ss-p-r-40 ss-p-b-50 ss-p-t-20"},{default:o((()=>[r(b,{class:"text"},{default:o((()=>[m(d(s.content),1)])),_:2},1024)])),_:2},1024)])),_:2},1024)))),128))])),_:1}),0!==h.list.length||h.loading?u("",!0):(a(),l(w,{key:0,text:"暂无常见问题",icon:"/static/collect-empty.png"}))])),_:1})}}},[["__scopeId","data-v-d403c664"]]);export{h as default};

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-public-merchant.96887a18.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-public-merchantApplyList.4fb6a92a.js


+ 1 - 1
unpackage/dist/build/web/assets/pages-public-richtext.b4611cec.js → unpackage/dist/build/web/assets/pages-public-richtext.b4bc67a7.js

@@ -1 +1 @@
-import{z as t,o as e,bn as s,f as l,g as i,w as n,aO as o,m as a,k as c,n as r,j as p}from"./index-d8ee7f22.js";import{_ as u}from"./mp-html.454e9770.js";import{_ as m}from"./s-layout.f0c3c0de.js";import{_ as d}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.820beb02.js";import"./useGoods.47707bb5.js";const f=d({__name:"richtext",props:{title:{defautls:"",type:String},type:{defautls:"",type:String}},setup(d){const f=t({title:"",content:""});const y=d;return e((t=>{(t.title||y.title)&&(f.title=t.title||y.title,s({title:f.title||y.title})),async function(t,e){const{code:l,data:i}=await o.getArticle(t,e);0===l&&(f.content=i.content,f.title!==i.title&&(f.title=i.title,s({title:f.title})))}(t.id,t.title||y.title)})),(t,e)=>{const s=a(r("mp-html"),u),o=p,y=a(r("s-layout"),m);return f.title&&!d.type?(l(),i(y,{key:0,class:"set-wrap",title:f.title,bgStyle:{color:"#FFF"}},{default:n((()=>[c(o,{class:"ss-p-30"},{default:n((()=>[c(s,{class:"richtext",content:f.content},null,8,["content"])])),_:1})])),_:1},8,["title"])):(l(),i(s,{key:1,class:"richtext",content:f.content},null,8,["content"]))}}},[["__scopeId","data-v-5342d437"]]);export{f as default};
+import{z as t,o as e,bq as s,f as l,g as i,w as n,aR as o,m as a,k as c,n as r,j as p}from"./index-a116b7fa.js";import{_ as u}from"./mp-html.02bc03c7.js";import{_ as m}from"./s-layout.4ae51839.js";import{_ as d}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.b9f6c8e6.js";import"./useGoods.6b315a78.js";const f=d({__name:"richtext",props:{title:{defautls:"",type:String},type:{defautls:"",type:String}},setup(d){const f=t({title:"",content:""});const y=d;return e((t=>{(t.title||y.title)&&(f.title=t.title||y.title,s({title:f.title||y.title})),async function(t,e){const{code:l,data:i}=await o.getArticle(t,e);0===l&&(f.content=i.content,f.title!==i.title&&(f.title=i.title,s({title:f.title})))}(t.id,t.title||y.title)})),(t,e)=>{const s=a(r("mp-html"),u),o=p,y=a(r("s-layout"),m);return f.title&&!d.type?(l(),i(y,{key:0,class:"set-wrap",title:f.title,bgStyle:{color:"#FFF"}},{default:n((()=>[c(o,{class:"ss-p-30"},{default:n((()=>[c(s,{class:"richtext",content:f.content},null,8,["content"])])),_:1})])),_:1},8,["title"])):(l(),i(s,{key:1,class:"richtext",content:f.content},null,8,["content"]))}}},[["__scopeId","data-v-5342d437"]]);export{f as default};

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-public-setting.67f797d4.js


+ 1 - 1
unpackage/dist/build/web/assets/pages-public-webview.eac7c4c8.js → unpackage/dist/build/web/assets/pages-public-webview.17c49db0.js

@@ -1 +1 @@
-import{N as s,o as e,f as a,g as n,w as t,j as o,k as r,bV as u}from"./index-d8ee7f22.js";const l={__name:"webview",setup(l){const c=s("");return e((s=>{c.value=decodeURIComponent(s.url)})),(s,e)=>{const l=u,d=o;return a(),n(d,null,{default:t((()=>[r(l,{src:c.value},null,8,["src"])])),_:1})}}};export{l as default};
+import{N as s,o as e,f as a,g as n,w as t,j as o,k as r,bY as u}from"./index-a116b7fa.js";const l={__name:"webview",setup(l){const c=s("");return e((s=>{c.value=decodeURIComponent(s.url)})),(s,e)=>{const l=u,d=o;return a(),n(d,null,{default:t((()=>[r(l,{src:c.value},null,8,["src"])])),_:1})}}};export{l as default};

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-shop-index.7f369a34.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-user-address-edit.3403f95d.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-user-address-list.aaa91966.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-user-dummyAddress-edit.32f1ea53.js


+ 0 - 1
unpackage/dist/build/web/assets/pages-user-dummyAddress-list.2ea0ffb5.js

@@ -1 +0,0 @@
-import{z as s,p as a,aF as t,O as e,Q as o,aG as r,q as i,f as l,g as d,w as n,m as p,l as u,r as m,F as _,i as c,k as f,x as y,s as g,u as j,n as b,j as k,J as x,aH as h}from"./index-d8ee7f22.js";import{_ as v}from"./s-address-item.937b7c53.js";import{a as w,_ as F}from"./s-layout.f0c3c0de.js";import{_ as S}from"./s-empty.be9b7e24.js";import{_ as A}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.820beb02.js";import"./useGoods.47707bb5.js";/* empty css                                                                */const C=A({__name:"list",setup(A){const C=s({list:[],loading:!0});return a((async()=>{C.list=(await t.getAddressList(2)).data,C.loading=!1})),e((()=>{o("areaData")||r.getAreaTree().then((s=>{0===s.code&&i("areaData",s.data)}))})),(s,a)=>{const t=p(b("s-address-item"),v),e=k,o=x,r=p(b("su-fixed"),w),i=p(b("s-empty"),S),A=p(b("s-layout"),F);return l(),d(A,{title:"虚拟商品收货地址",bgStyle:{color:"#FFF"}},{default:n((()=>[C.list.length?(l(),d(e,{key:0},{default:n((()=>[(l(!0),u(_,null,m(C.list,(s=>(l(),d(t,{spuType:"0",hasBorderBottom:"",key:s.id,item:s,onClick:a=>(h("SELECT_ADDRESS",{addressInfo:s}),void g.$router.back())},null,8,["item","onClick"])))),128))])),_:1})):c("",!0),f(r,{bottom:"",placeholder:""},{default:n((()=>[f(e,{class:"footer-box ss-flex ss-row-between ss-p-20"},{default:n((()=>[f(o,{class:"add-btn ss-reset-button ui-Shadow-Main",onClick:a[0]||(a[0]=s=>y(g).$router.go("/pages/user/dummyAddress/edit"))},{default:n((()=>[j(" 新增收货地址 ")])),_:1})])),_:1})])),_:1}),0!==C.list.length||C.loading?c("",!0):(l(),d(i,{key:1,text:"暂无收货地址",icon:"/static/data-empty.png"}))])),_:1})}}},[["__scopeId","data-v-79fb41c9"]]);export{C as default};

+ 1 - 0
unpackage/dist/build/web/assets/pages-user-dummyAddress-list.6bc25d70.js

@@ -0,0 +1 @@
+import{z as s,p as a,aI as t,O as e,Q as o,aJ as r,q as i,f as l,g as d,w as n,m as p,l as u,r as m,F as _,i as c,k as f,x as y,s as g,u as j,n as b,j as k,J as x,aK as h}from"./index-a116b7fa.js";import{_ as v}from"./s-address-item.30defc6a.js";import{a as w,_ as S}from"./s-layout.4ae51839.js";import{_ as A}from"./s-empty.4d7f5239.js";import{_ as C}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.b9f6c8e6.js";import"./useGoods.6b315a78.js";/* empty css                                                                */const D=C({__name:"list",setup(C){const D=s({list:[],loading:!0});return a((async()=>{D.list=(await t.getAddressList(2)).data,D.loading=!1})),e((()=>{o("areaData")||r.getAreaTree().then((s=>{0===s.code&&i("areaData",s.data)}))})),(s,a)=>{const t=p(b("s-address-item"),v),e=k,o=x,r=p(b("su-fixed"),w),i=p(b("s-empty"),A),C=p(b("s-layout"),S);return l(),d(C,{title:"虚拟商品收货地址",bgStyle:{color:"#FFF"}},{default:n((()=>[D.list.length?(l(),d(e,{key:0},{default:n((()=>[(l(!0),u(_,null,m(D.list,(s=>(l(),d(t,{spuType:"0",hasBorderBottom:"",key:s.id,item:s,onClick:a=>(h("SELECT_ADDRESS",{addressInfo:s}),void g.$router.back())},null,8,["item","onClick"])))),128))])),_:1})):c("",!0),f(r,{bottom:"",placeholder:""},{default:n((()=>[f(e,{class:"footer-box ss-flex ss-row-between ss-p-20"},{default:n((()=>[f(o,{class:"add-btn ss-reset-button ui-Shadow-Main",onClick:a[0]||(a[0]=s=>y(g).$router.go("/pages/user/dummyAddress/edit"))},{default:n((()=>[j(" 新增收货地址 ")])),_:1})])),_:1})])),_:1}),0!==D.list.length||D.loading?c("",!0):(l(),d(i,{key:1,text:"暂无收货地址",icon:"/static/data-empty.png"}))])),_:1})}}},[["__scopeId","data-v-79fb41c9"]]);export{D as default};

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-user-goods-collect.37dd73da.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-user-goods-log.7cbc5e30.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-user-goods-log.bd57f281.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-user-info.9c96346c.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-user-info.bb065dd9.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/build/web/assets/pages-user-invoice-edit.4bc16442.js


+ 1 - 0
unpackage/dist/build/web/assets/pages-user-invoice-list.0f8d4e82.js

@@ -0,0 +1 @@
+import{z as s,p as a,aI as t,O as e,Q as o,aJ as i,q as r,f as l,g as d,w as n,m as p,l as u,r as m,F as _,i as c,k as f,x as g,s as y,u as j,n as b,j as k,J as x,aK as h}from"./index-a116b7fa.js";import{_ as v}from"./s-address-item.30defc6a.js";import{a as w,_ as S}from"./s-layout.4ae51839.js";import{_ as C}from"./s-empty.4d7f5239.js";import{_ as D}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.b9f6c8e6.js";import"./useGoods.6b315a78.js";/* empty css                                                                */const F=D({__name:"list",setup(D){const F=s({list:[],loading:!0});return a((async()=>{F.list=(await t.getAddressList()).data,F.loading=!1})),e((()=>{o("areaData")||i.getAreaTree().then((s=>{0===s.code&&r("areaData",s.data)}))})),(s,a)=>{const t=p(b("s-address-item"),v),e=k,o=x,i=p(b("su-fixed"),w),r=p(b("s-empty"),C),D=p(b("s-layout"),S);return l(),d(D,{title:"发票抬头管理",bgStyle:{color:"#FFF"}},{default:n((()=>[F.list.length?(l(),d(e,{key:0},{default:n((()=>[(l(!0),u(_,null,m(F.list,(s=>(l(),d(t,{hasBorderBottom:"",key:s.id,item:s,onClick:a=>(h("SELECT_ADDRESS",{addressInfo:s}),void y.$router.back())},null,8,["item","onClick"])))),128))])),_:1})):c("",!0),f(i,{bottom:"",placeholder:""},{default:n((()=>[f(e,{class:"footer-box ss-flex ss-row-between ss-p-20"},{default:n((()=>[f(o,{class:"add-btn ss-reset-button ui-Shadow-Main",onClick:a[0]||(a[0]=s=>g(y).$router.go("/pages/user/invoice/edit"))},{default:n((()=>[j(" 新增发票抬头 ")])),_:1})])),_:1})])),_:1}),0!==F.list.length||F.loading?c("",!0):(l(),d(r,{key:1,text:"暂无发票抬头",icon:"/static/data-empty.png"}))])),_:1})}}},[["__scopeId","data-v-0bd54ac4"]]);export{F as default};

+ 0 - 1
unpackage/dist/build/web/assets/pages-user-invoice-list.6372fb68.js

@@ -1 +0,0 @@
-import{z as s,p as a,aF as t,O as e,Q as o,aG as i,q as r,f as l,g as d,w as n,m as p,l as u,r as m,F as _,i as c,k as f,x as g,s as y,u as j,n as b,j as k,J as x,aH as h}from"./index-d8ee7f22.js";import{_ as v}from"./s-address-item.937b7c53.js";import{a as w,_ as F}from"./s-layout.f0c3c0de.js";import{_ as S}from"./s-empty.be9b7e24.js";import{_ as C}from"./_plugin-vue_export-helper.1b428a4d.js";import"./phone-international-input.820beb02.js";import"./useGoods.47707bb5.js";/* empty css                                                                */const D=C({__name:"list",setup(C){const D=s({list:[],loading:!0});return a((async()=>{D.list=(await t.getAddressList()).data,D.loading=!1})),e((()=>{o("areaData")||i.getAreaTree().then((s=>{0===s.code&&r("areaData",s.data)}))})),(s,a)=>{const t=p(b("s-address-item"),v),e=k,o=x,i=p(b("su-fixed"),w),r=p(b("s-empty"),S),C=p(b("s-layout"),F);return l(),d(C,{title:"发票抬头管理",bgStyle:{color:"#FFF"}},{default:n((()=>[D.list.length?(l(),d(e,{key:0},{default:n((()=>[(l(!0),u(_,null,m(D.list,(s=>(l(),d(t,{hasBorderBottom:"",key:s.id,item:s,onClick:a=>(h("SELECT_ADDRESS",{addressInfo:s}),void y.$router.back())},null,8,["item","onClick"])))),128))])),_:1})):c("",!0),f(i,{bottom:"",placeholder:""},{default:n((()=>[f(e,{class:"footer-box ss-flex ss-row-between ss-p-20"},{default:n((()=>[f(o,{class:"add-btn ss-reset-button ui-Shadow-Main",onClick:a[0]||(a[0]=s=>g(y).$router.go("/pages/user/invoice/edit"))},{default:n((()=>[j(" 新增发票抬头 ")])),_:1})])),_:1})])),_:1}),0!==D.list.length||D.loading?c("",!0):(l(),d(r,{key:1,text:"暂无发票抬头",icon:"/static/data-empty.png"}))])),_:1})}}},[["__scopeId","data-v-0bd54ac4"]]);export{D as default};

Vissa filer visades inte eftersom för många filer har ändrats