组件文档

207 阅读17分钟

组件、公共方法使用

平台统一样式、统一功能、统一维护、减少重复代码;基于 element-plus 二次封装,支持所有原生饿了么组件属性、事件

表格:fs-el-tabel

<fs-el-table ref="fsTable" :tableConfig="tableConfig" v-model="queryParams">
    <!-- 查询条件 -->
    <template #searchformItem>
        <el-form 
        ref="searchForm" 
        label-position="right" 
        :inline="true" 
        :model="queryParams">
            <el-form-item label="待办事项">
                <el-input v-model="queryParams.todoItem" placeholder="请输入待办事项" />
            </el-form-item>
        </el-form>
    </template>
    <!-- 自定义列 todoCategoryName对应的columnConfig配置里的prop属性-->
    <template #todoCategoryName="scope">     <!-- 待办类别 -->
         <!-- 这里处理任何你想要显示的元素 -->
        <span>{{ scope.row.todoCategoryName }}</span>
    </template>"
    <!-- 可以直接使用原生饿了么组件,注意这里不与columnConfig绑定-->
    <el-table-column prop="date" label="Date" />
    <!-- 如果你想自定义操作按钮 的图标 而不是简单的文字按钮-->
    <el-table-column label="操作" fixed="right" width="240" align="center">
        <template #default="{ row }">
        <div class="operation-box">
            <!--funPower.delete:权限控制-->
            <el-icon v-show="funPower.delete && row.dataSource === 2" class="op-icon"
                title="删除" @click="onDelete(row.id)">
                <Delete />
            </el-icon>
            <el-icon v-show="row.dataSource === 2" class="op-icon"
                title="修改" @click="goTo(row.id)">
                <Edit />
            </el-icon>
        </div>
        </template>
</el-table-column>
</fs-el-table>
//引入权限
import usePower from '@/hooks/usePower.ts'
const { funPower } = usePower() //当前页面的功能按钮权限

//表格实例
const fsTable = ref(null)
//查询条件
const queryParams = ref({
    taskStatus: 1, //初始值,重置查询条件会重置到这里赋值的初始状态
    todoCategory: '',
    handlerCode: '',
})

属性名说明类型默认值
queryParams查询条件详见下面讲解
tableConfig列表配置详见下面讲解
is-show-filter是否需要筛选booleantrue
is-show-pageination是否需要分页booleantrue
is-local-storage是否开启查询条件本地缓存booleanfalse
@search-table自定义表格查询() => ResTableData

1、表格查询条件-queryParams

关于重置功能:重置到初始状态,而不是清空查询条件。请一定在queryParams定义时就赋予初始值,正确案例如下:

const queryParams = ref({
    todoCycle: Number(route.query.todoCycle) || '', //初始值
    taskStatus: 1, // 初始值
    todoItem: ''
})

反例:

const queryParams = ref({
    taskStatus: ''
})
onMounted(()=>{
    queryParams.value.taskStatus = 2 //这种都不算做初始值;重置将会清空
})

2、表格配置属性-tableConfig

const tableConfig = reactive({
    // 列表请求配置
    lazyQuery: {},
    // 列配置
    columnConfig: [],
    // 顶部功能配置
    funBtnConfig: [],
    // 列操作配置
    opBtnConfig: [],
    // 更多操作配置
    moreOperationsConfig: [],
})
lazyQuery属性:列表请求相关
属性名说明类型默认值
url请求的接口路径string
method接口请求方法stringget
immediate是否初始查询booleantrue
beforeQuery请求前回调,接收一个参数params(请求前的接口入参),用于处理请求前参数,返回值为处理后参数(params: QueryParams) => any
afterQuery请求成功后回调,接收一个参数res(接口返回值),用于处理请求数据,返回处理后的数据(res: any) => ResTableData
lazyQuery: {
    method: 'post',
    url: '/personnelManagement/todoTasks/list',
    immediate: true,
    beforeQuery: (params) => {
        return {
            ...params.params,
            pageIndex: params.pageIndex,
            pageSize: params.pageSize,
        }
    },
    afterQuery: (res)=>{
        return {
           data: res.data.records,
           total: res.data.total
        }
    }
},
相关类型
type QueryParams = {
  pageIndex: number
  pageSize: number
  params?: object
}
type ResTableData = {
  data: array<object>
  total: number
}
columnConfig属性:表格列相关;

