跳到主要内容

JSelectDeptPost部门岗位选择 ✔


参数定义

参数类型是否必填默认值说明
value[String,Array]回显值
showButtonBooleantrue是否显示选择按钮
disabledBooleanfalse是否禁用
rowKeyStringkey取值字段配置,一般为主键字段
labelKeyStringtitle显示字段配置
defaultExpandLevelString1初始展开层级
checkableBooleantrue是否显示复选框
startPidString-根节点初始值(serverTreeData不开启服务端数据转换时使用)
primaryKeyStringid主键字段
parentKeyStringparentId父ID字段
titleKeyStringtitletree节点显示文本字段
serverTreeDataBooleantrue是否开启服务端数据转换
multipleBooleantruev1.1.0 是否允许多选
modalTitleString部门岗位选择选择框标题

事件定义

事件名参数说明
getSelectResultoptions, values确认选择回调,单独使用选择框中使用该事件获取选中值

tree要求的数据格式

[
{
"key": "1",
"title": "节点1",
"children": [
{
"key": "1-1",
"title": "子节点",
"children": []
}
]
},
{
"key": "2",
"departName": "节点2",
"children": []
}
]

使用示例

BaseForm中使用示例

{
field: 'depart4',
component: 'JSelectDepartPost',
label: '选择岗位',
componentProps: { showButton: false },
colProps: {
span: 12,
},
},

插槽中使用示例

<template #JSelectDepartPost="{ model, field }">
<JSelectDepartPost v-model:value="model[field]"></JSelectDepartPost>
</template>

单独使用示例

<template>
<a-button type="primary" preIcon="ant-design:plus-outlined" @click="openHandle">选择</a-button>
<DeptSelectModal iz-only-select-depart-post modalTitle="部门岗位选择" rowKey="id" @register="registerSelModal" @getSelectResult="onSelectOk"/>
</template>
<script lang="ts" setup>
import { useModal } from "@/components/Modal";
import DeptSelectModal from '/@/components/Form/src/jeecg/components/modal/DeptSelectModal.vue'
// 注册选择框
const [registerSelModal, {openModal}] = useModal()
let selectValues = reactive<Recordable>({
//附值value
value: [],
});
//下发 selectValues
provide('selectValues', selectValues);
// 打开选择框
function openHandle() {
openModal();
}
// 选择确认事件
function onSelectOk(selectRows, selectKeys) {
//处理业务逻辑
console.log(selectRows,selectKeys)
}
</script>

前端转换tree数据结构

如下数据所示,后台返回的数据结构不是树形的但是必须的含有parentId,此时需要设置serverTreeData=false,开启前端转换为tree结构数据,并指定titleKey为departName,primaryKey为deptId,parentKey为parentId

[
{
"deptId": "1",
"parentId": "",
"departName": "节点1",
},
{
"deptId": "2",
"parentId": "",
"departName": "节点2",
}
]

代码示例

{
label: '主岗位',
field: 'JSelectDepartPost',
component: 'JSelectDept',
componentProps:({formActionType,formModel}) => {
return {
titleKey:"departName",
primaryKey:"id",
parentKey:"parentId",
serverTreeData:false
}
}
}