流程表单信息部门机构树选择

pull/763/head
宿命的风 2025-04-14 15:45:12 +08:00
parent 8157939eee
commit 3b6ef1d9c0
4 changed files with 90 additions and 0 deletions

2
run.bat Normal file
View File

@ -0,0 +1,2 @@
title ǰ¶Ë·þÎñ
npm run dev

View File

@ -0,0 +1,50 @@
<template>
<el-tree-select
v-bind="attrs"
:data="deptList"
:props="defaultProps"
check-strictly
node-key="id"
placeholder="请选择"
:multiple="multiple"
:show-checkbox="showCheckbox"
:filterable="filterable"
:clearable="clearable"
/>
</template>
<script lang="ts" setup>
import { defaultProps, handleTree } from '@/utils/tree'
import * as DeptApi from '@/api/system/dept'
defineOptions({ name: 'DeptTreeSelect' })
const attrs = useAttrs()
//
interface Props {
multiple: boolean, //
showCheckbox: boolean, //
filterable:boolean, //
formCreateInject?: any
}
const props = withDefaults(defineProps<Props>(), {
multiple: false,
showCheckbox: false,
filterable:false,
clearable:false
})
const deptList = ref<Tree[]>([]) //
onMounted(async () => {
console.log('Props',props)
const data = await DeptApi.getSimpleDeptList() //1.
if (!data || data.length === 0) {
return
}
deptList.value = handleTree(data)
})
</script>

View File

@ -2,6 +2,7 @@ import { useUploadFileRule } from './useUploadFileRule'
import { useUploadImgRule } from './useUploadImgRule' import { useUploadImgRule } from './useUploadImgRule'
import { useUploadImgsRule } from './useUploadImgsRule' import { useUploadImgsRule } from './useUploadImgsRule'
import { useDictSelectRule } from './useDictSelectRule' import { useDictSelectRule } from './useDictSelectRule'
import { useDeptTreeSelectRule } from './useDeptTreeSelectRule'
import { useEditorRule } from './useEditorRule' import { useEditorRule } from './useEditorRule'
import { useSelectRule } from './useSelectRule' import { useSelectRule } from './useSelectRule'
@ -10,6 +11,7 @@ export {
useUploadImgRule, useUploadImgRule,
useUploadImgsRule, useUploadImgsRule,
useDictSelectRule, useDictSelectRule,
useDeptTreeSelectRule,
useEditorRule, useEditorRule,
useSelectRule useSelectRule
} }

View File

@ -0,0 +1,36 @@
import { generateUUID } from '@/utils'
import { localeProps, makeRequiredRule } from '@/components/FormCreate/src/utils'
import { selectRule } from '@/components/FormCreate/src/config/selectRule'
import { cloneDeep } from 'lodash-es'
/**
* 使使 useSelectRule
*/
export const useDeptTreeSelectRule = () => {
const label = '部门树选择'
const name = 'DeptTreeSelect'
const event = ['click','change','visibleChange','clear','blur','focus']
const rules = cloneDeep(selectRule)
return {
icon: 'icon-doc-text',
label,
name,
event: event,
rule() {
return {
type: name,
field: generateUUID(),
title: label,
info: '',
$required: false
}
},
props(_, { t }) {
return localeProps(t, name + '.props', [
makeRequiredRule(),
{ type: 'switch', field: 'showCheckbox', title: '是否显示复选框' },
...rules
])
}
}
}