cainiao-hue 2 月之前
父節點
當前提交
94f78cd808
共有 100 個文件被更改,包括 0 次插入6282 次删除
  1. 0 118
      .history/docs-prod/schema_20241218212656.md
  2. 0 261
      .history/docs-prod/schema_20241219200049.md
  3. 0 282
      .history/docs-prod/schema_20241223191830.md
  4. 0 346
      .history/docs-prod/schema_20241228175527.md
  5. 0 344
      .history/docs-prod/schema_20241228191620.md
  6. 0 511
      .history/docs-prod/schema_20241228195942.md
  7. 0 488
      .history/docs-prod/schema_20241229140439.md
  8. 0 148
      .history/soul-app/angular_20241221201127.json
  9. 0 148
      .history/soul-app/angular_20241223231307.json
  10. 0 148
      .history/soul-app/angular_20241223231643.json
  11. 0 69
      .history/soul-app/package_20241223220848.json
  12. 0 69
      .history/soul-app/package_20241223225228.json
  13. 0 69
      .history/soul-app/package_20241223225256.json
  14. 0 69
      .history/soul-app/package_20241223225311.json
  15. 0 69
      .history/soul-app/package_20241223225330.json
  16. 0 69
      .history/soul-app/package_20241223225505.json
  17. 0 69
      .history/soul-app/package_20241223225522.json
  18. 0 69
      .history/soul-app/package_20241223225535.json
  19. 0 69
      .history/soul-app/package_20241223225726.json
  20. 0 69
      .history/soul-app/package_20241223225943.json
  21. 0 69
      .history/soul-app/package_20241223230048.json
  22. 0 69
      .history/soul-app/package_20241223230317.json
  23. 0 0
      .history/soul-app/src/app/app.component_20241210113940.scss
  24. 0 12
      .history/soul-app/src/app/app.component_20241210113940.ts
  25. 0 23
      .history/soul-app/src/app/app.component_20241218204121.ts
  26. 0 25
      .history/soul-app/src/app/app.component_20241218211037.ts
  27. 0 25
      .history/soul-app/src/app/app.component_20241218211138.ts
  28. 0 25
      .history/soul-app/src/app/app.component_20241218212534.ts
  29. 0 4
      .history/soul-app/src/app/app.component_20241224202641.scss
  30. 0 0
      .history/soul-app/src/app/app.component_20241224203149.scss
  31. 0 29
      .history/soul-app/src/app/app.component_20241227155753.ts
  32. 0 24
      .history/soul-app/src/app/app.routes_20241224091902.ts
  33. 0 29
      .history/soul-app/src/app/app.routes_20241227160011.ts
  34. 0 33
      .history/soul-app/src/app/app.routes_20241228140107.ts
  35. 0 35
      .history/soul-app/src/app/consult-picture/consult-picture.component_20241210113940.html
  36. 0 67
      .history/soul-app/src/app/consult-picture/consult-picture.component_20241210113940.ts
  37. 0 67
      .history/soul-app/src/app/consult-picture/consult-picture.component_20241216083858.ts
  38. 0 68
      .history/soul-app/src/app/consult-picture/consult-picture.component_20241216083900.html
  39. 0 67
      .history/soul-app/src/app/consult-picture/consult-picture.component_20241216085303.ts
  40. 0 35
      .history/soul-app/src/app/consult-picture/consult-picture.component_20241216085448.html
  41. 0 3
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224092344.html
  42. 0 0
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224092344.scss
  43. 0 15
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224092344.ts
  44. 0 18
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224093226.scss
  45. 0 18
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224093252.scss
  46. 0 14
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094441.html
  47. 0 23
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094535.ts
  48. 0 27
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094638.ts
  49. 0 14
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094716.scss
  50. 0 66
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094747.scss
  51. 0 18
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224110750.html
  52. 0 62
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224110820.scss
  53. 0 33
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224110949.scss
  54. 0 33
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224111927.scss
  55. 0 20
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224112221.html
  56. 0 37
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224112301.scss
  57. 0 27
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224112352.ts
  58. 0 20
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224112417.html
  59. 0 20
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113239.html
  60. 0 50
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113321.scss
  61. 0 20
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113349.html
  62. 0 7
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113401.html
  63. 0 5
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113628.html
  64. 0 49
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113652.scss
  65. 0 40
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113657.scss
  66. 0 5
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113708.html
  67. 0 40
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224114445.scss
  68. 0 40
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224114505.scss
  69. 0 40
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224114755.scss
  70. 0 40
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115317.scss
  71. 0 40
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115340.scss
  72. 0 41
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115639.scss
  73. 0 41
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115817.scss
  74. 0 49
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115924.scss
  75. 0 9
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115925.html
  76. 0 9
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115939.html
  77. 0 49
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115958.scss
  78. 0 49
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224142212.scss
  79. 0 49
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224142224.scss
  80. 0 49
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143012.scss
  81. 0 50
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143207.scss
  82. 0 60
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143432.scss
  83. 0 60
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143620.scss
  84. 0 50
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143746.scss
  85. 0 53
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143953.scss
  86. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144041.scss
  87. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144147.scss
  88. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144203.scss
  89. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144211.scss
  90. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144227.scss
  91. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144237.scss
  92. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144249.scss
  93. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144312.scss
  94. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144511.scss
  95. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144528.scss
  96. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144535.scss
  97. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144548.scss
  98. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144637.scss
  99. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144650.scss
  100. 0 42
      .history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144721.scss

+ 0 - 118
.history/docs-prod/schema_20241218212656.md

@@ -1,118 +0,0 @@
-# 类图
-```plantuml
-' 聊天项目类图英文版
-@startuml
-class User { 
-    + objectId: String //用户唯一标识符
-    + name: String //用户名
-    + password: String //用户密码
-    + email: String //用户邮箱
-    + avatar: String //用户头像
-    + bio: String //用户个人简介
-    + startChat(): void 
-    + chooseChatPartner(): String
-    + summarizeChatHistory(): void
-}
-
-' Store information about chat partners
-class ChatPartner {
-    + objectId: String //陪聊师唯一标识符
-    + name: String //陪聊师姓名
-    + expertise: String //陪聊师专业领域(普通陪聊师可为空)
-    + avatar: String //陪聊师头像
-    + bio: String //陪聊师个人简介
-    + provideChat(): String 
-}
-
-' Record chat history between users and chat partners
-class ChatRecord {
-    + objectId: String //聊天记录唯一标识符
-    + title:String //聊天标题
-    + timestamp: Date //聊天时间
-    + content:String //聊天内容
-    - chatList: Array //聊天记录
-    + user: Pointer<User> //关联的用户对象
-    + chatpartner: Pointer<ChatPartner> //关联的聊天机器人对象
-    + getChatHistory(): List
-}
-
-' Record generated reports
-class Report {
-    + objectId: String //报告唯一标识符
-    - analysisResult: String //分析结果
-    + generateReport(): String //生成报告的方法
-}
-
-User "1" --> "*" ChatRecord     
-ChatPartner "1" --> "*" ChatRecord 
-ChatRecord "1" -- "1" Report      
-@enduml
-```
-# 时序图
-```plantuml
-@startuml
-actor 用户
-participant "专业陪聊师" as 专业陪聊师
-participant "普通陪聊师" as 普通陪聊师
-participant "聊天记录" as 聊天记录
-participant "报告" as 报告
-
-用户 -> 用户: 选择陪聊师()
-alt 选择专业陪聊师
-    用户 -> 专业陪聊师: 提供聊天()
-else 选择普通陪聊师
-    用户 -> 普通陪聊师: 提供聊天()
-end
-用户 -> 用户: 开始聊天()
-用户 -> 聊天记录: 总结聊天记录()
-聊天记录 -> 聊天记录: 获取聊天记录()
-
-聊天记录 -> 报告: 生成报告()
-报告 -> 用户: 返回分析报告
-
-@enduml
-```
-
-# 状态图
-```plantuml
-@startuml
-[*] --> 选择陪聊师
-
-选择陪聊师 -->  聊天中: 开始聊天
-聊天中 --> 继续聊天 : 选择继续聊天
-聊天中 --> 退出聊天 : 选择退出聊天
-退出聊天 --> 总结中 : 总结聊天记录
-
-总结中 --> 生成报告 : 生成分析报告
-生成报告 --> 生成失败 : 报告生成失败
-生成报告 --> 生成成功 : 报告生成成功
-
-生成成功 --> [*] : 聊天结束
-生成失败 --> 生成报告 : 重新生成
-@enduml
-```
-
-# 活动图
-```plantuml
-@startuml
-|用户|
-start
-:发送消息;
-|专业陪聊机器人|
-:回复消息;
-|用户|
-repeat
-if (继续聊天?) then (是)
-    |用户|
-    :发送消息;
-    |专业陪聊机器人|
-    :回复消息;
-else (否)
-    |管理员|
-    :记录消息;
-    stop
-endif
-repeat while (回复消息)
-@enduml
-
-```

+ 0 - 261
.history/docs-prod/schema_20241219200049.md

@@ -1,261 +0,0 @@
-# //陪聊部分
-# 类图
-```plantuml
-' 聊天项目类图英文版
-@startuml
-class User { 
-    + objectId: String //用户唯一标识符
-    + name: String //用户名
-    + password: String //用户密码
-    + email: String //用户邮箱
-    + avatar: String //用户头像
-    + bio: String //用户个人简介
-    + startChat(): void 
-    + chooseChatPartner(): String
-    + summarizeChatHistory(): void
-}
-
-' Store information about chat partners
-class ChatPartner {
-    + objectId: String //陪聊师唯一标识符
-    + name: String //陪聊师姓名
-    + expertise: String //陪聊师专业领域(普通陪聊师可为空)
-    + avatar: String //陪聊师头像
-    + bio: String //陪聊师个人简介
-    + provideChat(): String 
-}
-
-' Record chat history between users and chat partners
-class ChatRecord {
-    + objectId: String //聊天记录唯一标识符
-    + title:String //聊天标题
-    + timestamp: Date //聊天时间
-    + content:String //聊天内容
-    - chatList: Array //聊天记录
-    + user: Pointer<User> //关联的用户对象
-    + chatpartner: Pointer<ChatPartner> //关联的聊天机器人对象
-    + getChatHistory(): List
-}
-
-' Record generated reports
-class Report {
-    + objectId: String //报告唯一标识符
-    - analysisResult: String //分析结果
-    + generateReport(): String //生成报告的方法
-}
-
-User "1" --> "*" ChatRecord     
-ChatPartner "1" --> "*" ChatRecord 
-ChatRecord "1" -- "1" Report      
-@enduml
-```
-# 时序图
-```plantuml
-@startuml
-actor 用户
-participant "专业陪聊师" as 专业陪聊师
-participant "普通陪聊师" as 普通陪聊师
-participant "聊天记录" as 聊天记录
-participant "报告" as 报告
-
-用户 -> 用户: 选择陪聊师()
-alt 选择专业陪聊师
-    用户 -> 专业陪聊师: 提供聊天()
-else 选择普通陪聊师
-    用户 -> 普通陪聊师: 提供聊天()
-end
-用户 -> 用户: 开始聊天()
-用户 -> 聊天记录: 总结聊天记录()
-聊天记录 -> 聊天记录: 获取聊天记录()
-
-聊天记录 -> 报告: 生成报告()
-报告 -> 用户: 返回分析报告
-
-@enduml
-```
-
-# 状态图
-```plantuml
-@startuml
-[*] --> 选择陪聊师
-
-选择陪聊师 -->  聊天中: 开始聊天
-聊天中 --> 继续聊天 : 选择继续聊天
-聊天中 --> 退出聊天 : 选择退出聊天
-退出聊天 --> 总结中 : 总结聊天记录
-
-总结中 --> 生成报告 : 生成分析报告
-生成报告 --> 生成失败 : 报告生成失败
-生成报告 --> 生成成功 : 报告生成成功
-
-生成成功 --> [*] : 聊天结束
-生成失败 --> 生成报告 : 重新生成
-@enduml
-```
-
-# 活动图
-```plantuml
-@startuml
-|用户|
-start
-:发送消息;
-|专业陪聊机器人|
-:回复消息;
-|用户|
-repeat
-if (继续聊天?) then (是)
-    |用户|
-    :发送消息;
-    |专业陪聊机器人|
-    :回复消息;
-else (否)
-    |管理员|
-    :记录消息;
-    stop
-endif
-repeat while (回复消息)
-@enduml
-
-```
-
-# //社区部分
-
-
-# 用例图
-```plantuml
-@startuml
-actor 学生用户
-actor 学校管理员
-
-rectangle "心理社区" {
-    学生用户 -- (填写心理普查问卷)
-    学生用户 -- (使用心理测试)
-    学校管理员 -- (发布心理普查问卷)
-    学校管理员 -- (发布心理活动通知)
-    学校管理员 -- (设置星标用户)
-}
-
-@enduml
-```
-# 类图
-
-```plantuml
-@startuml
-class 用户 {
-    +用户ID: String
-    +用户名: String
-    +密码: String
-    +电子邮件: String
-    +角色: String
-    +注册账户(): void
-    +登录(): void
-    +填写心理测试(): void
-}
-
-class 心理社区 {
-    +社区ID: String
-    +话题: String
-    +帖子: List<帖子>
-    +加入社区(): void
-    +发布消息(): void
-}
-
-class 帖子 {
-    +帖子ID: String
-    +内容: String
-    +作者: 用户
-    +时间戳: Date
-}
-
-class 心理活动 {
-    +活动ID: String
-    +标题: String
-    +描述: String
-    +日期: Date
-    +地点: String
-    +发布活动(): void
-}
-
-class 心理普查问卷 {
-    +问卷ID: String
-    +内容: String
-    +发布者: 学校管理员
-    +填写结果: List<用户>
-    +发布问卷(): void
-    +分析结果(): void
-}
-
-class 学校管理员 {
-    +管理员ID: String
-    +姓名: String
-    +邮箱: String
-    +发布心理活动(): void
-    +发布心理普查问卷(): void
-    +分析问卷结果(): void
-    +设置星标用户(): void
-}
-
-用户 "1" -- "0..*" 心理社区
-心理社区 "1" -- "0..*" 帖子
-心理活动 "1" -- "0..*" 用户
-学校管理员 "1" -- "0..*" 心理活动
-学校管理员 "1" -- "0..*" 心理普查问卷
-心理普查问卷 "1" -- "0..*" 用户
-@enduml
-```
-
-# 时序图
-
-```mermaid
-sequenceDiagram
-    participant Admin as 学校管理员
-    participant Student as 学生用户
-    participant System as 系统
-
-    Admin->>System: 发布心理普查问卷
-    Student->>System: 填写心理普查问卷
-    System->>Admin: 收集问卷结果
-    Admin->>System: 分析问卷结果
-    alt 心理健康有问题的学生人数达到阈值
-        System->>Admin: 发布心理团辅
-        System->>Student: 升级为心理星标用户
-    end
-    Admin->>System: 制定后续心理活动
-    System->>Student: 通知学生参与活动
-    Student->>System: 使用心理测试
-```
-# 活动图
-
-```mermaid
-graph TD
-    A[开始] --> B[发布心理普查问卷]
-    B --> C[学生填写问卷]
-    C --> D[提交问卷]
-    D --> E[学校管理员分析结果]
-    E --> F{心理健康有问题的学生人数达到阈值?}
-    F -->|是| G[发布心理团辅]
-    F -->|否| H[继续监控]
-    G --> I[通知学生参与团辅]
-    E --> J[设置星标用户]
-    J --> K
-    H --> K
-    I --> K[结束]
-```
-
-# 状态图
-```mermaid
-stateDiagram-v2
-    [*] --> 发布问卷
-    发布问卷 --> 问卷收集中: 学生填写问卷
-    问卷收集中 --> 结果分析中: 提交问卷
-    结果分析中 --> 后续活动设计中: 学校管理员查看分析
-    结果分析中 --> 初期活动发布中: 心理状况有问题学生人数达到阈值
-    初期活动发布中 --> 团辅进行中: 发布心理团辅
-    初期活动发布中 --> 升级星标用户: 升级为心理星标用户
-    后续活动设计中 --> 后续活动开展中: 发布后续活动
-    后续活动开展中 --> [*]
-    团辅进行中 --> [*]
-    升级星标用户 --> [*]
-    
-```
-

