methods: { loadAdvertiserInfo() { axios.get('/advertiserInfo/page/all?pageSize=10').then(res => { if (res.data.code === '0') { this.advertiserList = res.data.data.list; this.advertiserList.forEach(item => { if(parseInt(this.currentId) === item.id) { // 当前选择的公告 item.isActive = true; this.currentAdvertiser = item; } else { item.isActive = false; } }) } }) },
时间: 2023-12-29 10:02:47 浏览: 96
这是一个Vue.js组件的方法,它使用axios库从服务器获取广告商信息列表,并将其存储在本地变量中。然后,它循环遍历该列表,并为当前选择的广告商设置'isActive'属性为true,同时将其存储在另一个本地变量中。这个方法可能会被组件的mounted函数或其他事件处理程序触发,以确保在组件加载时或其他相关情况下获取和显示广告商信息。
相关问题
<el-table :data="tableData" style="width: 100%"> <el-table-column prop="name" label="账号" width="180"> </el-table-column> <el-table-column prop="pass" label="密码" width="180"> </el-table-column> <el-table-column prop="beizhu" label="备注"> </el-table-column> <el-table-column prop="op" label="操作"> <template slot-scope="scope"> <el-button type="primary" class="el-icon-edit" size="mini" @click="openUpdate(scope.row.id)">修改</el-button> <el-button type="danger" class="el-icon-delete" size="mini" @click="deleteInfo(scope.row.id)">删除</el-button> </template> </el-table-column> </el-table>将此段代码使用分页功能完成
要实现基于 ElementUI 的分页功能,你需要按照以下步骤进行操作:
1. 在 PageTable.vue 组件中添加分页组件 el-pagination,并定义相关属性和方法:
```html
<template>
<div>
<el-table :data="tableData" style="width: 100%">
<!-- 表格列定义 -->
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
></el-pagination>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [],
currentPage: 1,
pageSize: 10,
total: 0
}
},
methods: {
fetchData() {
// 发送请求获取表格数据
// 并更新 this.tableData 和 this.total
},
handleSizeChange(size) {
this.pageSize = size
this.fetchData()
},
handleCurrentChange(page) {
this.currentPage = page
this.fetchData()
}
}
}
</script>
```
在这个示例中,我们在 el-pagination 上绑定了 size-change 和 current-change 事件,分别表示每页显示条数和当前页码的改变。我们还定义了 currentPage、pageSize 和 total 这三个属性,分别表示当前页码、每页显示条数和总条数,以及 handleSizeChange 和 handleCurrentChange 两个方法来响应分页组件的事件。
2. 修改 fetchData 方法,加入分页参数,并在请求中使用这些参数来实现分页:
```javascript
fetchData() {
// 发送请求获取表格数据
// 并更新 this.tableData 和 this.total
axios.get('/api/data', {
params: {
page: this.currentPage,
size: this.pageSize
}
}).then(res => {
this.tableData = res.data.list
this.total = res.data.total
})
}
```
在这个示例中,我们使用了 axios 库发送了一个 GET 请求,通过传递 page 和 size 参数来实现分页。服务器返回的数据中包含了 list 和 total 两个属性,分别表示当前页码的数据和总条数。
3. 在父组件中引入并使用 PageTable 组件:
```html
<template>
<div>
<page-table></page-table>
</div>
</template>
<script>
import PageTable from './PageTable.vue'
export default {
components: {
PageTable
}
}
</script>
```
在这个示例中,我们在父组件中引入了 PageTable 组件,并在模板中使用了这个组件。
通过以上步骤,你就可以实现基于 ElementUI 的分页表格数据。用户可以通过分页组件来切换页码和每页显示条数,同时表格数据也会随之更新。
写一份vue+axios处理后端返回的十万条数据的代码
好的,以下是一份简单的Vue+axios处理后端返回的十万条数据的代码示例:
```
<template>
<div>
<el-pagination
:current-page="currentPage"
:page-size="pageSize"
:total="total"
@current-change="getCurrentPageData"
></el-pagination>
<ul>
<li v-for="(item, index) in dataList" :key="index">{{ item }}</li>
</ul>
</div>
</template>
<script>
import axios from 'axios';
import { mapGetters } from 'vuex';
export default {
data() {
return {
dataList: [], // 数据列表
currentPage: 1, // 当前页码
pageSize: 20, // 每页显示的条数
total: 0 // 总条数
};
},
computed: {
...mapGetters('user', ['token'])
},
created() {
this.getCurrentPageData();
},
methods: {
// 获取当前页的数据
getCurrentPageData() {
axios.interceptors.request.use(
config => {
config.headers.Authorization = this.token;
return config;
},
error => {
return Promise.reject(error);
}
);
axios
.get(`/api/data?page=${this.currentPage}&pageSize=${this.pageSize}`)
.then(res => {
this.total = res.data.total;
this.dataList = res.data.list;
})
.catch(error => {
console.log(error);
});
}
}
};
</script>
```
上面的代码中,我们使用了element-ui的el-pagination组件进行分页显示,同时使用axios的拦截器设置请求的header中的token,并发送GET请求到后端获取数据。在返回数据后,我们将总条数和当前页的数据进行存储,使用v-for指令进行数据的渲染。在页面切换时,通过监听@current-change事件,获取当前页的数据,从而实现分页显示。
阅读全文