修改商城APP

main
lj7788 2026-02-06 14:32:50 +08:00
parent b11e936518
commit 9d238fe6d0
140 changed files with 1113 additions and 158 deletions

View File

@ -26,7 +26,8 @@ SHOPRO_WEBSOCKET_PATH=/infra/ws
SHOPRO_DEV_PORT=3000 SHOPRO_DEV_PORT=3000
# 客户端静态资源地址 空=默认使用服务端指定的CDN资源地址前缀 | local=本地 | http(s)://xxx.xxx=自定义静态资源地址前缀 # 客户端静态资源地址 空=默认使用服务端指定的CDN资源地址前缀 | local=本地 | http(s)://xxx.xxx=自定义静态资源地址前缀
SHOPRO_STATIC_URL=http://test.yudao.iocoder.cn #SHOPRO_STATIC_URL=http://test.yudao.iocoder.cn
SHOPRO_STATIC_URL=//62.234.3.186/saasimages
### SHOPRO_STATIC_URL = https://file.sheepjs.com ### SHOPRO_STATIC_URL = https://file.sheepjs.com
# 前端 H5 访问域名 # 前端 H5 访问域名

View File

@ -15,7 +15,7 @@
## 🐯 商城简介 ## 🐯 商城简介
**芋道商城**,基于 [芋道开发平台](https://github.com/YunaiV/ruoyi-vue-pro) 构建,以开发者为中心,打造中国第一流的 Java 开源商城系统,全部开源,个人与企业可 100% 免费使用。 **研筑商城**,基于 [研筑开发平台](https://github.com/YunaiV/ruoyi-vue-pro) 构建,以开发者为中心,打造中国第一流的 Java 开源商城系统,全部开源,个人与企业可 100% 免费使用。
> 有任何问题,或者想要的功能,可以在 Issues 中提给艿艿。 > 有任何问题,或者想要的功能,可以在 Issues 中提给艿艿。
> >

View File

@ -1,6 +1,6 @@
{ {
"name": "芋道商城", "name": "研筑商城",
"appid": "__UNI__460BC4C", "appid": "__UNI__7C4002F",
"description": "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。", "description": "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。",
"versionName": "2026.01", "versionName": "2026.01",
"versionCode": "183", "versionCode": "183",
@ -202,7 +202,7 @@
"template": "index.html", "template": "index.html",
"router": { "router": {
"mode": "history", "mode": "history",
"base": "/" "base": "/saash5/"
}, },
"sdkConfigs": { "sdkConfigs": {
"maps": {} "maps": {}
@ -210,7 +210,7 @@
"async": { "async": {
"timeout": 20000 "timeout": 20000
}, },
"title": "芋道商城", "title": "研筑商城",
"optimization": { "optimization": {
"treeShaking": { "treeShaking": {
"enable": true "enable": true

View File

@ -10,16 +10,51 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
"lodash": "^4.17.21", "lodash": "^4.17.23",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"luch-request": "^3.0.8", "luch-request": "^3.0.8",
"pinia": "^2.0.33", "pinia": "^2.0.33",
"pinia-plugin-persist-uni": "^1.2.0", "pinia-plugin-persist-uni": "^1.2.0",
"vue": "^3.5.11",
"weixin-js-sdk": "^1.6.0" "weixin-js-sdk": "^1.6.0"
}, },
"devDependencies": { "devDependencies": {
"prettier": "^2.8.7", "prettier": "^2.8.7",
"vconsole": "^3.15.0" "vconsole": "^3.15.0",
"vite": "^4.5.3"
}
},
"node_modules/@babel/helper-string-parser": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.28.5",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
"integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
"license": "MIT",
"dependencies": {
"@babel/types": "^7.29.0"
},
"bin": {
"parser": "bin/babel-parser.js"
},
"engines": {
"node": ">=6.0.0"
} }
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
@ -32,18 +67,511 @@
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/types": {
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
"integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
"license": "MIT",
"dependencies": {
"@babel/helper-string-parser": "^7.27.1",
"@babel/helper-validator-identifier": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@dcloudio/types": { "node_modules/@dcloudio/types": {
"version": "2.6.12", "version": "2.6.12",
"resolved": "https://registry.npmjs.org/@dcloudio/types/-/types-2.6.12.tgz", "resolved": "https://registry.npmjs.org/@dcloudio/types/-/types-2.6.12.tgz",
"integrity": "sha512-mrCMwcINy1IFjU9VUqLeWBkj404yWs5paLDttBcA+eqUjanuUQbBcTVPqlrGgkyzLXDcV2oDDZRSNxNpXi4kMQ==", "integrity": "sha512-mrCMwcINy1IFjU9VUqLeWBkj404yWs5paLDttBcA+eqUjanuUQbBcTVPqlrGgkyzLXDcV2oDDZRSNxNpXi4kMQ==",
"license": "Apache-2.0" "license": "Apache-2.0"
}, },
"node_modules/@esbuild/android-arm": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
"integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
"integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
"integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
"integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
"integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
"integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
"integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
"integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
"integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
"integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
"integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
"integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
"cpu": [
"mips64el"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
"integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
"integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
"integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
"cpu": [
"s390x"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
"integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
"integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
"integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
"integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
"integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
"integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
"integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"license": "MIT"
},
"node_modules/@vue/compiler-core": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.27.tgz",
"integrity": "sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==",
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.28.5",
"@vue/shared": "3.5.27",
"entities": "^7.0.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.27.tgz",
"integrity": "sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==",
"license": "MIT",
"dependencies": {
"@vue/compiler-core": "3.5.27",
"@vue/shared": "3.5.27"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.27.tgz",
"integrity": "sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==",
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.28.5",
"@vue/compiler-core": "3.5.27",
"@vue/compiler-dom": "3.5.27",
"@vue/compiler-ssr": "3.5.27",
"@vue/shared": "3.5.27",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.21",
"postcss": "^8.5.6",
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.27.tgz",
"integrity": "sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==",
"license": "MIT",
"dependencies": {
"@vue/compiler-dom": "3.5.27",
"@vue/shared": "3.5.27"
}
},
"node_modules/@vue/devtools-api": { "node_modules/@vue/devtools-api": {
"version": "6.6.4", "version": "6.6.4",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@vue/reactivity": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.27.tgz",
"integrity": "sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ==",
"license": "MIT",
"dependencies": {
"@vue/shared": "3.5.27"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.27.tgz",
"integrity": "sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A==",
"license": "MIT",
"dependencies": {
"@vue/reactivity": "3.5.27",
"@vue/shared": "3.5.27"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.27.tgz",
"integrity": "sha512-/QnLslQgYqSJ5aUmb5F0z0caZPGHRB8LEAQ1s81vHFM5CBfnun63rxhvE/scVb/j3TbBuoZwkJyiLCkBluMpeg==",
"license": "MIT",
"dependencies": {
"@vue/reactivity": "3.5.27",
"@vue/runtime-core": "3.5.27",
"@vue/shared": "3.5.27",
"csstype": "^3.2.3"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.27.tgz",
"integrity": "sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA==",
"license": "MIT",
"dependencies": {
"@vue/compiler-ssr": "3.5.27",
"@vue/shared": "3.5.27"
},
"peerDependencies": {
"vue": "3.5.27"
}
},
"node_modules/@vue/shared": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.27.tgz",
"integrity": "sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==",
"license": "MIT"
},
"node_modules/copy-text-to-clipboard": { "node_modules/copy-text-to-clipboard": {
"version": "3.2.2", "version": "3.2.2",
"resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz", "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz",
@ -69,12 +597,89 @@
"url": "https://opencollective.com/core-js" "url": "https://opencollective.com/core-js"
} }
}, },
"node_modules/csstype": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
"license": "MIT"
},
"node_modules/dayjs": { "node_modules/dayjs": {
"version": "1.11.19", "version": "1.11.19",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
"integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/entities": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
"integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/esbuild": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
"integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=12"
},
"optionalDependencies": {
"@esbuild/android-arm": "0.18.20",
"@esbuild/android-arm64": "0.18.20",
"@esbuild/android-x64": "0.18.20",
"@esbuild/darwin-arm64": "0.18.20",
"@esbuild/darwin-x64": "0.18.20",
"@esbuild/freebsd-arm64": "0.18.20",
"@esbuild/freebsd-x64": "0.18.20",
"@esbuild/linux-arm": "0.18.20",
"@esbuild/linux-arm64": "0.18.20",
"@esbuild/linux-ia32": "0.18.20",
"@esbuild/linux-loong64": "0.18.20",
"@esbuild/linux-mips64el": "0.18.20",
"@esbuild/linux-ppc64": "0.18.20",
"@esbuild/linux-riscv64": "0.18.20",
"@esbuild/linux-s390x": "0.18.20",
"@esbuild/linux-x64": "0.18.20",
"@esbuild/netbsd-x64": "0.18.20",
"@esbuild/openbsd-x64": "0.18.20",
"@esbuild/sunos-x64": "0.18.20",
"@esbuild/win32-arm64": "0.18.20",
"@esbuild/win32-ia32": "0.18.20",
"@esbuild/win32-x64": "0.18.20"
}
},
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"license": "MIT"
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/lodash": { "node_modules/lodash": {
"version": "4.17.23", "version": "4.17.23",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
@ -96,12 +701,45 @@
"@dcloudio/types": "^2.0.16" "@dcloudio/types": "^2.0.16"
} }
}, },
"node_modules/magic-string": {
"version": "0.30.21",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.5"
}
},
"node_modules/mutation-observer": { "node_modules/mutation-observer": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz", "resolved": "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz",
"integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==", "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==",
"dev": true "dev": true
}, },
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"license": "ISC"
},
"node_modules/pinia": { "node_modules/pinia": {
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz", "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz",
@ -168,6 +806,34 @@
} }
} }
}, },
"node_modules/postcss": {
"version": "8.5.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/prettier": { "node_modules/prettier": {
"version": "2.8.8", "version": "2.8.8",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
@ -184,6 +850,32 @@
"url": "https://github.com/prettier/prettier?sponsor=1" "url": "https://github.com/prettier/prettier?sponsor=1"
} }
}, },
"node_modules/rollup": {
"version": "3.29.5",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz",
"integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==",
"dev": true,
"license": "MIT",
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
"node": ">=14.18.0",
"npm": ">=8.0.0"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
}
},
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/vconsole": { "node_modules/vconsole": {
"version": "3.15.1", "version": "3.15.1",
"resolved": "https://registry.npmjs.org/vconsole/-/vconsole-3.15.1.tgz", "resolved": "https://registry.npmjs.org/vconsole/-/vconsole-3.15.1.tgz",
@ -197,6 +889,83 @@
"mutation-observer": "^1.0.3" "mutation-observer": "^1.0.3"
} }
}, },
"node_modules/vite": {
"version": "4.5.3",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
"integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==",
"dev": true,
"license": "MIT",
"dependencies": {
"esbuild": "^0.18.10",
"postcss": "^8.4.27",
"rollup": "^3.27.1"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
},
"peerDependencies": {
"@types/node": ">= 14",
"less": "*",
"lightningcss": "^1.21.0",
"sass": "*",
"stylus": "*",
"sugarss": "*",
"terser": "^5.4.0"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
"less": {
"optional": true
},
"lightningcss": {
"optional": true
},
"sass": {
"optional": true
},
"stylus": {
"optional": true
},
"sugarss": {
"optional": true
},
"terser": {
"optional": true
}
}
},
"node_modules/vue": {
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.27.tgz",
"integrity": "sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw==",
"license": "MIT",
"dependencies": {
"@vue/compiler-dom": "3.5.27",
"@vue/compiler-sfc": "3.5.27",
"@vue/runtime-dom": "3.5.27",
"@vue/server-renderer": "3.5.27",
"@vue/shared": "3.5.27"
},
"peerDependencies": {
"typescript": "*"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/vue-demi": { "node_modules/vue-demi": {
"version": "0.14.10", "version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",

View File

@ -1,11 +1,12 @@
{ {
"id": "shopro", "id": "shopro",
"name": "shopro", "name": "shopro",
"displayName": "芋道商城", "displayName": "研筑商城",
"version": "1.0.0", "version": "1.0.0",
"description": "芋道商城一套代码同时发行到iOS、Android、H5、微信小程序多个平台请使用手机扫码快速体验强大功能", "description": "研筑商城一套代码同时发行到iOS、Android、H5、微信小程序多个平台请使用手机扫码快速体验强大功能",
"scripts": { "scripts": {
"prettier": "prettier --write \"{pages,sheep}/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"" "prettier": "prettier --write \"{pages,sheep}/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
"build:h5": "vite build --mode production"
}, },
"repository": "https://github.com/sheepjs/shop.git", "repository": "https://github.com/sheepjs/shop.git",
"keywords": [ "keywords": [
@ -99,6 +100,7 @@
}, },
"devDependencies": { "devDependencies": {
"prettier": "^2.8.7", "prettier": "^2.8.7",
"vconsole": "^3.15.0" "vconsole": "^3.15.0",
"vite": "^4.5.3"
} }
} }

View File

@ -672,7 +672,7 @@
], ],
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
"navigationBarTitleText": "芋道商城", "navigationBarTitleText": "研筑商城",
"navigationBarBackgroundColor": "#FFFFFF", "navigationBarBackgroundColor": "#FFFFFF",
"backgroundColor": "#FFFFFF", "backgroundColor": "#FFFFFF",
"navigationStyle": "custom", "navigationStyle": "custom",

