<!-- Generated by SpecStory -->

# Error fetching nutrition product data (2025-08-11 06:04Z)

_**User**_

@RightCard.vue 
取营养产品数据失败: ReferenceError: listAllNutrition is not defined
    at getNutritionOptions (MaterialTable.vue:818:17)
    at MaterialTable.vue:907:9

---

_**Assistant**_

我来帮您解决这个问题。根据错误信息，问题是在`MaterialTable.vue`中找不到`listAllNutrition`函数。让我先检查相关的文件和代码。

---



---

<details>
            <summary>Grep search for "listAllNutrition" • **10** files</summary>
        
| File | Line | Match |
|------|------|-------|
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/RightCard.vue` | L77 | `import { listAllNutrition } from '@/api/warehouse/productNutrition';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/RightCard.vue` | L84 | `//     const data = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/RightCard.vue` | L189 | `//         const response = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/RightCard.vue` | L958 | `const data = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/NutritionTable.vue` | L259 | `import {listNutrition, listAllNutrition} from '@/api/warehouse/productNutrition/index';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/NutritionTable.vue` | L339 | `const res = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/PackageTable.vue` | L304 | `import { listNutrition, listAllNutrition } from '@/api/warehouse/productNutrition/index';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/PackageTable.vue` | L612 | `const res = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/PackageTable.vue` | L781 | `const res = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L818 | `const res = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable2.vue` | L200 | `import { listAllNutrition } from '@/api/warehouse/productNutrition/index';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable2.vue` | L564 | `const res = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/LeftCard.vue` | L94 | `import { listAllNutrition, getNutrition } from '@/api/warehouse/productNutrition';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/LeftCard.vue` | L127 | `const response = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/ConfigureTable.vue` | L258 | `import { listNutrition, listAllNutrition } from '@/api/warehouse/productNutrition/index';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/ConfigureTable.vue` | L322 | `const res = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/parameter/basicPublicTemplate/enteralNutritionTemplate/addOrEditForm.vue` | L680 | `import { listAllNutrition } from '@/api/warehouse/productNutrition/index'` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/parameter/basicPublicTemplate/enteralNutritionTemplate/addOrEditForm.vue` | L690 | `import { listAllNutritionConsumable } from '@/api/patients/nutritionConsumable/index'` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/parameter/basicPublicTemplate/enteralNutritionTemplate/addOrEditForm.vue` | L944 | `const response = await listAllNutrition()` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/parameter/basicPublicTemplate/enteralNutritionTemplate/addOrEditForm.vue` | L988 | `const response = await listAllNutritionConsumable()` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/LeftCard.vue` | L94 | `import { listAllNutrition, getNutrition } from '@/api/warehouse/productNutrition';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/LeftCard.vue` | L127 | `const response = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/RightCard.vue` | L77 | `import { listAllNutrition } from '@/api/warehouse/productNutrition';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/RightCard.vue` | L84 | `//     const data = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/RightCard.vue` | L189 | `//         const response = await listAllNutrition();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/RightCard.vue` | L958 | `const data = await listAllNutrition();` |

</details>

---

现在我发现问题了。从搜索结果可以看出，`MaterialTable.vue`文件使用了`listAllNutrition`但没有导入它。让我查看这个文件的具体内容：

---

Read file: src/views/patients/enteralNutrition/components/table/MaterialTable.vue

---

现在让我查看文件的导入部分：

---

Read file: src/views/patients/enteralNutrition/components/table/MaterialTable.vue

---

让我查看import部分：

---

<details>
            <summary>Grep search for "import.*from" • **1** files</summary>
        
| File | Line | Match |
|------|------|-------|
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L157 | `import { ref, defineProps, watch, onMounted, getCurrentInstance, computed } from 'vue';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L158 | `import { listAll } from '@/api/warehouse/suppliesManage';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L159 | `import { SuppliesManageVO } from '@/api/warehouse/suppliesManage/types';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L167 | `import { NutritionConsumableForm } from '@/api/patients/nutritionConsumable/types';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L168 | `import { listAllEnteralNutritionTemplate, addEnteralNutritionTemplate } from '@/api/parameter/basicPublicTemplate/enteralNutritionTemplate';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L169 | `import { EnteralNutritionTemplateVO, EnteralNutritionTemplateForm } from '@/api/parameter/basicPublicTemplate/enteralNutritionTemplate/types';` |

</details>

---

现在我看到问题了！`MaterialTable.vue`确实缺少`listAllNutrition`的导入。让我查看完整的导入部分：

---

Read file: src/views/patients/enteralNutrition/components/table/MaterialTable.vue

---

现在问题很清楚了。`MaterialTable.vue`文件使用了`listAllNutrition`函数但没有导入它。我需要添加这个导入。让我看看其他文件是如何正确导入的：

---

Read file: src/views/patients/enteralNutrition/components/table/MaterialTable2.vue

---

完美！现在我知道正确的导入方式了。我需要在`MaterialTable.vue`中添加`listAllNutrition`的导入。让我修复这个问题：

---

<details><summary>Edit file: src/views/patients/enteralNutrition/components/table/MaterialTable.vue</summary>

undefined

**Chunk 1**
Lines added: 2, lines removed: undefined

```diff
@@ -158,4 +158,6 @@
  import { listAll } from '@/api/warehouse/suppliesManage';
  import { SuppliesManageVO } from '@/api/warehouse/suppliesManage/types';
