现在tab1和tab2中的检查区域筛选下拉框内选项都是从tab1的接口数据获得的,这不是实际需要的逻辑,现在需要修改代码,实现tab1和tab2的检查区域筛选下拉框内选项是从各自接口内获取的检查区域数据
时间: 2024-11-29 07:35:15 浏览: 0
jQuery网站Tab下拉菜单特效
为了实现 `tab1` 和 `tab2` 中的检查区域筛选下拉框内选项分别从各自的接口数据中获取,你需要对现有的代码进行一些调整。具体步骤如下:
### 修改 `data` 部分
在 `data` 函数中,增加两个新的数组来存储每个标签页的检查区域数据。
```javascript
data() {
return {
currentTab: 'tab1',
tab1Data: { status: null, rows: [], originalRows: [] },
tab2Data: { status: null, rows: [], originalRows: [] },
taskId: '',
anotherData: { status: null, rows: [], originalRows: [] },
isModalVisible: false,
isAnotherModalVisible: false,
selectedItem: { name: '', complianceStatus: '符合', hazardDescription: '' },
selectedArea: null, // 初始值设为 null
areasTab1: [], // 新增:存储 tab1 的检查区域数据
areasTab2: [], // 新增:存储 tab2 的检查区域数据
selectedItemForModal: null,
upload: [],
actionUrl: ''
};
},
```
### 修改 `methods` 部分
在 `fetchTab1Data` 和 `fetchTab2Data` 方法中,分别从各自的接口数据中提取检查区域数据,并将其赋值给 `areasTab1` 和 `areasTab2`。
```javascript
methods: {
fetchTab1Data() {
request({
url: '/api/check_carryout_record_daily/getPageData',
method: 'POST',
header: { 'content-type': 'application/json', 'Authorization': `Bearer ${getToken()}` },
data: {},
dataType: 'json'
}).then(response => {
this.tab1Data.originalRows = response.rows.map(item => ({ ...item, complianceStatus: '符合' }));
this.filterTab1Data();
this.areasTab1 = [...new Set(response.rows.map(item => item.AREA_NAME))]; // 更新 areasTab1
}).catch(error => {
console.error(error);
uni.showToast({ title: '请求失败', icon: 'none' });
});
},
fetchTab2Data() {
request({
url: '/api/check_carryout_record/getPageData',
method: 'POST',
header: { 'content-type': 'application/json', 'Authorization': `Bearer ${getToken()}` },
dataType: 'json'
}).then(response => {
this.tab2Data.originalRows = response.rows.map(item => ({ ...item, complianceStatus: '符合' }));
this.filterTab2Data();
this.areasTab2 = [...new Set(response.rows.map(item => item.AREA_NAME))]; // 更新 areasTab2
}).catch(error => {
console.error(error);
uni.showToast({ title: '请求失败', icon: 'none' });
});
},
// 其他方法保持不变
}
```
### 修改模板部分
在模板中,将 `v-for` 循环绑定到对应的检查区域数据数组。
```html
<!-- Tab 内容区域 -->
<view class="tab-content">
<view v-if="currentTab === 'tab1'" class="tab-page">
<select v-model="selectedArea" @change="filterTab1Data" class="area-select">
<option value="">请选择检查区域</option>
<option v-for="area in areasTab1" :value="area" :key="area">{{ area }}</option> <!-- 绑定到 areasTab1 -->
</select>
<!-- 其他内容保持不变 -->
</view>
<view v-if="currentTab === 'tab2'" class="tab-page">
<select v-model="selectedArea" @change="filterTab2Data" class="area-select">
<option value="">请选择检查区域</option>
<option v-for="area in areasTab2" :value="area" :key="area">{{ area }}</option> <!-- 绑定到 areasTab2 -->
</select>
<!-- 其他内容保持不变 -->
</view>
</view>
```
通过以上修改,`tab1` 和 `tab2` 中的检查区域筛选下拉框内的选项将分别从各自的接口数据中获取。
阅读全文