uview-plus多列模式与多列联动实践

server/2024/9/23 7:36:24/

项目场景:部门多级联动,实现效果:

选项数组的格式如下:

        party_info: [
            ['一级部门 1','一级部门 ,2','一级部门 3','一级部门 4'],
            ['二级部门 1','二级部门 ,2','二级部门 3'],
            ['三级部门 1','三级部门 ,2']
        ]

先感谢组件的力量,官方链接

https://uiadmin.net/uview-plus/components/picker.html

在使用组件的过程中,changeHandler的方法中有个函数是不能直接使用的,见下图 :

我的方法:

	const changeHandler = (e : any) => {const { columnIndex, value } = e;// 第一列if (columnIndex === 0) {picker.value.loading = true;picker.value.columns.splice(1, 4)party1_api({ id: value[0].id }).then((res : any) => {if (res.code == 1) {picker.value.columns[1] = res.data[0]} else {return}})picker.value.loading = false;}// 第二列if (columnIndex === 1) {picker.value.loading = true;picker.value.columns.splice(2, 3)party1_api({ id: value[1].id }).then((res : any) => {if (res.code == 1) {picker.value.columns[2] = res.data[0]} else {return}})picker.value.loading = false;}// 第三列if (columnIndex === 2) {picker.value.loading = true;picker.value.columns.splice(3, 2)party1_api({ id: value[2].id }).then((res : any) => {if (res.code == 1) {picker.value.columns[3] = res.data[0]} else {return}})picker.value.loading = false;}// 第四列if (columnIndex === 3) {picker.value.loading = true;picker.value.columns.splice(4, 1)party1_api({ id: value[3].id }).then((res : any) => {if (res.code == 1) {picker.value.columns[4] = res.data[0]} else {return}})picker.value.loading = false;}}

 核心就是对 options 数组的控制,写的有点长,可以再次封装优化。

其他代码(参考)

选择器:

<!-- 部门输入框 --><fui-input required label="申请部门" placeholder="请选择申请部门" v-model="data.add.party_text"><fui-button type="gray" bold width="200rpx" height="64rpx" :size="28" text="选择部门"@click="choose('party')"></fui-button></fui-input><!-- 选择器 --><up-picker :show="picker.show" ref="uPickerRef" :loading="picker.loading" :columns="picker.columns" keyName="name"@confirm="confirm" @change="changeHandler" @cancel="picker.show=false"></up-picker>

choose 事件

	const choose = (e : string) => {if (e == 'party') {// 请求部门一级数据party1_api({}).then((res : any) => {if (res.code == 1) {picker.value.columns = res.data// 请求第一个部门的信息let id = res.data[0][0].idparty1_api({ id: id }).then((res : any) => {if (res.code == 1) {picker.value.columns[1] = res.data[0]} else {return}})} else {return}})// 打开部门选择器picker.value.show = true}}

选择器绑定的数据部分:

	const picker = ref({show: false,uPickerRef: null,loading: false,// party_info: [],// staff_info: [],columns: [] as any,})

api 接口

/*** 请求部门信息 1* @param data 请求参数*/
export const party1_api = (params:any) => {return http({method: 'GET',url: 'vue/supplier/party1',data: params})

后端(php)

   // 部门一级public function party1($id=194){$row = Department::where('parent_id',$id)->field('id,name')->select();if($row){$this->success('查询成功',[$row]);}else{$this->error('找不到数据!');}}


http://www.ppmy.cn/server/101373.html

相关文章

实现一个自定义的Collector!

背景 当前有多个用户&#xff0c;产品提出一个需求&#xff0c;根据userStatus分组&#xff0c;然后将每个分组中的用户按照gender进行累加得到不同userStatus组下的gender总和 以map类型返回&#xff0c;而且要求使用stream.collect(Collector.groupingBy())方法一行写完&…

【数据结构与算法】图

图目录 一.图的原理二.图的表示1.邻接列表2.邻接矩阵 三.图的结构——邻接表四.邻接表的初始化五.邻接表的创建六.完整代码 一.图的原理 图在我们的日常生活中,可谓是应用广泛,最长见的就有地图. 图可以是双向的,也可以是单向的. 图是一种由节点和边组成的数据结构. 节点&…

android FD_SET_chk问题定位

android FD_SET_chk问题定位 一、FD报错二、问题定位2.1 APM定位2.2 adb定位2.3. 代码获取FD数 三、FD优化 一、FD报错 App在运行中记录报错如下&#xff0c;FD_SET&#xff0c;这个问题大概是文件描述符&#xff08;File Descriptor&#xff0c;简称FD&#xff09;超过了最大…

2024新型数字政府综合解决方案(三)

新型数字政府综合解决方案通过融合人工智能、大数据和云计算技术&#xff0c;建立了一个智能化、互联互通的政府服务平台&#xff0c;旨在提升政府服务效率与透明度。该方案通过全面数字化政务流程&#xff0c;实现数据的实时共享和自动化处理&#xff0c;使公众能够便捷地访问…

map/set和unordered_map/unordered_set的区别及使用情况

map/set和unordered_map/unordered_set的区别 容器底层数据结构是否有序实现版本复杂度迭代器map/set红黑树有序C98O(logN&#xff09;双向迭代器unordered_map/unordered_set哈希表/散列表无序C11O(1)单向迭代器 unordered_set无序的&#xff08;VS下&#xff09; void uno…

C#工具库-NPOI

一、简介 NPOI是一个基于c#语言的&#xff0c;开源的&#xff0c;能够在不安装Microsoft Office组件的条件下读写Microsoft Office 的库。前身是Java的POI库,有“先贤”将其翻译成了c#语言的库&#xff0c;而这种由java到c#库的演变并非个例&#xff0c;比如DotNetty之于Netty,…

LabVIEW光伏微网实验系统

开发了一个基于LabVIEW的光伏微网实验系统&#xff0c;系统主要服务于工程教育和技术研究&#xff0c;以提高学生对分布式电力系统的理解和操作能力。该实验系统能够模拟光伏微网的各种运行状态&#xff0c;包括能量的生成、存储和消费等&#xff0c;特别是在无电网状态下的独立…

Windows禁止应用联网

转自两种方法阻止电脑上的软件彻底联网&#xff01; - 知乎 (zhihu.com) 但为了稳妥&#xff0c;自己还是稍微记录一下 1、创建bat脚本文件 创建文本-将下面的代码填入-保存为.bat文件 Echo Off SetLocal:beginecho: echo ****** 禁止文件夹联网 ****** echo:set /p folder…