+ import { listAllNutrition } from '@/api/warehouse/productNutrition/index';
+ import { NutritionVO } from '@/api/warehouse/productNutrition/types';
  import {
    listNutritionConsumable,
```

</details>

---

现在我还需要确保在文件中定义了`nutritionOptions`变量，让我查看是否已经定义：

---

<details>
            <summary>Grep search for "nutritionOptions" • **2** files</summary>
        
| File | Line | Match |
|------|------|-------|
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L818 | `const getNutritionOptions = async () => {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L821 | `nutritionOptions.value = res.rows || [];` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L822 | `console.log('获取到的营养产品数据:', nutritionOptions.value);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L825 | `nutritionOptions.value = [];` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L830 | `const filteredNutritionOptions = computed(() => {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L832 | `return nutritionOptions.value;` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L835 | `return nutritionOptions.value.filter(product =>` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L845 | `if (nutritionOptions.value.length === 0) {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L862 | `const selectedProduct = nutritionOptions.value.find(p => p.id === productId);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L909 | `await getNutritionOptions(); // 获取营养产品数据` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L818 | `const getNutritionOptions = async () => {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L821 | `nutritionOptions.value = res.rows || [];` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L822 | `console.log('获取到的营养产品数据:', nutritionOptions.value);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L825 | `nutritionOptions.value = [];` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L830 | `const filteredNutritionOptions = computed(() => {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L832 | `return nutritionOptions.value;` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L835 | `return nutritionOptions.value.filter(product =>` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L845 | `if (nutritionOptions.value.length === 0) {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L862 | `const selectedProduct = nutritionOptions.value.find(p => p.id === productId);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L909 | `await getNutritionOptions(); // 获取营养产品数据` |

</details>

---

现在我需要检查`nutritionOptions`变量是否已经定义。让我查看变量定义部分：

---



---

<details>
            <summary>Grep search for "const nutritionOptions|let nutritionOptions|ref.*nutritionOptions" • **0** files</summary>
        
No results found
</details>

---

看起来`nutritionOptions`变量没有定义。让我查看其他正确实现的文件来了解应该如何定义：

---

<details>
            <summary>Grep search for "nutritionOptions.*ref|ref.*nutritionOptions" • **3** files</summary>
        
| File | Line | Match |
|------|------|-------|
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/PackageTable.vue` | L328 | `const nutritionOptions = ref<NutritionVO[]>([]);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable2.vue` | L240 | `const nutritionOptions = ref<NutritionVO[]>([]);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/parameter/basicPublicTemplate/enteralNutritionTemplate/addOrEditForm.vue` | L740 | `const nutritionOptions = ref<NutritionVO[]>([])` |

</details>

---

很好！现在我知道需要定义`nutritionOptions`变量。让我找到合适的位置添加这个定义。先查看MaterialTable.vue中其他ref变量的定义位置：

---

Read file: src/views/patients/enteralNutrition/components/table/MaterialTable.vue

---

让我继续查看更多的ref变量定义：

---

<details>
            <summary>Grep search for "const.*ref\(|let.*ref\(" • **2** files</summary>
        
| File | Line | Match |
|------|------|-------|
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L174 | `let prescriptionFee = ref(1.0);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L175 | `let nutritionalFee = ref(0.0);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L176 | `let otherlFee = ref(0.0);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L177 | `let totalFee = ref(1.0);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L492 | `const dialogVisible = ref(false);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L495 | `const searchValue = ref('');` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L497 | `const selectedNode = ref('');` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L499 | `const selectedCount = ref(2);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L501 | `const selectedTemplateData = ref(null);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L504 | `const treeData = ref([` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L580 | `const templateTableData = ref([` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L174 | `let prescriptionFee = ref(1.0);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L175 | `let nutritionalFee = ref(0.0);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L176 | `let otherlFee = ref(0.0);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L177 | `let totalFee = ref(1.0);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L492 | `const dialogVisible = ref(false);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L495 | `const searchValue = ref('');` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L497 | `const selectedNode = ref('');` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L499 | `const selectedCount = ref(2);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L501 | `const selectedTemplateData = ref(null);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L504 | `const treeData = ref([` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L580 | `const templateTableData = ref([` |

</details>

---

很好，现在我需要在适当的位置添加`nutritionOptions`的定义。让我查看还需要定义哪些其他相关变量：

---

<details>
            <summary>Grep search for "searchKeyword|selectedProducts|batchDialogVisible" • **2** files</summary>
        
| File | Line | Match |
|------|------|-------|
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L831 | `if (!searchKeyword.value) {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L834 | `const keyword = searchKeyword.value.toLowerCase();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L849 | `selectedProducts.value = [];` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L850 | `batchDialogVisible.value = true;` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L855 | `if (selectedProducts.value.length === 0) {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L861 | `selectedProducts.value.forEach(productId => {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L890 | `batchDialogVisible.value = false;` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L891 | `proxy?.$modal.msgSuccess(`成功添加 ${selectedProducts.value.length} 个营养产品`);` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L831 | `if (!searchKeyword.value) {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L834 | `const keyword = searchKeyword.value.toLowerCase();` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L849 | `selectedProducts.value = [];` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L850 | `batchDialogVisible.value = true;` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L855 | `if (selectedProducts.value.length === 0) {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L861 | `selectedProducts.value.forEach(productId => {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L890 | `batchDialogVisible.value = false;` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L891 | `proxy?.$modal.msgSuccess(`成功添加 ${selectedProducts.value.length} 个营养产品`);` |

</details>

---

我需要定义所有缺失的变量。让我找一个合适的位置添加这些定义：

---

Read file: src/views/patients/enteralNutrition/components/table/MaterialTable.vue

---

现在我在templateTableData定义之后添加缺失的变量定义：

---

The model made no changes to the file.

---

让我查看templateTableData定义的完整结构，找到合适的插入位置：

---

Read file: src/views/patients/enteralNutrition/components/table/MaterialTable.vue

---

现在我在templateTableData定义之后添加缺失的变量：

---

<details><summary>Edit file: src/views/patients/enteralNutrition/components/table/MaterialTable.vue</summary>

undefined

**Chunk 1**
Lines added: 6, lines removed: undefined

```diff
@@ -590,4 +590,10 @@
    }
  ]);
+ 
+ // 批量添加相关变量
+ const nutritionOptions = ref<NutritionVO[]>([]);
+ const searchKeyword = ref('');
+ const selectedProducts = ref<string[]>([]);
+ const batchDialogVisible = ref(false);
  
  // 树形节点点击事件（单选）
```

</details>

---

现在我需要确保在组件挂载时调用`getNutritionOptions`函数。让我查看onMounted的内容：

---

<details>
            <summary>Grep search for "onMounted" • **2** files</summary>
        
| File | Line | Match |
|------|------|-------|
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L157 | `import { ref, defineProps, watch, onMounted, getCurrentInstance, computed } from 'vue';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L912 | `onMounted(async () => {` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L157 | `import { ref, defineProps, watch, onMounted, getCurrentInstance, computed } from 'vue';` |
| `file:///e%3A/CodeProjects/Cursor/wkx-his-web/src/views/patients/enteralNutrition/components/table/MaterialTable.vue` | L912 | `onMounted(async () => {` |

</details>

---

让我查看onMounted函数的内容：

---

Read file: src/views/patients/enteralNutrition/components/table/MaterialTable.vue

---

很好！`getNutritionOptions()`已经在onMounted中被调用了。现在让我运行一下测试来看看问题是否解决：

---

```bash
cd /e/CodeProjects/Cursor/wkx-his-web && npm run dev
```

---

好的，我已经成功修复了`MaterialTable.vue`中的问题：

## 问题原因
`MaterialTable.vue`文件中使用了`listAllNutrition`函数但没有导入它，导致运行时出现"ReferenceError: listAllNutrition is not defined"错误。

## 解决方案

1. **添加了缺失的导入**：
   ```typescript
   import { listAllNutrition } from '@/api/warehouse/productNutrition/index';
   import { NutritionVO } from '@/api/warehouse/productNutrition/types';
   ```

2. **定义了缺失的变量**：
   ```typescript
   // 批量添加相关变量
   const nutritionOptions = ref<NutritionVO[]>([]);
   const searchKeyword = ref('');
   const selectedProducts = ref<string[]>([]);
   const batchDialogVisible = ref(false);
   ```

## 修复内容

- ✅ 添加了`listAllNutrition`函数的导入
- ✅ 添加了`NutritionVO`类型的导入  
- ✅ 定义了`nutritionOptions`等必需的ref变量
- ✅ 确认了`getNutritionOptions()`在`onMounted`中正确调用

现在`MaterialTable.vue`应该能够正常工作，不再出现"listAllNutrition is not defined"的错误。您可以测试一下看是否问题已经解决。

---

