支付宝小程序的级联选择器,对接简单操作,Cascader 级联选择器element_ui
首先,对于element_ui 的动接,由于需要数据格式是

但是支付宝提的接口返回的数据是另一种格式,并且支付宝的三级联动接口是先只有一个列表,点击列表项再发现请求,生成另外一个下拉选择,
需要这个三级联动不能直接使用element-ui的三级联动。需要自己实现这个功能

并且支付宝的这个数据是选中数据后再发下一级数据响应的,
思路:
先设三个select 表单,默认第一个表单发出请求,获取第一个下拉列表,当改变时,将改变的值用来做参数,发起一个获取二级的请求请求,当二维改变时再发起第三级列表的数据的请求,由于我这个代码的请求是封装后的请求,直接复制可能运行不了,主要是思路,正面会在说一下通用主代码,大家可能用在自己项目上
关健代码,给每个下拉选择绑定事件,并且事件将变时发出请求

第二步重点,是支付宝返回数例表中取key和value 的时候,自己先看一下结果在想根据那个做值发起请求。后端需要什么值,请先思考一下,如查你正好有相同需求,这块代码很好懂,如果没有需求,直接看这代码对于新手会蒙,所以需求才是内驱。
<template>
<div>
<el-select v-model="firstCategory" placeholder="请选择一级分类" @change="getSecondCategory">
<el-option v-for="category in firstCategoryList" :key="category.category_id" :value="category.category_id" :label="category.category_name"></el-option>
</el-select>
<el-select v-model="secondCategory" placeholder="请选择二级分类" @change="getThirdCategory" v-if="secondCategoryList.length > 0">
<el-option v-for="category in secondCategoryList" :key="category.category_id" :value="category.category_id" :label="category.category_name"></el-option>
</el-select>
<el-select v-model="thirdCategory" placeholder="请选择三级分类" @change="saveThirdCategory" v-if="thirdCategoryList.length > 0">
<el-option v-for="category in thirdCategoryList" :key="category.category_id" :value="category.category_id" :label="category.category_name"></el-option>
</el-select>
<div v-if="thirdCategoryList.length === 0">没有下一级</div>
<div>输出测试{{ categoryIds }}</div>
</div>
</template>
<script>
export default {
name: "Cascader",
data() {
return {
firstCategory: '',
secondCategory: '',
thirdCategory: '',
firstCategoryList: [],
secondCategoryList: [],
thirdCategoryList: [],
categoryIds: []
};
},
props: {
url: {
type: String,
required: true
}
},
created() {
this.getAlipayMiniCategoryList();
},
methods: {
getAlipayMiniCategoryList() {
// 向服务器请求一级数据
this.request({
url: this.url,
params: {
category_id: '',
category: '',
}
}).then(resp => {
this.firstCategoryList = resp.alipayMiniCategoryList;
}).catch(error => {
console.log(error);
});
},
getSecondCategory() {
// 清空后续级别的选择和保存的category_id
this.secondCategory = '';
this.thirdCategory = '';
this.secondCategoryList = [];
this.thirdCategoryList = [];
this.categoryIds = [this.firstCategory];
if (!this.firstCategory) return;
// 向服务器请求二级数据
this.request({
url: this.url,
params: {
category_id: this.firstCategory
}
}).then(resp => {
this.secondCategoryList = resp.alipayMiniCategoryList;
}).catch(error => {
console.log(error);
});
},
getThirdCategory() {
// 清空后续级别的选择和保存的category_id
this.thirdCategory = '';
this.thirdCategoryList = [];
this.categoryIds = [this.firstCategory, this.secondCategory];
if (!this.secondCategory) return;
// 向服务器请求三级数据
this.request({
url: this.url,
params: {
category_id: this.secondCategory
}
}).then(resp => {
this.thirdCategoryList = resp.alipayMiniCategoryList;
}).catch(error => {
console.log(error);
});
},
saveThirdCategory() {
this.categoryIds = [this.firstCategory, this.secondCategory, this.thirdCategory];
// 将结果发送到父组件
this.$emit('categoryChange', this.categoryIds);
}
}
};
</script>
支付宝小程序的级联选择器,对接简单操作,Cascader 级联选择器element_ui的更多相关文章
- Tarojs+redux支付宝小程序开发攻略
技术选型 对于习惯react语法的开发者来讲,RN是实现native的必备工具. 我们甚至可以屏蔽官方稳定而强大的配置层,直接上手开发. 而后,同为表层React语法的Rax.Taro这样的开源多端开 ...
- 支付宝小程序开发之与微信小程序不同的地方
前言: 本文仅汇总微信小程序移植支付宝小程序过程中遇到的一些不同的地方,详细请参考官方开发文档. 网络请求: 对于网络请求,基本上改动不大,也就支付宝小程序没有responseType属性及响应码字段 ...
- 支付宝小程序PHP全栈开发--前端样式的设计.acss样式详解
关于.acss文件 在视频中已经说过了,小程序的设计思想和原生app的设计思想颇为相似,基本的应用单元为页面.当然对于一个页面来说每一个元素的放置位置在哪儿以及显示成什么样子这个是由样式来决定的.我们 ...
- 小程序开发过程中常见问题[微信小程序、支付宝小程序]
目录 一.样式中如何使用background-image呢? 二.使用自适应单位rpx类似于rem,布局尽量使用flex布局 三.万能的{{双大括号,用于在模版中输出变量 四.你想要的基础组件和API ...
- 支付宝小程序与微信小程序开发功能和语法糖不同
最近开始负责公司webapp数据打通支付宝小程序,之前已经打通了微信小程序,现在根据支付宝小程序的开发文档在之前的模板上面做修改. 在修改模板的过程中,总结一下双方功能和语法糖的不同之处. 框架: a ...
- 支付宝小程序日期选择组件datePicker封装
github 地址 https://github.com/iocool/antminDatePicker 最近在做支付宝小程序(以下简称小程序)开发,发现小程序的日期选择组件很不好用,比如安卓和IOS ...
- 微信小程序和支付宝小程序富文本使用
微信小程序使用的是 1. wxml 页面元素的最简单使用 <rich-text nodes="{{这是你的数据}}"></rich-text> 2. j ...
- 支付宝小程序开发——获取位置API没有城市区号的最佳处理方案
前言: 需要对城市区号进行判断,但是支付宝小程序提供的my.getLocation() API返回的数据中只有6位的城市行政代码,诸如:深圳(440300),并没有区号(0755),那么怎么办呢? 需 ...
- 支付宝小程序室内地图导航开发-支付宝小程序JS加载esmap地图
如果是微信小程序开发,请参考微信小程序室内地图导航开发-微信小程序JS加载esmap地图文章 一.在支付宝小程序里显示室内三维地图 需要满足的两个条件 调用ESMap室内地图需要用到小程序web-vi ...
- PHP实现支付宝小程序用户授权的工具类
背景 最近项目需要上线支付宝小程序,同时需要走用户的授权流程完成用户信息的存储,以前做过微信小程序的开发,本以为实现授权的过程是很简单的事情,但是再实现的过程中还是遇到了不少的坑,因此记录一下实现的过 ...
随机推荐
- ReplayKit2 有线投屏项目总结
一.实现目标 iOS11.0以上设备通过USB线连接电脑,在电脑端实时看到手机屏幕内容 画质达到超清720级别,码率可达到1Mbps以上 二.实现技术方案设计 1.手机端采用ReplayKit2框架, ...
- .NET C#程序启动闪退,在安装或者程序文件下能正常运行,但通过路径却无法运行
.NET C#程序启动闪退,目录导致的问题 这是第2次踩这个坑了,很小的编程细节,容易忽略,所以写个博客,分享给大家. 1.第一次坑:是windows 系统把程序运行成服务,找不到配置文件,原因是以服 ...
- vue计算属性computed
模板中放入太多的逻辑会让模板过重且难以维护,使用计算属性可以让模板变得简洁易于维护.计算属性是基于它们的响应式依赖进行缓存的,计算属性比较适合对多个变量或者对象进行处理后返回一个结果值,也就是数多个变 ...
- 手机上玩 PC 游戏的开源项目「GitHub 热点速览」
上周国产 3A 大作<黑神话:悟空>开启预售,同时公布游戏将于北京时间 2024.8.20 正式上线.这是一款由「游戏科学」开发的西游题材单机·动作·角色扮演游戏,它采用「虚幻引擎5」制作 ...
- LLM应用实战:当图谱问答(KBQA)集成大模型(三)
1. 背景 最近比较忙(也有点茫),本qiang~想切入多模态大模型领域,所以一直在潜心研读中... 本次的更新内容主要是响应图谱问答集成LLM项目中反馈问题的优化总结,对KBQA集成LLM不熟悉的客 ...
- n. Elasticsearch JAVA API操作
引言 Elasticsearch所支持的客户端连接方式有两种 Transport 连接 底层使用socket连接,用官方提供的TransPort客户端,网络IO框架使用的是netty Http连接(R ...
- idea编译报错 Lombok运行测试类报错 jar依赖冲突解决
idea编译报错 Lombok运行测试类报错 jar依赖冲突解决 1.现象是idea编译,运行项目的时候是没有问题,可以正常跑起来.2.运行junit测试类的时候,报错提示 lombok找不到类,解决 ...
- 效率提升利器:一个在线的.NET源码查询网站
前言 你是否有这样的苦恼,有时候需要查询.NET中的某个类型.方法.属性或程序集的源代码,但又不想从GitHub中下载源代码.今天大姚分享一个在线且实用的.NET源码查询网站. 在线查询地址 http ...
- 聊一聊 Monitor.Wait 和 Pluse 的底层玩法
一:背景 1. 讲故事 在dump分析的过程中经常会看到很多线程卡在Monitor.Wait方法上,曾经也有不少人问我为什么用 !syncblk 看不到 Monitor.Wait 上的锁信息,刚好昨天 ...
- python 方法调用另一个方法报错,捕获的异常只有message,优化为trackback捕获详细的报错信息
A方法加了try...expect... B方法也加了try....expect... B方法调用了A方法,A方法查找元素,找不到报超时异常,实际B捕获到的异常,只有message\n,没有办法看出是 ...