Merge branch 'codex/personal-assistant-phase2' into codex/multi-tenant-knowledge-platform

# Conflicts:
#	backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/AihrSopDto.java
#	backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java
#	backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java
#	backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrModelSeedServiceTest.java
#	backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSopSeedServiceTest.java
#	docs/API_INTEGRATION.md
#	docs/个人AI助理阶段二专项TechSpec.md
#	docs/个人AI助理阶段二开发推进计划.md
#	frontend/src/views/knowledge/processing.vue
#	mobile-uni/src/pages/user/sop/index.vue
#	mobile-uni/src/services/api.ts
#	mobile-uni/src/services/personal-assistant.ts
#	mobile-uni/tests/personal-assistant.test.mjs
#	scripts/demo-check.sh
#	scripts/personal-assistant-smoke.sh
This commit is contained in:
2026-07-22 08:54:04 +08:00
72 changed files with 13883 additions and 61 deletions
+18
View File
@@ -22,6 +22,7 @@
<uni-icons v-if="availableProjects.length > 1" type="down" size="15" color="#596474" />
</button>
<text v-if="!projectLoading && !availableProjects.length" class="project-context-note">未绑定项目,可继续查制度;项目工作请联系管理员</text>
<button class="personal-library-entry" @click="openPersonalAssistant">我的资料</button>
</view>
<button v-if="loggedIn && currentProject" class="today-result-entry" @click="openTodayResult">
@@ -1118,6 +1119,10 @@ const openTodayResult = () => {
uni.navigateTo({ url: '/pages/user/work-results/index' });
};
const openPersonalAssistant = () => {
uni.navigateTo({ url: '/pages/user/assistant/index' });
};
const hideMemoryCandidate = (msg: MasterMsg) => {
retireEarlierMemoryCandidate(msg.result.memoryCandidate?.id);
};
@@ -2328,6 +2333,19 @@ onUnload(() => {
line-height: 1.4;
}
.personal-library-entry {
display: block;
width: fit-content;
margin: 7px 0 0 auto;
padding: 2px 0;
border: 0;
color: #c90012;
background: transparent;
font-size: 12px;
}
.personal-library-entry::after { border: 0; }
.project-picker-mask {
position: fixed;
z-index: 1100;