refactor(user): 统一品牌名称为“威数谱软件”

- 将项目中所有“威硕谱软件”名称修改为“威数谱软件”
- 更新协议页面、欢迎消息、礼品卡等多处文本内容
- 修改小程序配置文件中的项目名称和显示标题
- 优化开发者申请页部分文案,明确开发者身份描述
- 保证所有界面及配置中的品牌名称统一一致
This commit is contained in:
2026-07-22 13:46:10 +08:00
parent 50c98cdcf7
commit 2ea16e22cf
11 changed files with 38 additions and 29 deletions

41
.idea/workspace.xml generated
View File

@@ -4,9 +4,18 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="2de94e4f-0587-4c9b-8bfd-e87e0ae95b81" name="更改" comment="feat(user): 统一VIP概念为开发者并优化开发者登录及申请&#10;&#10;- 将VIP相关文案、图标改为开发者涉及用户中心、门店中心、审核页等&#10;- 优化登录弹窗UI改为红色系提升视觉统一性和交互体验&#10;- 关于我们页面品牌和公司信息内容更新,展示最新企业介绍和业务范围&#10;- VIP升级页新增“所在城市”选择使用微信原生地区选择器完善地址信息&#10;- 用户申请表单中新增城市字段及校验,提交时携带城市信息&#10;- 优化审核页面文案,统称开发者身份,明确申请审核内容&#10;- 修复UserRoleController.save接口bug避免userId被无条件覆盖导致角色绑错&#10;- 动态查询VIP角色ID避免硬编码支持多租户环境正确绑定角色"> <list default="true" id="2de94e4f-0587-4c9b-8bfd-e87e0ae95b81" name="更改" comment="refactor(user): 删除门店信息输入框&#10;&#10;- 移除用户资料页面中的门店名称输入框&#10;- 移除用户资料页面中的门店地址输入框&#10;- 简化用户页面界面布局,提高界面整洁度">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/user/profile.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/user/profile.tsx" afterDir="false" /> <change beforePath="$PROJECT_DIR$/config/env.js" beforeDir="false" afterPath="$PROJECT_DIR$/config/env.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/project.config.json" beforeDir="false" afterPath="$PROJECT_DIR$/project.config.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/detail.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/detail.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/gift-card/purchase/index.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/gift-card/purchase/index.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/index/index.config.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/index/index.config.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/index/index.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/index/index.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/purchase.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/purchase.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pages/user/vip-upgrade/index.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/user/vip-upgrade/index.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/passport/agreement.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/passport/agreement.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/passport/login.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/passport/login.tsx" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -60,7 +69,7 @@
<recent name="$PROJECT_DIR$" /> <recent name="$PROJECT_DIR$" />
</key> </key>
</component> </component>
<component name="RunManager" selected="npm.build:weapp"> <component name="RunManager" selected="npm.dev:weapp">
<configuration name="build:weapp" type="js.build_tools.npm" temporary="true" nameIsGenerated="true"> <configuration name="build:weapp" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/package.json" /> <package-json value="$PROJECT_DIR$/package.json" />
<command value="run" /> <command value="run" />
@@ -83,8 +92,8 @@
</configuration> </configuration>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="npm.build:weapp" />
<item itemvalue="npm.dev:weapp" /> <item itemvalue="npm.dev:weapp" />
<item itemvalue="npm.build:weapp" />
</list> </list>
</recent_temporary> </recent_temporary>
</component> </component>
@@ -118,15 +127,7 @@
<workItem from="1784131049625" duration="2304000" /> <workItem from="1784131049625" duration="2304000" />
<workItem from="1784133736973" duration="4614000" /> <workItem from="1784133736973" duration="4614000" />
<workItem from="1784585070286" duration="3047000" /> <workItem from="1784585070286" duration="3047000" />
<workItem from="1784638429525" duration="7238000" /> <workItem from="1784638429525" duration="8483000" />
</task>
<task id="LOCAL-00011" summary="fix(invite): 修正邀请接口使用独立API域名&#10;&#10;- 将邀请相关接口的请求地址由通用API域名改为独立的INVITE_API_URL&#10;- 修改获取邀请信息接口的请求URL&#10;- 修改接受邀请接口的请求URL&#10;- 确保请求头和参数传递保持一致">
<option name="closed" value="true" />
<created>1775905743204</created>
<option name="number" value="00011" />
<option name="presentableId" value="LOCAL-00011" />
<option name="project" value="LOCAL" />
<updated>1775905743204</updated>
</task> </task>
<task id="LOCAL-00012" summary="refactor(api): 移除未使用的配置接口及相关Hook&#10;&#10;- 从cmsWebsiteField接口中删除configWebsiteField方法&#10;- 删除useConfig自定义Hook及其引用&#10;- 更新about页面去除对config对象和useConfig的使用&#10;- 修正invite模块请求URL统一加上/api前缀"> <task id="LOCAL-00012" summary="refactor(api): 移除未使用的配置接口及相关Hook&#10;&#10;- 从cmsWebsiteField接口中删除configWebsiteField方法&#10;- 删除useConfig自定义Hook及其引用&#10;- 更新about页面去除对config对象和useConfig的使用&#10;- 修正invite模块请求URL统一加上/api前缀">
<option name="closed" value="true" /> <option name="closed" value="true" />
@@ -512,7 +513,15 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1784697551142</updated> <updated>1784697551142</updated>
</task> </task>
<option name="localTasksCounter" value="60" /> <task id="LOCAL-00060" summary="refactor(user): 删除门店信息输入框&#10;&#10;- 移除用户资料页面中的门店名称输入框&#10;- 移除用户资料页面中的门店地址输入框&#10;- 简化用户页面界面布局,提高界面整洁度">
<option name="closed" value="true" />
<created>1784697730666</created>
<option name="number" value="00060" />
<option name="presentableId" value="LOCAL-00060" />
<option name="project" value="LOCAL" />
<updated>1784697730666</updated>
</task>
<option name="localTasksCounter" value="61" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@@ -532,7 +541,6 @@
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" /> <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_NEW_TODO" value="false" /> <option name="CHECK_NEW_TODO" value="false" />
<MESSAGE value="feat(invite): 重构邀请加入流程,实现已登录用户免授权直接加入&#10;&#10;- 完全重写邀请页逻辑,区分已登录与未注册用户按钮显示&#10;- 已登录用户显示“确认加入”按钮,点击用 wx.login 获取 code 加入&#10;- 未注册用户显示“微信手机号快速加入”按钮,授权手机号后完成注册登录再加入&#10;- 移除跳转登录页面逻辑,所有流程在邀请页内完成&#10;- 加入接口统一使用 Authorization 头携带 token确保身份双重验证&#10;- 优化背景、粒子和扫描线效果,提升界面视觉体验&#10;- 增加错误处理提示,加入失败时显示详细原因并可返回首页&#10;- 协议勾选仅在未注册用户显示,确保合规授权流程" />
<MESSAGE value="feat(passport): 优化已登录用户加入时协议勾选逻辑&#10;&#10;- 已登录用户点击「确认加入」时不再强制勾选协议&#10;- 移除 handleConfirmJoin 中对协议勾选的检查&#10;- 未注册用户仍需勾选协议后才能授权手机号&#10;- 确保登录状态异常时有提示信息显示" /> <MESSAGE value="feat(passport): 优化已登录用户加入时协议勾选逻辑&#10;&#10;- 已登录用户点击「确认加入」时不再强制勾选协议&#10;- 移除 handleConfirmJoin 中对协议勾选的检查&#10;- 未注册用户仍需勾选协议后才能授权手机号&#10;- 确保登录状态异常时有提示信息显示" />
<MESSAGE value="feat(invite): 支持已登录用户直接加入应用&#10;&#10;- 后端accept接口code参数改为可选支持通过Authorization头识别登录用户&#10;- 已登录用户加入时不再弹手机号授权前端调用新增的doJoinAppForLoggedInUser方法&#10;- 未注册用户仍通过手机号授权码code加入调用doJoinAppForNewUser方法&#10;- 拆分前端加入逻辑新增handleConfirmJoin统一处理已登录加入流程&#10;- 优化按钮交互,已登录状态下按钮变为普通点击,移除协议强制勾选&#10;- 错误处理和状态提示完善,加入成功后自动跳转首页" /> <MESSAGE value="feat(invite): 支持已登录用户直接加入应用&#10;&#10;- 后端accept接口code参数改为可选支持通过Authorization头识别登录用户&#10;- 已登录用户加入时不再弹手机号授权前端调用新增的doJoinAppForLoggedInUser方法&#10;- 未注册用户仍通过手机号授权码code加入调用doJoinAppForNewUser方法&#10;- 拆分前端加入逻辑新增handleConfirmJoin统一处理已登录加入流程&#10;- 优化按钮交互,已登录状态下按钮变为普通点击,移除协议强制勾选&#10;- 错误处理和状态提示完善,加入成功后自动跳转首页" />
<MESSAGE value="feat(developer): 完成小程序开发者中心和企业控制台改造&#10;&#10;- 设计并实现了开发者中心与企业控制台两大模块&#10;- 按用户角色区分开发者和企业客户,支持多项目类型及成员管理&#10;- 新增项目管理、应用管理、API Key管理及成员邀请等多功能页面&#10;- 实现应用版本发布、消息通知中心、权限审批与开发者申请流程&#10;- 完成CI/CD流水线、运营监控、发票管理、SSO单点登录功能&#10;- 搭建SDK下载中心、工单系统、FAQ系统、数据导入导出等模块&#10;- 优化后端API支持已登录和未注册用户不同加入应用流程&#10;- 前端按钮统一采用微信手机号授权,完善用户授权体验&#10;- 修复多个页面的JSX语法错误及依赖导入问题替换部分组件库&#10;- 增加详细的类型定义文件,提升项目类型安全&#10;- 新增超过55个页面及60个API接口扩展应用功能和服务体系&#10;- 完成全面的样式设计,实现一致的视觉风格和交互体验" /> <MESSAGE value="feat(developer): 完成小程序开发者中心和企业控制台改造&#10;&#10;- 设计并实现了开发者中心与企业控制台两大模块&#10;- 按用户角色区分开发者和企业客户,支持多项目类型及成员管理&#10;- 新增项目管理、应用管理、API Key管理及成员邀请等多功能页面&#10;- 实现应用版本发布、消息通知中心、权限审批与开发者申请流程&#10;- 完成CI/CD流水线、运营监控、发票管理、SSO单点登录功能&#10;- 搭建SDK下载中心、工单系统、FAQ系统、数据导入导出等模块&#10;- 优化后端API支持已登录和未注册用户不同加入应用流程&#10;- 前端按钮统一采用微信手机号授权,完善用户授权体验&#10;- 修复多个页面的JSX语法错误及依赖导入问题替换部分组件库&#10;- 增加详细的类型定义文件,提升项目类型安全&#10;- 新增超过55个页面及60个API接口扩展应用功能和服务体系&#10;- 完成全面的样式设计,实现一致的视觉风格和交互体验" />
@@ -557,7 +565,8 @@
<MESSAGE value="feat(user): 改为动态查询 VIP 角色ID避免写死角色ID&#10;&#10;- RoleParam 类型新增 tenantId 字段,支持按租户过滤角色&#10;- 新增 getCurrentTenantId 获取当前租户ID支持登录态和默认租户回退&#10;- 实现 getVipRoleId 函数,按 roleCode 与 tenantId 查询 VIP 角色ID&#10;- assignVipRole 中动态获取 VIP 角色ID避免硬编码&#10;- 添加用户角色时带上 tenantId确保多租户角色绑定正确&#10;- 移除写" /> <MESSAGE value="feat(user): 改为动态查询 VIP 角色ID避免写死角色ID&#10;&#10;- RoleParam 类型新增 tenantId 字段,支持按租户过滤角色&#10;- 新增 getCurrentTenantId 获取当前租户ID支持登录态和默认租户回退&#10;- 实现 getVipRoleId 函数,按 roleCode 与 tenantId 查询 VIP 角色ID&#10;- assignVipRole 中动态获取 VIP 角色ID避免硬编码&#10;- 添加用户角色时带上 tenantId确保多租户角色绑定正确&#10;- 移除写" />
<MESSAGE value="feat(user): 动态查询VIP角色ID避免硬编码绑定问题&#10;&#10;- RoleParam新增tenantId字段支持按租户过滤角色&#10;- 新增getCurrentTenantId函数兼容登录态及默认租户回退&#10;- 实现getVipRoleId函数按roleCode与tenantId查询VIP角色ID&#10;- assignVipRole动态获取VIP角色ID移除写死的角色ID&#10;- 添加用户角色时传" /> <MESSAGE value="feat(user): 动态查询VIP角色ID避免硬编码绑定问题&#10;&#10;- RoleParam新增tenantId字段支持按租户过滤角色&#10;- 新增getCurrentTenantId函数兼容登录态及默认租户回退&#10;- 实现getVipRoleId函数按roleCode与tenantId查询VIP角色ID&#10;- assignVipRole动态获取VIP角色ID移除写死的角色ID&#10;- 添加用户角色时传" />
<MESSAGE value="feat(user): 统一VIP概念为开发者并优化开发者登录及申请&#10;&#10;- 将VIP相关文案、图标改为开发者涉及用户中心、门店中心、审核页等&#10;- 优化登录弹窗UI改为红色系提升视觉统一性和交互体验&#10;- 关于我们页面品牌和公司信息内容更新,展示最新企业介绍和业务范围&#10;- VIP升级页新增“所在城市”选择使用微信原生地区选择器完善地址信息&#10;- 用户申请表单中新增城市字段及校验,提交时携带城市信息&#10;- 优化审核页面文案,统称开发者身份,明确申请审核内容&#10;- 修复UserRoleController.save接口bug避免userId被无条件覆盖导致角色绑错&#10;- 动态查询VIP角色ID避免硬编码支持多租户环境正确绑定角色" /> <MESSAGE value="feat(user): 统一VIP概念为开发者并优化开发者登录及申请&#10;&#10;- 将VIP相关文案、图标改为开发者涉及用户中心、门店中心、审核页等&#10;- 优化登录弹窗UI改为红色系提升视觉统一性和交互体验&#10;- 关于我们页面品牌和公司信息内容更新,展示最新企业介绍和业务范围&#10;- VIP升级页新增“所在城市”选择使用微信原生地区选择器完善地址信息&#10;- 用户申请表单中新增城市字段及校验,提交时携带城市信息&#10;- 优化审核页面文案,统称开发者身份,明确申请审核内容&#10;- 修复UserRoleController.save接口bug避免userId被无条件覆盖导致角色绑错&#10;- 动态查询VIP角色ID避免硬编码支持多租户环境正确绑定角色" />
<option name="LAST_COMMIT_MESSAGE" value="feat(user): 统一VIP概念为开发者并优化开发者登录及申请&#10;&#10;- 将VIP相关文案、图标改为开发者涉及用户中心、门店中心、审核页等&#10;- 优化登录弹窗UI改为红色系提升视觉统一性和交互体验&#10;- 关于我们页面品牌和公司信息内容更新,展示最新企业介绍和业务范围&#10;- VIP升级页新增“所在城市”选择使用微信原生地区选择器完善地址信息&#10;- 用户申请表单中新增城市字段及校验,提交时携带城市信息&#10;- 优化审核页面文案,统称开发者身份,明确申请审核内容&#10;- 修复UserRoleController.save接口bug避免userId被无条件覆盖导致角色绑错&#10;- 动态查询VIP角色ID避免硬编码支持多租户环境正确绑定角色" /> <MESSAGE value="refactor(user): 删除门店信息输入框&#10;&#10;- 移除用户资料页面中的门店名称输入框&#10;- 移除用户资料页面中的门店地址输入框&#10;- 简化用户页面界面布局,提高界面整洁度" />
<option name="LAST_COMMIT_MESSAGE" value="refactor(user): 删除门店信息输入框&#10;&#10;- 移除用户资料页面中的门店名称输入框&#10;- 移除用户资料页面中的门店地址输入框&#10;- 简化用户页面界面布局,提高界面整洁度" />
<option name="NON_MODAL_COMMIT_POSTPONE_SLOW_CHECKS" value="false" /> <option name="NON_MODAL_COMMIT_POSTPONE_SLOW_CHECKS" value="false" />
</component> </component>
</project> </project>

