form-create-designer: 表单组件新增用户选择器
This commit is contained in:
parent
68dae2d1fe
commit
d16bed4ad7
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-select :model-value="modelValue" class="w-1/1" v-bind="attrs" @change="changeValue">
|
||||
<el-select class="w-1/1" v-bind="attrs">
|
||||
<template v-if="valueType === 'int'">
|
||||
<el-option
|
||||
v-for="(dict, index) in getIntDictOptions(dictType)"
|
||||
@ -43,11 +43,4 @@ withDefaults(defineProps<Props>(), {
|
||||
})
|
||||
const attrs = useAttrs()
|
||||
defineOptions({ name: 'DictSelect' })
|
||||
const emits = defineEmits<{
|
||||
(e: 'update:modelValue', v: any): void
|
||||
}>()
|
||||
const changeValue = (value: any) => {
|
||||
console.log(value)
|
||||
emits('update:modelValue', value)
|
||||
}
|
||||
</script>
|
||||
|
@ -1,22 +1,9 @@
|
||||
import { generateUUID } from '@/utils'
|
||||
import * as UserApi from '@/api/system/user'
|
||||
import { localeProps, makeOptionsRule, makeRequiredRule } from '@/components/FormCreate/src/utils'
|
||||
import { localeProps, makeRequiredRule } from '@/components/FormCreate/src/utils'
|
||||
|
||||
export const useUserSelectRule = () => {
|
||||
const label = 'aa选择器'
|
||||
const name = 'select'
|
||||
const userOptions = ref<{ label: string; value: number }[]>([]) // 用户下拉数据
|
||||
onMounted(async () => {
|
||||
const data = await UserApi.getSimpleUserList()
|
||||
if (!data || data.length === 0) {
|
||||
return
|
||||
}
|
||||
userOptions.value =
|
||||
data?.map((item: UserApi.UserVO) => ({
|
||||
label: item.nickname,
|
||||
value: item.id
|
||||
})) ?? []
|
||||
})
|
||||
const label = '用户选择器'
|
||||
const name = 'UserSelect'
|
||||
return {
|
||||
icon: 'icon-select',
|
||||
label,
|
||||
@ -33,7 +20,6 @@ export const useUserSelectRule = () => {
|
||||
props(_, { t }) {
|
||||
return localeProps(t, name + '.props', [
|
||||
makeRequiredRule(),
|
||||
makeOptionsRule(t, 'options', userOptions.value),
|
||||
{ type: 'switch', field: 'multiple', title: '是否多选' },
|
||||
{
|
||||
type: 'switch',
|
||||
|
@ -20,6 +20,7 @@ import install from '@form-create/element-ui/auto-import'
|
||||
//======================= 自定义组件 =======================
|
||||
import { UploadFile, UploadImg, UploadImgs } from '@/components/UploadFile'
|
||||
import { DictSelect } from '@/components/DictSelect'
|
||||
import UserSelect from '@/views/system/user/components/UserSelect.vue'
|
||||
|
||||
const components = [
|
||||
ElAside,
|
||||
@ -37,7 +38,8 @@ const components = [
|
||||
UploadImg,
|
||||
UploadImgs,
|
||||
UploadFile,
|
||||
DictSelect
|
||||
DictSelect,
|
||||
UserSelect
|
||||
]
|
||||
|
||||
// 参考 http://www.form-create.com/v3/element-ui/auto-import.html 文档
|
||||
|
@ -1,8 +1,8 @@
|
||||
/**
|
||||
* 数据字典工具类
|
||||
*/
|
||||
import { useDictStoreWithOut } from '@/store/modules/dict'
|
||||
import { ElementPlusInfoType } from '@/types/elementPlus'
|
||||
import {useDictStoreWithOut} from '@/store/modules/dict'
|
||||
import {ElementPlusInfoType} from '@/types/elementPlus'
|
||||
|
||||
const dictStore = useDictStoreWithOut()
|
||||
|
||||
@ -137,7 +137,7 @@ export enum DICT_TYPE {
|
||||
INFRA_FILE_STORAGE = 'infra_file_storage',
|
||||
|
||||
// ========== BPM 模块 ==========
|
||||
BPM_MODEL_FORM_TYPE = 'bpm_model_form_type',
|
||||
BPM_MODEL_FORM_TYPE = 'bpm_model_category',
|
||||
BPM_TASK_CANDIDATE_STRATEGY = 'bpm_task_candidate_strategy',
|
||||
BPM_PROCESS_INSTANCE_STATUS = 'bpm_process_instance_status',
|
||||
BPM_TASK_STATUS = 'bpm_task_status',
|
||||
|
28
src/views/system/user/components/UserSelect.vue
Normal file
28
src/views/system/user/components/UserSelect.vue
Normal file
@ -0,0 +1,28 @@
|
||||
<!-- TODO puhui999: 先单独一个后面封装成通用选择组件 -->
|
||||
<template>
|
||||
<el-select class="w-1/1" v-bind="attrs">
|
||||
<el-option
|
||||
v-for="(dict, index) in userOptions"
|
||||
:key="index"
|
||||
:label="dict.nickname"
|
||||
:value="dict.id"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import * as UserApi from '@/api/system/user'
|
||||
|
||||
defineOptions({ name: 'UserSelect' })
|
||||
|
||||
const attrs = useAttrs()
|
||||
const userOptions = ref<UserApi.UserVO[]>([]) // 用户下拉数据
|
||||
|
||||
onMounted(async () => {
|
||||
const data = await UserApi.getSimpleUserList()
|
||||
if (!data || data.length === 0) {
|
||||
return
|
||||
}
|
||||
userOptions.value = data
|
||||
})
|
||||
</script>
|
Loading…
Reference in New Issue
Block a user