View File

@ -89,21 +89,29 @@
// //
if (sheep.$platform.os === 'ios') { if (sheep.$platform.os === 'ios') {
if (await sheep.$platform.checkNetwork()) { if (await sheep.$platform.checkNetwork()) {
await sheep.$store('app').init(); //
const appStore = sheep.$store('app');
if (!appStore.template?.home) {
await appStore.init();
}
} }
} }
// #endif // #endif
// //
const userStore = $store('user'); const userStore = $store('user');
if (!userStore.isLogin) { if (!userStore.isLogin) {
showAuthModal('smsLogin'); showAuthModal('accountLogin');
} }
}); });
// //
onPullDownRefresh(() => { onPullDownRefresh(() => {
sheep.$store('app').init(); //
const appStore = sheep.$store('app');
if (!appStore.template?.home) {
appStore.init();
}
setTimeout(function () { setTimeout(function () {
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
}, 800); }, 800);

View File

@ -15,6 +15,7 @@
> >
<s-block-item :type="item.id" :data="item.property" :styles="item.property.style" /> <s-block-item :type="item.id" :data="item.property" :styles="item.property.style" />
</s-block> </s-block>
<text class="cicon-set-o btn-sys-info" style="color: #888" @tap="goToSystemSetting"></text>
</s-layout> </s-layout>
</template> </template>
@ -42,6 +43,22 @@
}); });
onPageScroll(() => {}); onPageScroll(() => {});
function goToSystemSetting() {
uni.navigateTo({
url: '/pages/public/setting'
});
}
</script> </script>
<style></style> <style lang="scss" scoped>
.btn-sys-info {
border-radius: 40rpx;
font-size: 50rpx;
font-weight: 500;
color: $white;
position: absolute;
right: 100rpx;
top:70rpx;
}
</style>

