Prechádzať zdrojové kódy

form-create-designer: 表单组件新增用户选择器

puhui999 1 rok pred
rodič
commit
d16bed4ad7

+ 1 - 8
src/components/DictSelect/src/DictSelect.vue

@@ -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>

+ 3 - 17
src/components/FormCreate/src/config/useUserSelectRule.ts

@@ -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',

+ 3 - 1
src/plugins/formCreate/index.ts

@@ -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 文档

+ 3 - 3
src/utils/dict.ts

@@ -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 - 0
src/views/system/user/components/UserSelect.vue

@@ -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>