- RoleParam 类型新增 tenantId 字段,支持按租户过滤角色 - 新增 getCurrentTenantId 获取当前租户ID,支持登录态和默认租户回退 - 实现 getVipRoleId 函数,按 roleCode 与 tenantId 查询 VIP 角色ID - assignVipRole 中动态获取 VIP 角色ID,避免硬编码 - 添加用户角色时带上 tenantId,确保多租户角色绑定正确 - 移除写死的 VIP_ROLE_ID,改用动态查询结果,提高跨租户兼容性 - 补充引入 listRoles 和 TenantId,完善相关依赖引用
561 lines
60 KiB
XML
561 lines
60 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<project version="4">
|
||
<component name="AutoImportSettings">
|
||
<option name="autoReloadType" value="SELECTIVE" />
|
||
</component>
|
||
<component name="ChangeListManager">
|
||
<list default="true" id="2de94e4f-0587-4c9b-8bfd-e87e0ae95b81" name="更改" comment="feat(passport): 优化支付成功后页面跳转逻辑 - 修改支付成功后的自动跳转目标,从已购产品页面改为我的页面 - 使用 switchTab 替代 navigateTo 保证在 tabBar 页顺利跳转 - 移除多余的跳转失败回退逻辑,简化跳转流程 - 调整跳转延迟时间为 1500 毫秒,提升用户体验">
|
||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||
</list>
|
||
<option name="SHOW_DIALOG" value="false" />
|
||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||
</component>
|
||
<component name="Git.Settings">
|
||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||
<option name="RESET_MODE" value="HARD" />
|
||
</component>
|
||
<component name="ProjectColorInfo">{
|
||
"associatedIndex": 7
|
||
}</component>
|
||
<component name="ProjectId" id="3CCElusNNIyc7lgX61jkNQo02h3" />
|
||
<component name="ProjectLevelVcsManager">
|
||
<ConfirmationsSetting value="2" id="Add" />
|
||
</component>
|
||
<component name="ProjectViewState">
|
||
<option name="hideEmptyMiddlePackages" value="true" />
|
||
<option name="showLibraryContents" value="true" />
|
||
</component>
|
||
<component name="PropertiesComponent">{
|
||
"keyToString": {
|
||
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
||
"RunOnceActivity.git.unshallow": "true",
|
||
"git-widget-placeholder": "master",
|
||
"junie.onboarding.icon.badge.shown": "true",
|
||
"last_opened_file_path": "/Users/gxwebsoft/VUE/websopy-taro/src/passport",
|
||
"node.js.detected.package.eslint": "true",
|
||
"node.js.detected.package.stylelint": "true",
|
||
"node.js.detected.package.tslint": "true",
|
||
"node.js.selected.package.eslint": "(autodetect)",
|
||
"node.js.selected.package.stylelint": "/Users/gxwebsoft/VUE/websopy-taro/node_modules/stylelint",
|
||
"node.js.selected.package.tslint": "(autodetect)",
|
||
"nodejs_package_manager_path": "pnpm",
|
||
"npm.build:weapp.executor": "Run",
|
||
"npm.dev:weapp.executor": "Run",
|
||
"settings.editor.selected.configurable": "preferences.pluginManager",
|
||
"to.speed.mode.migration.done": "true",
|
||
"ts.external.directory.path": "/Users/gxwebsoft/VUE/websopy-taro/node_modules/typescript/lib",
|
||
"vue.rearranger.settings.migration": "true"
|
||
}
|
||
}</component>
|
||
<component name="RecentsManager">
|
||
<key name="CopyFile.RECENT_KEYS">
|
||
<recent name="$PROJECT_DIR$/src/passport" />
|
||
<recent name="$PROJECT_DIR$/src/api" />
|
||
<recent name="$PROJECT_DIR$/src/api/passport/wx-login" />
|
||
<recent name="$PROJECT_DIR$" />
|
||
</key>
|
||
</component>
|
||
<component name="RunManager" selected="npm.dev:weapp">
|
||
<configuration name="build:weapp" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
|
||
<package-json value="$PROJECT_DIR$/package.json" />
|
||
<command value="run" />
|
||
<scripts>
|
||
<script value="build:weapp" />
|
||
</scripts>
|
||
<node-interpreter value="project" />
|
||
<envs />
|
||
<method v="2" />
|
||
</configuration>
|
||
<configuration name="dev:weapp" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
|
||
<package-json value="$PROJECT_DIR$/package.json" />
|
||
<command value="run" />
|
||
<scripts>
|
||
<script value="dev:weapp" />
|
||
</scripts>
|
||
<node-interpreter value="project" />
|
||
<envs />
|
||
<method v="2" />
|
||
</configuration>
|
||
<recent_temporary>
|
||
<list>
|
||
<item itemvalue="npm.dev:weapp" />
|
||
<item itemvalue="npm.build:weapp" />
|
||
</list>
|
||
</recent_temporary>
|
||
</component>
|
||
<component name="SharedIndexes">
|
||
<attachedChunks>
|
||
<set>
|
||
<option value="bundled-js-predefined-d6986cc7102b-e03c56caf84a-JavaScript-WS-252.23892.411" />
|
||
</set>
|
||
</attachedChunks>
|
||
</component>
|
||
<component name="TaskManager">
|
||
<task active="true" id="Default" summary="默认任务">
|
||
<changelist id="2de94e4f-0587-4c9b-8bfd-e87e0ae95b81" name="更改" comment="" />
|
||
<created>1775881305279</created>
|
||
<option name="number" value="Default" />
|
||
<option name="presentableId" value="Default" />
|
||
<updated>1775881305279</updated>
|
||
<workItem from="1775881306434" duration="12652000" />
|
||
<workItem from="1775910653750" duration="20840000" />
|
||
<workItem from="1777873063244" duration="20000" />
|
||
<workItem from="1778089953570" duration="7000" />
|
||
<workItem from="1778308774420" duration="947000" />
|
||
<workItem from="1780559793276" duration="400000" />
|
||
<workItem from="1782803615391" duration="418000" />
|
||
<workItem from="1782804285999" duration="4025000" />
|
||
<workItem from="1782813891753" duration="1850000" />
|
||
<workItem from="1782876148090" duration="4787000" />
|
||
<workItem from="1782903749109" duration="4000" />
|
||
<workItem from="1782971387128" duration="7154000" />
|
||
<workItem from="1784093204572" duration="6082000" />
|
||
<workItem from="1784131049625" duration="2304000" />
|
||
<workItem from="1784133736973" duration="4614000" />
|
||
<workItem from="1784585070286" duration="3047000" />
|
||
</task>
|
||
<task id="LOCAL-00008" summary="fix(passport): 修正邀请信息接口请求参数与请求头 - 将邀请令牌作为查询参数附加在请求URL中 - 移除请求体中的token字段传递 - 添加请求头TenantId,值为5 - 请求失败时在控制台打印错误信息以便调试 - 保持原有错误处理和加载状态设置逻辑不变">
|
||
<option name="closed" value="true" />
|
||
<created>1775904794443</created>
|
||
<option name="number" value="00008" />
|
||
<option name="presentableId" value="LOCAL-00008" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775904794443</updated>
|
||
</task>
|
||
<task id="LOCAL-00009" summary="fix(invite): 修复邀请加入请求头TenantId传递问题 - 从配置中引入TenantId常量 - 将请求header中的TenantId字段由硬编码改为动态变量 - 确保GET请求和加密数据请求均正确带上TenantId头信息 - 提升接口调用的一致性和维护性">
|
||
<option name="closed" value="true" />
|
||
<created>1775905047844</created>
|
||
<option name="number" value="00009" />
|
||
<option name="presentableId" value="LOCAL-00009" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775905047844</updated>
|
||
</task>
|
||
<task id="LOCAL-00010" summary="fix(config): 修正环境配置中的API_BASE_URL地址 - 将开发环境、生产环境和测试环境的API_BASE_URL统一更新为新的域名websopy-api.websoft.top - 更新SimpleQRCodeModal组件中二维码请求地址,使用新的API域名 - 在邀请信息请求函数fetchInviteInfo中添加详细的请求和响应日志 - 增加接口错误日志打印,提高捕获异常时的信息丰富度">
|
||
<option name="closed" value="true" />
|
||
<created>1775905427131</created>
|
||
<option name="number" value="00010" />
|
||
<option name="presentableId" value="LOCAL-00010" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775905427131</updated>
|
||
</task>
|
||
<task id="LOCAL-00011" summary="fix(invite): 修正邀请接口使用独立API域名 - 将邀请相关接口的请求地址由通用API域名改为独立的INVITE_API_URL - 修改获取邀请信息接口的请求URL - 修改接受邀请接口的请求URL - 确保请求头和参数传递保持一致">
|
||
<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 id="LOCAL-00012" summary="refactor(api): 移除未使用的配置接口及相关Hook - 从cmsWebsiteField接口中删除configWebsiteField方法 - 删除useConfig自定义Hook及其引用 - 更新about页面,去除对config对象和useConfig的使用 - 修正invite模块请求URL,统一加上/api前缀">
|
||
<option name="closed" value="true" />
|
||
<created>1775908253789</created>
|
||
<option name="number" value="00012" />
|
||
<option name="presentableId" value="LOCAL-00012" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775908253789</updated>
|
||
</task>
|
||
<task id="LOCAL-00013" summary="refactor(api): 移除未使用的配置接口及相关Hook - 从cmsWebsiteField接口中删除configWebsiteField方法 - 删除useConfig自定义Hook及其引用 - 更新about页面,去除对config对象和useConfig的使用 - 修正invite模块请求URL,统一加上/api前缀">
|
||
<option name="closed" value="true" />
|
||
<created>1775908391880</created>
|
||
<option name="number" value="00013" />
|
||
<option name="presentableId" value="LOCAL-00013" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775908391880</updated>
|
||
</task>
|
||
<task id="LOCAL-00014" summary="fix(invite): 修正邀请接口路径以支持小程序专用前缀 - 将请求邀请信息接口路径改为使用 /api/_app 前缀,确保小程序免登录访问 - 修改接受邀请接口路径,统一使用小程序专用 API 域名和前缀 - 更新邀请相关接口注释,明确小程序专用接口前缀含义 - 在专家历史数据中添加高级开发工程师 Will 的条目并更新时间戳">
|
||
<option name="closed" value="true" />
|
||
<created>1775909013060</created>
|
||
<option name="number" value="00014" />
|
||
<option name="presentableId" value="LOCAL-00014" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775909013060</updated>
|
||
</task>
|
||
<task id="LOCAL-00015" summary="fix(passport): 添加邀请接受接口调试日志 - 在接受邀请请求前打印token和请求URL、参数 - 在请求响应后输出接口响应及返回数据 - 在调用失败时打印错误信息及异常日志 - 保持请求流程和状态管理不变,增强调试能力">
|
||
<option name="closed" value="true" />
|
||
<created>1775909542310</created>
|
||
<option name="number" value="00015" />
|
||
<option name="presentableId" value="LOCAL-00015" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775909542310</updated>
|
||
</task>
|
||
<task id="LOCAL-00016" summary="fix(passport): 添加邀请接受接口调试日志 - 在接受邀请请求前打印token和请求URL、参数 - 在请求响应后输出接口响应及返回数据 - 在调用失败时打印错误信息及异常日志 - 保持请求流程和状态管理不变,增强调试能力">
|
||
<option name="closed" value="true" />
|
||
<created>1775909811705</created>
|
||
<option name="number" value="00016" />
|
||
<option name="presentableId" value="LOCAL-00016" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775909811705</updated>
|
||
</task>
|
||
<task id="LOCAL-00017" summary="fix(passport): 优化邀请码接受失败的用户提示和处理 - 针对“用户不存在”、“用户创建失败”及“请先登录”提示,改为弹窗提示需登录 - 在弹窗中增加“去登录”按钮,点击后跳转到登录页面,并携带重定向token参数 - 其他错误仍使用原Toast提示方式展示错误信息 - 保留错误日志打印,便于排查异常情况">
|
||
<option name="closed" value="true" />
|
||
<created>1775920899787</created>
|
||
<option name="number" value="00017" />
|
||
<option name="presentableId" value="LOCAL-00017" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775920899787</updated>
|
||
</task>
|
||
<task id="LOCAL-00018" summary="feat(passport-invite): 优化新用户扫码邀请加入流程 - 扫码进入邀请页面时保存邀请 token 到本地存储 - 新增登录状态检测,未登录用户点击快速加入时保存邀请信息并跳转登录页 - 登录成功后返回邀请页自动执行加入应用操作,提升用户体验 - 支持已登录用户直接加入应用,简化流程 - 增加清理 pending 邀请数据的方法,防止数据残留 - 监听页面显示事件,处理登录返回后自动操作 - 调整接口请求逻辑,确保携带最新的邀请和授权数据 - 更新项目配置,注册邀请页面路径信息">
|
||
<option name="closed" value="true" />
|
||
<created>1775921636640</created>
|
||
<option name="number" value="00018" />
|
||
<option name="presentableId" value="LOCAL-00018" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775921636640</updated>
|
||
</task>
|
||
<task id="LOCAL-00019" summary="feat(passport): 重写登录与邀请加入流程,支持微信手机号一键登录 - 完全重写 passport/login.tsx,实现微信手机号一键登录功能 - 支持登录页面携带 redirect 参数,登录后自动跳转回原页面 - 登录成功后自动处理邀请加入应用,支持邀请关系绑定 - 重写 passport/invite/index.tsx,实现扫码邀请加入应用完整流程 - 支持调用 wx.login 获取 code,使用 loginByOpenId 判断注册状态 - 未注册用户自动跳转登录页完成微信手机号登录再加入应用 - 已登录用户直接执行加入应用操作,加入接口支持 Authorization 头 - 解决邀请页面与登录页面间旧授权码混用导致加入失败问题 - 处理后端 401 错误,优先使用微信授权码免登录接口 - 优化用户体验,添加服务协议与隐私政策弹窗及错误提示 - 页面状态管理改进,加入加载、检查登录、错误和跳转反馈">
|
||
<option name="closed" value="true" />
|
||
<created>1775962292970</created>
|
||
<option name="number" value="00019" />
|
||
<option name="presentableId" value="LOCAL-00019" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775962292970</updated>
|
||
</task>
|
||
<task id="LOCAL-00020" summary="feat(invite): 重构邀请加入流程,实现已登录用户免授权直接加入 - 完全重写邀请页逻辑,区分已登录与未注册用户按钮显示 - 已登录用户显示“确认加入”按钮,点击用 wx.login 获取 code 加入 - 未注册用户显示“微信手机号快速加入”按钮,授权手机号后完成注册登录再加入 - 移除跳转登录页面逻辑,所有流程在邀请页内完成 - 加入接口统一使用 Authorization 头携带 token,确保身份双重验证 - 优化背景、粒子和扫描线效果,提升界面视觉体验 - 增加错误处理提示,加入失败时显示详细原因并可返回首页 - 协议勾选仅在未注册用户显示,确保合规授权流程">
|
||
<option name="closed" value="true" />
|
||
<created>1775965322794</created>
|
||
<option name="number" value="00020" />
|
||
<option name="presentableId" value="LOCAL-00020" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775965322794</updated>
|
||
</task>
|
||
<task id="LOCAL-00021" summary="feat(passport): 优化已登录用户加入时协议勾选逻辑 - 已登录用户点击「确认加入」时不再强制勾选协议 - 移除 handleConfirmJoin 中对协议勾选的检查 - 未注册用户仍需勾选协议后才能授权手机号 - 确保登录状态异常时有提示信息显示">
|
||
<option name="closed" value="true" />
|
||
<created>1775965478226</created>
|
||
<option name="number" value="00021" />
|
||
<option name="presentableId" value="LOCAL-00021" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775965478226</updated>
|
||
</task>
|
||
<task id="LOCAL-00022" summary="feat(invite): 支持已登录用户直接加入应用 - 后端accept接口code参数改为可选,支持通过Authorization头识别登录用户 - 已登录用户加入时不再弹手机号授权,前端调用新增的doJoinAppForLoggedInUser方法 - 未注册用户仍通过手机号授权码code加入,调用doJoinAppForNewUser方法 - 拆分前端加入逻辑,新增handleConfirmJoin统一处理已登录加入流程 - 优化按钮交互,已登录状态下按钮变为普通点击,移除协议强制勾选 - 错误处理和状态提示完善,加入成功后自动跳转首页">
|
||
<option name="closed" value="true" />
|
||
<created>1775966172496</created>
|
||
<option name="number" value="00022" />
|
||
<option name="presentableId" value="LOCAL-00022" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1775966172496</updated>
|
||
</task>
|
||
<task id="LOCAL-00023" summary="feat(developer): 完成小程序开发者中心和企业控制台改造 - 设计并实现了开发者中心与企业控制台两大模块 - 按用户角色区分开发者和企业客户,支持多项目类型及成员管理 - 新增项目管理、应用管理、API Key管理及成员邀请等多功能页面 - 实现应用版本发布、消息通知中心、权限审批与开发者申请流程 - 完成CI/CD流水线、运营监控、发票管理、SSO单点登录功能 - 搭建SDK下载中心、工单系统、FAQ系统、数据导入导出等模块 - 优化后端API,支持已登录和未注册用户不同加入应用流程 - 前端按钮统一采用微信手机号授权,完善用户授权体验 - 修复多个页面的JSX语法错误及依赖导入问题,替换部分组件库 - 增加详细的类型定义文件,提升项目类型安全 - 新增超过55个页面及60个API接口,扩展应用功能和服务体系 - 完成全面的样式设计,实现一致的视觉风格和交互体验">
|
||
<option name="closed" value="true" />
|
||
<created>1776018406658</created>
|
||
<option name="number" value="00023" />
|
||
<option name="presentableId" value="LOCAL-00023" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1776018406658</updated>
|
||
</task>
|
||
<task id="LOCAL-00024" summary="feat(api-keys): 优化隐私协议同意逻辑及样式 - 修正api-keys样式导入路径,改为developer路径 - 在开发者申请页面增加服务协议和隐私政策勾选框 - 提交时校验协议是否已勾选,未勾选时提示用户 - 优化申请页面协议区域样式及交互 - 在用户验证页面添加隐私政策同意勾选框 - 提交用户验证表单时检查协议同意状态 - 增加打开服务协议和隐私政策的链接跳转 - 更新项目配置,增加passport/webview路由配置 - 修复createTicket函数中日期格式正则表达式问题">
|
||
<option name="closed" value="true" />
|
||
<created>1776019228297</created>
|
||
<option name="number" value="00024" />
|
||
<option name="presentableId" value="LOCAL-00024" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1776019228297</updated>
|
||
</task>
|
||
<task id="LOCAL-00025" summary="feat(api-keys): 优化隐私协议同意逻辑及样式 - 修正api-keys样式导入路径,改为developer路径 - 在开发者申请页面增加服务协议和隐私政策勾选框 - 提交时校验协议是否已勾选,未勾选时提示用户 - 优化申请页面协议区域样式及交互 - 在用户验证页面添加隐私政策同意勾选框 - 提交用户验证表单时检查协议同意状态 - 增加打开服务协议和隐私政策的链接跳转 - 更新项目配置,增加passport/webview路由配置 - 修复createTicket函数中日期格式正则表达式问题">
|
||
<option name="closed" value="true" />
|
||
<created>1776019711439</created>
|
||
<option name="number" value="00025" />
|
||
<option name="presentableId" value="LOCAL-00025" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1776019711439</updated>
|
||
</task>
|
||
<task id="LOCAL-00026" summary="refactor(config): 移除开发者中心和企业控制台的自定义导航样式 - 删除了开发者中心页面配置中的 navigationStyle: 'custom' - 删除了企业控制台页面配置中的 navigationStyle: 'custom' - 简化了页面配置,保持默认导航样式 - 有助于提升页面兼容性和维护性">
|
||
<option name="closed" value="true" />
|
||
<created>1776019857647</created>
|
||
<option name="number" value="00026" />
|
||
<option name="presentableId" value="LOCAL-00026" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1776019857647</updated>
|
||
</task>
|
||
<task id="LOCAL-00027" summary="feat(userVerify): 添加阿里云身份证二要素核验功能 - 在接口层新增 verifyIdCard 接口,实现姓名与身份证号核验 - userVerify 页面提交时增加身份核验逻辑,核验失败阻止提交 - 调用核验接口时显示加载状态,并根据结果提示用户 - 后端依赖 aliyun cloudauth,提供实人认证相关服务接口 - 完成基本的错误捕获与用户提示,提升实名认证流程安全性">
|
||
<option name="closed" value="true" />
|
||
<created>1776021606260</created>
|
||
<option name="number" value="00027" />
|
||
<option name="presentableId" value="LOCAL-00027" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1776021606260</updated>
|
||
</task>
|
||
<task id="LOCAL-00028" summary="feat(userVerify): 添加阿里云身份证二要素核验功能 - 在接口层新增 verifyIdCard 接口,实现姓名与身份证号核验 - userVerify 页面提交时增加身份核验逻辑,核验失败阻止提交 - 调用核验接口时显示加载状态,并根据结果提示用户 - 后端依赖 aliyun cloudauth,提供实人认证相关服务接口 - 完成基本的错误捕获与用户提示,提升实名认证流程安全性">
|
||
<option name="closed" value="true" />
|
||
<created>1776021764419</created>
|
||
<option name="number" value="00028" />
|
||
<option name="presentableId" value="LOCAL-00028" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1776021764419</updated>
|
||
</task>
|
||
<task id="LOCAL-00029" summary="refactor(api): 规范前端API接口地址并统一路径前缀 - 修正开发者、小程序和企业相关API的基础URL,避免重复添加/api前缀 - 统一调整developer、enterprise、invite等模块接口路径,保持与后端Controller一致 - 新增权限申请及消息通知相关API,并完善相关函数实现 - 规范请求参数传递,移除多余包装,改用直接传递对象方式 - 新增API Key重置、版本发布/回滚等接口支持 feat(invite): 重构邀请登录流程支持未注册快速加入 - 完整重写invite页,分离已注册用户和未注册用户的按钮显示和交互 - 实现未注册用户微信手机号授权后自动注册登录及自动加入应用 - 已注册用户直接确认加入应用,无需手机号授权弹窗 - 统一使用getPhoneNumber按钮处理两种状态并修复“授权码不能为空”报错 - 前端配合后端改造,支持已登录用户可直接通过Authorization头加入应用 fix(developer): 修复开发者中心应用加载问题 - 修复只查询创建的应用导致邀请加入的应用不显示的问题 - 同时请求创建应用和参与应用接口,合并并去重应用列表 - 新增pageJoinedApp接口调用及合并逻辑,提高应用列表完整性和体验">
|
||
<option name="closed" value="true" />
|
||
<created>1776065433562</created>
|
||
<option name="number" value="00029" />
|
||
<option name="presentableId" value="LOCAL-00029" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1776065433562</updated>
|
||
</task>
|
||
<task id="LOCAL-00030" summary="refactor(api): 规范前端API接口地址并统一路径前缀 - 修正开发者、小程序和企业相关API的基础URL,避免重复添加/api前缀 - 统一调整developer、enterprise、invite等模块接口路径,保持与后端Controller一致 - 新增权限申请及消息通知相关API,并完善相关函数实现 - 规范请求参数传递,移除多余包装,改用直接传递对象方式 - 新增API Key重置、版本发布/回滚等接口支持 feat(invite): 重构邀请登录流程支持未注册快速加入 - 完整重写invite页,分离已注册用户和未注册用户的按钮显示和交互 - 实现未注册用户微信手机号授权后自动注册登录及自动加入应用 - 已注册用户直接确认加入应用,无需手机号授权弹窗 - 统一使用getPhoneNumber按钮处理两种状态并修复“授权码不能为空”报错 - 前端配合后端改造,支持已登录用户可直接通过Authorization头加入应用 fix(developer): 修复开发者中心应用加载问题 - 修复只查询创建的应用导致邀请加入的应用不显示的问题 - 同时请求创建应用和参与应用接口,合并并去重应用列表 - 新增pageJoinedApp接口调用及合并逻辑,提高应用列表完整性和体验">
|
||
<option name="closed" value="true" />
|
||
<created>1782803958326</created>
|
||
<option name="number" value="00030" />
|
||
<option name="presentableId" value="LOCAL-00030" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782803958326</updated>
|
||
</task>
|
||
<task id="LOCAL-00031" summary="refactor(api): 规范前端API接口地址并统一路径前缀 - 修正开发者、小程序和企业相关API的基础URL,避免重复添加/api前缀 - 统一调整developer、enterprise、invite等模块接口路径,保持与后端Controller一致 - 新增权限申请及消息通知相关API,并完善相关函数实现 - 规范请求参数传递,移除多余包装,改用直接传递对象方式 - 新增API Key重置、版本发布/回滚等接口支持 feat(invite): 重构邀请登录流程支持未注册快速加入 - 完整重写invite页,分离已注册用户和未注册用户的按钮显示和交互 - 实现未注册用户微信手机号授权后自动注册登录及自动加入应用 - 已注册用户直接确认加入应用,无需手机号授权弹窗 - 统一使用getPhoneNumber按钮处理两种状态并修复“授权码不能为空”报错 - 前端配合后端改造,支持已登录用户可直接通过Authorization头加入应用 fix(developer): 修复开发者中心应用加载问题 - 修复只查询创建的应用导致邀请加入的应用不显示的问题 - 同时请求创建应用和参与应用接口,合并并去重应用列表 - 新增pageJoinedApp接口调用及合并逻辑,提高应用列表完整性和体验">
|
||
<option name="closed" value="true" />
|
||
<created>1782803960387</created>
|
||
<option name="number" value="00031" />
|
||
<option name="presentableId" value="LOCAL-00031" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782803960387</updated>
|
||
</task>
|
||
<task id="LOCAL-00032" summary="refactor(api): 规范前端API接口地址并统一路径前缀 - 修正开发者、小程序和企业相关API的基础URL,避免重复添加/api前缀 - 统一调整developer、enterprise、invite等模块接口路径,保持与后端Controller一致 - 新增权限申请及消息通知相关API,并完善相关函数实现 - 规范请求参数传递,移除多余包装,改用直接传递对象方式 - 新增API Key重置、版本发布/回滚等接口支持 feat(invite): 重构邀请登录流程支持未注册快速加入 - 完整重写invite页,分离已注册用户和未注册用户的按钮显示和交互 - 实现未注册用户微信手机号授权后自动注册登录及自动加入应用 - 已注册用户直接确认加入应用,无需手机号授权弹窗 - 统一使用getPhoneNumber按钮处理两种状态并修复“授权码不能为空”报错 - 前端配合后端改造,支持已登录用户可直接通过Authorization头加入应用 fix(developer): 修复开发者中心应用加载问题 - 修复只查询创建的应用导致邀请加入的应用不显示的问题 - 同时请求创建应用和参与应用接口,合并并去重应用列表 - 新增pageJoinedApp接口调用及合并逻辑,提高应用列表完整性和体验">
|
||
<option name="closed" value="true" />
|
||
<created>1782803963602</created>
|
||
<option name="number" value="00032" />
|
||
<option name="presentableId" value="LOCAL-00032" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782803963602</updated>
|
||
</task>
|
||
<task id="LOCAL-00033" summary="feat(app): 添加应用入口文件和配置文件 - 新增 index.tsx 作为应用的主入口文件 - 新增 index.config.ts 用于应用的配置管理">
|
||
<option name="closed" value="true" />
|
||
<created>1782804027400</created>
|
||
<option name="number" value="00033" />
|
||
<option name="presentableId" value="LOCAL-00033" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782804027400</updated>
|
||
</task>
|
||
<task id="LOCAL-00034" summary="feat(app): 添加应用入口文件和配置文件 - 新增 index.tsx 作为应用的主入口文件 - 新增 index.config.ts 用于应用的配置管理">
|
||
<option name="closed" value="true" />
|
||
<created>1782804461646</created>
|
||
<option name="number" value="00034" />
|
||
<option name="presentableId" value="LOCAL-00034" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782804461646</updated>
|
||
</task>
|
||
<task id="LOCAL-00035" summary="fix(tailwind): 更新配置以兼容微信小程序 - 启用 autoprefixer 并新增 postcss-nested 插件支持嵌套语法 - 扩展主题颜色,添加 primary 色系 - 更新 content 路径包含 public/index.html - 禁用 preflight 以移除默认样式重置 - 移除多数 corePlugins 禁用项,保留 preflight 禁用,简化兼容性配置">
|
||
<option name="closed" value="true" />
|
||
<created>1782805513768</created>
|
||
<option name="number" value="00035" />
|
||
<option name="presentableId" value="LOCAL-00035" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782805513768</updated>
|
||
</task>
|
||
<task id="LOCAL-00036" summary="feat(postcss): 添加插件移除微信小程序不兼容Tailwind规则 - 实现 postcss-remove-wxss-incompatible 插件 - 移除反斜杠转义的重要性修饰符类选择器(.\!xxx) - 删除依赖 :not 和兄弟选择器的 .space-[x|y]-* 规则 - 删除依赖 :not 和兄弟选择器的 .divide-[x|y]-* 规则 - 解决微信小程序 WXSS 不支持的 CSS 特性问题">
|
||
<option name="closed" value="true" />
|
||
<created>1782808735147</created>
|
||
<option name="number" value="00036" />
|
||
<option name="presentableId" value="LOCAL-00036" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782808735147</updated>
|
||
</task>
|
||
<task id="LOCAL-00037" summary="feat(postcss): 添加插件移除微信小程序不兼容Tailwind规则 - 实现 postcss-remove-wxss-incompatible 插件 - 移除反斜杠转义的重要性修饰符类选择器(.\!xxx) - 删除依赖 :not 和兄弟选择器的 .space-[x|y]-* 规则 - 删除依赖 :not 和兄弟选择器的 .divide-[x|y]-* 规则 - 解决微信小程序 WXSS 不支持的 CSS 特性问题">
|
||
<option name="closed" value="true" />
|
||
<created>1782808737652</created>
|
||
<option name="number" value="00037" />
|
||
<option name="presentableId" value="LOCAL-00037" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782808737652</updated>
|
||
</task>
|
||
<task id="LOCAL-00038" summary="feat(postcss): 添加插件移除微信小程序不兼容Tailwind规则 - 实现 postcss-remove-wxss-incompatible 插件 - 移除反斜杠转义的重要性修饰符类选择器(.\!xxx) - 删除依赖 :not 和兄弟选择器的 .space-[x|y]-* 规则 - 删除依赖 :not 和兄弟选择器的 .divide-[x|y]-* 规则 - 解决微信小程序 WXSS 不支持的 CSS 特性问题">
|
||
<option name="closed" value="true" />
|
||
<created>1782808741979</created>
|
||
<option name="number" value="00038" />
|
||
<option name="presentableId" value="LOCAL-00038" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782808741979</updated>
|
||
</task>
|
||
<task id="LOCAL-00039" summary="fix(pay): 优化订阅号获取逻辑并调整支付组件样式 - 优先从小程序码 scene 参数读取 subscriptionNo,提升参数兼容性 - 对 scene 参数进行解码,避免编码引起的问题 - 移除支付组件价格显示处的固定颜色设置,增强样式灵活性">
|
||
<option name="closed" value="true" />
|
||
<created>1782810191833</created>
|
||
<option name="number" value="00039" />
|
||
<option name="presentableId" value="LOCAL-00039" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782810191833</updated>
|
||
</task>
|
||
<task id="LOCAL-00040" summary="fix(utils): 优化小程序端复制文本功能体验 - 小程序端直接调用原生 wx.setClipboardData,避免 Taro Promise 封装问题 - 避免微信小程序重复显示复制成功提示和误报复制失败 - 失败时仅在小程序端输出错误日志,非小程序端显示提示 - 修改首页外链跳转逻辑,支持相对路径跳转,小程序内外链复制提示提升用户体验 - 更新项目内剪切板使用规范文档,说明复制行为调整及符合相应规范要求">
|
||
<option name="closed" value="true" />
|
||
<created>1782814230613</created>
|
||
<option name="number" value="00040" />
|
||
<option name="presentableId" value="LOCAL-00040" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782814230613</updated>
|
||
</task>
|
||
<task id="LOCAL-00041" summary="fix(utils): 优化小程序端复制文本功能体验 - 小程序端直接调用原生 wx.setClipboardData,避免 Taro Promise 封装问题 - 避免微信小程序重复显示复制成功提示和误报复制失败 - 失败时仅在小程序端输出错误日志,非小程序端显示提示 - 修改首页外链跳转逻辑,支持相对路径跳转,小程序内外链复制提示提升用户体验 - 更新项目内剪切板使用规范文档,说明复制行为调整及符合相应规范要求">
|
||
<option name="closed" value="true" />
|
||
<created>1782814693982</created>
|
||
<option name="number" value="00041" />
|
||
<option name="presentableId" value="LOCAL-00041" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782814693982</updated>
|
||
</task>
|
||
<task id="LOCAL-00042" summary="fix(index): 优化外链提示及删除复制咨询模板功能 - 替换小程序内外链打开方式提示为弹窗提醒用户手动复制 - 删除复制咨询模板功能及相关按钮 - 修改联系我们文案,突出直接电话沟通或需求反馈 - 移除无用导入的复制文本工具函数copyText">
|
||
<option name="closed" value="true" />
|
||
<created>1782814719111</created>
|
||
<option name="number" value="00042" />
|
||
<option name="presentableId" value="LOCAL-00042" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782814719111</updated>
|
||
</task>
|
||
<task id="LOCAL-00043" summary="feat(utils): 优化请求函数URL拼接逻辑 - 在request函数中将请求拦截改为先拼接完整URL - 支持相对路径自动补全baseUrl - 删除原有请求拦截中url未处理的问题">
|
||
<option name="closed" value="true" />
|
||
<created>1782879460607</created>
|
||
<option name="number" value="00043" />
|
||
<option name="presentableId" value="LOCAL-00043" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782879460607</updated>
|
||
</task>
|
||
<task id="LOCAL-00044" summary="feat(utils): 优化请求函数URL拼接逻辑 - 在request函数中将请求拦截改为先拼接完整URL - 支持相对路径自动补全baseUrl - 删除原有请求拦截中url未处理的问题">
|
||
<option name="closed" value="true" />
|
||
<created>1782881600013</created>
|
||
<option name="number" value="00044" />
|
||
<option name="presentableId" value="LOCAL-00044" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782881600013</updated>
|
||
</task>
|
||
<task id="LOCAL-00045" summary="feat(utils): 优化请求函数URL拼接逻辑 - 在request函数中将请求拦截改为先拼接完整URL - 支持相对路径自动补全baseUrl - 删除原有请求拦截中url未处理的问题">
|
||
<option name="closed" value="true" />
|
||
<created>1782881602732</created>
|
||
<option name="number" value="00045" />
|
||
<option name="presentableId" value="LOCAL-00045" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782881602732</updated>
|
||
</task>
|
||
<task id="LOCAL-00046" summary="feat(utils): 优化请求函数URL拼接逻辑 - 在request函数中将请求拦截改为先拼接完整URL - 支持相对路径自动补全baseUrl - 删除原有请求拦截中url未处理的问题">
|
||
<option name="closed" value="true" />
|
||
<created>1782881620199</created>
|
||
<option name="number" value="00046" />
|
||
<option name="presentableId" value="LOCAL-00046" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782881620199</updated>
|
||
</task>
|
||
<task id="LOCAL-00047" summary="feat(utils): 优化请求函数URL拼接逻辑 - 在request函数中将请求拦截改为先拼接完整URL - 支持相对路径自动补全baseUrl - 删除原有请求拦截中url未处理的问题">
|
||
<option name="closed" value="true" />
|
||
<created>1782881623335</created>
|
||
<option name="number" value="00047" />
|
||
<option name="presentableId" value="LOCAL-00047" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782881623335</updated>
|
||
</task>
|
||
<task id="LOCAL-00048" summary="feat(utils): 优化请求函数URL拼接逻辑 - 在request函数中将请求拦截改为先拼接完整URL - 支持相对路径自动补全baseUrl - 删除原有请求拦截中url未处理的问题">
|
||
<option name="closed" value="true" />
|
||
<created>1782881646712</created>
|
||
<option name="number" value="00048" />
|
||
<option name="presentableId" value="LOCAL-00048" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782881646712</updated>
|
||
</task>
|
||
<task id="LOCAL-00049" summary="docs(schedule): 添加2026年7月1日日程文件 - 创建新的日程文档文件 2026-07-01.md - 文件内容待后续补充和更新">
|
||
<option name="closed" value="true" />
|
||
<created>1782899810526</created>
|
||
<option name="number" value="00049" />
|
||
<option name="presentableId" value="LOCAL-00049" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782899810526</updated>
|
||
</task>
|
||
<task id="LOCAL-00050" summary="docs(schedule): 添加2026年7月1日日程文件 - 创建新的日程文档文件 2026-07-01.md - 文件内容待后续补充和更新">
|
||
<option name="closed" value="true" />
|
||
<created>1782899812498</created>
|
||
<option name="number" value="00050" />
|
||
<option name="presentableId" value="LOCAL-00050" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782899812498</updated>
|
||
</task>
|
||
<task id="LOCAL-00051" summary="feat(pay): 优化小程序支付流程并增强日志调试 - 更新 wx-login 接口以返回完整 LoginResult,包括 access_token 和 user 对象 - 支付页面新增大量日志,详尽打印参数、请求和响应信息 - 优化获取订阅详情流程,支持 returnRaw 返回完整响应用于调试 - 支付流程新增步骤,先通过 code 获取 openid 并缓存,再尝试用 openid 自动登录 - 增加自动登录失败交互,提示未注册用户先登录 - 支付相关请求均使用 returnRaw 方便错误排查 - request 请求模块添加统一请求和响应日志,增强调试能力 - request 认证错误和业务错误时加入详细日志输出">
|
||
<option name="closed" value="true" />
|
||
<created>1782979300991</created>
|
||
<option name="number" value="00051" />
|
||
<option name="presentableId" value="LOCAL-00051" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1782979300991</updated>
|
||
</task>
|
||
<task id="LOCAL-00052" summary="feat(pay): 支付成功后自动跳转到已购产品页面 - 支付成功后显示成功提示 - 延迟1.5秒自动跳转到已购产品页面 - 处理跳转失败时回退到用户首页 - 优化用户支付完成后的使用体验">
|
||
<option name="closed" value="true" />
|
||
<created>1783003209100</created>
|
||
<option name="number" value="00052" />
|
||
<option name="presentableId" value="LOCAL-00052" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1783003209100</updated>
|
||
</task>
|
||
<task id="LOCAL-00053" summary="feat(pay-bak): 新增小程序支付页面及相关配置 - 新增确认支付页面配置,设置导航栏标题和样式 - 实现小程序支付页完整组件逻辑,包括加载订单、发起JSAPI支付等 - 支持通过 scene 或 subscriptionNo 获取订单参数 - 完善支付流程接口请求及错误处理,支持自动登录和支付确认 - 增加支付成功、支付中、支付失败、取消等状态页面展示 - 支持支付成功后跳转已购产品页或用户页 - 提供取消支付返回逻辑和界面展示 - 细化支付金额显示和提示用户支付后可使用应用功能">
|
||
<option name="closed" value="true" />
|
||
<created>1784131564427</created>
|
||
<option name="number" value="00053" />
|
||
<option name="presentableId" value="LOCAL-00053" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1784131564427</updated>
|
||
</task>
|
||
<task id="LOCAL-00054" summary="feat(address): 新增收货地址与售后申请功能 - 新增地址编辑页面,支持地址智能识别、地图选点、地区选择和默认地址设置 - 实现地址列表页面,支持地址查看、删除、设为默认及选择返回结算页 - 新增售后申请页面,支持退款类型选择、商品选择、原因填写、图片上传和提交审核 - 修复 passport 分包配置,移除不存在分包并补充缺失声明,避免 Taro 编译报错 - 新增地址类型定义,增强前端地址数据结构类型安全 - 优化页面交互体验,完善表单校验及错误提示逻辑 - 统一代码格式与命名规范,保持代码风格一致性">
|
||
<option name="closed" value="true" />
|
||
<created>1784135922873</created>
|
||
<option name="number" value="00054" />
|
||
<option name="presentableId" value="LOCAL-00054" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1784135922873</updated>
|
||
</task>
|
||
<task id="LOCAL-00055" summary="feat(passport): 迁移并修复小程序支付页面访问 websopy API 问题 - 迁移 src/passport/pay 相关代码至当前项目,无需替换文件 - 新增环境变量 WEBSOPY_API_BASE_URL,提供 websopy API 基础地址 - 在 config/app.ts 导出 WebsopyBaseUrl,供代码引用 - 配置 env.d.ts 类型定义,消除 TypeScript 隐式 any 错误 - request 请求方法支持自定义 baseUrl 以调用不同接口地址 - passport/pay 页面调用订阅接口统一传入 WebsopyBaseUrl - 修正 tenantId 类型为 number,调整登录用户类型断言 - 确认编译成功,dist 目录生成对应文件及正确请求地址 - 说明 type-check 依赖库问题不影响正常构建和运行">
|
||
<option name="closed" value="true" />
|
||
<created>1784136882898</created>
|
||
<option name="number" value="00055" />
|
||
<option name="presentableId" value="LOCAL-00055" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1784136882898</updated>
|
||
</task>
|
||
<task id="LOCAL-00056" summary="feat(passport): 优化支付成功后页面跳转逻辑 - 修改支付成功后的自动跳转目标,从已购产品页面改为我的页面 - 使用 switchTab 替代 navigateTo 保证在 tabBar 页顺利跳转 - 移除多余的跳转失败回退逻辑,简化跳转流程 - 调整跳转延迟时间为 1500 毫秒,提升用户体验">
|
||
<option name="closed" value="true" />
|
||
<created>1784586922535</created>
|
||
<option name="number" value="00056" />
|
||
<option name="presentableId" value="LOCAL-00056" />
|
||
<option name="project" value="LOCAL" />
|
||
<updated>1784586922535</updated>
|
||
</task>
|
||
<option name="localTasksCounter" value="57" />
|
||
<servers />
|
||
</component>
|
||
<component name="TypeScriptGeneratedFilesManager">
|
||
<option name="version" value="3" />
|
||
</component>
|
||
<component name="Vcs.Log.Tabs.Properties">
|
||
<option name="TAB_STATES">
|
||
<map>
|
||
<entry key="MAIN">
|
||
<value>
|
||
<State />
|
||
</value>
|
||
</entry>
|
||
</map>
|
||
</option>
|
||
</component>
|
||
<component name="VcsManagerConfiguration">
|
||
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
|
||
<option name="CHECK_NEW_TODO" value="false" />
|
||
<MESSAGE value="fix(passport): 优化邀请码接受失败的用户提示和处理 - 针对“用户不存在”、“用户创建失败”及“请先登录”提示,改为弹窗提示需登录 - 在弹窗中增加“去登录”按钮,点击后跳转到登录页面,并携带重定向token参数 - 其他错误仍使用原Toast提示方式展示错误信息 - 保留错误日志打印,便于排查异常情况" />
|
||
<MESSAGE value="feat(passport-invite): 优化新用户扫码邀请加入流程 - 扫码进入邀请页面时保存邀请 token 到本地存储 - 新增登录状态检测,未登录用户点击快速加入时保存邀请信息并跳转登录页 - 登录成功后返回邀请页自动执行加入应用操作,提升用户体验 - 支持已登录用户直接加入应用,简化流程 - 增加清理 pending 邀请数据的方法,防止数据残留 - 监听页面显示事件,处理登录返回后自动操作 - 调整接口请求逻辑,确保携带最新的邀请和授权数据 - 更新项目配置,注册邀请页面路径信息" />
|
||
<MESSAGE value="feat(passport): 重写登录与邀请加入流程,支持微信手机号一键登录 - 完全重写 passport/login.tsx,实现微信手机号一键登录功能 - 支持登录页面携带 redirect 参数,登录后自动跳转回原页面 - 登录成功后自动处理邀请加入应用,支持邀请关系绑定 - 重写 passport/invite/index.tsx,实现扫码邀请加入应用完整流程 - 支持调用 wx.login 获取 code,使用 loginByOpenId 判断注册状态 - 未注册用户自动跳转登录页完成微信手机号登录再加入应用 - 已登录用户直接执行加入应用操作,加入接口支持 Authorization 头 -" />
|
||
<MESSAGE value="feat(invite): 重构邀请加入流程,实现已登录用户免授权直接加入 - 完全重写邀请页逻辑,区分已登录与未注册用户按钮显示 - 已登录用户显示“确认加入”按钮,点击用 wx.login 获取 code 加入 - 未注册用户显示“微信手机号快速加入”按钮,授权手机号后完成注册登录再加入 - 移除跳转登录页面逻辑,所有流程在邀请页内完成 - 加入接口统一使用 Authorization 头携带 token,确保身份双重验证 - 优化背景、粒子和扫描线效果,提升界面视觉体验 - 增加错误处理提示,加入失败时显示详细原因并可返回首页 - 协议勾选仅在未注册用户显示,确保合规授权流程" />
|
||
<MESSAGE value="feat(passport): 优化已登录用户加入时协议勾选逻辑 - 已登录用户点击「确认加入」时不再强制勾选协议 - 移除 handleConfirmJoin 中对协议勾选的检查 - 未注册用户仍需勾选协议后才能授权手机号 - 确保登录状态异常时有提示信息显示" />
|
||
<MESSAGE value="feat(invite): 支持已登录用户直接加入应用 - 后端accept接口code参数改为可选,支持通过Authorization头识别登录用户 - 已登录用户加入时不再弹手机号授权,前端调用新增的doJoinAppForLoggedInUser方法 - 未注册用户仍通过手机号授权码code加入,调用doJoinAppForNewUser方法 - 拆分前端加入逻辑,新增handleConfirmJoin统一处理已登录加入流程 - 优化按钮交互,已登录状态下按钮变为普通点击,移除协议强制勾选 - 错误处理和状态提示完善,加入成功后自动跳转首页" />
|
||
<MESSAGE value="feat(developer): 完成小程序开发者中心和企业控制台改造 - 设计并实现了开发者中心与企业控制台两大模块 - 按用户角色区分开发者和企业客户,支持多项目类型及成员管理 - 新增项目管理、应用管理、API Key管理及成员邀请等多功能页面 - 实现应用版本发布、消息通知中心、权限审批与开发者申请流程 - 完成CI/CD流水线、运营监控、发票管理、SSO单点登录功能 - 搭建SDK下载中心、工单系统、FAQ系统、数据导入导出等模块 - 优化后端API,支持已登录和未注册用户不同加入应用流程 - 前端按钮统一采用微信手机号授权,完善用户授权体验 - 修复多个页面的JSX语法错误及依赖导入问题,替换部分组件库 - 增加详细的类型定义文件,提升项目类型安全 - 新增超过55个页面及60个API接口,扩展应用功能和服务体系 - 完成全面的样式设计,实现一致的视觉风格和交互体验" />
|
||
<MESSAGE value="feat(api-keys): 优化隐私协议同意逻辑及样式 - 修正api-keys样式导入路径,改为developer路径 - 在开发者申请页面增加服务协议和隐私政策勾选框 - 提交时校验协议是否已勾选,未勾选时提示用户 - 优化申请页面协议区域样式及交互 - 在用户验证页面添加隐私政策同意勾选框 - 提交用户验证表单时检查协议同意状态 - 增加打开服务协议和隐私政策的链接跳转 - 更新项目配置,增加passport/webview路由配置 - 修复createTicket函数中日期格式正则表达式问题" />
|
||
<MESSAGE value="refactor(config): 移除开发者中心和企业控制台的自定义导航样式 - 删除了开发者中心页面配置中的 navigationStyle: 'custom' - 删除了企业控制台页面配置中的 navigationStyle: 'custom' - 简化了页面配置,保持默认导航样式 - 有助于提升页面兼容性和维护性" />
|
||
<MESSAGE value="feat(userVerify): 添加阿里云身份证二要素核验功能 - 在接口层新增 verifyIdCard 接口,实现姓名与身份证号核验 - userVerify 页面提交时增加身份核验逻辑,核验失败阻止提交 - 调用核验接口时显示加载状态,并根据结果提示用户 - 后端依赖 aliyun cloudauth,提供实人认证相关服务接口 - 完成基本的错误捕获与用户提示,提升实名认证流程安全性" />
|
||
<MESSAGE value="refactor(api): 规范前端API接口地址并统一路径前缀 - 修正开发者、小程序和企业相关API的基础URL,避免重复添加/api前缀 - 统一调整developer、enterprise、invite等模块接口路径,保持与后端Controller一致 - 新增权限申请及消息通知相关API,并完善相关函数实现 - 规范请求参数传递,移除多余包装,改用直接传递对象方式 - 新增API Key重置、版本发布/回滚等接口支持 feat(invite): 重构邀请登录流程支持未注册快速加入 - 完整重写invite页,分离已注册用户和未注册用户的按钮显示和交互 - 实现未注册用户微信手机号授权后自动注册登录及自动加入应用 - 已注册用户直接确认加入应用,无需手机号授权弹窗 - 统一使用getPhoneNumber按钮处理两种状态并修复“授权码不能为空”报错 - 前端配合后端改造,支持已登录用户可直接通过Authorization头加入应用 fix(developer): 修复开发者中心应用加载问题 - 修复只查询创建的应用导致邀请加入的应用不显示的问题 - 同时请求创建应用和参与应用接口,合并并去重应用列表 - 新增pageJoinedApp接口调用及合并逻辑,提高应用列表完整性和体验" />
|
||
<MESSAGE value="feat(app): 添加应用入口文件和配置文件 - 新增 index.tsx 作为应用的主入口文件 - 新增 index.config.ts 用于应用的配置管理" />
|
||
<MESSAGE value="fix(tailwind): 更新配置以兼容微信小程序 - 启用 autoprefixer 并新增 postcss-nested 插件支持嵌套语法 - 扩展主题颜色,添加 primary 色系 - 更新 content 路径包含 public/index.html - 禁用 preflight 以移除默认样式重置 - 移除多数 corePlugins 禁用项,保留 preflight 禁用,简化兼容性配置" />
|
||
<MESSAGE value="feat(postcss): 添加插件移除微信小程序不兼容Tailwind规则 - 实现 postcss-remove-wxss-incompatible 插件 - 移除反斜杠转义的重要性修饰符类选择器(.\!xxx) - 删除依赖 :not 和兄弟选择器的 .space-[x|y]-* 规则 - 删除依赖 :not 和兄弟选择器的 .divide-[x|y]-* 规则 - 解决微信小程序 WXSS 不支持的 CSS 特性问题" />
|
||
<MESSAGE value="fix(pay): 优化订阅号获取逻辑并调整支付组件样式 - 优先从小程序码 scene 参数读取 subscriptionNo,提升参数兼容性 - 对 scene 参数进行解码,避免编码引起的问题 - 移除支付组件价格显示处的固定颜色设置,增强样式灵活性" />
|
||
<MESSAGE value="fix(utils): 优化小程序端复制文本功能体验 - 小程序端直接调用原生 wx.setClipboardData,避免 Taro Promise 封装问题 - 避免微信小程序重复显示复制成功提示和误报复制失败 - 失败时仅在小程序端输出错误日志,非小程序端显示提示 - 修改首页外链跳转逻辑,支持相对路径跳转,小程序内外链复制提示提升用户体验 - 更新项目内剪切板使用规范文档,说明复制行为调整及符合相应规范要求" />
|
||
<MESSAGE value="fix(index): 优化外链提示及删除复制咨询模板功能 - 替换小程序内外链打开方式提示为弹窗提醒用户手动复制 - 删除复制咨询模板功能及相关按钮 - 修改联系我们文案,突出直接电话沟通或需求反馈 - 移除无用导入的复制文本工具函数copyText" />
|
||
<MESSAGE value="feat(utils): 优化请求函数URL拼接逻辑 - 在request函数中将请求拦截改为先拼接完整URL - 支持相对路径自动补全baseUrl - 删除原有请求拦截中url未处理的问题" />
|
||
<MESSAGE value="docs(schedule): 添加2026年7月1日日程文件 - 创建新的日程文档文件 2026-07-01.md - 文件内容待后续补充和更新" />
|
||
<MESSAGE value="feat(pay): 优化小程序支付流程并增强日志调试 - 更新 wx-login 接口以返回完整 LoginResult,包括 access_token 和 user 对象 - 支付页面新增大量日志,详尽打印参数、请求和响应信息 - 优化获取订阅详情流程,支持 returnRaw 返回完整响应用于调试 - 支付流程新增步骤,先通过 code 获取 openid 并缓存,再尝试用 openid 自动登录 - 增加自动登录失败交互,提示未注册用户先登录 - 支付相关请求均使用 returnRaw 方便错误排查 - request 请求模块添加统一请求和响应日志,增强调试能力 - request 认证错误和业务错误时加入详细日志输出" />
|
||
<MESSAGE value="feat(pay): 支付成功后自动跳转到已购产品页面 - 支付成功后显示成功提示 - 延迟1.5秒自动跳转到已购产品页面 - 处理跳转失败时回退到用户首页 - 优化用户支付完成后的使用体验" />
|
||
<MESSAGE value="feat(pay-bak): 新增小程序支付页面及相关配置 - 新增确认支付页面配置,设置导航栏标题和样式 - 实现小程序支付页完整组件逻辑,包括加载订单、发起JSAPI支付等 - 支持通过 scene 或 subscriptionNo 获取订单参数 - 完善支付流程接口请求及错误处理,支持自动登录和支付确认 - 增加支付成功、支付中、支付失败、取消等状态页面展示 - 支持支付成功后跳转已购产品页或用户页 - 提供取消支付返回逻辑和界面展示 - 细化支付金额显示和提示用户支付后可使用应用功能" />
|
||
<MESSAGE value="feat(address): 新增收货地址与售后申请功能 - 新增地址编辑页面,支持地址智能识别、地图选点、地区选择和默认地址设置 - 实现地址列表页面,支持地址查看、删除、设为默认及选择返回结算页 - 新增售后申请页面,支持退款类型选择、商品选择、原因填写、图片上传和提交审核 - 修复 passport 分包配置,移除不存在分包并补充缺失声明,避免 Taro 编译报错 - 新增地址类型定义,增强前端地址数据结构类型安全 - 优化页面交互体验,完善表单校验及错误提示逻辑 - 统一代码格式与命名规范,保持代码风格一致性" />
|
||
<MESSAGE value="feat(passport): 迁移并修复小程序支付页面访问 websopy API 问题 - 迁移 src/passport/pay 相关代码至当前项目,无需替换文件 - 新增环境变量 WEBSOPY_API_BASE_URL,提供 websopy API 基础地址 - 在 config/app.ts 导出 WebsopyBaseUrl,供代码引用 - 配置 env.d.ts 类型定义,消除 TypeScript 隐式 any 错误 - request 请求方法支持自定义 baseUrl 以调用不同接口地址 - passport/pay 页面调用订阅接口统一传入 WebsopyBaseUrl - 修正 tenantId 类型为 number,调整登录用户类型断言 - 确认编译成功,dist 目录生成对应文件及正确请求地址 - 说明 type-check 依赖库问题不影响正常构建和运行" />
|
||
<MESSAGE value="feat(passport): 优化支付成功后页面跳转逻辑 - 修改支付成功后的自动跳转目标,从已购产品页面改为我的页面 - 使用 switchTab 替代 navigateTo 保证在 tabBar 页顺利跳转 - 移除多余的跳转失败回退逻辑,简化跳转流程 - 调整跳转延迟时间为 1500 毫秒,提升用户体验" />
|
||
<option name="LAST_COMMIT_MESSAGE" value="feat(passport): 优化支付成功后页面跳转逻辑 - 修改支付成功后的自动跳转目标,从已购产品页面改为我的页面 - 使用 switchTab 替代 navigateTo 保证在 tabBar 页顺利跳转 - 移除多余的跳转失败回退逻辑,简化跳转流程 - 调整跳转延迟时间为 1500 毫秒,提升用户体验" />
|
||
<option name="NON_MODAL_COMMIT_POSTPONE_SLOW_CHECKS" value="false" />
|
||
</component>
|
||
</project> |