View File

@ -15,31 +15,31 @@
<image <image
v-if="state.orderInfo.status === 0" v-if="state.orderInfo.status === 0"
class="state-img" class="state-img"
:src="sheep.$url.static('/static/img/shop/order/no_pay.png')" :src="'/static/img/shop/no_pay.png'"
/> />
<!-- 待发货 --> <!-- 待发货 -->
<image <image
v-if="state.orderInfo.status === 10" v-if="state.orderInfo.status === 10"
class="state-img" class="state-img"
:src="sheep.$url.static('/static/img/shop/order/order_loading.png')" :src="sheep.$url.static('/static/img/shop/order_loading.png')"
/> />
<!-- 已完成 --> <!-- 已完成 -->
<image <image
v-else-if="state.orderInfo.status === 30" v-else-if="state.orderInfo.status === 30"
class="state-img" class="state-img"
:src="sheep.$url.static('/static/img/shop/order/order_success.png')" :src="sheep.$url.static('/static/img/shop/order_success.png')"
/> />
<!-- 已关闭 --> <!-- 已关闭 -->
<image <image
v-else-if="state.orderInfo.status === 40" v-else-if="state.orderInfo.status === 40"
class="state-img" class="state-img"
:src="sheep.$url.static('/static/img/shop/order/order_close.png')" :src="sheep.$url.static('/static/img/shop/order_close.png')"
/> />
<!-- 已发货 --> <!-- 已发货 -->
<image <image
v-else-if="state.orderInfo.status === 20" v-else-if="state.orderInfo.status === 20"
class="state-img" class="state-img"
:src="sheep.$url.static('/static/img/shop/order/order_express.png')" :src="sheep.$url.static('/static/img/shop/order_express.png')"
/> />
<view class="ss-font-30">{{ formatOrderStatus(state.orderInfo) }}</view> <view class="ss-font-30">{{ formatOrderStatus(state.orderInfo) }}</view>
</view> </view>

