Преглед изворни кода

feat: 在问卷页展示报告状态和操作

Developer пре 1 недеља
родитељ
комит
96dc5c70ff

+ 12 - 1
src/views/modules/agent/questionnaireList.vue

@@ -44,7 +44,7 @@
                                 :item="item"
                                 :reportList="item.reportList"
                                 :showMore="item.showMore"
-                                @toggleReport="item.showMore = !item.showMore; item.showMore && refreshReportEntry(index)"
+                                @toggleReport="e=>toggleReportEntry(e,index)"
                                 @refreshReportList="refreshReportEntry(index)"
                                 @deleteReport="e=>deleteReportEntry(e,index)"
                                 @sendReport="e=>sendReportEntry(e,index,item)"
@@ -316,6 +316,17 @@
             await loadReportEntries(row)
         }
     }
+    const toggleReportEntry = (entry, index) => {
+        entry.showMore = !entry.showMore
+        if (entry.showMore) {
+            getTeamReportWjList(entry.id).then(res => {
+                if (res.code !== 0) return proxy.$message.error(res.msg)
+                entry.reportList = res.data || []
+            })
+        } else {
+            entry.reportList = []
+        }
+    }
     const refreshReportEntry = async index => {
         const entry = currentReportRow.value?.reportEntries[index]
         if (!entry) return

+ 12 - 0
tests/unit/questionnaireReportMerge.spec.js

@@ -26,3 +26,15 @@ test('questionnaire management wires inline report mutation events to report API
 test('questionnaire refresh clears inline report expansion state', () => {
   expect(source).toMatch(/const getList[\s\S]*?expandedReportRows\.value = \[\][\s\S]*?currentReportRow\.value = null[\s\S]*?dataList\.value = res\.data\.list\.map\(prepareQuestionnaireRow\)/)
 })
+
+test('expanded questionnaire reports retain report operations and current generation endpoint', () => {
+  const apiSource = fs.readFileSync(
+    path.resolve(__dirname, '../../src/api/agent/index.js'),
+    'utf8'
+  )
+
+  expect(source).toContain('@toggleReport="e=>toggleReportEntry(e,index)"')
+  expect(source).toContain('@reCreateReport')
+  expect(source).toContain('@refreshReportList')
+  expect(apiSource).toContain('/core/team/questionnaire/genReport/${teamQuestionnaireId}')
+})