+ 0 - 282
.history/docs-prod/schema_20241223191830.md

@@ -1,282 +0,0 @@
-# //陪聊部分
-# 类图
-```plantuml
-' 聊天项目类图英文版
-@startuml
-
-class _User { 
-    + objectId: String //用户唯一标识符
-    + username: String //用户名
-    + realname: String //真实姓名
-    + password: String //用户密码
-    + gender: String //性别
-    + age: Number //年龄
-    + email: String //用户邮箱
-    + avatar: String //用户头像
-    + startChat(): void 
-    + chooseChatPartner(): String
-    + summarizeChatHistory(): void
-}
-
-class ChatPartner {
-    + objectId: String //陪聊师唯一标识符
-    + name: String //陪聊师姓名
-    + expertise: String //陪聊师专业领域
-    + avatar: String //陪聊师头像
-    + bio: String //陪聊师个人简介
-    + provideChat(): String 
-}
-
-class ChatCompanion {
-    + objectId: String //聊天伙伴唯一标识符
-    + name: String //聊天伙伴姓名
-    + avatar: String //聊天伙伴头像
-    + bio: String //聊天伙伴个人简介
-    + provideChat(): String
-}
-
-class ChatRecord {
-    + objectId: String //聊天记录唯一标识符
-    + title:String //聊天标题
-    + content:Array //聊天内容
-    + user: Pointer<User> //关联的用户对象
-    + chatpartner: Pointer<ChatPartner> //关联的聊天机器人对象
-    + getChatHistory(): List
-}
-
-class ChatReport {
-    + objectId: String //报告唯一标识符
-    - report: String //分析结果
-    + generateReport(): String //生成报告的方法
-}
-class ChatEvaluate{
-    + objectId:String//评论唯一标识符
-    + avater:String//用户头像
-    + content:String//评论内容
-    + rating:Number//评论星星数
-    + user: Pointer<User> //关联的用户对象
-}
-
-_User "*" --> "*" ChatEvaluate
-_User "1" --> "*" ChatRecord     
-ChatPartner "1" --> "*" ChatRecord 
-ChatCompanion "1" --> "*" ChatRecord 
-ChatRecord "1" --> "1" ChatReport      
-@enduml
-```
-# 时序图
-```plantuml
-@startuml
-actor 用户
-participant "专业陪聊师" as 专业陪聊师
-participant "普通陪聊师" as 普通陪聊师
-participant "聊天记录" as 聊天记录
-participant "报告" as 报告
-
-用户 -> 用户: 选择陪聊师()
-alt 选择专业陪聊师
-    用户 -> 专业陪聊师: 提供聊天()
-else 选择普通陪聊师
-    用户 -> 普通陪聊师: 提供聊天()
-end
-用户 -> 用户: 开始聊天()
-用户 -> 聊天记录: 总结聊天记录()
-聊天记录 -> 聊天记录: 获取聊天记录()
-
-聊天记录 -> 报告: 生成报告()
-报告 -> 用户: 返回分析报告
-
-@enduml
-```
-
-# 状态图
-```plantuml
-@startuml
-[*] --> 选择陪聊师
-
-选择陪聊师 -->  聊天中: 开始聊天
-聊天中 --> 继续聊天 : 选择继续聊天
-聊天中 --> 退出聊天 : 选择退出聊天
-退出聊天 --> 总结中 : 总结聊天记录
-
-总结中 --> 生成报告 : 生成分析报告
-生成报告 --> 生成失败 : 报告生成失败
-生成报告 --> 生成成功 : 报告生成成功
-
-生成成功 --> [*] : 聊天结束
-生成失败 --> 生成报告 : 重新生成
-@enduml
-```
-
-# 活动图
-```plantuml
-@startuml
-|用户|
-start
-:发送消息;
-|专业陪聊机器人|
-:回复消息;
-|用户|
-repeat
-if (继续聊天?) then (是)
-    |用户|
-    :发送消息;
-    |专业陪聊机器人|
-    :回复消息;
-else (否)
-    |管理员|
-    :记录消息;
-    stop
-endif
-repeat while (回复消息)
-@enduml
-
-```
-
-# //社区部分
-
-
-# 用例图
-```plantuml
-@startuml
-actor 学生用户
-actor 学校管理员
-
-rectangle "心理社区" {
-    学生用户 -- (填写心理普查问卷)
-    学生用户 -- (使用心理测试)
-    学校管理员 -- (发布心理普查问卷)
-    学校管理员 -- (发布心理活动通知)
-    学校管理员 -- (设置星标用户)
-}
-
-@enduml
-```
-# 类图
-
-```plantuml
-@startuml
-class User {
-    +objectId: String
-    +username: String
-    +realname: String
-    +password: String
-    +gender: String
-    +age: Number
-    +email: String
-    +avatar: String
-    +startChat():void
-    +chooseChatPartner():String
-    +summarizeCharHistory():void
-    +registerAccount():void
-    +login(): void
-    +fillPsychologicalTest(): void
-    +publishBottle(): void
-    +retrieveBottle(): Bottle
-}
-
-class PsychologicalCommunity {
-    +communityID: String
-    +topic: String
-    +joinCommunity(): void
-}
-
-class PsychologicalActivity {
-    +activityID: String
-    +title: String
-    +description: String
-    +date: Date
-    +location: String
-    +publishActivity(): void
-}
-
-class PsychologicalSurvey {
-    +surveyID: String
-    +content: String
-    +publisher: SchoolAdmin
-    +responses: List
-    +publishSurvey(): void
-    +analyzeResults(): void
-}
-
-class SchoolAdmin {
-    +adminID: String
-    +name: String
-    +email: String
-    +publishPsychologicalActivity(): void
-    +publishPsychologicalSurvey(): void
-    +analyzeSurveyResults(): void
-    +setFeaturedUser(): void
-}
-
-class Bottle {
-    +bottleID: String
-    +content: String
-    +author: User
-    +timestamp: Date
-}
-
-User "1" -- "0..*" PsychologicalCommunity
-PsychologicalActivity "1" -- "0..*" User
-SchoolAdmin "1" -- "0..*" PsychologicalActivity
-SchoolAdmin "1" -- "0..*" PsychologicalSurvey
-PsychologicalSurvey "1" -- "0..*" User
-User "1" -- "0..*" Bottle
-@enduml
-```
-
-# 时序图
-
-```mermaid
-sequenceDiagram
-    participant Admin as 学校管理员
-    participant Student as 学生用户
-    participant System as 系统
-
-    Admin->>System: 发布心理普查问卷
-    Student->>System: 填写心理普查问卷
-    System->>Admin: 收集问卷结果
-    Admin->>System: 分析问卷结果
-    alt 心理健康有问题的学生人数达到阈值
-        System->>Admin: 发布心理团辅
-        System->>Student: 升级为心理星标用户
-    end
-    Admin->>System: 制定后续心理活动
-    System->>Student: 通知学生参与活动
-    Student->>System: 使用心理测试
-```
-# 活动图
-
-```mermaid
-graph TD
-    A[开始] --> B[发布心理普查问卷]
-    B --> C[学生填写问卷]
-    C --> D[提交问卷]
-    D --> E[学校管理员分析结果]
-    E --> F{心理健康有问题的学生人数达到阈值?}
-    F -->|是| G[发布心理团辅]
-    F -->|否| H[继续监控]
-    G --> I[通知学生参与团辅]
-    E --> J[设置星标用户]
-    J --> K
-    H --> K
-    I --> K[结束]
-```
-
-# 状态图
-```mermaid
-stateDiagram-v2
-    [*] --> 发布问卷
-    发布问卷 --> 问卷收集中: 学生填写问卷
-    问卷收集中 --> 结果分析中: 提交问卷
-    结果分析中 --> 后续活动设计中: 学校管理员查看分析
-    结果分析中 --> 初期活动发布中: 心理状况有问题学生人数达到阈值
-    初期活动发布中 --> 团辅进行中: 发布心理团辅
-    初期活动发布中 --> 升级星标用户: 升级为心理星标用户
-    后续活动设计中 --> 后续活动开展中: 发布后续活动
-    后续活动开展中 --> [*]
-    团辅进行中 --> [*]
-    升级星标用户 --> [*]
-    
-```
-

+ 0 - 346
.history/docs-prod/schema_20241228175527.md

@@ -1,346 +0,0 @@
-# 简单版类图
-```plantuml
-@startuml
-class _User { 
-    + objectId: String 
-    + username: String 
-    + realname: String 
-    + password: String
-    + gender: String 
-    + age: Number 
-    + email: String
-    + avatar: String
-    + teacherId: String
-    + studentId: String
-    + identity: String
-    + school: String
-    + department: String
-}
-class ChatPartner {
-    + objectId: String
-    + name: String 
-    + expertise: String
-    + avatar: String 
-    + bio: String 
-}
-class ChatCompanion {
-    + objectId: String
-    + name: String
-    + avatar: String 
-    + bio: String 
-}
-class ChatRecord {
-    + objectId: String 
-    + title:String
-    + content:Array 
-    + user: Pointer<User> 
-    + chatpartner: Pointer<ChatPartner> 
-}
-class ChatReport {
-    + objectId: String
-    - report: String
-}
-class ChatEvaluate{
-    + objectId:String
-    + avater:String
-    + content:String
-    + rating:Number
-    + user: Pointer<User> 
-}
-
-class Survey {
-    + objectId: String
-    + link: String
-    + title: String
-    + audience: String
-}
-
-class DriftBottle {
-    + bottleID: String
-    + content: String
-    + username: String
-    + throwtime: String
-    + catcher: String
-    + catchtime: String
-    + status: String
-}
-Survey "1" -- "0..*" _User
-_User "1" -- "0..*" DriftBottle
-_User "*" --> "*" ChatEvaluate
-_User "1" --> "*" ChatRecord     
-ChatPartner "1" --> "*" ChatRecord 
-ChatCompanion "1" --> "*" ChatRecord 
-ChatRecord "1" --> "1" ChatReport      
-@enduml
-```
-
-
-# 时序图
-```plantuml
-@startuml
-actor 用户
-participant "专业陪聊师" as 专业陪聊师
-participant "普通陪聊师" as 普通陪聊师
-participant "聊天记录" as 聊天记录
-participant "报告" as 报告
-
-用户 -> 用户: 选择陪聊师()
-alt 选择专业陪聊师
-    用户 -> 专业陪聊师: 提供聊天()
-else 选择普通陪聊师
-    用户 -> 普通陪聊师: 提供聊天()
-end
-用户 -> 用户: 开始聊天()
-用户 -> 聊天记录: 总结聊天记录()
-聊天记录 -> 聊天记录: 获取聊天记录()
-
-聊天记录 -> 报告: 生成报告()
-报告 -> 用户: 返回分析报告
-
-@enduml
-```
-
-# 状态图
-```plantuml
-@startuml
-[*] --> 选择陪聊师
-
-选择陪聊师 -->  聊天中: 开始聊天
-聊天中 --> 继续聊天 : 选择继续聊天
-聊天中 --> 退出聊天 : 选择退出聊天
-退出聊天 --> 总结中 : 总结聊天记录
-
-总结中 --> 生成报告 : 生成分析报告
-生成报告 --> 生成失败 : 报告生成失败
-生成报告 --> 生成成功 : 报告生成成功
-
-生成成功 --> [*] : 聊天结束
-生成失败 --> 生成报告 : 重新生成
-@enduml
-```
-
-# 活动图
-```plantuml
-@startuml
-|用户|
-start
-:发送消息;
-|专业陪聊机器人|
-:回复消息;
-|用户|
-repeat
-if (继续聊天?) then (是)
-    |用户|
-    :发送消息;
-    |专业陪聊机器人|
-    :回复消息;
-else (否)
-    |管理员|
-    :记录消息;
-    stop
-endif
-repeat while (回复消息)
-@enduml
-
-```
-
-# //社区部分
-
-
-# 用例图
-```plantuml
-@startuml
-actor 用户
-
-
-rectangle "心理社区" {
-    用户 -- (使用心理普查)
-    用户 -- (使用漂流瓶)
-}
-rectangle "使用心理普查"{
-    用户 -- (填写问卷)
-    用户 -- (发布问卷)
-}
-rectangle "使用漂流瓶"{
-    用户 -- (扔漂流瓶)
-    用户 -- (捞漂流瓶)
-}
-
-@enduml
-```
-
-# 时序图
-
-```mermaid
-sequenceDiagram
-    participant Admin as 老师用户
-    participant Student as 学生用户
-    participant System as 系统
-
-    Admin->>System: 发布心理普查问卷
-    Student->>System: 填写心理普查问卷
-    System->>Admin: 收集问卷结果
-    Admin->>System: 分析问卷结果
-    
-    Admin->>System: 制定后续心理活动
-    
-```
-# 活动图
-
-```mermaid
-graph TD
-    A[开始] --> B[发布心理普查问卷]
-    B --> C[学生填写问卷]
-    C --> D[提交问卷]
-    D --> E[学校管理员分析结果]
-    E --> F{心理健康有问题的学生人数达到阈值?}
-    F -->|是| G[发布心理团辅]
-    F -->|否| H[继续监控]
-    G --> I[通知学生参与团辅]
-    E --> J[设置星标用户]
-    J --> K
-    H --> K
-    I --> K[结束]
-```
-
-# 状态图
-```mermaid
-stateDiagram-v2
-    [*] --> 发布问卷
-    发布问卷 --> 问卷收集中: 学生填写问卷
-    问卷收集中 --> 结果分析中: 提交问卷
-    结果分析中 --> 后续活动设计中: 学校管理员查看分析
-    结果分析中 --> 初期活动发布中: 心理状况有问题学生人数达到阈值
-    初期活动发布中 --> 团辅进行中: 发布心理团辅
-    初期活动发布中 --> 升级星标用户: 升级为心理星标用户
-    后续活动设计中 --> 后续活动开展中: 发布后续活动
-    后续活动开展中 --> [*]
-    团辅进行中 --> [*]
-    升级星标用户 --> [*]
-    
-```
-
-
-# 登录业务
-```plantuml
-@startuml
-left to right direction
-[*] --> 输入用户名和密码
-
-输入用户名和密码 --> 检查是否为空
-检查是否为空 --> 执行登录 : 不为空
-检查是否为空 --> 输入用户名和密码 : 为空
-执行登录 --> 返回当前页面: 登录成功
-执行登录 --> 输入用户名和密码 :登录失败
-
-返回当前页面 --> [*]
-@enduml
-```
-# 注册业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 输入基本信息
-
-输入基本信息 --> 检查是否为空
-检查是否为空 --> 输入基本信息 : 为空
-检查是否为空 --> 检查两次密码一致性 : 不为空
-
-检查两次密码一致性 --> 执行注册 : 一致
-检查两次密码一致性 --> 输入基本信息 : 不一致
-
-执行注册 --> 返回登录页面 : 注册成功
-执行注册 --> 输入基本信息 : 注册失败
-
-返回登录页面 --> [*]
-@enduml
-
-```
-# 用户编辑信息业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 获取用户信息
-
-获取用户信息 --> 弹出表单
-
-弹出表单 --> 检查用户输入
-
-检查用户输入 --> 执行修改
-
-执行修改 --> 返回当前页面: 修改成功
-执行修改 --> 弹出表单 : 修改失败
-返回当前页面 --> [*] 
-@enduml
-```
-# 智能陪聊业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 选择陪聊师 : 已登录
-
-登录注册 --> 选择陪聊师 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-选择陪聊师 --> 开始陪聊
-
-开始陪聊 --> [*] : 结束陪聊
-@enduml
-```
-# 普通聊天业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 开始陪聊 : 已登录
-
-登录注册 --> 开始陪聊 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-开始陪聊 --> [*] : 结束陪聊
-@enduml
-```
-# 用户评价业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 进入评价 : 已登录
-
-登录注册 --> 进入评价 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-进入评价 --> 输入评价内容
-
-输入评价内容 --> 保存退出
-
-保存退出 --> 返回当前页面 : 保存成功
-返回当前页面 --> [*]
-@enduml
-```
-# 查看报告业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 获取用户信息
-
-获取用户信息 --> 点击我的报告
-
-点击我的报告 --> 展示用户相关报告
-
-展示用户相关报告 --> [*]
-@enduml
-```