这里只列举了几个常用 或者 自定义属性,其他属性皆继承与饿了么组件## Table-column API,参考文档

属性名说明类型默认值
type等同于element-plus中Table-column 的type属性参照饿了么组件文档,额外增加operate,表示操作列属性非必填
prop等同于element-plus中Table-column 的prop属性参照饿了么组件文档必填,多级表头时父级也必填
label等同于element-plus中Table-column 的label属性参照饿了么组件文档非必填
isModulePower用于指定此字段为模块数据权限判断(具体逻辑需要梳理)booleanfalse/非必填
isUserPower用于指定此字段为人员数据权限判断(具体逻辑需要梳理)booleanfalse/非必填
options传入枚举,可用来数字转文案,例如:[{ label: 'aaa', value: '1' }]arraynull/非必填
format显示格式,目前支持的格式如下表格string| arraynull/非必填
statusMap文案颜色或图标枚举;与 format = ['textStatus', 'iconStatus', 'iconTextStatus'] 一起使用string| arraynull/非必填
format的值说明
textStatus带颜色的文案状态
iconStatus只有图标的状态
iconTextStatus带颜色的文案+图标的状态
file附件格式
[key1, key2]多字段格式,例如: ['userCode','userName']
//案例
columnConfig: [
    { type: 'selection' },
    { type: 'index', label: '序号' },
    {
        prop: 'qualityStatus',
        label: '数据状态',
        minWidth: 130,
        options: qualityStatusList,
        format: 'textStatus', //文字状态
        statusMap //状态颜色
    },
    { type: 'operate', minWidth: '360' },//指定操作列属性,
],
const statusMap: StatusMap = {
    //新增
    [NEW]: {
        icon: 'Edit',
        type: 'primary',
        color: 'var(--el-color-primary)'
    },
    //待传输
   [PENDING_TRANSFER]: {
        icon: 'Edit',
        type: 'primary',
        color: 'var(--el-color-primary)'
   },
}
//相关类型定义
declare interface StatusConfig {
    icon?: string
    type?: 'primary' | 'success' | 'warning' | 'danger' | 'info' //文案颜色
    color?: string //图标颜色
}
type StatusMap = Record<string, StatusConfig>
funBtnConfig属性:表格查询条件右边功能按钮
属性名说明类型默认值/必填
label按钮文案String必填
op功能模块编码String必填
api请求路径,目前只有导入、导出、模板下载用到String非必填
tooltipel-tooltip相关属性Object非必填
attributesel-button相关属性Object非必填
httpMethod请求方式,目前只有导入、导出、模板下载用到Stringget/非必填
isImportTimeFrame是否需要选择导入数据时间范围,目前只有导入适用Boolean非必填
handleClick自定义按钮点击事件() => void非必填
beforeExecution执行之前事件,目前只有导出适用,处理导出前接口入参(params: QueryParams) => Boolean|QueryParams (注:返回false,则终止导出,否则返回导出接口入参)非必填
案例
{
    label: '新增',
    op: 'add',
    handleClick: () =>
        //这里处理点击新增后的逻辑,例如:
        goto('add') //调用新增方法,案例不一定适用,请以实际场景为准
    }
},
{
    label: '导出',
    op: 'exportData',
    api: '/customersatisfaction/preliminarybase/export',
    httpMethod: 'post',
    beforeExecution: (params) => {
        let data = {
            ...queryParams.value,
            displayColumns: params.displayColumns,
            menuName: params.menuName,
        }
        return data
    },
},
opBtnConfig属性:表格操作列按钮
属性名说明类型默认值/必填
label按钮文案string必填
op功能模块编码string必填
api请求路径,目前只有删除用到; 支持参数最为请求路径方式,例如: '/customersatisfaction/preliminarybase/delPreliminaryBase/{id}'string非必填
httpMethod请求方式,目前只有删除用到stringget/非必填
params请求入参回调,目前只有删除用到,用于处理删除前修改入参(row) => any非必填
handleClick按钮点击事件,接收一个参数scope(包含行数据和行索引)(scope: rowScope) => void非必填
disabledCallback按钮禁用回调,接收两参数,参数一:scope(包含行数据和行索引);参数二:组件禁用逻辑处理后的结果(scope: rowScope, flag:boolean) => boolean非必填
showCallback按钮显示回调,接收一个参数scope(包含行数据和行索引)(scope: rowScope) => boolean非必填
//显示类型声明
type rowScope = {
  row:any,
  $index:number
}
案例
{
    label: '回顾反馈',
    op: 'feedback',
    handleClick: ({ row }) => {
        goto('feedback', row.id)
    },
    disabledCallback: ({ row }, flag) => {
        // 如果需要组件禁用结果 与 业务禁用 请用: flag && 表达式
        return flag && row.dataStatus != 2
    },
    showCallback: ({ row }) => { // 也可以写成showCallback:(scope)=>{console.log(scope.row.id)}
        return row.feedbackStaffId === userInfo.userCode
    },
},
moreOperationsConfig属性:更多操作按钮
属性名说明类型默认值/必填
label按钮文案string必填
op功能模块编码(批量功能一般情况下与行操作功能一致,因此op可直接用行操作功能的op,例如:批量删除 可直接用delete)string必填
api请求路径,目前只有删除用到string非必填
httpMethod请求方式,目前只有删除用到stringget/非必填
params请求入参回调,目前只有批量删除用到,用于处理批量删除前修改入参(list: any[]) => any非必填
handleClick按钮点击事件,接收一个参数scope(包含行数据和行索引)(scope: rowScope) => void非必填
handleCheckData点击批量操作前,检查数据是否都可以操作,接收一个参数list(当前勾选的数据列集合)返回对象必要属性{isSuccessful:boolean,message:string}(list) => batchOperationsCheckResults非必填
moreOperationsConfig: [
    {
        label: '批量删除',
        op: 'delete',
        api: '/quality/qualityManagement/delete',
        handleCheckData: list => ({
            // 返回检查结果
            isSuccessful: list.every(row => isPower(row) && copyEditDel(row.qualityStatus)),
            message:'只有发现人和创建人且数据状态为新增、待传输的数据可删除!'
        })
    }
],