View File

@@ -5,21 +5,21 @@ export const ENV_CONFIG = {
API_BASE_URL: 'https://shop-api.websoft.top/api', API_BASE_URL: 'https://shop-api.websoft.top/api',
SERVER_API_URL: 'https://server.websoft.top/api', SERVER_API_URL: 'https://server.websoft.top/api',
WEBSOPY_API_BASE_URL: 'https://websopy-api.websoft.top/api', WEBSOPY_API_BASE_URL: 'https://websopy-api.websoft.top/api',
APP_NAME: '威谱软件', APP_NAME: '威谱软件',
DEBUG: 'true', DEBUG: 'true',
}, },
test: { test: {
API_BASE_URL: 'https://shop-api.websoft.top/api', API_BASE_URL: 'https://shop-api.websoft.top/api',
SERVER_API_URL: 'https://server.websoft.top/api', SERVER_API_URL: 'https://server.websoft.top/api',
WEBSOPY_API_BASE_URL: 'https://websopy-api.websoft.top/api', WEBSOPY_API_BASE_URL: 'https://websopy-api.websoft.top/api',
APP_NAME: '威谱软件', APP_NAME: '威谱软件',
DEBUG: 'true', DEBUG: 'true',
}, },
production: { production: {
API_BASE_URL: 'https://shop-api.websoft.top/api', API_BASE_URL: 'https://shop-api.websoft.top/api',
SERVER_API_URL: 'https://server.websoft.top/api', SERVER_API_URL: 'https://server.websoft.top/api',
WEBSOPY_API_BASE_URL: 'https://websopy-api.websoft.top/api', WEBSOPY_API_BASE_URL: 'https://websopy-api.websoft.top/api',
APP_NAME: '威谱软件', APP_NAME: '威谱软件',
DEBUG: 'false', DEBUG: 'false',
}, },
} }

