首页 > 其他分享 >antocomplete 实现省市联动以及输入本文

antocomplete 实现省市联动以及输入本文

时间:2023-08-18 15:22:52浏览次数:54  
标签:province city 省市 联动 value element key any antocomplete

其实本身联动下拉框是个很简单的活,但是业务提了个要求,就是要允许输入下拉框选项里没有的内容,不接受反驳。

 

1,新建省市通用组件 AutocompleteProviceCityComponent

<input placeholder="" [(ngModel)]="defaultValue" nz-input (focus)="onInput($event)" (input)="onInput($event)" (ngModelChange)="onValueChange()" [nzAutocomplete]="sourceAuto"  /> <nz-autocomplete [compareWith]="compareWith" nzBackfill #sourceAuto>     <nz-auto-option *ngFor="let option of options" [nzValue]="option.value" [nzLabel]="option.key">         {{ option.key }}       </nz-auto-option> </nz-autocomplete>   export class AutocompleteProviceCityComponent implements OnInit {
  @Input('sourceList') sourceList: any[];//省或市的集合   options: any[] = [];   @Input('defaultValue') defaultValue :string;//文本值
  @Output() changeValueEvent=new EventEmitter<string>();   constructor() { }
  ngOnInit(): void {
  }   onInput(e: Event): void {     const value = (e.target as HTMLInputElement).value;     this.options = this.sourceList.filter(s => s.key.indexOf(value) > -1);   }   onValueChange(){     this.changeValueEvent.emit(this.defaultValue);   }
  compareWith = (o1: any | string, o2: any): boolean => {     if (o1) {       return o2.indexOf(o1) > -1;     } else {       return false;     }   }; }

2,外层操作逻辑

<app-autocomplete-provice-city (changeValueEvent)="getProvince($event)"   [defaultValue]="province" [sourceList]="listOfProvice"></app-autocomplete-provice-city>

 

 <app-autocomplete-provice-city (changeValueEvent)="getCity($event)"   [defaultValue]="city" [sourceList]="listOfCity"></app-autocomplete-provice-city>

getProvince(province: any) {
this.queryCities(province);
}

getCity(city: any) {
this.confirmBank.city = city;
}

 

 queryCities(province: string) {     if (!province) return;     this.province = province;     this.city = '';     this.service.getCityList(province).subscribe((ret) => {       if (ret) {         this.listOfCity = ret;         this.listOfCity.forEach(element => {           element.key = element.key.substring(element.key.lastIndexOf('_') + 1, element.key.length)         });       }     });   }

 

标签:province,city,省市,联动,value,element,key,any,antocomplete
From: https://www.cnblogs.com/ashlly/p/17640610.html

相关文章

  • 黑魂233 导演动画和代码联动
    给Director物体新建一个脚本,TesterDirector 然后将Director插件放进pd变量里: 在代码里添加导演动画激活的按钮:只要按下T键,就会执行。前提是得先把PlayOnWake消钩。 然后再添加这几个代码,让导演动画可以重复播放: ......
  • ThingsKit物联网平台配置场景联动
    概述您可以通过本文了解定时触发类场景的配置方式。本示例基于ThingsKit平台提供的设备模拟数据场景,通过触发场景联动规则,自动打开空调。具体场景是将空调设备接入ThingsKit平台,创建场景联动:当温度高于28℃会触发开启空调的执行动作,物联网平台会下发打开空调的命令,空调收到命令......
  • element多选下拉框与文本框联动
    1.需求多选下拉框与文本框联动从不同页面跳转,多选框的显示与隐藏2.效果图3.原始人真的来写代码了ElementUI可多选下拉框<template> <el-col:span="6"><label>工作内容</label></el-col><el-col:span="18"><el-form-itemprop="comment......
  • element中两个table表格和已选数据联动
    element中table表格和已选数据联动需求:1.根据条件查询表格,多选框选中项移到已选择表格,取消选择,已选项表格也取消该调数据数据2.已选项增加删除按钮,删除之后,查询数据的表格也取消勾选3.重新查询新数据,已选择数据不会改变,新选中的数据添加到已选择表格//......
  • 2023年8月最新全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图数据 shp geojso
    发现个可以免费下载全国 geojson 数据的网站,推荐一下。支持全国、省级、市级、区/县级、街道/乡镇级以及各级的联动数据,支持导入矢量地图渲染框架中使用,例如:D3、Echarts等geojson数据下载地址:https://geojson.hxkj.vip该项目github地址:https://github.com/TangSY/echarts-m......
  • 十城百校联动!HDC.Together 2023 HarmonyOS学生公开课与千余名校园学子见证鸿蒙力量
     8月6日,HDC.Together2023 HarmonyOS学生公开课在东莞松山湖举办。有来自清华大学、北京大学、哈尔滨工业大学等全国百余所高校,千余名学生开发者齐聚会场,与华为高级技术专家、生态伙伴资深专家一起畅谈HarmonyOS未来,共话HarmonyOS在生活中的N种可能。此外,本次活动首次走进华......
  • xray安装,图形化界面以及和bp联动
    这两天学的乱起八糟的,本来是学反序列化,奈何太穷只能白嫖别人的ctfshow,做着做着发现环境没了掉线了,加上php基础不太好断断续续的没学啥玩意,就先放一边瞅了瞅php基础,顺带补之前互联网协议啥的作业也忘了咋回事就想起来装xray了直接下载或者是下载之后传上去:https://github.com/cha......
  • layui-tree 设置子父级节点联动
    1vue版本2.5.6231、设置选择父级节点,子级节点不联动选择45①前端代码67layui.use(['tree','util'],function(){8vartree=layui.tree;9varutil=layui.util;10tree.render({11elem:'#dept_tree',12......
  • burpsuite联动xray
    前情提要首先了解一下xray的浏览器初次使用是需要生成ca证书的xray_windows_amd64.exegenca  这里是已经有了所以没出来,执行成功会出现这两个文件 然后将ca.crt这个证书导入到浏览器接下来就可以正常使用了如果是由burp转发过来的数据包其实是可以不用导入ca证书......
  • 全国省市县三级下拉框实现
    vue用省市区三级联动之傻瓜式教程(复制粘贴即用)npm下载npm installv-distpicker --save main.js//引入 省市区三级联动import Distpicker from 'v-distpicker' //全局使用省市区三级联动Vue.component('v-distpicker', Distpicker) vue代码<t......