3、插槽

插槽名说明子标签
headerLeft列表功能区左边
headerRight列表功能区右边(筛选左边)
template模板下载自定义,与funBtnConfig配合使用,插槽名与op保持一致
importData导入自定义,与funBtnConfig冲突,插槽名与op保持一致
exportData导出自定义,与funBtnConfig冲突,插槽名与op保持一致
add新增自定义,与funBtnConfig冲突,插槽名与op保持一致
searchformItem查询条件区域
moreOperations更多操作自定义,覆盖moreOperationsConfig
dropdownItem更多操作选项自定义,不与moreOperationsConfig冲突el-dropdown-item
viewMode中间表格区域自定义

image.png

分页组件:fs-el-pageination

<fs-el-pageination 
    v-model:pagerCount="pageIndex" 
    v-model:pageSize="pageSize" 
    :total="total"
    :page-sizes="[8, 16, 24, 32, 40]"
    @paginationQuery="queryInformation"
/>
属性名/事件说明类型默认值/必填
pageSize每页数量number必传
pagerCount当前页number必传
@paginationQuery切换页码、改变页面数量触发function必传

部门下拉选择:fs-el-select-department

默认清空;可以模糊搜素下拉选项;设置多选时,默认折叠+1样式,点击清空图标 多选清空值为[],单选为' '