View File

@ -147,7 +147,7 @@
return; return;
} }
sheep.$store('user').logout(); sheep.$store('user').logout();
sheep.$router.go('/pages/index/user'); sheep.$router.go('/pages/index/index');
}, },
}); });
} }

View File

@ -173,8 +173,10 @@
</view> </view>
<su-fixed bottom placeholder bg="none"> <su-fixed bottom placeholder bg="none">
<view class="footer-box ss-p-20"> <view class="footer-box ss-p-20">
<button class="ss-rest-button logout-btn ui-Shadow-Main" @tap="onSubmit"></button>
<button class="ss-rest-button save-btn ui-Shadow-Main" @tap="onSubmit"></button>
</view> </view>
</su-fixed> </su-fixed>
</s-layout> </s-layout>
@ -224,7 +226,7 @@
// //
async function onChooseAvatar(e) { async function onChooseAvatar(e) {
debugger;
const tempUrl = e.detail.avatarUrl || ''; const tempUrl = e.detail.avatarUrl || '';
if (!tempUrl) return; if (!tempUrl) return;
const files = await uploadFilesFromPath(tempUrl); const files = await uploadFilesFromPath(tempUrl);
@ -273,6 +275,7 @@
}); });
} }
// //
async function onSubmit() { async function onSubmit() {
const { code } = await UserApi.updateUser({ const { code } = await UserApi.updateUser({
@ -353,13 +356,22 @@
.logout-btn { .logout-btn {
width: 710rpx; width: 710rpx;
height: 80rpx; height: 80rpx;
background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient)); background: linear-gradient(90deg, rgba(0, 0, 255, 0.5),rgba(0, 0, 255, 0.8));
border-radius: 40rpx; border-radius: 40rpx;
font-size: 30rpx; font-size: 30rpx;
font-weight: 500; font-weight: 500;
color: $white; color: $white;
} }
.save-btn {
width: 710rpx;
height: 80rpx;
background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
border-radius: 40rpx;
font-size: 30rpx;
font-weight: 500;
color: $white;
}
.radio-dark { .radio-dark {
filter: grayscale(100%); filter: grayscale(100%);
filter: gray; filter: gray;

View File

@ -4,9 +4,10 @@
<!-- 标题栏 --> <!-- 标题栏 -->
<view class="head-box ss-m-b-60 ss-flex-col"> <view class="head-box ss-m-b-60 ss-flex-col">
<view class="ss-flex ss-m-b-20"> <view class="ss-flex ss-m-b-20">
<view class="head-title-active head-title-line" @tap="showAuthModal('smsLogin')"> <!-- 短信登录按钮已隐藏 -->
<!-- <view class="head-title-active head-title-line" @tap="showAuthModal('smsLogin')">
短信登录 短信登录
</view> </view> -->
<view class="head-title ss-m-r-40 head-title-animation">账号登录</view> <view class="head-title ss-m-r-40 head-title-animation">账号登录</view>
</view> </view>
<view class="head-subtitle">如果未设置过密码请点击忘记密码</view> <view class="head-subtitle">如果未设置过密码请点击忘记密码</view>

View File

@ -25,28 +25,28 @@
return [{ return [{
title: '已领取', title: '已领取',
value: '0', value: '0',
icon: '/static/img/shop/order/nouse_coupon.png', icon: '/static/img/shop/nouse_coupon.png',
path: '/pages/coupon/list', path: '/pages/coupon/list',
type: 'geted', type: 'geted',
}, },
{ {
title: '已使用', title: '已使用',
value: '0', value: '0',
icon: '/static/img/shop/order/useend_coupon.png', icon: '/static/img/shop/useend_coupon.png',
path: '/pages/coupon/list', path: '/pages/coupon/list',
type: 'used', type: 'used',
}, },
{ {
title: '已失效', title: '已失效',
value: '0', value: '0',
icon: '/static/img/shop/order/out_coupon.png', icon: '/static/img/shop/out_coupon.png',
path: '/pages/coupon/list', path: '/pages/coupon/list',
type: 'expired', type: 'expired',
}, },
{ {
title: '领券中心', title: '领券中心',
value: '0', value: '0',
icon: '/static/img/shop/order/all_coupon.png', icon: '/static/img/shop/all_coupon.png',
path: '/pages/coupon/list', path: '/pages/coupon/list',
type: 'all', type: 'all',
}, },

View File

@ -13,7 +13,7 @@
absolute="rightTop" absolute="rightTop"
size="small" size="small"
> >
<image class="item-icon" :src="sheep.$url.static(item.icon)" mode="aspectFit" /> <image class="item-icon" :src="item.icon" mode="aspectFit" />
</uni-badge> </uni-badge>
<view class="menu-title ss-m-t-28">{{ item.title }}</view> <view class="menu-title ss-m-t-28">{{ item.title }}</view>
</view> </view>
@ -31,7 +31,7 @@
{ {
title: '待付款', title: '待付款',
value: '1', value: '1',
icon: '/static/img/shop/order/no_pay.png', icon: '/static/img/shop/no_pay.png',
path: '/pages/order/list', path: '/pages/order/list',
type: 'unpaid', type: 'unpaid',
count: 'unpaidCount', count: 'unpaidCount',
@ -39,7 +39,7 @@
{ {
title: '待收货', title: '待收货',
value: '3', value: '3',
icon: '/static/img/shop/order/no_take.png', icon: '/static/img/shop/no_take.png',
path: '/pages/order/list', path: '/pages/order/list',
type: 'noget', type: 'noget',
count: 'deliveredCount', count: 'deliveredCount',
@ -47,7 +47,7 @@
{ {
title: '待评价', title: '待评价',
value: '4', value: '4',
icon: '/static/img/shop/order/no_comment.png', icon: '/static/img/shop/no_comment.png',
path: '/pages/order/list', path: '/pages/order/list',
type: 'nocomment', type: 'nocomment',
count: 'uncommentedCount', count: 'uncommentedCount',
@ -55,7 +55,7 @@
{ {
title: '售后单', title: '售后单',
value: '0', value: '0',
icon: '/static/img/shop/order/change_order.png', icon: '/static/img/shop/change_order.png',
path: '/pages/order/aftersale/list', path: '/pages/order/aftersale/list',
type: 'aftersale', type: 'aftersale',
count: 'afterSaleCount', count: 'afterSaleCount',
@ -63,7 +63,7 @@
{ {
title: '全部订单', title: '全部订单',
value: '0', value: '0',
icon: '/static/img/shop/order/all_order.png', icon: '/static/img/shop/all_order.png',
path: '/pages/order/list', path: '/pages/order/list',
}, },
]; ];

View File

@ -2,7 +2,7 @@ import sheep from '@/sheep';
import { formatImageUrlProtocol, getWxaQrcode } from './index'; import { formatImageUrlProtocol, getWxaQrcode } from './index';
const groupon = async (poster) => { const groupon = async (poster) => {
debugger;
const width = poster.width; const width = poster.width;
const userInfo = sheep.$store('user').userInfo; const userInfo = sheep.$store('user').userInfo;
const wxa_qrcode = await getWxaQrcode(poster.shareInfo.path, poster.shareInfo.query); const wxa_qrcode = await getWxaQrcode(poster.shareInfo.path, poster.shareInfo.query);

View File

@ -30,7 +30,7 @@
</view> </view>
<view class="menu-item ss-flex-col ss-row-center ss-col-center menu-wallet" <view class="menu-item ss-flex-col ss-row-center ss-col-center menu-wallet"
@tap="sheep.$router.go('/pages/user/wallet/money')"> @tap="sheep.$router.go('/pages/user/wallet/money')">
<image class="item-icon" :src="sheep.$url.static('/static/img/shop/user/wallet_icon.png')" mode="aspectFit" /> <image class="item-icon" :src="'/static/img/shop/wallet_icon.png'" mode="aspectFit" />
<view class="menu-title ss-m-t-30">我的钱包</view> <view class="menu-title ss-m-t-30">我的钱包</view>
</view> </view>
</view> </view>

View File

@ -12,7 +12,7 @@ if (process.env.NODE_ENV === 'development') {
if (typeof baseUrl === 'undefined') { if (typeof baseUrl === 'undefined') {
console.error('请检查.env配置文件是否存在'); console.error('请检查.env配置文件是否存在');
} else { } else {
console.log(`[芋道商城 ${version}] https://doc.iocoder.cn`); console.log(`[研筑商城 ${version}] https://doc.iocoder.cn`);
} }
export const apiPath = import.meta.env.SHOPRO_API_PATH; export const apiPath = import.meta.env.SHOPRO_API_PATH;

View File

@ -6,20 +6,27 @@ import test from '@/sheep/helper/test.js';
import AuthUtil from '@/sheep/api/member/auth'; import AuthUtil from '@/sheep/api/member/auth';
// 打开授权弹框 // 打开授权弹框
export function showAuthModal(type = 'smsLogin') { export function showAuthModal(type = 'accountLogin') {
// 检查用户是否已登录
const userStore = $store('user');
if (userStore.isLogin) {
console.log('用户已登录,无需显示登录弹框');
return;
}
const modal = $store('modal'); const modal = $store('modal');
// #ifdef H5 // #ifdef H5
closeAuthModal(); closeAuthModal();
setTimeout(() => { setTimeout(() => {
modal.$patch((state) => { modal.$patch((state) => {
state.auth = type; state.auth = "accountLogin";//type;
}); });
}, 200); }, 200);
// #endif // #endif
// #ifndef H5 // #ifndef H5
modal.$patch((state) => { modal.$patch((state) => {
state.auth = type; state.auth = "accountLogin";//type;
}); });
// #endif // #endif
} }

View File

@ -29,6 +29,9 @@ export async function ShoproInit() {
// 应用初始化 // 应用初始化
await $store('app').init(); await $store('app').init();
// 初始化用户状态(等待完成)
await $store('user').initialize();
// 平台初始化加载(各平台provider提供不同的加载流程) // 平台初始化加载(各平台provider提供不同的加载流程)
$platform.load(); $platform.load();

View File

@ -7,26 +7,40 @@ let Manifest = fs.readFileSync(manifestPath, {
}); });
function mpliveMainfestPlugin(isOpen) { function mpliveMainfestPlugin(isOpen) {
if (process.env.UNI_PLATFORM !== 'mp-weixin') return; if (process.env.UNI_PLATFORM !== 'mp-weixin') return { name: 'mplive-mainfest-plugin' };
const manifestData = JSON.parse(Manifest) try {
const manifestData = JSON.parse(Manifest)
if (isOpen === '0') { if (isOpen === '0') {
delete manifestData['mp-weixin'].plugins['live-player-plugin']; if (manifestData['mp-weixin'] && manifestData['mp-weixin'].plugins) {
} delete manifestData['mp-weixin'].plugins['live-player-plugin'];
}
if (isOpen === '1') {
manifestData['mp-weixin'].plugins['live-player-plugin'] = {
"version": "1.3.5",
"provider": "wx2b03c6e691cd7370"
} }
if (isOpen === '1') {
if (!manifestData['mp-weixin']) {
manifestData['mp-weixin'] = {};
}
if (!manifestData['mp-weixin'].plugins) {
manifestData['mp-weixin'].plugins = {};
}
manifestData['mp-weixin'].plugins['live-player-plugin'] = {
"version": "1.3.5",
"provider": "wx2b03c6e691cd7370"
}
}
Manifest = JSON.stringify(manifestData, null, 2)
fs.writeFileSync(manifestPath, Manifest, {
"flag": "w"
})
} catch (error) {
console.error('Error processing manifest.json:', error);
} }
Manifest = JSON.stringify(manifestData, null, 2) return { name: 'mplive-mainfest-plugin' };
fs.writeFileSync(manifestPath, Manifest, {
"flag": "w"
})
} }
export default mpliveMainfestPlugin export default mpliveMainfestPlugin

View File

@ -15,7 +15,7 @@ const login = () => {
provider: 'weixin', provider: 'weixin',
onlyAuthorize: true, onlyAuthorize: true,
}); });
debugger
if (loginRes.errMsg == 'login:ok') { if (loginRes.errMsg == 'login:ok') {
// TODO third.wechat.login 函数未实现 // TODO third.wechat.login 函数未实现
const res = await third.wechat.login({ const res = await third.wechat.login({

View File

@ -119,6 +119,9 @@ http.interceptors.response.use(
// 存储租户ID // 存储租户ID
if (response.data.data.tenantId) { if (response.data.data.tenantId) {
uni.setStorageSync('tenant-id', response.data.data.tenantId); uni.setStorageSync('tenant-id', response.data.data.tenantId);
console.log('登录成功存储租户ID:', response.data.data.tenantId);
} else {
console.log('登录成功但响应中没有租户ID');
} }
} }
@ -131,6 +134,16 @@ http.interceptors.response.use(
if (response.data.code === 401) { if (response.data.code === 401) {
return refreshToken(response.config); return refreshToken(response.config);
} }
// 特殊:如果 400 错误码并且是租户ID缺失则弹出登录框
if (response.data.code === 400 && response.data.msg?.includes('租户标识未传递')) {
// 检查是否刚刚登录成功或登录后的回调请求
const isLoginRequest = response.config.url.indexOf('/member/auth/') >= 0;
const isTemplateRequest = response.config.url.indexOf('/promotion/diy-template/') >= 0;
if (!isLoginRequest && !isTemplateRequest) {
showAuthModal();
}
return Promise.reject(response.data);
}
// 特殊:处理分销用户绑定失败的提示 // 特殊:处理分销用户绑定失败的提示
if ((response.data.code + '').includes('1011007')) { if ((response.data.code + '').includes('1011007')) {
console.error(`分销用户绑定失败,原因:${response.data.msg}`); console.error(`分销用户绑定失败,原因:${response.data.msg}`);

View File

@ -51,7 +51,7 @@ const app = defineStore({
}), }),
actions: { actions: {
// 获取Shopro应用配置和模板 // 获取Shopro应用配置和模板
async init(templateId = null) { async init(templateId = null, skipTenant = false) {
// 检查网络 // 检查网络
const networkStatus = await $platform.checkNetwork(); const networkStatus = await $platform.checkNetwork();
if (!networkStatus) { if (!networkStatus) {
@ -63,16 +63,22 @@ const app = defineStore({
$router.error('EnvError'); $router.error('EnvError');
} }
// 加载租户 // 加载租户(如果需要)
await adaptTenant(); if (!skipTenant) {
await adaptTenant();
}
// 加载装修配置 // 加载装修配置
await adaptTemplate(this.template, templateId); const templateSuccess = await adaptTemplate(this.template, templateId);
if (!templateSuccess) {
console.error('模板初始化失败,停止后续初始化');
return Promise.resolve(false);
}
// TODO 芋艿:【初始化优化】未来支持管理后台可配;对应 https://api.shopro.sheepjs.com/shop/api/init // TODO 芋艿:【初始化优化】未来支持管理后台可配;对应 https://api.shopro.sheepjs.com/shop/api/init
if (true) { if (true) {
this.info = { this.info = {
name: '芋道商城', name: '研筑商城',
logo: 'https://static.iocoder.cn/ruoyi-vue-pro-logo.png', logo: 'https://static.iocoder.cn/ruoyi-vue-pro-logo.png',
version: '2026.01', version: '2026.01',
copyright: '全部开源,个人与企业可 100% 免费使用', copyright: '全部开源,个人与企业可 100% 免费使用',
@ -182,33 +188,39 @@ const adaptTenant = async () => {
/** 初始化装修模版 */ /** 初始化装修模版 */
const adaptTemplate = async (appTemplate, templateId) => { const adaptTemplate = async (appTemplate, templateId) => {
const { data: diyTemplate } = templateId try {
? // 查询指定模板,一般是预览时使用 const { data: diyTemplate } = templateId
await DiyApi.getDiyTemplate(templateId) ? // 查询指定模板,一般是预览时使用
: await DiyApi.getUsedDiyTemplate(); await DiyApi.getDiyTemplate(templateId)
// 模板不存在 : await DiyApi.getUsedDiyTemplate();
if (!diyTemplate) { // 模板不存在
$router.error('TemplateError'); if (!diyTemplate) {
return; console.error('模板不存在');
} return false;
const tabBar = diyTemplate?.property?.tabBar;
if (tabBar) {
appTemplate.basic.tabbar = tabBar;
// TODO 商城装修没有对 tabBar 进行角标配置,测试角标需打开以下注释
// appTemplate.basic.tabbar.items.forEach((tabBar) => {
// tabBar.dot = false
// tabBar.badge = 100
// })
// appTemplate.basic.tabbar.badgeStyle = {
// backgroundColor: '#882222',
// }
if (tabBar?.theme) {
appTemplate.basic.theme = tabBar?.theme;
} }
const tabBar = diyTemplate?.property?.tabBar;
if (tabBar) {
appTemplate.basic.tabbar = tabBar;
// TODO 商城装修没有对 tabBar 进行角标配置,测试角标需打开以下注释
// appTemplate.basic.tabbar.items.forEach((tabBar) => {
// tabBar.dot = false
// tabBar.badge = 100
// })
// appTemplate.basic.tabbar.badgeStyle = {
// backgroundColor: '#882222',
// }
if (tabBar?.theme) {
appTemplate.basic.theme = tabBar?.theme;
}
}
appTemplate.home = diyTemplate?.home;
appTemplate.user = diyTemplate?.user;
return true;
} catch (error) {
console.error('模板初始化失败:', error);
return false;
} }
appTemplate.home = diyTemplate?.home;
appTemplate.user = diyTemplate?.user;
}; };
export default app; export default app;

View File

@ -3,7 +3,7 @@ import { defineStore } from 'pinia';
const modal = defineStore({ const modal = defineStore({
id: 'modal', id: 'modal',
state: () => ({ state: () => ({
auth: '', // 授权弹框 accountLogin|smsLogin|resetPassword|changeMobile|changePassword|changeUsername auth: '', // 授权弹框 accountLogin|smsLogin|resetPassword|changeMobile|changePassword|changeUsername,默认为空
share: false, // 分享弹框 share: false, // 分享弹框
menu: false, // 快捷菜单弹框 menu: false, // 快捷菜单弹框
advHistory: [], // 广告弹框记录 advHistory: [], // 广告弹框记录

View File

@ -41,12 +41,48 @@ const user = defineStore({
state: () => ({ state: () => ({
userInfo: clone(defaultUserInfo), // 用户信息 userInfo: clone(defaultUserInfo), // 用户信息
userWallet: clone(defaultUserWallet), // 用户钱包信息 userWallet: clone(defaultUserWallet), // 用户钱包信息
isLogin: !!uni.getStorageSync('token'), // 登录状态 isLogin: false, // 登录状态,初始值为 false由持久化插件恢复
numData: cloneDeep(defaultNumData), // 用户其他数据 numData: cloneDeep(defaultNumData), // 用户其他数据
lastUpdateTime: 0, // 上次更新时间 lastUpdateTime: 0, // 上次更新时间
}), }),
actions: { actions: {
// 初始化用户状态
async initialize() {
// 检查 token 是否存在
const token = uni.getStorageSync('token');
// 检查 refresh-token 是否存在
const refreshToken = uni.getStorageSync('refresh-token');
// 检查持久化的用户数据是否存在
const userStoreData = uni.getStorageSync('user-store');
// 如果有用户数据但没有 token 和 refresh-token说明登录状态已失效
if (userStoreData && !token && !refreshToken) {
this.resetUserData();
}
// 如果有 token 或 refresh-token 但 isLogin 为 false更新登录状态
else if ((token || refreshToken) && !this.isLogin) {
this.isLogin = true;
// 如果只有 refresh-token 没有 token尝试刷新 token
if (!token && refreshToken) {
try {
const AuthUtil = await import('@/sheep/api/member/auth');
const refreshTokenResult = await AuthUtil.default.refreshToken(refreshToken);
if (refreshTokenResult.code === 0) {
this.setToken(refreshTokenResult.data.accessToken, refreshTokenResult.data.refreshToken);
} else {
// 刷新失败,重置用户数据
this.resetUserData();
}
} catch (e) {
// 刷新失败,重置用户数据
this.resetUserData();
}
} else {
// 有 token直接更新用户信息
this.loginAfter(true);
}
}
},
// 获取用户信息 // 获取用户信息
async getInfo() { async getInfo() {
const { code, data } = await UserApi.getUserInfo(); const { code, data } = await UserApi.getUserInfo();
@ -95,7 +131,7 @@ const user = defineStore({
this.isLogin = true; this.isLogin = true;
uni.setStorageSync('token', token); uni.setStorageSync('token', token);
uni.setStorageSync('refresh-token', refreshToken); uni.setStorageSync('refresh-token', refreshToken);
this.loginAfter(); this.loginAfter(true);
} }
return this.isLogin; return this.isLogin;
}, },
@ -133,21 +169,18 @@ const user = defineStore({
}, },
// 登录后,加载各种信息 // 登录后,加载各种信息
async loginAfter() { async loginAfter(isLogin=false) {
if(!isLogin) {
return;
}
// 先更新用户数据
await this.updateUserData(); await this.updateUserData();
// 加载购物车 // 登录成功后,延迟重新获取模板信息
cart().getList(); // 确保租户ID已经被正确存储到本地存储中
// 登录后设置全局分享参数 setTimeout(() => {
$share.getShareInfo(); app().init(null, true);
}, 100);
// 提醒绑定手机号
if (app().platform.bind_mobile && !this.userInfo.mobile) {
showAuthModal('changeMobile');
}
// 绑定推广员
$share.bindBrokerageUser();
}, },
// 登出系统 // 登出系统

View File

@ -21,12 +21,8 @@ export default {
}, },
// 静态资源地址 // 静态资源地址
static: (url = '', staticurl = '') => { static: (url = '', staticurl = '') => {
if (staticurl === '') {
staticurl = staticUrl;
}
if (staticurl !== 'local') {
url = cdn(url, staticurl);
}
return url; return url;
}, },
// css背景图片地址 // css背景图片地址

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1662015751652" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1383" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M1021.44 514.048c0-56.832-10.24-111.616-28.672-162.304-2.56-7.168-5.632-14.336-8.192-21.504-17.92-42.496-41.984-81.408-70.656-116.224-9.728-11.776-19.968-23.04-30.208-33.28-31.744-31.744-68.608-59.392-108.544-81.408-6.656-3.584-13.312-7.168-20.48-10.24-13.824-6.656-27.648-12.8-42.496-17.92-28.672-10.752-58.88-18.432-90.112-23.04-15.36-2.56-31.232-4.096-47.616-4.608-8.192-0.512-15.872-0.512-24.064-0.512-97.792 0-188.416 29.696-263.68 80.384-25.088 16.896-48.64 36.352-69.632 57.344-15.872 15.872-30.72 33.28-44.544 51.2-22.528 30.208-41.472 63.488-56.832 98.304-3.072 7.168-5.632 14.336-8.192 21.504-18.432 50.688-28.672 104.96-28.672 162.304 0 5.12 0 10.24 0.512 15.36 8.192 253.44 215.552 456.192 471.04 456.192s462.848-202.752 471.04-456.192v-15.36z" fill="#FB6F31" p-id="1384"></path><path d="M139.16672 847.54944a471.51104 471.51104 0 0 0 513.8944 102.21568 471.59808 471.59808 0 0 0 255.2064-255.2064 471.6288 471.6288 0 0 0-0.01024-360.91904 471.53664 471.53664 0 0 0-255.21152-255.20128A471.552 471.552 0 0 0 139.16672 847.54944z" fill="#FBB03B" p-id="1385"></path><path d="M210.4832 776.22784a370.64704 370.64704 0 0 0 262.12352 108.5696 370.64704 370.64704 0 0 0 262.11328-108.57984 370.71872 370.71872 0 0 0 108.56448-262.1184 370.72384 370.72384 0 0 0-108.57472-262.11328A370.688 370.688 0 0 0 210.48832 776.22784z" fill="#FBEFA0" p-id="1386"></path><path d="M472.576 42.496C212.48 42.496 1.024 253.44 1.024 514.048c0 5.12 0 10.24 0.512 15.36h942.08c0-5.12 0.512-10.24 0.512-15.36 0-260.096-210.944-471.552-471.552-471.552z" fill="#FBC93B" p-id="1387"></path><path d="M236.19072 750.52544a334.40256 334.40256 0 0 0 364.35968 72.46848 334.40256 334.40256 0 0 0 180.9408-180.94592 334.3872 334.3872 0 0 0-0.01024-255.89248 334.32576 334.32576 0 0 0-617.77408 0.01024 334.336 334.336 0 0 0 72.48384 364.35968z" fill="#E25931" p-id="1388"></path><path d="M184.832 514.048c0 88.53504 32.7936 173.44512 91.17184 236.05248C334.3872 812.70272 413.568 847.872 496.128 847.872c82.56 0 161.73568-35.16928 220.11904-97.77152 58.37824-62.60736 91.17696-147.51744 91.17696-236.05248 0-43.83744-8.05376-87.2448-23.70048-127.744-15.6416-40.50432-38.56896-77.30688-67.47648-108.30336C657.86368 215.3984 578.688 180.224 496.128 180.224c-82.56512 0-161.7408 35.1744-220.12416 97.77664C217.6256 340.60288 184.832 425.51296 184.832 514.048z" fill="#FB6F31" p-id="1389"></path><path d="M184.832 514.048c0 88.53504 32.7936 173.44512 91.17184 236.05248C334.3872 812.70272 413.568 847.872 496.128 847.872c82.56 0 161.73568-35.16928 220.11904-97.77152 58.37824-62.60736 91.17696-147.51744 91.17696-236.05248 0-43.83744-8.05376-87.2448-23.70048-127.744-15.6416-40.50432-38.56896-77.30688-67.47648-108.30336C657.86368 215.3984 578.688 180.224 496.128 180.224c-82.56512 0-161.7408 35.1744-220.12416 97.77664C217.6256 340.60288 184.832 425.51296 184.832 514.048z" fill="#FB6F31" p-id="1390"></path><path d="M723.456 292.864l-449.024 449.024c56.32 59.904 134.144 99.84 221.184 105.472 174.08-11.776 311.296-156.672 311.296-333.824 0-84.48-31.232-161.792-83.456-220.672z" fill="#FB8E31" p-id="1391"></path><path d="M495.616 328.192l63.488 128 141.312 20.992-92.16 89.088 20.992 156.672-135.68-68.096-124.416 62.976 24.064-140.8-102.4-99.84 141.312-20.992 63.488-128z" fill="#FB6F31" p-id="1392"></path><path d="M482.304 306.176l62.976 128 141.824 20.48-102.4 99.84 24.064 141.312-126.464-66.56-126.976 66.56 24.576-141.312-102.4-99.84 141.312-20.48 63.488-128z" fill="#FBC93B" p-id="1393"></path></svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

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