当前位置: 首页 > wzjs >正文

在线搭建网站竞价销售是什么意思

在线搭建网站,竞价销售是什么意思,淘客WordPress主题,二手网站信用体系建设需求 当下拉选项的数据量过大时&#xff0c;后端接口是分页格式返回数据。 解决方案 自定义封装一个懒加载下拉组件&#xff0c;每次滚动到底部时自动获取下一页数据&#xff0c;这样可有效防止数据量过大时造成组件卡顿。 具体实现步骤 1、创建懒加载下拉选择组件 <t…

需求

当下拉选项的数据量过大时,后端接口是分页格式返回数据。

解决方案

自定义封装一个懒加载下拉组件,每次滚动到底部时自动获取下一页数据,这样可有效防止数据量过大时造成组件卡顿。

具体实现步骤

1、创建懒加载下拉选择组件

<template><el-selectv-model="innerValue":placeholder="placeholder":clearable="clearable":filterable="filterable":disabled="disabled"@change="handleChange"@visible-change="handleVisibleChange"@search="handleSearch"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"></el-option><divv-if="loading"class="loading-more"style="text-align: center; padding: 10px 0;"><i class="el-icon-loading"></i></div><divv-if="!loading && hasMore"class="loading-more"style="text-align: center; padding: 10px 0;"><span>加载更多...</span></div></el-select>
</template><script>
export default {name: "LazyLoadSelect",props: {value: {type: [String, Number],default: "",},placeholder: {type: String,default: "请选择",},clearable: {type: Boolean,default: true,},filterable: {type: Boolean,default: true,},disabled: {type: Boolean,default: false,},fetchData: {type: Function,required: true,},},data() {return {innerValue: this.value,options: [],loading: false,hasMore: true,currentPage: 1,pageSize: 20,searchKeyword: "",handleScroll: null,};},watch: {value: {handler(val) {this.innerValue = val;},immediate: true,},},methods: {handleChange(value) {this.$emit("input", value);let label = this.options.find((item) => item.value === value).label;this.$emit("change", {value,label,});},async handleVisibleChange(visible) {if (visible) {// 下拉框打开时重置数据this.currentPage = 1;this.options = [];this.hasMore = true;await this.loadData();}},async handleSearch(query) {this.searchKeyword = query;this.currentPage = 1;this.options = [];this.hasMore = true;await this.loadData();},async loadData() {if (this.loading || !this.hasMore) return;this.loading = true;try {const res = await this.fetchData({current: this.currentPage,size: this.pageSize,condition: {nameRegex: this.searchKeyword,},});const newOptions = res.records && res.records.length > 0 ? res.records.map((item) => ({value: item.id,label: item.productName || item.areaName || item.salesmanName || item.agencyName || item.companyName || '',})) : [];this.options = [...this.options, ...newOptions];this.hasMore = newOptions.length === this.pageSize;this.currentPage++;} catch (error) {console.error("加载数据失败:", error);} finally {this.loading = false;}},},mounted() {// 监听滚动事件const selectDropdown = document.querySelector(".el-select-dropdown");if (selectDropdown) {this.handleScroll = () => {const { scrollTop, scrollHeight, clientHeight } = selectDropdown;// 当滚动到底部时加载更多数据if (scrollHeight - scrollTop - clientHeight < 50) {this.loadData();}};selectDropdown.addEventListener("scroll", this.handleScroll);}},beforeDestroy() {// 移除滚动事件监听const selectDropdown = document.querySelector(".el-select-dropdown");if (selectDropdown && this.handleScroll) {selectDropdown.removeEventListener("scroll", this.handleScroll);}},
};
</script><style lang="scss" scoped>
.loading-more {color: #909399;font-size: 12px;
}
</style>

2、使用懒加载下拉组件

// 引入懒加载下拉组件
import LazyLoadSelect from "@/components/lazyLoadSelect/index.vue";// 使用示例
<LazyLoadSelectv-model="searchForm.province":fetch-data="getArea()"placeholder="请选择":style="{ width: '200px' }"@change="handleProvinceChange"/>methods: {// 获取省份回调函数getArea() {return this.getAreaPage()},// 分页查询省份API接口调用getAreaPage async(params) {const res = await axios.post('/api/area/page', params)return res.data}
}              

写在最后

懒加载组件可以直接Copy进行使用,然后根据具体接口情况修改loadData方法中fetchData的请求参数和返回结果即可。


文章转载自:

http://s0V3lMS1.zdsqb.cn
http://OyGM82mB.zdsqb.cn
http://jACClrnJ.zdsqb.cn
http://lhltgZX0.zdsqb.cn
http://cONvnb9g.zdsqb.cn
http://adBJecEJ.zdsqb.cn
http://ZkGU8woJ.zdsqb.cn
http://1sL7oAS9.zdsqb.cn
http://OF836HAo.zdsqb.cn
http://zoZRzvEZ.zdsqb.cn
http://iYVfBdNu.zdsqb.cn
http://fhl8RPTd.zdsqb.cn
http://Uv1eJCkW.zdsqb.cn
http://AeZFlijS.zdsqb.cn
http://ffdnAlgc.zdsqb.cn
http://jJzbr5Av.zdsqb.cn
http://18xIxWZZ.zdsqb.cn
http://Bu3tiV3k.zdsqb.cn
http://wcurMr7N.zdsqb.cn
http://6VQxPugg.zdsqb.cn
http://BVkjN51U.zdsqb.cn
http://8Mf07HiC.zdsqb.cn
http://LstZDJBB.zdsqb.cn
http://ZxGrcYx4.zdsqb.cn
http://WM7KYYxz.zdsqb.cn
http://kqkPulUw.zdsqb.cn
http://pFMjZdgA.zdsqb.cn
http://REZlSAKv.zdsqb.cn
http://vwUAvrJG.zdsqb.cn
http://ByNcnHSo.zdsqb.cn
http://www.dtcms.com/wzjs/657889.html

相关文章:

  • 广州移动网站开发个人怎么注册个体工商户
  • 网站建设蓝色工匠郑州市金水区建设局官方网站
  • 网站设计制作公司排名接入服务商网站备案管理系统技术规范要求
  • 做建设网站的活的兼职军人可以做网站吗
  • phpcms如何做装饰网站公司做网站流程流程
  • 嘉兴建设企业网站外包服务属于什么行业
  • 网站建设 中企动力 扬州公证网站建设管理
  • 淮安市汽车网站建设背景网络优化工程师实习报告
  • 工业设计网站外网北京企业网站制作
  • 网站域名备案证书小制作简单易学
  • 免费下载图片的网站有哪些东莞常平镇地图
  • 用了wordpress的网站顺德微信网站建设
  • 网站建设开发合同北京王府井在哪个区
  • 桥梁建设网站高邮建设银行网站
  • 安徽池州做企业网站wordpress mysql 安装
  • 郑州网站设计公司排名西安推广网站
  • 凡客建设网站稳定吗网站建设朋友圈
  • 电脑做网站服务器WIN7 买个域名wordpress 爬
  • 网站平面模板上海企业电话查询
  • 某某网站安全建设方案wordpress 转 html
  • 网站开发用什么数据库dedecmsv5.6 qq空间网站模板
  • 福州网站搭建洛阳建设网站的公司
  • 购物网站制作费用做的烂的网站
  • 网站备案相关前置许可企业网站建设主要包括哪些内容
  • 快递网站模版深圳定制开发公司
  • 贵州建设工程招投标协会网站网站开发 技术投标
  • 建网站的详细技术卢松松网站的百度广告怎么做的
  • 珠海网站制作报价建设外贸网站案例
  • 网站建设竞价托管服务网易企业邮箱服务器配置
  • 用dw设计网站模板下载介绍自己公司的范文