<fs-el-select-department v-model="queryParams.responsibleDepartment"></fs-el-select-department>

模块下拉选择:fs-el-select-module

下拉项可与部门联动:多选联动时下拉项为多个部门下的模块选项 联动时已选模块不在下拉选项里 则会清空

<fs-el-select-module v-model="queryParams.responsibleModule"></fs-el-select-module>
属性名说明类型默认值/必填
department部门名称,用于部门模块联动string非必传

人员下拉选择:fs-el-select-personnel

<fs-el-select-personnel v-model="queryParams.evaluatedEmployeeId"></fs-el-select-personnel>
属性名说明类型默认值/必填
valueKey指定当前选中的key, 如果是多个 则空格拼接;例如['staffName', 'staffCode'] = 冯晓雨 01443346[String, Array]staffCode/非必传
labelKey指定已选label的key[String, Array]staffName/非必传
optionKey指定每个选项显示的key,如果是多个 则斜杠拼接;例如['staffName', 'staffCode'] = 冯晓雨/01443346[String, Array]staffName/非必传
personnelModule模块名称,用于模块人员联动string''/非必传
isIncludesNonInternalUser是否包含非财务共享用户Booleanfalse/非必传
@change当前选中值发生变化时触发,对于原生饿了么组件的change重写,保留参数一:原生饿了么组件当前选中的值,新增参数二:当前选中值在下拉数组中的整个对象信息,多选下 是数组对象(value: any, selectedItem: array<userInfo> | userInfo) => void非必传

业务所属模块(使用业务组)下拉选择:fs-el-select-business-group

暂时未加联动,其他与模块下拉选择组件一致,区别在下拉选项数据不同

<fs-el-select-business-group v-model="queryParams.applyBusinessGroup" />
属性名说明类型默认值/必填
isNeedAll是否需要‘全部项’Booleanfalse/非必传

时间选择器:fs-el-date-picker

<fs-el-date-picker v-model="queryParams.time"></fs-el-date-picker>
属性名说明类型默认值/必填
value-format原生属性基础上,指定绑定值的格式,如果指定格式为:YYYY-MM-DD HH:mm:ss;只选择年月日时,时分秒开始时间为00:00:00; 结束时分秒为 23:59:59string非必传
disabledBeforeToday是否禁用今日之前的日期Booleanfalse/非必填
disabledAfterToday是否禁用今日之后的日期Booleanfalse/非必填
disableBeforeDate禁用指定日期之前的日期,指定格式:YYY-MM-DDstring''/非必填
disableAfterDate禁用指定日期之后的日期,指定格式:YYY-MM-DDstring''/非必填

图片显示:fs-el-image

<fs-el-image :file="info.newsCoverFile"></fs-el-image>
属性名说明类型默认值/必填
file要显示的图片对象FileObject必填
// 定义类型
interface FileObject {
  fileId: string
  fileName: string
}

图片悬浮预览:fs-el-image-viewer

<fs-el-image-viewer v-model="showPreview" :file-list="imageList" />
属性名说明类型默认值/必填
v-model是否显示FileInfo[][]/必填
fileList要显示的图片集合boolean[]false/必填

Snipaste_2025-11-21_15-24-10.png

上传文件:fs-el-upload

<fs-el-upload v-model="formData.file"></fs-el-upload>

注意:v-model="formData.file" 双向绑定的值,

情况1:无值可以是null、' '、[]

情况2:有值可以是对象、对象数组、JSON,但对象中必须包含fileId、fileName属性