+ 0 - 344
.history/docs-prod/schema_20241228191620.md

@@ -1,344 +0,0 @@
-# 简单版类图
-```plantuml
-@startuml
-class _User { 
-    + objectId: String 
-    + username: String 
-    + realname: String 
-    + password: String
-    + gender: String 
-    + age: Number 
-    + email: String
-    + avatar: String
-    + teacherId: String
-    + studentId: String
-    + identity: String
-    + school: String
-    + department: String
-}
-class ChatPartner {
-    + objectId: String
-    + name: String 
-    + expertise: String
-    + avatar: String 
-    + bio: String 
-}
-class ChatCompanion {
-    + objectId: String
-    + name: String
-    + avatar: String 
-    + bio: String 
-}
-class ChatRecord {
-    + objectId: String 
-    + title:String
-    + content:Array 
-    + user: Pointer<User> 
-    + chatpartner: Pointer<ChatPartner> 
-}
-class ChatEvaluate{
-    + objectId:String
-    + avater:String
-    + content:String
-    + rating:Number
-    + user: Pointer<User> 
-}
-
-class Survey {
-    + objectId: String
-    + link: String
-    + title: String
-    + audience: String
-    + publisher:String
-    + publishtime: String
-    + category: String
-}
-
-class DriftBottle {
-    + bottleID: String
-    + content: String
-    + username: String
-    + throwtime: String
-    + catcher: String
-    + catchtime: String
-    + status: String
-}
-Survey "1" -- "0..*" _User
-_User "1" -- "0..*" DriftBottle
-_User "*" --> "*" ChatEvaluate
-_User "1" --> "*" ChatRecord     
-ChatPartner "1" --> "*" ChatRecord 
-ChatCompanion "1" --> "*" ChatRecord      
-@enduml
-```
-
-
-# 时序图
-```plantuml
-@startuml
-actor 用户
-participant "专业陪聊师" as 专业陪聊师
-participant "普通陪聊师" as 普通陪聊师
-participant "聊天记录" as 聊天记录
-participant "报告" as 报告
-
-用户 -> 用户: 选择陪聊师()
-alt 选择专业陪聊师
-    用户 -> 专业陪聊师: 提供聊天()
-else 选择普通陪聊师
-    用户 -> 普通陪聊师: 提供聊天()
-end
-用户 -> 用户: 开始聊天()
-用户 -> 聊天记录: 总结聊天记录()
-聊天记录 -> 聊天记录: 获取聊天记录()
-
-聊天记录 -> 报告: 生成报告()
-报告 -> 用户: 返回分析报告
-
-@enduml
-```
-
-# 状态图
-```plantuml
-@startuml
-[*] --> 选择陪聊师
-
-选择陪聊师 -->  聊天中: 开始聊天
-聊天中 --> 继续聊天 : 选择继续聊天
-聊天中 --> 退出聊天 : 选择退出聊天
-退出聊天 --> 总结中 : 总结聊天记录
-
-总结中 --> 生成报告 : 生成分析报告
-生成报告 --> 生成失败 : 报告生成失败
-生成报告 --> 生成成功 : 报告生成成功
-
-生成成功 --> [*] : 聊天结束
-生成失败 --> 生成报告 : 重新生成
-@enduml
-```
-
-# 活动图
-```plantuml
-@startuml
-|用户|
-start
-:发送消息;
-|专业陪聊机器人|
-:回复消息;
-|用户|
-repeat
-if (继续聊天?) then (是)
-    |用户|
-    :发送消息;
-    |专业陪聊机器人|
-    :回复消息;
-else (否)
-    |管理员|
-    :记录消息;
-    stop
-endif
-repeat while (回复消息)
-@enduml
-
-```
-
-# //社区部分
-
-
-# 用例图
-```plantuml
-@startuml
-actor 用户
-
-
-rectangle "心理社区" {
-    用户 -- (使用心理普查)
-    用户 -- (使用漂流瓶)
-}
-rectangle "使用心理普查"{
-    用户 -- (填写问卷)
-    用户 -- (发布问卷)
-}
-rectangle "使用漂流瓶"{
-    用户 -- (扔漂流瓶)
-    用户 -- (捞漂流瓶)
-}
-
-@enduml
-```
-
-# 时序图
-
-```mermaid
-sequenceDiagram
-    participant Admin as 老师用户
-    participant Student as 学生用户
-    participant System as 系统
-
-    Admin->>System: 发布心理普查问卷
-    Student->>System: 填写心理普查问卷
-    System->>Admin: 收集问卷结果
-    Admin->>System: 分析问卷结果
-    
-    Admin->>System: 制定后续心理活动
-    
-```
-# 活动图
-
-```mermaid
-graph TD
-    A[开始] --> B[发布心理普查问卷]
-    B --> C[学生填写问卷]
-    C --> D[提交问卷]
-    D --> E[学校管理员分析结果]
-    E --> F{心理健康有问题的学生人数达到阈值?}
-    F -->|是| G[发布心理团辅]
-    F -->|否| H[继续监控]
-    G --> I[通知学生参与团辅]
-    E --> J[设置星标用户]
-    J --> K
-    H --> K
-    I --> K[结束]
-```
-
-# 状态图
-```mermaid
-stateDiagram-v2
-    [*] --> 发布问卷
-    发布问卷 --> 问卷收集中: 学生填写问卷
-    问卷收集中 --> 结果分析中: 提交问卷
-    结果分析中 --> 后续活动设计中: 学校管理员查看分析
-    结果分析中 --> 初期活动发布中: 心理状况有问题学生人数达到阈值
-    初期活动发布中 --> 团辅进行中: 发布心理团辅
-    初期活动发布中 --> 升级星标用户: 升级为心理星标用户
-    后续活动设计中 --> 后续活动开展中: 发布后续活动
-    后续活动开展中 --> [*]
-    团辅进行中 --> [*]
-    升级星标用户 --> [*]
-    
-```
-
-
-# 登录业务
-```plantuml
-@startuml
-left to right direction
-[*] --> 输入用户名和密码
-
-输入用户名和密码 --> 检查是否为空
-检查是否为空 --> 执行登录 : 不为空
-检查是否为空 --> 输入用户名和密码 : 为空
-执行登录 --> 返回当前页面: 登录成功
-执行登录 --> 输入用户名和密码 :登录失败
-
-返回当前页面 --> [*]
-@enduml
-```
-# 注册业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 输入基本信息
-
-输入基本信息 --> 检查是否为空
-检查是否为空 --> 输入基本信息 : 为空
-检查是否为空 --> 检查两次密码一致性 : 不为空
-
-检查两次密码一致性 --> 执行注册 : 一致
-检查两次密码一致性 --> 输入基本信息 : 不一致
-
-执行注册 --> 返回登录页面 : 注册成功
-执行注册 --> 输入基本信息 : 注册失败
-
-返回登录页面 --> [*]
-@enduml
-
-```
-# 用户编辑信息业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 获取用户信息
-
-获取用户信息 --> 弹出表单
-
-弹出表单 --> 检查用户输入
-
-检查用户输入 --> 执行修改
-
-执行修改 --> 返回当前页面: 修改成功
-执行修改 --> 弹出表单 : 修改失败
-返回当前页面 --> [*] 
-@enduml
-```
-# 智能陪聊业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 选择陪聊师 : 已登录
-
-登录注册 --> 选择陪聊师 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-选择陪聊师 --> 开始陪聊
-
-开始陪聊 --> [*] : 结束陪聊
-@enduml
-```
-# 普通聊天业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 开始陪聊 : 已登录
-
-登录注册 --> 开始陪聊 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-开始陪聊 --> [*] : 结束陪聊
-@enduml
-```
-# 用户评价业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 进入评价 : 已登录
-
-登录注册 --> 进入评价 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-进入评价 --> 输入评价内容
-
-输入评价内容 --> 保存退出
-
-保存退出 --> 返回当前页面 : 保存成功
-返回当前页面 --> [*]
-@enduml
-```
-# 查看报告业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 获取用户信息
-
-获取用户信息 --> 点击我的报告
-
-点击我的报告 --> 展示用户相关报告
-
-展示用户相关报告 --> [*]
-@enduml
-```

+ 0 - 511
.history/docs-prod/schema_20241228195942.md

