代码拉取完成,页面将自动刷新
Vue-Select-Dialog 是一款基于vue2 + ElementUI封装的功能强大的 Vue.js 选择框组件, 支持单选、多选、分页、列表展示、搜索过滤等特性,同时具备高度定制化能力, 适用于各种复杂的选择场景。 无论是简单的下拉选择,还是复杂的数据筛选,Vue-Select-Dialog 都能轻松应对。
# 安装依赖
npm install
# 前端 node:18.20.3
npm run start_front
# 后端
npm run start_back
npm update vue-select-dialog
npm i vue-slect-dialog -D
import Vue from 'vue'
import vueSelectDialog from "vue-select-dialog";
Vue.use(vueSelectDialog)
参数 | 说明 | 类型 | 可选值 | 默认值 | 是否必填 |
---|---|---|---|---|---|
dialogWidth | 弹窗宽度 | String | - | 1000px | - |
disabled | 是否禁用 | Boolean | - | false | - |
menuTitle | 左侧列表标题 | String | - | 清单 | - |
selectedTitle | 右侧已选列表标题 | Array | - | 已选 | - |
maxSelectable | 最大可选数量 | Number | -1不限制,1单选,大于1的整数 | -1 | - |
behavior | 当超出限制数量后的行为 (maxSelectable!==-1时启用) | Number | - | 0 表示不允许选择,1 表示自动去除多余的选择项(优先去除最先选择的) | - |
validate | 点击保存是否需要校验 | Boolean | false,true | false | - |
validateMessage | 校验提示语 | String | - | 请先选择一条数据! | - |
processingData | 请求接口后处理返回数据 | Function | - | 见下方processingData示例 | - |
idKey | 表格单行数据的唯一标识 | String | - | id | - |
valueKey | tag上展示的字段 | String | - | name | 必填 |
pagination | 当前列表是否需要分页(根据接口,该组件本身不支持前端分页) | Boolean | - | true | - |
pageNum | 分页页码(对应后端接口的分页字段) | String | - | pageNum | - |
pageSize | 分页大小(对应后端接口的分页字段) | String | - | pageSize | - |
formLabel | 查询条件 | Array | - | 见下方formLabel示例 | - |
tableDataColumn | 表格的表头数据 | Array | - | 见下方tableDataColumn示例 | 必填 |
// 用于处理接口返回的数据(data:表格数据,total:表格数据总条数)
const processingDataDemo1 = (res) => {
return {data: res.data, total: res.data.length};
}
const processingDataDemo2 = (res) => {
return {data: res.data.list, total: res.data.total};
}
参数 | 说明 | 类型 | 可选值 | 默认值 | 是否必填 |
---|---|---|---|---|---|
label | 表头名称 | String | - | - | 必填 |
prop | 对应接口返回的字段 | String | - | - | 必填 |
isSlot | 是否是插槽 | Boolean | - | - | - |
width | 表头宽度 | Number | - | - | - |
accumulate | 序号是否累加(仅对label是序号或者index时有效) | Boolean | - | - | - |
tableDataColumn = [
{
label: "序号", // 表头名称
width: 50, // 表头宽度
accumulate: false, // 序号是否累加
},
{
label: "部门名称",
prop: "dept_name",
},
{
label: "部门ID",
prop: "dept_id",
},
{
label: "部门状态",
prop: "status", // 对应接口返回的字段
isSlot: true, // 是否是插槽
},
{
label: "节点类型",
prop: "nodeType",
isSlot: true,
},
{
label: "创建者",
prop: "create_by",
},
{
label: "创建时间",
prop: "create_time",
},
];
<script>
import {getDeptQueryList} from "@/api";
export default {
provide() {
return {
requestName: getDeptQueryList,
// requestName: (params) => getDeptQueryList(params) // 和上面效果一样【需在注册接口的地方接参】
};
}
}
</script>
<script>
import axios from "axios";
export default {
provide() {
return {
requestName: this.interfaceName
};
},
methods: {
interfaceName(params) {
let url = "接口地址";
return axios.get(url, {params});
}
}
}
</script>
事件名称 | 说明 | 回调参数 |
---|---|---|
update-formLabel | 主要用于更新formLabel中配置的下拉数据(如果查询条件是动态的下拉数据则必填) | formLabel |
on-response | 点击确定按钮后接收选择的表格行数据 | [] |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。