属性名说明类型默认值/必填
v-model双向绑定的值上面情况12中已说明必填
url上传文件请求路径String/oss/upload / 非必填
limit限制文件最大上传数量Number5 / 非必填
fileType限制文件上传类型,[]空数组表示什么类型都不限制Array[] / 非必填
fileSize限制文件上传大小Number10 / 非必填
tipStr提示文案;不传则使用组件的默认文案:如果指定了文件类型,则提示文案默认为:支持.a、.b、.c文件类型;如果指定文件最大上传的文件大小,则提示文案为:文件最大10MString' ' / 非必填
isShowTipStr是否显示提示文案Booleantrue / 非必填
fileIdKey指定上传文件请求路径,并指定上传接口返回的文件fileIdd字段keyStringfileId / 非必填
fileNameKey指定上传文件请求路径,并指定上传接口返回的文件fileName字段keyStringfileName / 非必填
disabled原生属性:是否禁用上传,传true则禁用,不显示上传按钮booleanfalse / 非必填

文件列表:fs-file-list(常用在列表附件,案例如下)

<el-table-column label="相关附件" prop="certificateCompletion" align="center" min-width="200">
    <template #default="{ row }">
        <fs-file-list :file="row.certificateCompletion"></fs-file-list>
    </template>
</el-table-column>
属性名说明类型默认值/必填
file文件列表string | FileInfo | FileInfo[]必填

缺省图:fs-empty

<el-table-column label="相关附件" prop="certificateCompletion" align="center" min-width="200">
    <template #default="{ row }">
        <fs-file-list :file="row.certificateCompletion"></fs-file-list>
    </template>
</el-table-column>
属性名说明类型默认值/必填
width图片宽度String| Number'200px'/非必填
text缺省文案String'暂无数据'/非必填

Snipaste_2025-11-21_15-17-52.png

折叠面板:fs-el-collapse

<fs-el-collapse>
    <fs-el-collapse-item title="首问基础信息"></fs-el-collapse-item>
</fs-el-collapse>

Fs Collapse API

属性名说明类型默认值/必填
disabled是否禁用展开收起Booleanfalse / 非必填
activeDefault默认展开的项:默认为null表示没有默认项会全部展开;传[]表示没有默认项会全部收起,指定展开的项:['首问基础信息']Arraynull / 非必填

Fs Collapse slot

插槽名Description子标签
default自定义默认内容Fs Collapse Item

FS CollapseItem API

属性名说明类型默认值/必填
title标题文案string必填

Fs CollapseItem slot

插槽名Description子标签
default面板内容
left面板头部左边区域
right面板头部右边区域

表单页头部:fs-details-head

<fs-details-head title="标题文案"></fs-details-head>
属性名说明类型默认值/必填
v-model双向绑定;将表单model绑定的对象绑定到此组件,v-model="formData", 用于重置object{} / 非必填
title标题string'' / 非必填
tips提示语string'' / 非必填
showCancel是否显示取消按钮Booleantrue / 非必填
showReset是否显示重置按钮Booleantrue / 非必填
showTemporarilySave是否显示暂存按钮Booleanfalse / 非必填
showSubmit是否显示提交按钮Booleantrue / 非必填
formRef表单元素refComputedRef使用重置功能必传

FormItem Exposes

名称说明类型
setInitialData设置重置的默认值,用在表单页面,详情接口请求完成后调用,(formData:Object)=>void

根据工号批量选择人员:fs-batch-add-personnel

<fs-batch-add-personnel
    v-if="batchAddPersonnelVisble"
    v-model="batchAddPersonnelVisble"
    @handle-comfig="batchAddPersonnel"
/>
属性名说明类型默认值/必填
v-model是否显示弹窗booleanfalse/必填
@handle-comfig点击确定按钮时的回调(data: Array<userInfo>)=>void

Snipaste_2025-11-21_14-45-57.png

视图/列表模式切换:fs-mode-switch (使用案例:全面质量管理)

<fs-mode-switch v-model="dataShowType"></fs-mode-switch>
属性名说明类型默认值/必填
v-model双向绑定,选中的模式;视图模式值为:'viewMode' 列表模式值为:'dataTable'string'viewMode'/必填