@@ -1,511 +0,0 @@
-# 简单版类图
-```plantuml
-@startuml
-class _User { 
-    + objectId: String 
-    + username: String 
-    + realname: String 
-    + password: String
-    + gender: String 
-    + age: Number 
-    + email: String
-    + avatar: String
-    + teacherId: String
-    + studentId: String
-    + identity: String
-    + school: String
-    + department: String
-}
-class ChatPartner {
-    + objectId: String
-    + name: String 
-    + expertise: String
-    + avatar: String 
-    + bio: String 
-}
-class ChatCompanion {
-    + objectId: String
-    + name: String
-    + avatar: String 
-    + bio: String 
-}
-class ChatRecord {
-    + objectId: String 
-    + title:String
-    + content:Array 
-    + user: Pointer<User> 
-    + chatpartner: Pointer<ChatPartner> 
-}
-class ChatEvaluate{
-    + objectId:String
-    + avater:String
-    + content:String
-    + rating:Number
-    + user: Pointer<User> 
-}
-
-class Survey {
-    + objectId: String
-    + link: String
-    + title: String
-    + audience: String
-    + publisher:String
-    + publishtime: String
-    + category: String
-}
-
-class DriftBottle {
-    + bottleID: String
-    + content: String
-    + username: String
-    + throwtime: String
-    + catcher: String
-    + catchtime: String
-    + status: String
-}
-Survey "1" -- "0..*" _User
-_User "1" -- "0..*" DriftBottle
-_User "*" --> "*" ChatEvaluate
-_User "1" --> "*" ChatRecord     
-ChatPartner "1" --> "*" ChatRecord 
-ChatCompanion "1" --> "*" ChatRecord      
-@enduml
-```
-
-
-# 时序图
-```plantuml
-@startuml
-actor 用户
-participant "专业陪聊师" as 专业陪聊师
-participant "普通陪聊师" as 普通陪聊师
-participant "聊天记录" as 聊天记录
-participant "报告" as 报告
-
-用户 -> 用户: 选择陪聊师()
-alt 选择专业陪聊师
-    用户 -> 专业陪聊师: 提供聊天()
-else 选择普通陪聊师
-    用户 -> 普通陪聊师: 提供聊天()
-end
-用户 -> 用户: 开始聊天()
-用户 -> 聊天记录: 总结聊天记录()
-聊天记录 -> 聊天记录: 获取聊天记录()
-
-聊天记录 -> 报告: 生成报告()
-报告 -> 用户: 返回分析报告
-
-@enduml
-```
-
-# 状态图
-```plantuml
-@startuml
-[*] --> 选择陪聊师
-
-选择陪聊师 -->  聊天中: 开始聊天
-聊天中 --> 继续聊天 : 选择继续聊天
-聊天中 --> 退出聊天 : 选择退出聊天
-退出聊天 --> 总结中 : 总结聊天记录
-
-总结中 --> 生成报告 : 生成分析报告
-生成报告 --> 生成失败 : 报告生成失败
-生成报告 --> 生成成功 : 报告生成成功
-
-生成成功 --> [*] : 聊天结束
-生成失败 --> 生成报告 : 重新生成
-@enduml
-```
-
-# 活动图
-```plantuml
-@startuml
-|用户|
-start
-:发送消息;
-|专业陪聊机器人|
-:回复消息;
-|用户|
-repeat
-if (继续聊天?) then (是)
-    |用户|
-    :发送消息;
-    |专业陪聊机器人|
-    :回复消息;
-else (否)
-    |管理员|
-    :记录消息;
-    stop
-endif
-repeat while (回复消息)
-@enduml
-
-```
-
-# //社区部分
-
-
-# 用例图
-```plantuml
-@startuml
-actor 用户
-
-
-rectangle "心理社区" {
-    用户 -- (使用心理普查)
-    用户 -- (使用漂流瓶)
-}
-rectangle "使用心理普查"{
-    用户 -- (填写问卷)
-    用户 -- (发布问卷)
-}
-rectangle "使用漂流瓶"{
-    用户 -- (扔漂流瓶)
-    用户 -- (捞漂流瓶)
-}
-
-@enduml
-```
-
-# 时序图
-
-```mermaid
-sequenceDiagram
-    participant User
-    participant System
-
-    User->>System: 访问系统
-    alt 用户未登录
-        System->>User: 显示登录注册界面
-        User->>System: 输入用户名和密码
-        alt 登录成功
-            System->>User: 跳转到已登录页面
-            User->>System: 查看问卷通知
-            System->>User: 显示问卷通知
-            User->>System: 发布问卷
-            alt 用户是老师
-                System->>User: 提示“问卷已成功发布”
-            else 用户不是老师
-                System->>User: 提示“权限不够”
-            end
-        else 登录失败
-            System->>User: 显示错误信息
-        end
-    else 用户已登录
-        System->>User: 跳转到已登录页面
-        User->>System: 查看问卷通知
-        System->>User: 显示问卷通知
-        User->>System: 发布问卷
-        alt 用户是老师
-            System->>User: 提示“问卷已成功发布”
-        else 用户不是老师
-            System->>User: 提示“权限不够”
-        end
-    end
-```
-```mermaid
-sequenceDiagram
-    participant User
-    participant System
-
-    User->>System: 访问系统
-    alt 用户未登录
-        System->>User: 显示登录注册界面
-        User->>System: 输入用户名和密码
-        alt 登录成功
-            System->>User: 跳转到已登录页面
-            User->>System: 扔漂流瓶
-            System->>User: 提示“请输入漂流瓶内容”
-            User->>System: 编写漂流瓶内容
-            System->>User: 抛出漂流瓶
-            User->>System: 捞漂流瓶
-            alt 条件满足
-                System->>User: 成功捞上漂流瓶
-            else 条件不满足
-                System->>User: 打捞失败
-            end
-            User->>System: 查看我的漂流瓶
-            System->>User: 显示扔出的漂流瓶
-            System->>User: 显示捞上的漂流瓶
-            User->>System: 扔回捞上的漂流瓶
-            System->>User: 扔回成功
-        else 登录失败
-            System->>User: 显示错误信息
-        end
-    else 用户已登录
-        System->>User: 跳转到已登录页面
-        User->>System: 扔漂流瓶
-        System->>User: 提示“请输入漂流瓶内容”
-        User->>System: 编写漂流瓶内容
-        System->>User: 抛出漂流瓶
-        User->>System: 捞漂流瓶
-        alt 条件满足
-            System->>User: 成功捞上漂流瓶
-        else 条件不满足
-            System->>User: 打捞失败
-        end
-        User->>System: 查看我的漂流瓶
-        System->>User: 显示扔出的漂流瓶
-        System->>User: 显示捞上的漂流瓶
-        User->>System: 扔回捞上的漂流瓶
-        System->>User: 扔回成功
-    end
-```
-
-
-# 活动图
-
-```mermaid
-graph TD;
-    A[开始] --> B{用户已登录?};
-    B -- 否 --> C[显示登录注册界面];
-    C --> D[输入用户名和密码];
-    D --> E{登录成功?};
-    E -- 是 --> N[跳转到已登录页面];
-    E -- 否 --> G[显示错误信息];
-   
-    B -- 是 --> N[跳转到已登录页面];
-    N --> O[查看问卷通知];
-    O --> P[显示问卷通知];
-    P --> Q[发布问卷];
-    Q --> R{用户是老师?};
-    R -- 是 --> S[提示“问卷已成功发布”];
-    R -- 否 --> T[提示“权限不够”];
-
-```
-```mermaid
-graph TD;
-    A[开始] --> B{用户已登录?};
-    B -- 否 --> C[显示登录注册界面];
-    C --> D[输入用户名和密码];
-    D --> E{登录成功?};
-    E -- 是 --> F[跳转到已登录页面];
-    E -- 否 --> G[显示错误信息];
-    F --> H[扔漂流瓶];
-    H --> I[提示“请输入漂流瓶内容”];
-    I --> J[编写漂流瓶内容];
-    J --> K[抛出漂流瓶];
-    K --> L[结束];
-
-    F --> M[捞漂流瓶];
-    M --> N{条件满足?};
-    N -- 是 --> O[成功捞上漂流瓶];
-    N -- 否 --> P[打捞失败];
-    O --> Q[结束];
-    P --> Q;
-
-    F --> R[查看我的漂流瓶];
-    R --> S[显示扔出的漂流瓶];
-    S --> T[显示捞上的漂流瓶];
-    T --> U{扔回捞上的漂流瓶?};
-    U -- 是 --> V[扔回成功];
-    U -- 否 --> W[结束];
-    V --> W;
-```
-
-
-
-
-# 状态图
-```mermaid
-stateDiagram-v2
-    [*] --> 未登录
-    未登录 --> 登录 : 用户尝试访问系统
-    登录 --> 已登录 : 用户成功登录
-    已登录 --> 查看问卷通知 : 用户选择查看问卷通知
-    已登录 --> 发布问卷 : 用户选择发布问卷
-    发布问卷 --> 权限不够 : 用户不是老师
-    发布问卷 --> 问卷已成功发布 : 用户是老师
-    
-```
-
-```mermaid
-stateDiagram-v2
-    [*] --> 未登录
-    未登录 --> 登录 : 用户尝试访问系统
-    登录 --> 已登录 : 用户成功登录
-    已登录 --> 扔漂流瓶 : 用户选择扔漂流瓶
-    已登录 --> 捞漂流瓶 : 用户选择捞漂流瓶
-    已登录 --> 查看我的漂流瓶 : 用户选择查看我的漂流瓶
-    扔漂流瓶 --> 编写内容 : 用户开始编写漂流瓶内容
-    编写内容 --> 抛出漂流瓶 : 用户完成编写
-    捞漂流瓶 --> 成功捞上 : 条件满足
-    捞漂流瓶 --> 打捞失败 : 条件不满足
-    查看我的漂流瓶 --> 查看扔出的漂流瓶 : 用户查看自己扔出的漂流瓶
-    查看我的漂流瓶 --> 查看捞上的漂流瓶 : 用户查看捞上的漂流瓶
-    查看捞上的漂流瓶 --> 扔回漂流瓶 : 用户选择扔回捞上的漂流瓶
-```
-
-# 登录业务
-```plantuml
-@startuml
-left to right direction
-[*] --> 输入用户名和密码
-
-输入用户名和密码 --> 检查是否为空
-检查是否为空 --> 执行登录 : 不为空
-检查是否为空 --> 输入用户名和密码 : 为空
-执行登录 --> 返回当前页面: 登录成功
-执行登录 --> 输入用户名和密码 :登录失败
-
-返回当前页面 --> [*]
-@enduml
-```
-# 注册业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 输入基本信息
-
-输入基本信息 --> 检查是否为空
-检查是否为空 --> 输入基本信息 : 为空
-检查是否为空 --> 检查两次密码一致性 : 不为空
-
-检查两次密码一致性 --> 执行注册 : 一致
-检查两次密码一致性 --> 输入基本信息 : 不一致
-
-执行注册 --> 返回登录页面 : 注册成功
-执行注册 --> 输入基本信息 : 注册失败
-
-返回登录页面 --> [*]
-@enduml
-
-```
-# 用户编辑信息业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 获取用户信息
-
-获取用户信息 --> 弹出表单
-
-弹出表单 --> 检查用户输入
-
-检查用户输入 --> 执行修改
-
-执行修改 --> 返回当前页面: 修改成功
-执行修改 --> 弹出表单 : 修改失败
-返回当前页面 --> [*] 
-@enduml
-```
-# 智能陪聊业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 选择陪聊师 : 已登录
-
-登录注册 --> 选择陪聊师 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-选择陪聊师 --> 开始陪聊
-
-开始陪聊 --> [*] : 结束陪聊
-@enduml
-```
-# 普通聊天业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 开始陪聊 : 已登录
-
-登录注册 --> 开始陪聊 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-开始陪聊 --> [*] : 结束陪聊
-@enduml
-```
-# 用户评价业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 进入评价 : 已登录
-
-登录注册 --> 进入评价 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-进入评价 --> 输入评价内容
-
-输入评价内容 --> 保存退出
-
-保存退出 --> 返回当前页面 : 保存成功
-返回当前页面 --> [*]
-@enduml
-```
-# 查看报告业务
-```plantuml
-@startuml
-left to right direction
-[*] --> 获取用户信息
-获取用户信息 --> 点击我的报告
-点击我的报告 --> 展示用户相关报告
-展示用户相关报告 --> [*]
-@enduml
-```
-# 发布问卷业务
-```plantuml
-@startuml
-left to right direction
-[*] -->检查登录状态
-检查登录状态 --> 显示登录注册界面 : 用户未登录
-显示登录注册界面 --> 输入用户名和密码
-输入用户名和密码 --> 检查是否为空
-检查是否为空 --> 执行登录 : 不为空
-检查是否为空 --> 显示登录注册界面 : 为空
-执行登录 --> 跳转到已登录页面 : 登录成功
-执行登录 --> 显示登录注册界面 : 登录失败
-跳转到已登录页面 --> 查看问卷通知
-查看问卷通知 --> 显示问卷通知
-显示问卷通知 --> 发布问卷
-发布问卷 --> 检查用户身份
-检查用户身份 --> 提示权限不够 : 用户不是老师
-检查用户身份 --> 提示问卷已成功发布 : 用户是老师
-提示权限不够 --> [*]
-提示问卷已成功发布 --> [*]
-@enduml
-```
-# 使用漂流瓶业务
-```plantuml
-@startuml
-left to right direction
-[*] -->检查登录状态
-检查登录状态 --> 显示登录注册界面 : 用户未登录
-显示登录注册界面 --> 输入用户名和密码
-输入用户名和密码 --> 检查是否为空
-检查是否为空 --> 执行登录 : 不为空
-检查是否为空 --> 显示登录注册界面 : 为空
-执行登录 --> 跳转到已登录页面 : 登录成功
-执行登录 --> 显示登录注册界面 : 登录失败
-跳转到已登录页面 --> 选择操作
-选择操作 --> 扔漂流瓶 : 用户选择扔漂流瓶
-扔漂流瓶 --> 提示输入内容
-提示输入内容 --> 编写漂流瓶内容
-编写漂流瓶内容 --> 抛出漂流瓶
-抛出漂流瓶 --> 返回已登录页面
-跳转到已登录页面 --> 捞漂流瓶 : 用户选择捞漂流瓶
-捞漂流瓶 --> 检查条件
-检查条件 --> 成功捞上 : 条件满足
-检查条件 --> 打捞失败 : 条件不满足
-成功捞上 --> 返回已登录页面
-打捞失败 --> 返回已登录页面
-跳转到已登录页面 --> 查看我的漂流瓶 : 用户选择查看我的漂流瓶
-查看我的漂流瓶 --> 显示扔出的漂流瓶
-显示扔出的漂流瓶 --> 显示捞上的漂流瓶
-显示捞上的漂流瓶 --> 选择操作
-选择操作 --> 扔回捞上的漂流瓶 : 用户选择扔回捞上的漂流瓶
-扔回捞上的漂流瓶 --> 返回已登录页面
-@enduml
-```

+ 0 - 488
.history/docs-prod/schema_20241229140439.md

@@ -1,488 +0,0 @@
-# 简单版类图
-```plantuml
-@startuml
-class _User { 
-    + objectId: String 
-    + username: String 
-    + realname: String 
-    + password: String
-    + gender: String 
-    + age: Number 
-    + email: String
-    + avatar: String
-    + teacherId: String
-    + studentId: String
-    + identity: String
-    + school: String
-    + department: String
-}
-class ChatPartner {
-    + objectId: String
-    + name: String 
-    + expertise: String
-    + avatar: String 
-    + bio: String 
-}
-class ChatCompanion {
-    + objectId: String
-    + name: String
-    + avatar: String 
-    + bio: String 
-}
-class ChatRecord {
-    + objectId: String 
-    + title:String
-    + content:Array 
-    + user: Pointer<User> 
-    + chatpartner: Pointer<ChatPartner> 
-}
-class ChatEvaluate{
-    + objectId:String
-    + avater:String
-    + content:String
-    + rating:Number
-    + user: Pointer<User> 
-}
-
-class Survey {
-    + objectId: String
-    + link: String
-    + title: String
-    + audience: String
-    + publisher:String
-    + publishtime: String
-    + category: String
-}
-
-class DriftBottle {
-    + bottleID: String
-    + content: String
-    + username: String
-    + throwtime: String
-    + catcher: String
-    + catchtime: String
-    + status: String
-}
-Survey "1" -- "0..*" _User
-_User "1" -- "0..*" DriftBottle
-_User "*" --> "*" ChatEvaluate
-_User "1" --> "*" ChatRecord     
-ChatPartner "1" --> "*" ChatRecord 
-ChatCompanion "1" --> "*" ChatRecord      
-@enduml
-```
-
-
-# 时序图
-```plantuml
-@startuml
-actor 用户
-participant "专业陪聊师" as 专业陪聊师
-participant "普通陪聊师" as 普通陪聊师
-participant "聊天记录" as 聊天记录
-participant "报告" as 报告
-
-用户 -> 用户: 选择陪聊师()
-alt 选择专业陪聊师
-    用户 -> 专业陪聊师: 提供聊天()
-else 选择普通陪聊师
-    用户 -> 普通陪聊师: 提供聊天()
-end
-用户 -> 用户: 开始聊天()
-用户 -> 聊天记录: 总结聊天记录()
-聊天记录 -> 聊天记录: 获取聊天记录()
-
-聊天记录 -> 报告: 生成报告()
-报告 -> 用户: 返回分析报告
-
-@enduml
-```
-
-
-# 活动图
-```plantuml
-@startuml
-|用户|
-start
-:发送消息;
-|专业陪聊机器人|
-:回复消息;
-|用户|
-repeat
-if (继续聊天?) then (是)
-    |用户|
-    :发送消息;
-    |专业陪聊机器人|
-    :回复消息;
-else (否)
-    |管理员|
-    :记录消息;
-    stop
-endif
-repeat while (回复消息)
-@enduml
-
-```
-
-# //社区部分
-
-
-# 用例图
-```plantuml
-@startuml
-actor 用户
-
-
-rectangle "心理社区" {
-    用户 -- (使用心理普查)
-    用户 -- (使用漂流瓶)
-}
-rectangle "使用心理普查"{
-    用户 -- (填写问卷)
-    用户 -- (发布问卷)
-}
-rectangle "使用漂流瓶"{
-    用户 -- (扔漂流瓶)
-    用户 -- (捞漂流瓶)
-}
-
-@enduml
-```
-
-# 时序图
-
-```mermaid
-sequenceDiagram
-    participant User
-    participant System
-
-    User->>System: 访问系统
-    alt 用户未登录
-        System->>User: 显示登录注册界面
-        User->>System: 输入用户名和密码
-        alt 登录成功
-            System->>User: 跳转到已登录页面
-            User->>System: 查看问卷通知
-            System->>User: 显示问卷通知
-            User->>System: 发布问卷
-            alt 用户是老师
-                System->>User: 提示“问卷已成功发布”
-            else 用户不是老师
-                System->>User: 提示“权限不够”
-            end
-        else 登录失败
-            System->>User: 显示错误信息
-        end
-    else 用户已登录
-        System->>User: 跳转到已登录页面
-        User->>System: 查看问卷通知
-        System->>User: 显示问卷通知
-        User->>System: 发布问卷
-        alt 用户是老师
-            System->>User: 提示“问卷已成功发布”
-        else 用户不是老师
-            System->>User: 提示“权限不够”
-        end
-    end
-```
-```mermaid
-sequenceDiagram
-    participant User
-    participant System
-
-    User->>System: 访问系统
-    alt 用户未登录
-        System->>User: 显示登录注册界面
-        User->>System: 输入用户名和密码
-        alt 登录成功
-            System->>User: 跳转到已登录页面
-            User->>System: 扔漂流瓶
-            System->>User: 提示“请输入漂流瓶内容”
-            User->>System: 编写漂流瓶内容
-            System->>User: 抛出漂流瓶
-            User->>System: 捞漂流瓶
-            alt 条件满足
-                System->>User: 成功捞上漂流瓶
-            else 条件不满足
-                System->>User: 打捞失败
-            end
-            User->>System: 查看我的漂流瓶
-            System->>User: 显示扔出的漂流瓶
-            System->>User: 显示捞上的漂流瓶
-            User->>System: 扔回捞上的漂流瓶
-            System->>User: 扔回成功
-        else 登录失败
-            System->>User: 显示错误信息
-        end
-    else 用户已登录
-        System->>User: 跳转到已登录页面
-        User->>System: 扔漂流瓶
-        System->>User: 提示“请输入漂流瓶内容”
-        User->>System: 编写漂流瓶内容
-        System->>User: 抛出漂流瓶
-        User->>System: 捞漂流瓶
-        alt 条件满足
-            System->>User: 成功捞上漂流瓶
-        else 条件不满足
-            System->>User: 打捞失败
-        end
-        User->>System: 查看我的漂流瓶
-        System->>User: 显示扔出的漂流瓶
-        System->>User: 显示捞上的漂流瓶
-        User->>System: 扔回捞上的漂流瓶
-        System->>User: 扔回成功
-    end
-```
-
-
-# 活动图
-
-```mermaid
-graph TD;
-    A[开始] --> B{用户已登录?};
-    B -- 否 --> C[显示登录注册界面];
-    C --> D[输入用户名和密码];
-    D --> E{登录成功?};
-    E -- 是 --> N[跳转到已登录页面];
-    E -- 否 --> G[显示错误信息];
-   
-    B -- 是 --> N[跳转到已登录页面];
-    N --> O[查看问卷通知];
-    O --> P[显示问卷通知];
-    P --> Q[发布问卷];
-    Q --> R{用户是老师?};
-    R -- 是 --> S[提示“问卷已成功发布”];
-    R -- 否 --> T[提示“权限不够”];
-
-```
-```mermaid
-graph TD;
-    A[开始] --> B{用户已登录?};
-    B -- 否 --> C[显示登录注册界面];
-    C --> D[输入用户名和密码];
-    D --> E{登录成功?};
-    E -- 是 --> F[跳转到已登录页面];
-    E -- 否 --> G[显示错误信息];
-    F --> H[扔漂流瓶];
-    H --> I[提示“请输入漂流瓶内容”];
-    I --> J[编写漂流瓶内容];
-    J --> K[抛出漂流瓶];
-    K --> L[结束];
-
-    F --> M[捞漂流瓶];
-    M --> N{条件满足?};
-    N -- 是 --> O[成功捞上漂流瓶];
-    N -- 否 --> P[打捞失败];
-    O --> Q[结束];
-    P --> Q;
-
-    F --> R[查看我的漂流瓶];
-    R --> S[显示扔出的漂流瓶];
-    S --> T[显示捞上的漂流瓶];
-    T --> U{扔回捞上的漂流瓶?};
-    U -- 是 --> V[扔回成功];
-    U -- 否 --> W[结束];
-    V --> W;
-```
-
-
-
-
-# 状态图
-```mermaid
-stateDiagram-v2
-    [*] --> 未登录
-    未登录 --> 登录 : 用户尝试访问系统
-    登录 --> 已登录 : 用户成功登录
-    已登录 --> 查看问卷通知 : 用户选择查看问卷通知
-    已登录 --> 发布问卷 : 用户选择发布问卷
-    发布问卷 --> 权限不够 : 用户不是老师
-    发布问卷 --> 问卷已成功发布 : 用户是老师
-    
-```
-
-```mermaid
-stateDiagram-v2
-    [*] --> 未登录
-    未登录 --> 登录 : 用户尝试访问系统
-    登录 --> 已登录 : 用户成功登录
-    已登录 --> 扔漂流瓶 : 用户选择扔漂流瓶
-    已登录 --> 捞漂流瓶 : 用户选择捞漂流瓶
-    已登录 --> 查看我的漂流瓶 : 用户选择查看我的漂流瓶
-    扔漂流瓶 --> 编写内容 : 用户开始编写漂流瓶内容
-    编写内容 --> 抛出漂流瓶 : 用户完成编写
-    捞漂流瓶 --> 成功捞上 : 条件满足
-    捞漂流瓶 --> 打捞失败 : 条件不满足
-    查看我的漂流瓶 --> 查看扔出的漂流瓶 : 用户查看自己扔出的漂流瓶
-    查看我的漂流瓶 --> 查看捞上的漂流瓶 : 用户查看捞上的漂流瓶
-    查看捞上的漂流瓶 --> 扔回漂流瓶 : 用户选择扔回捞上的漂流瓶
-```
-# 状态图
-## 登录业务
-```plantuml
-@startuml
-left to right direction
-[*] --> 输入用户名和密码
-
-输入用户名和密码 --> 检查是否为空
-检查是否为空 --> 执行登录 : 不为空
-检查是否为空 --> 输入用户名和密码 : 为空
-执行登录 --> 返回当前页面: 登录成功
-执行登录 --> 输入用户名和密码 :登录失败
-
-返回当前页面 --> [*]
-@enduml
-```
-## 注册业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 输入基本信息
-
-输入基本信息 --> 检查是否为空
-检查是否为空 --> 输入基本信息 : 为空
-检查是否为空 --> 检查两次密码一致性 : 不为空
-
-检查两次密码一致性 --> 执行注册 : 一致
-检查两次密码一致性 --> 输入基本信息 : 不一致
-
-执行注册 --> 返回登录页面 : 注册成功
-执行注册 --> 输入基本信息 : 注册失败
-
-返回登录页面 --> [*]
-@enduml
-
-```
-## 用户编辑信息业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 获取用户信息
-
-获取用户信息 --> 弹出表单
-
-弹出表单 --> 检查用户输入
-
-检查用户输入 --> 执行修改
-
-执行修改 --> 返回当前页面: 修改成功
-执行修改 --> 弹出表单 : 修改失败
-返回当前页面 --> [*] 
-@enduml
-```
-## 智能陪聊业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 选择陪聊师 : 已登录
-
-登录注册 --> 选择陪聊师 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-选择陪聊师 --> 开始陪聊
-
-开始陪聊 --> [*] : 结束陪聊
-@enduml
-```
-## 普通聊天业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 开始陪聊 : 已登录
-
-登录注册 --> 开始陪聊 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-开始陪聊 --> [*] : 结束陪聊
-@enduml
-```
-## 用户评价业务
-```plantuml
-@startuml
-left to right direction
-
-[*] --> 检查用户是否登录注册
-
-检查用户是否登录注册 --> 登录注册 : 未登录
-检查用户是否登录注册 --> 进入评价 : 已登录
-
-登录注册 --> 进入评价 : 登录/注册成功
-登录注册 --> [*] : 登录/注册失败
-
-进入评价 --> 输入评价内容
-
-输入评价内容 --> 保存退出
-
-保存退出 --> [*]:保存成功
-保存退出 --> 输入评价内容: 保存失败
-@enduml
-```
-## 查看报告业务
-```plantuml
-@startuml
-left to right direction
-[*] --> 获取用户信息
-获取用户信息 --> 点击我的报告
-点击我的报告 --> 展示用户相关报告
-展示用户相关报告 --> [*]
-@enduml
-```
-## 发布问卷业务
-```plantuml
-@startuml
-left to right direction
-[*] -->检查登录状态
-检查登录状态 --> 显示登录注册界面 : 用户未登录
-显示登录注册界面 --> 执行登录
-执行登录 --> 跳转到已登录页面 : 登录成功
-执行登录 --> 显示登录注册界面 : 登录失败
-跳转到已登录页面 --> 查看问卷通知
-查看问卷通知 --> 显示问卷通知
-跳转到已登录页面--> 发布问卷
-发布问卷 --> 检查用户身份
-检查用户身份 --> 提示权限不够 : 用户不是老师
-检查用户身份 --> 提示问卷已成功发布 : 用户是老师
-显示问卷通知 --> [*]
-提示权限不够 --> [*]
-提示问卷已成功发布 --> [*]
-@enduml
-```
-## 使用漂流瓶业务
-```plantuml
-@startuml
-left to right direction
-[*] -->检查登录状态
-检查登录状态 --> 显示登录注册界面 : 用户未登录
-显示登录注册界面 --> 执行登录
-执行登录 --> 跳转到已登录页面 : 登录成功
-执行登录 --> 显示登录注册界面 : 登录失败
-跳转到已登录页面 --> 选择操作
-选择操作 --> 扔漂流瓶 : 用户选择扔漂流瓶
-扔漂流瓶 -->  编写漂流瓶内容
-编写漂流瓶内容 --> 抛出漂流瓶
-抛出漂流瓶 --> 返回已登录页面
-跳转到已登录页面 --> 捞漂流瓶 : 用户选择捞漂流瓶
-捞漂流瓶 --> 检查条件
-检查条件 --> 成功捞上 : 条件满足
-检查条件 --> 打捞失败 : 条件不满足
-成功捞上 --> 返回已登录页面
-打捞失败 --> 返回已登录页面
-跳转到已登录页面 --> 查看我的漂流瓶 : 用户选择查看我的漂流瓶
-查看我的漂流瓶 --> 显示扔出的漂流瓶
-查看我的漂流瓶 --> 显示捞上的漂流瓶
-显示扔出的漂流瓶 --> 选择操作
-显示捞上的漂流瓶 --> 选择操作
-选择操作 --> 扔回捞上的漂流瓶 : 用户选择扔回捞上的漂流瓶
-扔回捞上的漂流瓶 --> 返回已登录页面
-@enduml
-```

+ 0 - 148
.history/soul-app/angular_20241221201127.json

@@ -1,148 +0,0 @@
-{
-  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
-  "version": 1,
-  "newProjectRoot": "projects",
-  "projects": {
-    "app": {
-      "projectType": "application",
-      "schematics": {
-        "@ionic/angular-toolkit:page": {
-          "styleext": "scss",
-          "standalone": true
-        }
-      },
-      "root": "",
-      "sourceRoot": "src",
-      "prefix": "app",
-      "architect": {
-        "build": {
-          "builder": "@angular-devkit/build-angular:browser",
-          "options": {
-            "outputPath": "www",
-            "index": "src/index.html",
-            "main": "src/main.ts",
-            "polyfills": "src/polyfills.ts",
-            "tsConfig": "tsconfig.app.json",
-            "inlineStyleLanguage": "scss",
-            "assets": [
-              {
-                "glob": "**/*",
-                "input": "src/assets",
-                "output": "assets",
-              }
-            ],
-            "styles": ["src/global.scss", "src/theme/variables.scss"],
-            "scripts": []
-          },
-          "configurations": {
-            "production": {
-              "budgets": [
-                {
-                  "type": "initial",
-                  "maximumWarning": "2mb",
-                  "maximumError": "5mb"
-                },
-                {
-                  "type": "anyComponentStyle",
-                  "maximumWarning": "2kb",
-                  "maximumError": "4kb"
-                }
-              ],
-              "fileReplacements": [
-                {
-                  "replace": "src/environments/environment.ts",
-                  "with": "src/environments/environment.prod.ts"
-                }
-              ],
-              "outputHashing": "all"
-            },
-            "development": {
-              "buildOptimizer": false,
-              "optimization": false,
-              "vendorChunk": true,
-              "extractLicenses": false,
-              "sourceMap": true,
-              "namedChunks": true
-            },
-            "ci": {
-              "progress": false
-            }
-          },
-          "defaultConfiguration": "production"
-        },
-        "serve": {
-          "builder": "@angular-devkit/build-angular:dev-server",
-          "configurations": {
-            "production": {
-              "buildTarget": "app:build:production"
-            },
-            "development": {
-              "buildTarget": "app:build:development"
-            },
-            "ci": {
-              "progress": false
-            }
-          },
-          "defaultConfiguration": "development"
-        },
-        "extract-i18n": {
-          "builder": "@angular-devkit/build-angular:extract-i18n",
-          "options": {
-            "buildTarget": "app:build"
-          }
-        },
-        "test": {
-          "builder": "@angular-devkit/build-angular:karma",
-          "options": {
-            "main": "src/test.ts",
-            "polyfills": "src/polyfills.ts",
-            "tsConfig": "tsconfig.spec.json",
-            "karmaConfig": "karma.conf.js",
-            "inlineStyleLanguage": "scss",
-            "assets": [
-              {
-                "glob": "**/*",
-                "input": "src/assets",
-                "output": "assets"
-              }
-            ],
-            "styles": ["src/global.scss", "src/theme/variables.scss"],
-            "scripts": []
-          },
-          "configurations": {
-            "ci": {
-              "progress": false,
-              "watch": false
-            }
-          }
-        },
-        "lint": {
-          "builder": "@angular-eslint/builder:lint",
-          "options": {
-            "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
-          }
-        }
-      }
-    }
-  },
-  "cli": {
-    "schematicCollections": [
-      "@ionic/angular-toolkit"
-    ],
-    "analytics": false
-  },
-  "schematics": {
-    "@ionic/angular-toolkit:component": {
-      "styleext": "scss"
-    },
-    "@ionic/angular-toolkit:page": {
-      "styleext": "scss"
-    },
-    "@angular-eslint/schematics:application": {
-      "setParserOptionsProject": true
-    },
-    "@angular-eslint/schematics:library": {
-      "setParserOptionsProject": true
-    }
-  }
-}

+ 0 - 148
.history/soul-app/angular_20241223231307.json

@@ -1,148 +0,0 @@
-{
-  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
-  "version": 1,
-  "newProjectRoot": "projects",
-  "projects": {
-    "app": {
-      "projectType": "application",
-      "schematics": {
-        "@ionic/angular-toolkit:page": {
-          "styleext": "scss",
-          "standalone": true
-        }
-      },
-      "root": "",
-      "sourceRoot": "src",
-      "prefix": "app",
-      "architect": {
-        "build": {
-          "builder": "@angular-devkit/build-angular:browser",
-          "options": {
-            "outputPath": "www",
-            "index": "src/index.html",
-            "main": "src/main.ts",
-            "polyfills": "src/polyfills.ts",
-            "tsConfig": "tsconfig.app.json",
-            "inlineStyleLanguage": "scss",
-            "assets": [
-              {
-                "glob": "**/*",
-                "input": "src/assets",
-                "output": "assets"
-              }
-            ],
-            "styles": ["src/global.scss", "src/theme/variables.scss"],
-            "scripts": []
-          },
-          "configurations": {
-            "production": {
-              "budgets": [
-                {
-                  "type": "initial",
-                  "maximumWarning": "2mb",
-                  "maximumError": "5mb"
-                },
-                {
-                  "type": "anyComponentStyle",
-                  "maximumWarning": "2kb",
-                  "maximumError": "4kb"
-                }
-              ],
-              "fileReplacements": [
-                {
-                  "replace": "src/environments/environment.ts",
-                  "with": "src/environments/environment.prod.ts"
-                }
-              ],
-              "outputHashing": "all"
-            },
-            "development": {
-              "buildOptimizer": false,
-              "optimization": false,
-              "vendorChunk": true,
-              "extractLicenses": false,
-              "sourceMap": true,
-              "namedChunks": true
-            },
-            "ci": {
-              "progress": false
-            }
-          },
-          "defaultConfiguration": "production"
-        },
-        "serve": {
-          "builder": "@angular-devkit/build-angular:dev-server",
-          "configurations": {
-            "production": {
-              "buildTarget": "app:build:production"
-            },
-            "development": {
-              "buildTarget": "app:build:development"
-            },
-            "ci": {
-              "progress": false
-            }
-          },
-          "defaultConfiguration": "development"
-        },
-        "extract-i18n": {
-          "builder": "@angular-devkit/build-angular:extract-i18n",
-          "options": {
-            "buildTarget": "app:build"
-          }
-        },
-        "test": {
-          "builder": "@angular-devkit/build-angular:karma",
-          "options": {
-            "main": "src/test.ts",
-            "polyfills": "src/polyfills.ts",
-            "tsConfig": "tsconfig.spec.json",
-            "karmaConfig": "karma.conf.js",
-            "inlineStyleLanguage": "scss",
-            "assets": [
-              {
-                "glob": "**/*",
-                "input": "src/assets",
-                "output": "assets"
-              }
-            ],
-            "styles": ["src/global.scss", "src/theme/variables.scss"],
-            "scripts": []
-          },
-          "configurations": {
-            "ci": {
-              "progress": false,
-              "watch": false
-            }
-          }
-        },
-        "lint": {
-          "builder": "@angular-eslint/builder:lint",
-          "options": {
-            "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
-          }
-        }
-      }
-    }
-  },
-  "cli": {
-    "schematicCollections": [
-      "@ionic/angular-toolkit"
-    ],
-    "analytics": false
-  },
-  "schematics": {
-    "@ionic/angular-toolkit:component": {
-      "styleext": "scss"
-    },
-    "@ionic/angular-toolkit:page": {
-      "styleext": "scss"
-    },
-    "@angular-eslint/schematics:application": {
-      "setParserOptionsProject": true
-    },
-    "@angular-eslint/schematics:library": {
-      "setParserOptionsProject": true
-    }
-  }
-}

+ 0 - 148
.history/soul-app/angular_20241223231643.json

@@ -1,148 +0,0 @@
-{
-  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
-  "version": 1,
-  "newProjectRoot": "projects",
-  "projects": {
-    "app": {
-      "projectType": "application",
-      "schematics": {
-        "@ionic/angular-toolkit:page": {
-          "styleext": "scss",
-          "standalone": true
-        }
-      },
-      "root": "",
-      "sourceRoot": "src",
-      "prefix": "app",
-      "architect": {
-        "build": {
-          "builder": "@angular-devkit/build-angular:browser",
-          "options": {
-            "outputPath": "www",
-            "index": "src/index.html",
-            "main": "src/main.ts",
-            "polyfills": "src/polyfills.ts",
-            "tsConfig": "tsconfig.app.json",
-            "inlineStyleLanguage": "scss",
-            "assets": [
-              {
-                "glob": "**/*",
-                "input": "src/assets",
-                "output": "assets"
-              }
-            ],
-            "styles": ["src/global.scss", "src/theme/variables.scss"],
-            "scripts": []
-          },
-          "configurations": {
-            "production": {
-              "budgets": [
-                {
-                  "type": "initial",
-                  "maximumWarning": "2mb",
-                  "maximumError": "5mb"
-                },
-                {
-                  "type": "anyComponentStyle",
-                  "maximumWarning": "2kb",
-                  "maximumError": "4kb"
-                }
-              ],
-              "fileReplacements": [
-                {
-                  "replace": "src/environments/environment.ts",
-                  "with": "src/environments/environment.prod.ts"
-                }
-              ],
-              "outputHashing": "all"
-            },
-            "development": {
-              "buildOptimizer": false,
-              "optimization": false,
-              "vendorChunk": true,
-              "extractLicenses": false,
-              "sourceMap": true,
-              "namedChunks": true
-            },
-            "ci": {
-              "progress": false
-            }
-          },
-          "defaultConfiguration": "production"
-        },
-        "serve": {
-          "builder": "@angular-devkit/build-angular:dev-server",
-          "configurations": {
-            "production": {
-              "buildTarget": "app:build:production"
-            },
-            "development": {
-              "buildTarget": "app:build:development"
-            },
-            "ci": {
-              
-            }
-          },
-          "defaultConfiguration": "development"
-        },
-        "extract-i18n": {
-          "builder": "@angular-devkit/build-angular:extract-i18n",
-          "options": {
-            "buildTarget": "app:build"
-          }
-        },
-        "test": {
-          "builder": "@angular-devkit/build-angular:karma",
-          "options": {
-            "main": "src/test.ts",
-            "polyfills": "src/polyfills.ts",
-            "tsConfig": "tsconfig.spec.json",
-            "karmaConfig": "karma.conf.js",
-            "inlineStyleLanguage": "scss",
-            "assets": [
-              {
-                "glob": "**/*",
-                "input": "src/assets",
-                "output": "assets"
-              }
-            ],
-            "styles": ["src/global.scss", "src/theme/variables.scss"],
-            "scripts": []
-          },
-          "configurations": {
-            "ci": {
-              "progress": false,
-              "watch": false
-            }
-          }
-        },
-        "lint": {
-          "builder": "@angular-eslint/builder:lint",
-          "options": {
-            "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
-          }
-        }
-      }
-    }
-  },
-  "cli": {
-    "schematicCollections": [
-      "@ionic/angular-toolkit"
-    ],
-    "analytics": false
-  },
-  "schematics": {
-    "@ionic/angular-toolkit:component": {
-      "styleext": "scss"
-    },
-    "@ionic/angular-toolkit:page": {
-      "styleext": "scss"
-    },
-    "@angular-eslint/schematics:application": {
-      "setParserOptionsProject": true
-    },
-    "@angular-eslint/schematics:library": {
-      "setParserOptionsProject": true
-    }
-  }
-}

+ 0 - 69
.history/soul-app/package_20241223220848.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^19.0.5",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223225228.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^18.0.5",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223225256.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^18.0.0",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223225311.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^18.0.5",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223225330.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^18.2.13",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223225505.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^19.0.0",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223225522.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^20.0.0",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223225535.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^19.0.5",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223225726.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^18.0.0",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223225943.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^19.0.5",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223230048.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^18.0.0",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 69
.history/soul-app/package_20241223230317.json

@@ -1,69 +0,0 @@
-{
-  "name": "soul-app",
-  "version": "0.0.1",
-  "author": "Ionic Framework",
-  "homepage": "https://ionicframework.com/",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "watch": "ng build --watch --configuration development",
-    "test": "ng test",
-    "lint": "ng lint"
-  },
-  "private": true,
-  "dependencies": {
-    "@angular/animations": "^19.0.5",
-    "@angular/common": "^19.0.5",
-    "@angular/compiler": "^19.0.5",
-    "@angular/core": "^19.0.5",
-    "@angular/forms": "^19.0.5",
-    "@angular/platform-browser": "^19.0.5",
-    "@angular/platform-browser-dynamic": "^19.0.5",
-    "@angular/router": "^19.0.5",
-    "@capacitor/app": "6.0.2",
-    "@capacitor/core": "6.2.0",
-    "@capacitor/haptics": "6.0.2",
-    "@capacitor/keyboard": "6.0.3",
-    "@capacitor/status-bar": "6.0.2",
-    "@ionic/angular": "^8.0.0",
-    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
-    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
-    "@tensorflow/tfjs-converter": "^4.22.0",
-    "@tensorflow/tfjs-core": "^4.22.0",
-    "fmode-ng": "^0.0.63",
-    "ionicons": "^7.2.1",
-    "rxjs": "~7.8.0",
-    "tslib": "^2.3.0",
-    "zone.js": "~0.15.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-angular": "^19.0.6",
-    "@angular-eslint/builder": "^18.0.0",
-    "@angular-eslint/eslint-plugin": "^18.0.0",
-    "@angular-eslint/eslint-plugin-template": "^18.0.0",
-    "@angular-eslint/schematics": "^18.0.0",
-    "@angular-eslint/template-parser": "^18.0.0",
-    "@angular/cli": "^19.0.6",
-    "@angular/compiler-cli": "^19.0.5",
-    "@angular/language-service": "^19.0.5",
-    "@capacitor/cli": "6.2.0",
-    "@ionic/angular-toolkit": "^11.0.1",
-    "@types/jasmine": "~5.1.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.57.0",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.1",
-    "eslint-plugin-prefer-arrow": "1.2.2",
-    "jasmine-core": "~5.1.0",
-    "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~6.4.0",
-    "karma-chrome-launcher": "~3.2.0",
-    "karma-coverage": "~2.2.0",
-    "karma-jasmine": "~5.1.0",
-    "karma-jasmine-html-reporter": "~2.1.0",
-    "typescript": "~5.6.3"
-  },
-  "description": "An Ionic project"
-}

+ 0 - 0
.history/soul-app/src/app/app.component_20241210113940.scss


+ 0 - 12
.history/soul-app/src/app/app.component_20241210113940.ts

@@ -1,12 +0,0 @@
-import { Component } from '@angular/core';
-import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
-
-@Component({
-  selector: 'app-root',
-  templateUrl: 'app.component.html',
-  standalone: true,
-  imports: [IonApp, IonRouterOutlet],
-})
-export class AppComponent {
-  constructor() {}
-}

+ 0 - 23
.history/soul-app/src/app/app.component_20241218204121.ts

@@ -1,23 +0,0 @@
-import { Component } from '@angular/core';
-import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
-import { RouterModule, Routes } from '@angular/router';
-import { PagePsysurveyComponent } from './page-psysurvey/page-psysurvey.component'; // 替换为你的实际路径
-import { PagePublishsurveyComponent } from './page-publishsurvey/page-publishsurvey.component'; // 替换为你的实际路径
-
-
-const routes: Routes = [
-  { path: '', redirectTo: 'tabs/tab1', pathMatch: 'full' },
-  { path: 'tabs/tab1', component: PagePsysurveyComponent },
-  { path: 'tabs/publishsurvey', component: PagePublishsurveyComponent },
-  // 添加其他路由
-];
-
-@Component({
-  selector: 'app-root',
-  templateUrl: 'app.component.html',
-  standalone: true,
-  imports: [IonApp, IonRouterOutlet],
-})
-export class AppComponent {
-  constructor() {}
-}

+ 0 - 25
.history/soul-app/src/app/app.component_20241218211037.ts

@@ -1,25 +0,0 @@
-import { Component } from '@angular/core';
-import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
-import { RouterModule, Routes,provideRouter } from '@angular/router';
-import { PagePsysurveyComponent } from './page-psysurvey/page-psysurvey.component'; // 替换为你的实际路径
-import { PagePublishsurveyComponent } from './page-publishsurvey/page-publishsurvey.component'; // 替换为你的实际路径
-
-
-const routes: Routes = [
-  { path: '', redirectTo: 'tabs/tab1', pathMatch: 'full' },
-  { path: 'tabs/tab1', component: PagePsysurveyComponent },
-  { path: 'tabs/publishsurvey', component: PagePublishsurveyComponent },
-  // 添加其他路由
-];
-
-@Component({
-  selector: 'app-root',
-  templateUrl: 'app.component.html',
-  standalone: true,
-  imports: [IonApp, IonRouterOutlet, RouterModule],
-  providers: [provideRouter(routes)] 
-})
-
-export class AppComponent {
-  constructor() {}
-}

+ 0 - 25
.history/soul-app/src/app/app.component_20241218211138.ts

@@ -1,25 +0,0 @@
-import { Component } from '@angular/core';
-import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
-import { RouterModule, Routes,provideRouter } from '@angular/router';
-import { PagePsysurveyComponent } from './page-psysurvey/page-psysurvey.component'; // 替换为你的实际路径
-import { PagePublishsurveyComponent } from './page-publishsurvey/page-publishsurvey.component'; // 替换为你的实际路径
-
-
-const routes: Routes = [
-  { path: '', redirectTo: 'tabs/tab1', pathMatch: 'full' },
-  { path: 'tabs/tab1', component: PagePsysurveyComponent },
-  { path: 'tabs/publishsurvey', component: PagePublishsurveyComponent },
-  // 添加其他路由
-];
-
-@Component({
-  selector: 'app-root',
-  templateUrl: 'app.component.html',
-  standalone: true,
-  imports: [IonApp, IonRouterOutlet, RouterModule],
-  
-})
-
-export class AppComponent {
-  constructor() {}
-}

+ 0 - 25
.history/soul-app/src/app/app.component_20241218212534.ts

@@ -1,25 +0,0 @@
-import { Component } from '@angular/core';
-import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
-import { RouterModule, Routes,provideRouter } from '@angular/router';
-import { PagePsysurveyComponent } from './page-psysurvey/page-psysurvey.component'; // 替换为你的实际路径
-import { PagePublishsurveyComponent } from './page-publishsurvey/page-publishsurvey.component'; // 替换为你的实际路径
-
-
-const routes: Routes = [
-  { path: '', redirectTo: 'tabs/tab1', pathMatch: 'full' },
-  { path: 'tabs/tab1', component: PagePsysurveyComponent },
-  { path: 'tabs/publishsurvey', component: PagePublishsurveyComponent },
-  // 添加其他路由
-];
-
-@Component({
-  selector: 'app-root',
-  templateUrl: 'app.component.html',
-  standalone: true,
-  imports: [IonApp, IonRouterOutlet, RouterModule],
- 
-})
-
-export class AppComponent {
-  constructor() {}
-}

+ 0 - 4
.history/soul-app/src/app/app.component_20241224202641.scss

@@ -1,4 +0,0 @@
-.transparent-modal {
-    --background: rgba(0, 0, 0, 0.5); /* 设置弹窗背景为半透明 */
-    backdrop-filter: blur(10px); /* 添加模糊效果 */
-  }

+ 0 - 0
.history/soul-app/src/app/app.component_20241224203149.scss


+ 0 - 29
.history/soul-app/src/app/app.component_20241227155753.ts

@@ -1,29 +0,0 @@
-import { Component } from '@angular/core';
-import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
-import { RouterModule, Routes} from '@angular/router';
-import { PagePsysurveyComponent } from './page-psysurvey/page-psysurvey.component'; // 替换为你的实际路径
-import { PagePublishsurveyComponent } from './page-publishsurvey/page-publishsurvey.component'; // 替换为你的实际路径
-import { MyDriftBottleComponent } from './my-drift-bottle/my-drift-bottle.component';
-import { ThrowDriftBottleComponent } from './throw-drift-bottle/throw-drift-bottle.component';
-
-
-const routes: Routes = [
-  { path: '', redirectTo: 'tabs/tab1', pathMatch: 'full' },
-  { path: 'tabs/tab1', component: PagePsysurveyComponent },
-  { path: 'tabs/publishsurvey', component: PagePublishsurveyComponent },
-  { path:'tabs/throw-drift-bottle',component:ThrowDriftBottleComponent},
-  { path:'tabs/my-drift-bottle',component:MyDriftBottleComponent}
-  // 添加其他路由
-];
-
-@Component({
-  selector: 'app-root',
-  templateUrl: 'app.component.html',
-  standalone: true,
-  imports: [IonApp, IonRouterOutlet, RouterModule],
- 
-})
-
-export class AppComponent {
-  constructor() {}
-}

+ 0 - 24
.history/soul-app/src/app/app.routes_20241224091902.ts

@@ -1,24 +0,0 @@
-import { Routes } from '@angular/router';
-
-export const routes: Routes = [
-    {
-    path: '',
-    loadChildren: () => import('./tabs/tabs.routes').then((m) => m.routes),
-    },
-    // 聊天模块
-   {
-    path: "chat/session/role/:roleId",
-    loadComponent: () => import('./test-chat-panel/test-chat-panel.component').then(m => m.TestChatPanelComponent),
-    runGuardsAndResolvers: "always",
-},
-{
-    path: "chat/session/chat/:chatId",
-    loadComponent: () => import('./test-chat-panel/test-chat-panel.component').then(m => m.TestChatPanelComponent),
-    runGuardsAndResolvers: "always",
-},
-{
-    path: 'chat/pro/chat/:chatId',
-    redirectTo: '/chat/session/chat/:chatId',
-    pathMatch: 'full'
-  },
-];

+ 0 - 29
.history/soul-app/src/app/app.routes_20241227160011.ts

@@ -1,29 +0,0 @@
-import { Routes } from '@angular/router';
-
-export const routes: Routes = [
-  {
-    path: '',
-    loadChildren: () => import('./tabs/tabs.routes').then((m) => m.routes),
-  },
-  // 聊天模块
-  {
-    path: "chat/session/role/:roleId",
-    loadComponent: () => import('./test-chat-panel/test-chat-panel.component').then(m => m.TestChatPanelComponent),
-    runGuardsAndResolvers: "always",
-  },
-  {
-    path: "chat/session/chat/:chatId",
-    loadComponent: () => import('./test-chat-panel/test-chat-panel.component').then(m => m.TestChatPanelComponent),
-    runGuardsAndResolvers: "always",
-  },
-  {
-    path: 'chat/pro/chat/:chatId',
-    redirectTo: '/chat/session/chat/:chatId',
-    pathMatch: 'full'
-  },
-  // 添加我的漂流瓶路由
-  {
-    path: 'tabs/my-drift-bottle',
-    loadComponent: () => import('./my-drift-bottle/my-drift-bottle.component').then(m => m.MyDriftBottleComponent)
-  },
-];

+ 0 - 33
.history/soul-app/src/app/app.routes_20241228140107.ts

@@ -1,33 +0,0 @@
-import { Routes } from '@angular/router';
-
-export const routes: Routes = [
-  {
-    path: '',
-    loadChildren: () => import('./tabs/tabs.routes').then((m) => m.routes),
-  },
-  // 聊天模块
-  {
-    path: "chat/session/role/:roleId",
-    loadComponent: () => import('./test-chat-panel/test-chat-panel.component').then(m => m.TestChatPanelComponent),
-    runGuardsAndResolvers: "always",
-  },
-  {
-    path: "chat/session/chat/:chatId",
-    loadComponent: () => import('./test-chat-panel/test-chat-panel.component').then(m => m.TestChatPanelComponent),
-    runGuardsAndResolvers: "always",
-  },
-  {
-    path: 'chat/pro/chat/:chatId',
-    redirectTo: '/chat/session/chat/:chatId',
-    pathMatch: 'full'
-  },
-  // 添加我的漂流瓶路由
-  {
-    path: 'tabs/my-drift-bottle',
-    loadComponent: () => import('./my-drift-bottle/my-drift-bottle.component').then(m => m.MyDriftBottleComponent)
-  },
-  {
-    path: 'tabs/page-updating',
-    loadComponent: () => import('./page-updating/page-updating.component').then(m => m.PageUpdatingComponent)
-  }
-];

+ 0 - 35
.history/soul-app/src/app/consult-picture/consult-picture.component_20241210113940.html

@@ -1,35 +0,0 @@
-<ion-header [translucent]="true">
-  <ion-toolbar>
-    <ion-title>
-      示例:logo生成{{imagineWork?.progress || 0}}
-    </ion-title> 
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <!-- 生成提示词 -->
-  <ion-textarea [value]="userPrompt" (ionInput)="promptInput($event)" placeholder="图片提示词" autoGrow="true"></ion-textarea>
-  <ion-button (click)="createImage()" expand="block">生成logo</ion-button>
-  <!--logo画面提示词-->
-
-  <div>
-    {{PictureDescResult}}
-  </div>
-
-  <!-- 生成结果 -->
-  @if(images.length) {
-    @for(imageUrl of images;track imageUrl){
-      <img [src]="imageUrl" alt="" srcset="">
-    }
-  }
-  <!-- 生成状态 -->
-  @if(!images.length){
-    @if(imagineWork){
-      <h1>生成中</h1>
-    }
-    @if(!imagineWork){
-      <h1>未开始</h1>
-    }
-  }
-
-</ion-content>

+ 0 - 67
.history/soul-app/src/app/consult-picture/consult-picture.component_20241210113940.ts

@@ -1,67 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
-import { IonTextarea, IonButton,IonInput } from "@ionic/angular/standalone";
-import { DalleOptions, ImagineWork,FmodeChatCompletion } from 'fmode-ng';
-
-@Component({
-  selector: 'app-consult-picture',
-  templateUrl: './consult-picture.component.html',
-  styleUrls: ['./consult-picture.component.scss'],
-  standalone: true,
-  imports: [
-    IonHeader, IonToolbar, IonTitle, IonContent, 
-    IonButton,IonInput,
-    IonTextarea
-  ],
-})
-export class ConsultPictureComponent  implements OnInit {
-
-  userPrompt:string = "app名称为...的logo,一个爱心,聊天气泡,易于识别,颜色方案应体现温暖感和清晰感,建议使用...色和...色等色调,极具美观性,可爱风格"
-  promptInput(ev:any){
-    this.userPrompt = ev.detail.value;
-  }
-  imagineWork:ImagineWork|undefined
-  images:Array<string> = []
-  constructor(
-  ){
-    // 示例任务,自己生成图片后请存储新的ID
-    this.imagineWork = new ImagineWork("lpJGiFwWeA");
-    this.imagineWork.fetchTask().then(work=>{
-      this.images = this.imagineWork?.images || [];
-    })
-  }
-  PictureDescResult:string = `` // 画面描述结果
-  async createImage(){
-    this.imagineWork = new ImagineWork();
-    //文本生成
-    let PromptTemplate = `请你作为一名专业的设计师,结合logo的基础设计元素帮我设计一个贴切我项目的logo
-    要求如下:
-    ${this.userPrompt}
-    `
-    let completion = new FmodeChatCompletion([
-      {role:"system",content:""},
-      {role:"user",content:PromptTemplate}
-    ])
-    completion.sendCompletion().subscribe((message:any)=>{
-      // 打印消息体
-      console.log(message.content)
-      // 赋值消息内容给组件内属性
-      this.PictureDescResult = message.content
-      if(message?.complete){ // 判断message为完成状态,则设置isComplete为完成
-      //图片生成
-      let PicturePrompt = `${this.PictureDescResult}`
-      //\n风格:科技风。画面不带任何文字。突出色彩。
-      let options:DalleOptions = {prompt:PicturePrompt}
-      this.imagineWork?.draw(options).subscribe(work=>{
-        console.log("imagineWork",work?.toJSON())
-        console.log("images",work?.get("images"))
-        if(work?.get("images")?.length){
-          this.images = work?.get("images");
-        }
-      })
-    }
-  })
-}
-    ngOnInit() {
-    }
-}

+ 0 - 67
.history/soul-app/src/app/consult-picture/consult-picture.component_20241216083858.ts

@@ -1,67 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
-import { IonTextarea, IonButton,IonInput } from "@ionic/angular/standalone";
-import { DalleOptions, ImagineWork,FmodeChatCompletion } from 'fmode-ng';
-
-@Component({
-  selector: 'app-consult-picture',
-  templateUrl: './consult-picture.component.html',
-  styleUrls: ['./consult-picture.component.scss'],
-  standalone: true,
-  imports: [
-    IonHeader, IonToolbar, IonTitle, IonContent, 
-    IonButton,IonInput,
-    IonTextarea
-  ],
-})
-export class ConsultPictureComponent  implements OnInit {
-
-  userPrompt:string = "app名称为...的logo,一个爱心,聊天气泡,易于识别,颜色方案应体现温暖感和清晰感,建议使用...色和...色等色调,极具美观性,可爱风格"
-  promptInput(ev:any){
-    this.userPrompt = ev.detail.value;
-  }
-  imagineWork:ImagineWork|undefined
-  images:Array<string> = []
-  constructor(
-  ){
-    // 示例任务,自己生成图片后请存储新的ID
-    this.imagineWork = new ImagineWork("lpJGiFwWeA");
-    this.imagineWork.fetchTask().then(work=>{
-      this.images = this.imagineWork?.images || [];
-    })
-  }
-  PictureDescResult:string = `` // 画面描述结果
-  async createImage(){
-    this.imagineWork = new ImagineWork();
-    //文本生成
-    let PromptTemplate = `请你作为一名专业的设计师,结合logo的基础设计元素帮我设计一个贴切我项目的logo
-    要求如下:
-    ${this.userPrompt}
-    `
-    let completion = new FmodeChatCompletion([
-      {role:"system",content:""},
-      {role:"user",content:PromptTemplate}
-    ])
-    completion.sendCompletion().subscribe((message:any)=>{
-      // 打印消息体
-      console.log(message.content)
-      // 赋值消息内容给组件内属性
-      this.PictureDescResult = message.content
-      if(message?.complete){ // 判断message为完成状态,则设置isComplete为完成
-      //图片生成
-      let PicturePrompt = `${this.PictureDescResult}`
-      //\n风格:科技风。画面不带任何文字。突出色彩。
-      let options:DalleOptions = {prompt:PicturePrompt}
-      this.imagineWork?.draw(options).subscribe(work=>{
-        console.log("imagineWork",work?.toJSON())
-        console.log("images",work?.get("images"))
-        if(work?.get("images")?.length){
-          this.images = work?.get("images");
-        }
-      })
-    }
-  })
-}
-    ngOnInit() {
-    }
-}

+ 0 - 68
.history/soul-app/src/app/consult-picture/consult-picture.component_20241216083900.html

@@ -1,68 +0,0 @@
-<ion-header [translucent]="true">
-  <ion-toolbar>
-    <ion-title>
-      示例:logo生成{{imagineWork?.progress || 0}}
-    </ion-title> 
-  </ion-toolbar>
-</ion-header><ion-header>
-  <ion-toolbar>
-    <div class="toolbar-content">
-      <div class="button-container">
-        <ion-button (click)="goTab1()" fill="clear">
-          <ion-icon name="chevron-back" slot="start"></ion-icon>返回
-        </ion-button>
-      </div>
-      <ion-title class="title-text">
-        心理咨询
-      </ion-title>
-    </div>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content>
-    <h1>类型</h1>
-    <ion-input [value]="leixing" (ionInput)="leixingInput($event)"></ion-input>
-<!-- 文本域:生成提示词 -->
- <h1>心理状况的描述</h1>
-<ion-textarea [value]="userPrompt" (ionInput)="promptInput($event)" placeholder="文本提示词" autoGrow="true"></ion-textarea>
-
-<!-- 按钮:执行消息生成函数 -->
-<ion-button (click)="sendMessage()" expand="block">初步判断</ion-button>
-
-@if(!isComplete){
-    <div>{{responseMsg}}</div>
-  }
-  <!-- 消息传输完成后,实时预览Markdown格式 -->
-@if(isComplete){
-    <fm-markdown-preview class="content-style" [content]="responseMsg"></fm-markdown-preview>
-  }
-
-</ion-content>
-
-<ion-content [fullscreen]="true">
-  <!-- 生成提示词 -->
-  <ion-textarea [value]="userPrompt" (ionInput)="promptInput($event)" placeholder="图片提示词" autoGrow="true"></ion-textarea>
-  <ion-button (click)="createImage()" expand="block">生成logo</ion-button>
-  <!--logo画面提示词-->
-
-  <div>
-    {{PictureDescResult}}
-  </div>
-
-  <!-- 生成结果 -->
-  @if(images.length) {
-    @for(imageUrl of images;track imageUrl){
-      <img [src]="imageUrl" alt="" srcset="">
-    }
-  }
-  <!-- 生成状态 -->
-  @if(!images.length){
-    @if(imagineWork){
-      <h1>生成中</h1>
-    }
-    @if(!imagineWork){
-      <h1>未开始</h1>
-    }
-  }
-
-</ion-content>

+ 0 - 67
.history/soul-app/src/app/consult-picture/consult-picture.component_20241216085303.ts

@@ -1,67 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
-import { IonTextarea, IonButton,IonInput } from "@ionic/angular/standalone";
-import { DalleOptions, ImagineWork,FmodeChatCompletion } from 'fmode-ng';
-
-@Component({
-  selector: 'app-consult-picture',
-  templateUrl: './consult-picture.component.html',
-  styleUrls: ['./consult-picture.component.scss'],
-  standalone: true,
-  imports: [
-    IonHeader, IonToolbar, IonTitle, IonContent, 
-    IonButton,IonInput,
-    IonTextarea
-  ],
-})
-export class ConsultPictureComponent  implements OnInit {
-
-  userPrompt:string = "app名称为...的logo,一个爱心,聊天气泡,易于识别,颜色方案应体现温暖感和清晰感,建议使用...色和...色等色调,极具美观性,可爱风格"
-  promptInput(ev:any){
-    this.userPrompt = ev.detail.value;
-  }
-  imagineWork:ImagineWork|undefined
-  images:Array<string> = []
-  constructor(
-  ){
-    // 示例任务,自己生成图片后请存储新的ID
-    this.imagineWork = new ImagineWork("lpJGiFwWeA");
-    this.imagineWork.fetchTask().then(work=>{
-      this.images = this.imagineWork?.images || [];
-    })
-  }
-  PictureDescResult:string = `` // 画面描述结果
-  async createImage(){
-    this.imagineWork = new ImagineWork();
-    //文本生成
-    let PromptTemplate = `请你作为一名专业的设计师,结合logo的基础设计元素帮我设计一个贴切我项目的logo
-    要求如下:
-    ${this.userPrompt}
-    `
-    let completion = new FmodeChatCompletion([
-      {role:"system",content:""},
-      {role:"user",content:PromptTemplate}
-    ])
-    completion.sendCompletion().subscribe((message:any)=>{
-      // 打印消息体
-      console.log(message.content)
-      // 赋值消息内容给组件内属性
-      this.PictureDescResult = message.content
-      if(message?.complete){ // 判断message为完成状态,则设置isComplete为完成
-      //图片生成
-      let PicturePrompt = `${this.PictureDescResult}`
-      //\n风格:科技风。画面不带任何文字。突出色彩。
-      let options:DalleOptions = {prompt:PicturePrompt}
-      this.imagineWork?.draw(options).subscribe(work=>{
-        console.log("imagineWork",work?.toJSON())
-        console.log("images",work?.get("images"))
-        if(work?.get("images")?.length){
-          this.images = work?.get("images");
-        }
-      })
-    }
-  })
-}
-    ngOnInit() {
-    }
-}

+ 0 - 35
.history/soul-app/src/app/consult-picture/consult-picture.component_20241216085448.html

@@ -1,35 +0,0 @@
-<ion-header [translucent]="true">
-  <ion-toolbar>
-    <ion-title>
-      示例:logo生成{{imagineWork?.progress || 0}}
-    </ion-title> 
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <!-- 生成提示词 -->
-  <ion-textarea [value]="userPrompt" (ionInput)="promptInput($event)" placeholder="图片提示词" autoGrow="true"></ion-textarea>
-  <ion-button (click)="createImage()" expand="block">生成logo</ion-button>
-  <!--logo画面提示词-->
-
-  <div>
-    {{PictureDescResult}}
-  </div>
-
-  <!-- 生成结果 -->
-  @if(images.length) {
-    @for(imageUrl of images;track imageUrl){
-      <img [src]="imageUrl" alt="" srcset="">
-    }
-  }
-  <!-- 生成状态 -->
-  @if(!images.length){
-    @if(imagineWork){
-      <h1>生成中</h1>
-    }
-    @if(!imagineWork){
-      <h1>未开始</h1>
-    }
-  }
-
-</ion-content>

+ 0 - 3
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224092344.html

@@ -1,3 +0,0 @@
-<p>
-  drift-bottle works!
-</p>

+ 0 - 0
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224092344.scss


+ 0 - 15
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224092344.ts

@@ -1,15 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-
-@Component({
-  selector: 'app-drift-bottle',
-  templateUrl: './drift-bottle.component.html',
-  styleUrls: ['./drift-bottle.component.scss'],
-  standalone: true,
-})
-export class DriftBottleComponent  implements OnInit {
-
-  constructor() { }
-
-  ngOnInit() {}
-
-}

+ 0 - 18
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224093226.scss

@@ -1,18 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-    background-image: url('/assets/images/background.jpg'); /* 设置背景图片路径 */
-    background-size: cover; /* 使背景图片覆盖整个元素 */
-    background-position: center; /* 将背景图片居中 */
-    background-repeat: no-repeat; /* 防止背景图片重复 */
-    min-height: 100vh; /* 确保背景图片至少覆盖整个视口高度 */
-  }
-  
-  ion-content {
-    padding: 20px;
-    color: white; /* 如果需要,可以调整文字颜色以提高可读性 */
-  }
-  
-  
-  
-  

+ 0 - 18
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224093252.scss

@@ -1,18 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-    background-image: url('/soul-prod/img/漂流瓶.jpg'); /* 设置背景图片路径 */
-    background-size: cover; /* 使背景图片覆盖整个元素 */
-    background-position: center; /* 将背景图片居中 */
-    background-repeat: no-repeat; /* 防止背景图片重复 */
-    min-height: 100vh; /* 确保背景图片至少覆盖整个视口高度 */
-  }
-  
-  ion-content {
-    padding: 20px;
-    color: white; /* 如果需要,可以调整文字颜色以提高可读性 */
-  }
-  
-  
-  
-  

+ 0 - 14
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094441.html

@@ -1,14 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <div class="toolbar-content">
-      <div class="button-container">
-        <ion-button (click)="goTab1()" fill="clear">
-          <ion-icon name="chevron-back" slot="start"></ion-icon>返回
-        </ion-button>
-      </div>
-      <ion-title class="title-text">
-        心理普查
-      </ion-title>
-    </div>
-  </ion-toolbar>
-</ion-header>

+ 0 - 23
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094535.ts

@@ -1,23 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { IonHeader,IonButton, IonContent, IonIcon, IonItem, IonLabel, IonList, 
-  IonListHeader,IonCardHeader,IonCardTitle,IonCardContent, IonTitle,IonCard, IonToolbar,IonInput,IonSearchbar } from '@ionic/angular/standalone';
-
-@Component({
-  selector: 'app-drift-bottle',
-  templateUrl: './drift-bottle.component.html',
-  styleUrls: ['./drift-bottle.component.scss'],
-  standalone: true,
-  imports: [IonHeader,IonToolbar,IonTitle,IonContent,
-        IonList,IonListHeader,IonItem,IonCardTitle,
-        IonLabel,IonIcon,IonButton,IonCardContent,
-        IonInput,IonSearchbar,IonCard,IonCardHeader
-        
-      ]
-})
-export class DriftBottleComponent  implements OnInit {
-
-  constructor() { }
-
-  ngOnInit() {}
-
-}

+ 0 - 27
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094638.ts

@@ -1,27 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { IonHeader,IonButton, IonContent, IonIcon, IonItem, IonLabel, IonList, 
-  IonListHeader,IonCardHeader,IonCardTitle,IonCardContent, IonTitle,IonCard, IonToolbar,IonInput,IonSearchbar } from '@ionic/angular/standalone';
-  import { Router } from '@angular/router';
-  
-@Component({
-  selector: 'app-drift-bottle',
-  templateUrl: './drift-bottle.component.html',
-  styleUrls: ['./drift-bottle.component.scss'],
-  standalone: true,
-  imports: [IonHeader,IonToolbar,IonTitle,IonContent,
-        IonList,IonListHeader,IonItem,IonCardTitle,
-        IonLabel,IonIcon,IonButton,IonCardContent,
-        IonInput,IonSearchbar,IonCard,IonCardHeader
-        
-      ]
-})
-export class DriftBottleComponent  implements OnInit {
-
-  constructor(private router: Router) { }
-
-  goTab1(){
-    this.router.navigate(['tabs/tab1']);
-   }
-  ngOnInit() {}
-
-}

+ 0 - 14
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094716.scss

@@ -1,14 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-    background-image: url('/soul-prod/img/漂流瓶.jpg'); /* 设置背景图片路径 */
-    background-size: cover; /* 使背景图片覆盖整个元素 */
-    background-position: center; /* 将背景图片居中 */
-    background-repeat: no-repeat; /* 防止背景图片重复 */
-    min-height: 100vh; /* 确保背景图片至少覆盖整个视口高度 */
-  }
-  
- 
-  
-  
-  

+ 0 - 66
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224094747.scss

@@ -1,66 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-    background-image: url('/soul-prod/img/漂流瓶.jpg'); /* 设置背景图片路径 */
-    background-size: cover; /* 使背景图片覆盖整个元素 */
-    background-position: center; /* 将背景图片居中 */
-    background-repeat: no-repeat; /* 防止背景图片重复 */
-    min-height: 100vh; /* 确保背景图片至少覆盖整个视口高度 */
-  }
-  
- /* 设置页面背景色 */
-ion-content {
-    --background: #ffffff; /* 白色背景 */
-  }
-
-  ion-card {
-    margin: 10px; /* 卡片之间的间距 */
-    border-radius: 10px; /* 圆角效果 */
-    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 阴影效果 */
-  }
-  ion-card-title {
-    font-weight:bold;
-  }
-  
-  /* 设置列表项的样式 */
-  ion-item {
-    margin: 5px 0; /* 列表项之间的间距 */
-  }
-  ion-title {
-    font-size: 24px; /* 增大字体大小 */
-    font-weight: bold; /* 加粗 */
-  }
-  /* 设置卡片的样式 */
-  ion-list {
-    margin: 10px; /* 卡片之间的间距 */
-    border-radius: 10px; /* 圆角效果 */
-    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 阴影效果 */
-  }
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-  /* 设置列表项的样式 */
-  ion-item {
-    margin: 5px 0; /* 列表项之间的间距 */
-  }
-  
-  /* 设置按钮的样式(如果按钮不在顶部方框内) */
-  
-  ion-toolbar {
-  margin: auto;
-  }
-  .title-text{
-  position: absolute;
-  display: flex;
-  left: 125px;
-  margin: auto;
-  top: 10px;
-  }
-  
-  
-  
-  

+ 0 - 18
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224110750.html

@@ -1,18 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <div class="toolbar-content">
-      <div class="button-container">
-        <ion-button (click)="goTab1()" fill="clear">
-          <ion-icon name="chevron-back" slot="start"></ion-icon>返回
-        </ion-button>
-      </div>
-      <ion-title class="title-text">
-        心理普查
-      </ion-title>
-    </div>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-
-</ion-content>

+ 0 - 62
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224110820.scss

@@ -1,62 +0,0 @@
-
- /* 设置页面背景色 */
-ion-content {
-    display: block;
-    background-image: url('/soul-prod/img/漂流瓶.jpg'); /* 设置背景图片路径 */
-    background-size: cover; /* 使背景图片覆盖整个元素 */
-    background-position: center; /* 将背景图片居中 */
-    background-repeat: no-repeat; /* 防止背景图片重复 */
-    min-height: 100vh; /* 确保背景图片至少覆盖整个视口高度 */
-  }
-
-  ion-card {
-    margin: 10px; /* 卡片之间的间距 */
-    border-radius: 10px; /* 圆角效果 */
-    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 阴影效果 */
-  }
-  ion-card-title {
-    font-weight:bold;
-  }
-  
-  /* 设置列表项的样式 */
-  ion-item {
-    margin: 5px 0; /* 列表项之间的间距 */
-  }
-  ion-title {
-    font-size: 24px; /* 增大字体大小 */
-    font-weight: bold; /* 加粗 */
-  }
-  /* 设置卡片的样式 */
-  ion-list {
-    margin: 10px; /* 卡片之间的间距 */
-    border-radius: 10px; /* 圆角效果 */
-    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 阴影效果 */
-  }
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-  /* 设置列表项的样式 */
-  ion-item {
-    margin: 5px 0; /* 列表项之间的间距 */
-  }
-  
-  /* 设置按钮的样式(如果按钮不在顶部方框内) */
-  
-  ion-toolbar {
-  margin: auto;
-  }
-  .title-text{
-  position: absolute;
-  display: flex;
-  left: 125px;
-  margin: auto;
-  top: 10px;
-  }
-  
-  
-  
-  

+ 0 - 33
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224110949.scss

@@ -1,33 +0,0 @@
-
- /* 设置页面背景色 */
-ion-content {
-    display: block;
-    background-image: url('/soul-prod/img/漂流瓶.jpg'); /* 设置背景图片路径 */
-    background-size: cover; /* 使背景图片覆盖整个元素 */
-    background-position: center; /* 将背景图片居中 */
-    background-repeat: no-repeat; /* 防止背景图片重复 */
-    min-height: 100vh; /* 确保背景图片至少覆盖整个视口高度 */
-  }
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-  ion-toolbar {
-  margin: auto;
-  }
-  .title-text{
-  position: absolute;
-  display: flex;
-  left: 125px;
-  margin: auto;
-  top: 10px;
-  }
-  
-  
-  
-  

+ 0 - 33
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224111927.scss

@@ -1,33 +0,0 @@
-
- /* 设置页面背景色 */
-ion-content {
-    display: block;
-    background-image: url('/assets/img/漂流瓶.jpg'); /* 设置背景图片路径 */
-    background-size: cover; /* 使背景图片覆盖整个元素 */
-    background-position: center; /* 将背景图片居中 */
-    background-repeat: no-repeat; /* 防止背景图片重复 */
-    min-height: 100vh; /* 确保背景图片至少覆盖整个视口高度 */
-  }
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-  ion-toolbar {
-  margin: auto;
-  }
-  .title-text{
-  position: absolute;
-  display: flex;
-  left: 125px;
-  margin: auto;
-  top: 10px;
-  }
-  
-  
-  
-  

+ 0 - 20
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224112221.html

@@ -1,20 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <div class="toolbar-content">
-      <div class="button-container">
-        <ion-button (click)="goTab1()" fill="clear">
-          <ion-icon name="chevron-back" slot="start"></ion-icon>返回
-        </ion-button>
-      </div>
-      <ion-title class="title-text">
-        心理普查
-      </ion-title>
-    </div>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <ion-avatar slot="start" >
-    <img src="assets/img/漂流瓶.jpg"  >
-  </ion-avatar>
-</ion-content>

+ 0 - 37
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224112301.scss

@@ -1,37 +0,0 @@
-
- /* 设置页面背景色 */
-ion-content {
-    display: block;
-    background-image: url('/assets/img/漂流瓶.jpg'); /* 设置背景图片路径 */
-    background-size: cover; /* 使背景图片覆盖整个元素 */
-    background-position: center; /* 将背景图片居中 */
-    background-repeat: no-repeat; /* 防止背景图片重复 */
-    min-height: 100vh; /* 确保背景图片至少覆盖整个视口高度 */
-  }
-
-  
-  ion-avatar {
-    width: 50px; /* 或者你需要的任何尺寸 */
-    height: 50px; /* 保持宽高一致,避免变形 */
-  }
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-  ion-toolbar {
-  margin: auto;
-  }
-  .title-text{
-  position: absolute;
-  display: flex;
-  left: 125px;
-  margin: auto;
-  top: 10px;
-  }
-  
-  
-  
-  

+ 0 - 27
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224112352.ts

@@ -1,27 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { IonHeader,IonButton, IonContent, IonIcon, IonItem, IonLabel, IonList, 
-  IonListHeader,IonCardHeader,IonCardTitle,IonAvatar,IonCardContent, IonTitle,IonCard, IonToolbar,IonInput,IonSearchbar } from '@ionic/angular/standalone';
-  import { Router } from '@angular/router';
-
-@Component({
-  selector: 'app-drift-bottle',
-  templateUrl: './drift-bottle.component.html',
-  styleUrls: ['./drift-bottle.component.scss'],
-  standalone: true,
-  imports: [IonHeader,IonToolbar,IonTitle,IonContent,
-        IonList,IonListHeader,IonItem,IonCardTitle,
-        IonLabel,IonIcon,IonButton,IonCardContent,IonAvatar,
-        IonInput,IonSearchbar,IonCard,IonCardHeader
-        
-      ]
-})
-export class DriftBottleComponent  implements OnInit {
-
-  constructor(private router: Router) { }
-
-  goTab1(){
-    this.router.navigate(['tabs/tab1']);
-   }
-  ngOnInit() {}
-
-}

+ 0 - 20
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224112417.html

@@ -1,20 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <div class="toolbar-content">
-      <div class="button-container">
-        <ion-button (click)="goTab1()" fill="clear">
-          <ion-icon name="chevron-back" slot="start"></ion-icon>返回
-        </ion-button>
-      </div>
-      <ion-title class="title-text">
-        心理普查
-      </ion-title>
-    </div>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <ion-avatar slot="start" >
-    <img src="assets/img/漂流瓶.jpg"  >
-  </ion-avatar>
-</ion-content>

+ 0 - 20
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113239.html

@@ -1,20 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <div class="toolbar-content">
-      <div class="button-container">
-        <ion-button (click)="goTab1()" fill="clear">
-          <ion-icon name="chevron-back" slot="start"></ion-icon>返回
-        </ion-button>
-      </div>
-      <ion-title class="title-text">
-        心理普查
-      </ion-title>
-    </div>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <div class="full-screen-image">
-    <img src="assets/images/漂流瓶.jpg" alt="漂流瓶">
-  </div>
-</ion-content>

+ 0 - 50
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113321.scss

@@ -1,50 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-}
-
-.full-screen-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    overflow: hidden;
-}
-
-.full-screen-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: cover; /* 使图片覆盖整个容器并保持宽高比 */
-}
-  
-  ion-avatar {
-    width: 50px; /* 或者你需要的任何尺寸 */
-    height: 50px; /* 保持宽高一致,避免变形 */
-  }
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-  ion-toolbar {
-  margin: auto;
-  }
-  .title-text{
-  position: absolute;
-  display: flex;
-  left: 125px;
-  margin: auto;
-  top: 10px;
-  }
-  
-  
-  
-  

+ 0 - 20
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113349.html

@@ -1,20 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <div class="toolbar-content">
-      <div class="button-container">
-        <ion-button (click)="goTab1()" fill="clear">
-          <ion-icon name="chevron-back" slot="start"></ion-icon>返回
-        </ion-button>
-      </div>
-      <ion-title class="title-text">
-        心理普查
-      </ion-title>
-    </div>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <div class="full-screen-image">
-    <img src="assets/img/漂流瓶.jpg" alt="漂流瓶">
-  </div>
-</ion-content>

+ 0 - 7
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113401.html

@@ -1,7 +0,0 @@
-
-
-<ion-content [fullscreen]="true">
-  <div class="full-screen-image">
-    <img src="assets/img/漂流瓶.jpg" alt="漂流瓶">
-  </div>
-</ion-content>

+ 0 - 5
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113628.html

@@ -1,5 +0,0 @@
-<ion-content [fullscreen]="true">
-  <div class="full-screen-image">
-    <img src="assets/images/漂流瓶.jpg" alt="漂流瓶">
-  </div>
-</ion-content>

+ 0 - 49
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113652.scss

@@ -1,49 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.full-screen-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.full-screen-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: contain; /* 使图片适应容器并保持宽高比 */
-}
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-  ion-toolbar {
-  margin: auto;
-  }
-  .title-text{
-  position: absolute;
-  display: flex;
-  left: 125px;
-  margin: auto;
-  top: 10px;
-  }
-  
-  
-  
-  

+ 0 - 40
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113657.scss

@@ -1,40 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.full-screen-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.full-screen-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: contain; /* 使图片适应容器并保持宽高比 */
-}
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-  
-  
-  
-  

+ 0 - 5
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224113708.html

@@ -1,5 +0,0 @@
-<ion-content [fullscreen]="true">
-  <div class="full-screen-image">
-    <img src="assets/img/漂流瓶.jpg" alt="漂流瓶">
-  </div>
-</ion-content>

+ 0 - 40
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224114445.scss

@@ -1,40 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.full-screen-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.full-screen-image img {
-    width: 100%;
-    height: 130%;
-    object-fit: contain; /* 使图片适应容器并保持宽高比 */
-}
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-  
-  
-  
-  

+ 0 - 40
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224114505.scss

@@ -1,40 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.full-screen-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.full-screen-image img {
-    width: 100%;
-    height: 50%;
-    object-fit: contain; /* 使图片适应容器并保持宽高比 */
-}
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-  
-  
-  
-  

+ 0 - 40
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224114755.scss

@@ -1,40 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 70%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: cover; /* 使图片覆盖整个容器并保持宽高比 */
-}
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-  
-  
-  
-  

+ 0 - 40
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115317.scss

@@ -1,40 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: cover; /* 使图片覆盖整个容器并保持宽高比 */
-}
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-  
-  
-  
-  

+ 0 - 40
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115340.scss

@@ -1,40 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 70%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-   /* 使图片覆盖整个容器并保持宽高比 */
-}
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-  
-  
-  
-  

+ 0 - 41
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115639.scss

@@ -1,41 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 70%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-  
-  
-  
-  

+ 0 - 41
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115817.scss

@@ -1,41 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 90%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-  
-  
-  
-  

+ 0 - 49
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115924.scss

@@ -1,49 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 90%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 70%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 9
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115925.html

@@ -1,9 +0,0 @@
-<ion-content [fullscreen]="true">
-  <div class="top-image">
-    <img src="assets/images/漂流瓶.jpg" alt="漂流瓶">
-  </div>
-  <!-- 其他内容可以放在这里 -->
-  <div class="content-container">
-    <p>这是其他内容区域。</p>
-  </div>
-</ion-content>

+ 0 - 9
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115939.html

@@ -1,9 +0,0 @@
-<ion-content [fullscreen]="true">
-  <div class="top-image">
-    <img src="assets/img/漂流瓶.jpg" alt="漂流瓶">
-  </div>
-  <!-- 其他内容可以放在这里 -->
-  <div class="content-container">
-    <p>这是其他内容区域。</p>
-  </div>
-</ion-content>

+ 0 - 49
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224115958.scss

@@ -1,49 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 70%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 70%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 49
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224142212.scss

@@ -1,49 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 70%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 0; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 49
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224142224.scss

@@ -1,49 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 70%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 49
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143012.scss

@@ -1,49 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 50
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143207.scss

@@ -1,50 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(75% 25% at 50% 100%); /* 波浪效果,根据需要调整参数 */
-}
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 60
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143432.scss

@@ -1,60 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-.top-image::after {
-    content: '';
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    height: 20%; /* 波浪形的高度 */
-    background: url('data:image/svg+xml;base64,...') repeat-x; /* 插入SVG波浪图案 */
-    z-index: 1; /* 确保波浪在图片之上 */
-}
-
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 60
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143620.scss

@@ -1,60 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-.top-image::after {
-    content: '';
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    height: 20%; /* 波浪形的高度 */
-    background: url('https://wanx.alicdn.com/wanx/1734965173446073991/text_to_image_lite_v2/c811a93084c84673a0e8e8102192f1e9_0.png?x-oss-process=image/watermark,image_aW1nL3dhdGVyMjAyNDExMjkwLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxtX2ZpeGVkLHdfMzAzLGhfNTI=,t_80,g_se,x_10,y_10/format,webp') repeat-x; /* 插入SVG波浪图案 */
-    z-index: 1; /* 确保波浪在图片之上 */
-}
-
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 50
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143746.scss

@@ -1,50 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-
-
-  
-  ion-button {
-    font-size: 15px; /* 增大字体大小 */
-    margin-top: 8px; /* 上间距,仅在需要时添加 */
-    text-transform: none; /* 按钮文字不变形 */
-    height: 35px;
-  }
-  
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 53
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224143953.scss

@@ -1,53 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-}
-.top-image::after {
-    content: '';
-    position: absolute;
-    bottom: -50px; /* 调整此值以改变圆弧的大小 */
-    left: 0;
-    width: 110%; /* 让伪元素稍微宽于其父级元素 */
-    height: 100px; /* 圆弧的高度 */
-    background: #fff; /* 匹配页面背景颜色 */
-    border-radius: 0 0 50% 50%; /* 创建半圆形 */
-    transform: scaleX(1.2); /* 可选:让圆弧更平缓 */
-    z-index: 1; /* 确保圆弧在图片之上 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144041.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(50% 40% at 50% 100%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144147.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(100% 80% at 50% 100%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144203.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(100% 100% at 50% 60%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144211.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(100% 80% at 50% 60%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144227.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(80% 80% at 50% 60%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144237.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(80% 80% at 50% 90%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144249.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(80% 80% at 90% 90%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144312.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(100% 70% at 90% 90%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144511.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(50% 50% at 20% 40%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144528.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(50% 50% at 60% 40%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144535.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(50% 50% at 60% 60%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144548.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(80% 80% at 60% 60%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144637.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(80% 10% at 60% 60%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144650.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(80% 120% at 60% 60%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

+ 0 - 42
.history/soul-app/src/app/drift-bottle/drift-bottle.component_20241224144721.scss

@@ -1,42 +0,0 @@
-/* drift-bottle.component.scss */
-:host {
-    display: block;
-}
-
-/* 设置页面背景色 */
-ion-content {
-    --background: transparent; /* 确保内容背景透明 */
-    position: relative;
-    height: 100vh; /* 确保内容高度占满整个视口 */
-}
-
-.top-image {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 80%; /* 图片占据页面的70%高度 */
-    overflow: hidden;
-    z-index: 0; /* 确保图片在工具栏之下 */
-}
-
-.top-image img {
-    width: 100%;
-    height: 100%;
-    object-fit: fill; /* 使图片填充整个容器并可能被拉伸 */
-    clip-path: ellipse(80% 120% at 50% -30%); /* 使用椭圆剪裁路径 */
-}
-
-
-/* 其他内容的样式可以根据需要添加 */
-.content-container {
-    position: relative;
-    z-index: 1; /* 确保其他内容在图片之上 */
-    padding: 20px;
-    margin-top: 120%; /* 内容从图片下方开始 */
-}
-
-  
-  
-  
-  

部分文件因文件數量過多而無法顯示