Selaa lähdekoodia

chore: auto bump version and changelog [skip ci]

iwt 1 kuukausi sitten
vanhempi
sitoutus
b770a5b385

+ 54 - 28
cfc-frontend/pages/mind/emotion-checkin.vue

@@ -195,6 +195,7 @@ export default {
       customTag: '',
       showCustomTagInput: false,
       photoPath: '',
+      photoUrl: '',
       note: '',
       submitting: false,
       aiAnalyzing: false,
@@ -428,35 +429,57 @@ export default {
     },
 
     analyzeEmotion() {
-      this.aiAnalyzing = true
-      this.aiResult = null
       var self = this
-      setTimeout(function() {
-        self.aiAnalyzing = false
-        var baseEmotions = [
-          { label: '开心', confidence: 45, color: '#10B981' },
-          { label: '平静', confidence: 30, color: '#3B82F6' },
-          { label: '惊喜', confidence: 15, color: '#8B5CF6' },
-          { label: '疲惫', confidence: 10, color: '#9CA3AF' }
-        ]
-        // Adjust based on affect valence
-        if (self.affectValence <= 4) {
-          baseEmotions = [
-            { label: '难过', confidence: 55, color: '#6B9BD2' },
-            { label: '疲惫', confidence: 25, color: '#9CA3AF' },
-            { label: '平静', confidence: 12, color: '#3B82F6' },
-            { label: '生气', confidence: 8, color: '#EF4444' }
-          ]
-        } else if (self.affectValence >= 8) {
-          baseEmotions = [
-            { label: '开心', confidence: 60, color: '#10B981' },
-            { label: '惊喜', confidence: 25, color: '#8B5CF6' },
-            { label: '平静', confidence: 10, color: '#3B82F6' },
-            { label: '期待', confidence: 5, color: '#F59E0B' }
-          ]
+      if (!self.photoPath) {
+        uni.showToast({ title: '请先拍照', icon: 'none' })
+        return
+      }
+      self.aiAnalyzing = true
+      self.aiResult = null
+      uni.uploadFile({
+        url: config.API_BASE_URL + '/api/media/upload',
+        filePath: self.photoPath,
+        name: 'file',
+        success: function(uploadRes) {
+          var photoUrl = ''
+          try {
+            var data = JSON.parse(uploadRes.data)
+            photoUrl = data.data || data.url || ''
+            self.photoUrl = photoUrl
+          } catch (e) {
+            photoUrl = uploadRes.data || ''
+            self.photoUrl = photoUrl
+          }
+          if (!photoUrl) {
+            self.aiAnalyzing = false
+            uni.showToast({ title: '照片上传失败', icon: 'none' })
+            return
+          }
+          uni.request({
+            url: config.API_BASE_URL + '/api/mind/checkin/emotion/recognize',
+            method: 'POST',
+            data: { image_url: photoUrl },
+            header: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + uni.getStorageSync('token') },
+            success: function(res) {
+              self.aiAnalyzing = false
+              if (res.data && res.data.code === 200 && res.data.data && res.data.data.length > 0) {
+                self.aiResult = res.data.data
+              } else {
+                self.aiResult = []
+                uni.showToast({ title: '识别失败,请重试', icon: 'none' })
+              }
+            },
+            fail: function() {
+              self.aiAnalyzing = false
+              uni.showToast({ title: '网络错误', icon: 'none' })
+            }
+          })
+        },
+        fail: function() {
+          self.aiAnalyzing = false
+          uni.showToast({ title: '照片上传失败', icon: 'none' })
         }
-        self.aiResult = baseEmotions
-      }, 1200)
+      })
     },
 
     applyAiTags() {
@@ -525,7 +548,9 @@ export default {
         })
       }
 
-      if (this.photoPath) {
+      if (this.photoUrl) {
+        doSubmit(this.photoUrl)
+      } else if (this.photoPath) {
         uni.uploadFile({
           url: config.API_BASE_URL + '/api/media/upload',
           filePath: this.photoPath,
@@ -535,6 +560,7 @@ export default {
             try {
               const data = JSON.parse(uploadRes.data)
               photoUrl = data.data || data.url || ''
+            self.photoUrl = photoUrl
             } catch (e) {
               photoUrl = uploadRes.data
             }

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-2a52a6a5d95434f304c5a5b856d738a10065bd16
+f628c37474b8d7ca2ad9ff2deb826d04bb50f4fd

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1152",
+  "version": "1.0.1153",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.1152",
+      "version": "1.0.1153",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",