Snipaste_2025-11-21_15-24-54.png

视图模式数据列表:fs-view-list (使用案例:全面质量管理)

<fs-view-list :data="tableDate">
    <template #default="row">
        <fs-view-item
             :row="row"
             :operation-buttons="tableConfig.opBtnConfig"
             :fs-table-ref="fsTable"
        ></fs-view-item>
    </template>
</fs-view-list>
属性名说明类型默认值/必填
data列表数据array[]/必填
isHoverDisplay是否悬停显示操作区Booleanfalse/非必填

Fs view list slot

插槽名说明子标签
default默认插槽view-data-item

视图模式数据项:fs-view-item

<fs-view-item :operation-buttons="tableConfig.opBtnConfig" :row="row">
    <template #default="rowLeft">
        左边区域
    </template>
    <template #default="rowTitle">
       中间区域(标题)
    </template>
    <template #default="rowInfo">
       中间区域(主要字段信息)
    </template>
    <template #default="buttonGroup">
       右边按钮区域
    </template>
    <template #default="right">
       按钮右边区域
    </template>
</fs-view-litemist>
属性名说明类型默认值/必填
rowLeft左边区域,通常放状态样式
rowTitle标题区
rowInfo内容区
buttonGroup右边操作按钮区
right操作按钮右边区,用于放一些乱七八糟除钮之外的东西

流程、环节切换:fs-step-list (使用案例:全面质量管理)