View File

@@ -44,7 +44,7 @@
}, },
"compileType": "miniprogram", "compileType": "miniprogram",
"appid": "wx541db955e7a62709", "appid": "wx541db955e7a62709",
"projectname": "威谱软件", "projectname": "威谱软件",
"condition": {}, "condition": {},
"simulatorPluginLibVersion": {}, "simulatorPluginLibVersion": {},
"packOptions": { "packOptions": {

View File

@@ -10,8 +10,8 @@ const MessageDetailPage: React.FC = () => {
const [message, setMessage] = useState({ const [message, setMessage] = useState({
id: 1, id: 1,
type: 1, type: 1,
title: '欢迎注册威谱软件', title: '欢迎注册威谱软件',
content: '感谢您注册威谱软件,让我们一起开启美好购物体验!\n\n在威谱软件,您可以:\n• 浏览精选商品\n• 享受会员专属优惠\n• 参与精彩活动\n• 获得积分奖励\n\n如有任何问题欢迎联系客服。', content: '感谢您注册威谱软件,让我们一起开启美好购物体验!\n\n在威谱软件,您可以:\n• 浏览精选商品\n• 享受会员专属优惠\n• 参与精彩活动\n• 获得积分奖励\n\n如有任何问题欢迎联系客服。',
time: '2026-05-12 10:30:00', time: '2026-05-12 10:30:00',
isRead: true, isRead: true,
}) })

View File

@@ -48,7 +48,7 @@ const GiftCardPurchasePage: React.FC = () => {
<View className='absolute rounded-full' style={{ top: '-20px', right: '-20px', width: '80px', height: '80px', backgroundColor: 'rgba(255,255,255,0.2)' }} /> <View className='absolute rounded-full' style={{ top: '-20px', right: '-20px', width: '80px', height: '80px', backgroundColor: 'rgba(255,255,255,0.2)' }} />
<View className='absolute rounded-full' style={{ bottom: '-32px', left: '-32px', width: '96px', height: '96px', backgroundColor: 'rgba(255,255,255,0.2)' }} /> <View className='absolute rounded-full' style={{ bottom: '-32px', left: '-32px', width: '96px', height: '96px', backgroundColor: 'rgba(255,255,255,0.2)' }} />
<Text className='text-sm opacity-80 block mb-2'></Text> <Text className='text-sm opacity-80 block mb-2'></Text>
<Text className='text-4xl font-bold block mb-3'> <Text className='text-4xl font-bold block mb-3'>
¥ {amount || '0'} ¥ {amount || '0'}
</Text> </Text>

View File

@@ -1,5 +1,5 @@
export default { export default {
navigationBarTitleText: '威谱软件', navigationBarTitleText: '威谱软件',
navigationBarBackgroundColor: '#ffffff', navigationBarBackgroundColor: '#ffffff',
navigationBarTextStyle: 'black', navigationBarTextStyle: 'black',
backgroundColor: '#f8f8f8', backgroundColor: '#f8f8f8',

View File

@@ -37,7 +37,7 @@ const IndexPage: React.FC = () => {
// 首页分享:好友 + 朋友圈 + 复制链接(右上角三个按钮全亮) // 首页分享:好友 + 朋友圈 + 复制链接(右上角三个按钮全亮)
useShare({ useShare({
title: '威谱软件 - 精选好物,实惠到家,等你来逛~', title: '威谱软件 - 精选好物,实惠到家,等你来逛~',
path: '/pages/index/index', path: '/pages/index/index',
enableTimeline: true, enableTimeline: true,
enableCopyUrl: true, enableCopyUrl: true,

View File

@@ -50,7 +50,7 @@ const GiftCardPurchasePage: React.FC = () => {
<View className='absolute rounded-full' style={{ top: '-20px', right: '-20px', width: '80px', height: '80px', backgroundColor: 'rgba(255,255,255,0.2)' }} /> <View className='absolute rounded-full' style={{ top: '-20px', right: '-20px', width: '80px', height: '80px', backgroundColor: 'rgba(255,255,255,0.2)' }} />
<View className='absolute rounded-full' style={{ bottom: '-32px', left: '-32px', width: '96px', height: '96px', backgroundColor: 'rgba(255,255,255,0.2)' }} /> <View className='absolute rounded-full' style={{ bottom: '-32px', left: '-32px', width: '96px', height: '96px', backgroundColor: 'rgba(255,255,255,0.2)' }} />
<Text className='text-sm opacity-80 block mb-2'></Text> <Text className='text-sm opacity-80 block mb-2'></Text>
<Text className='text-4xl font-bold block mb-3'> <Text className='text-4xl font-bold block mb-3'>
¥ {amount || '0'} ¥ {amount || '0'}
</Text> </Text>

View File

@@ -104,7 +104,7 @@ const VipUpgradePage: React.FC = () => {
</View> </View>
<Text className='text-white text-xl font-bold'></Text> <Text className='text-white text-xl font-bold'></Text>
<Text className='text-white text-opacity-80 text-sm mt-1'> <Text className='text-white text-opacity-80 text-sm mt-1'>
{existingApply?.applyStatus === 20 ? '恭喜您已成为开发者' : '填写开发团队及公司地址,申请成为开发者身份'} {existingApply?.applyStatus === 20 ? '恭喜您已成为开发者' : '填写开发团队及公司地址,申请成为认证开发者'}
</Text> </Text>
</View> </View>
</View> </View>

View File

@@ -11,7 +11,7 @@ const TERMS_CONTENT = `
<p><strong>最后更新日期2026年5月16日</strong></p> <p><strong>最后更新日期2026年5月16日</strong></p>
<h3>一、协议的范围与接受</h3> <h3>一、协议的范围与接受</h3>
<p>欢迎使用威谱软件(以下简称"本小程序")。本小程序由南宁市网宿信息科技有限公司(以下简称"我们")开发并运营。请您在使用本小程序服务之前,仔细阅读并充分理解本协议的全部内容。您点击"同意"或实际使用本小程序服务,即视为您已阅读、理解并同意接受本协议的约束。</p> <p>欢迎使用威谱软件(以下简称"本小程序")。本小程序由南宁市网宿信息科技有限公司(以下简称"我们")开发并运营。请您在使用本小程序服务之前,仔细阅读并充分理解本协议的全部内容。您点击"同意"或实际使用本小程序服务,即视为您已阅读、理解并同意接受本协议的约束。</p>
<h3>二、服务内容</h3> <h3>二、服务内容</h3>
<p>本小程序为用户提供以下服务:</p> <p>本小程序为用户提供以下服务:</p>

View File

@@ -293,7 +293,7 @@ const Login = () => {
<View className='login-content'> <View className='login-content'>
{/* Logo 和标题 */} {/* Logo 和标题 */}
<View className='login-header'> <View className='login-header'>
<Text className='login-title'></Text> <Text className='login-title'></Text>
<Text className='login-subtitle'></Text> <Text className='login-subtitle'></Text>
</View> </View>