案例路径:src\pages\qualityData\totalQualityManagement\qualityControl\processForm.vue
 <fs-step-list v-model="activeName" :list="processList"></fs-step-list>
 <script setup lang="ts">
     const processList = reactive([
        {
            label: '基础信息',
            name: 'baseInfo',
            component: baseInfo,
            disabled: false
        },
        {
            label: '责任模块确认与升级',
            name: 'responsibilityConfirmation',
            component: responsibilityConfirmation,
            disabled: pageType !== 'details' && ['baseInfo'].includes(formType)
        },
     ]
 </script>
属性名说明类型默认值/必填
v-model双向绑定,选中的环节name值;string''/必填
list流程、环节列表Step[][]/必填

Snipaste_2025-11-21_14-32-07.png

//相关类型定义
interface Step {
    name: string //选中的值
    label: string //显示的值
    disabled?: boolean //是否禁用
}

带图片的tabs切换:fs-el-icon-tabs

<fs-el-icon-tabs v-model="activedTab" :tab-list="tabList" />
属性名说明类型默认值/必填
v-model选中的value值必填
tabListtab项Array<iconTab>必填
//相关类型定义
interface iconTab {
    value: string //选中的值
    label: string //显示的值
    icon?: string //图标
}

Snipaste_2025-11-21_15-29-15.png

element方法二次封装

统一风格;集中管理

toast吐司提示;

import toast from '@/utils/message'
toast.success('成功提示')
toast.warning('注意提示')
toast.error('错误提示')
toast.info('信息提示')

loading遮罩;

import {FSElLoading} from '@/utils/message'
//配置对象与饿了么保持一直,具体参照饿了么文档
FSElLoading()

提示确认框;

import {FSElMessageBox} from '@/utils/message'
//配置对象与饿了么保持一直,具体参照饿了么文档
//默认值message: '必填项没有填写,请继续编辑再提交',
FSElMessageBox()
//自定义提示信息
FSElMessageBox({message:'请检查表单输入!'})

导入是否覆盖对话框;

import {FSImpotElMessageBox} from '@/utils/message'
importType = await FSImpotElMessageBox('下方已存在问题类型确认信息,再次导入将覆盖已存在信息,请确认是否覆盖导入?')

Snipaste_2025-11-21_16-02-29.png

公共方法使用

平台统一管理逻辑,使用公共方法,减少开发成本

//一些类型定义
type RequestConfig = {
  url: string
  method?: string
  [key: string]: any
}
type FileInfo = {
    fileId: string;
    fileName?: string;
}
//批量操作数据检查看结果
type batchOperationsCheckResults = {
   isSuccessful:boolean;
   message:string='勾选数据中包含不可操作的数据,请重新检查'
}

根据字典类型获取下拉选项:getOptionsByDictType

/**
 *
 * @param dictType 字典类型(字典表新增时输入的字典类型)
 * @param getDataFun 获取下拉选项的自定义方法;(场景:除字典表、typeFunction里包括的)
 * @returns 返回字典类型下的字典选项,用于获取下拉框选项或者列表字典映射
 * @example
 * const options = getOptionsByDictType("sys_dict_type");
 */
getOptionsByDictType(dictType: String, getDataFun?: Function) => any[]

文件流下载:download

/**
 * 适用于后端接口返回文件流的导出请求
 * @param params 请求参数
 * @param fileName  传入文件名优先级最高 > 后端 > 默认
 */
download(params:RequestConfig, fileName?:String = '') => Viod

导出到下载页面:exportToDownloadPage

/**
 * 适用于导出到下载页面
 * @param params 请求参数
 */
exportToDownloadPage(params:RequestConfig) => Viod

导入文件:importFile

/**
 * 导入文件
 * @param file 文件
 * @param url 请求路径
 * @returns
 */
exportToDownloadPage(file:Fileurl:String, data?:Any = {}) => Viod

下载文件,并重命名:downloadFileWithName

**
* 通过文件地址下载并重命名文件
* @param {string} url - 文件地址
* @param {string} fileName - 重命后的文件名(含扩展名)
*/
downloadFileWithName(fileId:String, fileName?:String = '附件下载.xlsx') => Proimse

下载多个文件:downloadFileList

/**
 * 下载多个文件,大于等于两个以上文件下载安装包
 * @param fileList 文件列表
 */
downloadFileList(fileList: FileInfo[],fileName:String) => Viod

是否为模块运营经理或监管模块经理:isManagerByModule

/**
 * 判断登录用户是否是当前模块的运营经理或监管了当前模块
 * @param moduleCode 模块编码
 * @returns Boolean 是否是当前模块的运营经理或监管了当前模块
 */
isManagerByModule(moduleCode:string) => Boolean

查找人员信息: getUserInfoByCode

/**
 * 根据工号 找人员信息
 * @param userCode //人员信息userCode:01443346
 * @returns 找到的人员信息对象
 */
getUserInfoByCode(userCode:string) => UserInfo

获取所有人员列表: getUserList

/**
 * 获取所有人员列表
 * @param isIncludesNonInternalUser 是否包含外部用户
 * @returns 返回所有员工集合
 */
getUserList(isIncludesNonInternalUser:Boolean) => Array<UserInfo>

判断是否JSON: isJSON

/**
 * @param str 判断是否JSON
 * @returns 是否JSON
 */
isJSON(str:string) => Boolean

公共hook

表单相关 useForm

方法名说明类型
queryDetails请求详情表单数据(异步方法)(requestConfig:RequestConfig)=>void
setFormData设置详情表单数据(不涉及接口请求,同步方法)(detailsInfo:Object,targetData:Object)=>void
setInitialData设置初始数据(用于重置到初始数据);如果调用了queryDetails方法,会自动调用setInitialData方法,否则自己请求详情数据时,需手动调用setInitialData(data:Object,)=>void
check表单校验,必须使用hook提供的formRef()=>void
submit表单提交,包含表单校验check,因此也必须使用hook提供的formRef(requestConfig:RequestConfig)=>void
resetForm重置表单;必须使用hook提供的formRef(formData:Object)=>void
属性名说明类型
formRef表单元素refref<FormInstance>
initialFormData初始状态数据unknown
使用示例:
import { useForm } from '@/hooks/useForm'
const { formRef, setInitialData, check, resetForm } = useForm()