feat:机构员工

This commit is contained in:
zsqtony 2025-07-01 11:35:54 +08:00
parent 013e4d8e05
commit 8c73e695e2
8 changed files with 330 additions and 221 deletions

View File

@ -1,7 +1,7 @@
import { MyResponseType, renderTextHelper } from '@/common';
import { Apis } from '@/gen/Apis';
import { ProColumns } from '@ant-design/pro-components';
import { Popconfirm, Space, Tag } from 'antd';
import { Popconfirm, Tag } from 'antd';
type ReturnType = ProColumns<Record<string, any>, 'text'>;
@ -173,33 +173,15 @@ export const MyColumns = {
...rest,
};
},
Network(props?: ReturnType): ReturnType {
Companies(props?: ReturnType): ReturnType {
return {
title: 'network',
...props,
render: (_: any, item: any) => {
const data = props?.dataIndex === 'network' ? item.network : item;
return (
<Space>
<img width={24} src={data.icon[0].url} />
<div>{data.name}</div>
</Space>
);
},
title: '选择机构',
valueType: 'select',
key: 'networks_id',
fieldProps: {
fieldNames: { value: 'id', label: 'name' },
optionRender: (item: any) => {
return (
<Space>
<img width={24} src={item.data.icon[0].url} />
<div>{item.data.name}</div>
</Space>
);
},
},
request: async () => (await Apis.Select.Networks()).data,
hideInTable: true,
key: 'companies_id',
dataIndex: 'companies_id',
request: async () => (await Apis.Company.Companies.Select()).data,
...props,
};
},
Token({ ...rest }) {

20
src/gen/ApiTypes.d.ts vendored
View File

@ -26,9 +26,6 @@ declare namespace ApiTypes {
"asset_projects_id"?: number; // 所属项目id,[ref:asset_projects]
"keywords"?: string; // 关键词
};
type GetBuildingTree = {
"asset_projects_id": number; // 所属项目id
};
}
namespace AssetHouses {
type List = {
@ -308,6 +305,8 @@ declare namespace ApiTypes {
}
namespace CompanyEmployees {
type List = {
"companies_id"?: number; // 机构ID
"organizations_id"?: number; // 组织机构ID
"name"?: string; // 模糊搜索:名称
"phone"?: string; // 模糊搜索:手机号
};
@ -350,13 +349,13 @@ declare namespace ApiTypes {
}
namespace CompanyPositions {
type List = {
"companies_id"?: number; // 机构ID
"name"?: string; // 模糊搜索:名称
};
type Store = {
"companies_id": number; // 所属机构id,[ref:companies]
"name": string; // 岗位名称
"code": string; // 岗位编号
"sort"?: number; // 排序
"code"?: string; // 岗位编号
"status"?: number; // 状态
"remark"?: string; // 备注
};
@ -364,8 +363,7 @@ declare namespace ApiTypes {
"id": number; // id
"companies_id": number; // 所属机构id,[ref:companies]
"name": string; // 岗位名称
"code": string; // 岗位编号
"sort"?: number; // 排序
"code"?: string; // 岗位编号
"status"?: number; // 状态
"remark"?: string; // 备注
};
@ -483,12 +481,12 @@ declare namespace ApiTypes {
type Store = {
"asset_projects_id": number; // 所属项目id,[ref:asset_projects]
"grid_mark": string; // 网格标识
"grid_range": string[]; // 网格范围
"grid_ranges": string[]; // 网格范围
};
type Update = {
"id": number; // id
"grid_mark": string; // 网格标识
"grid_range": string[]; // 网格范围
"grid_ranges": string[]; // 网格范围
};
type Show = {
"id": number; // id
@ -496,6 +494,10 @@ declare namespace ApiTypes {
type Delete = {
"id": number; // id
};
type AddManager = {
"id": number; // id
"company_employees_id": number; // 公司员工id
};
type GetGridMark = {
"asset_projects_id": number; // -
};

View File

@ -7,36 +7,21 @@ export const Apis = {
List(data?: ApiTypes.Asset.AssetBuildings.List): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/list', { data });
},
Store(
data: ApiTypes.Asset.AssetBuildings.Store,
): Promise<MyResponseType> {
Store(data: ApiTypes.Asset.AssetBuildings.Store): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/store', { data });
},
Update(
data: ApiTypes.Asset.AssetBuildings.Update,
): Promise<MyResponseType> {
Update(data: ApiTypes.Asset.AssetBuildings.Update): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/update', { data });
},
Show(data: ApiTypes.Asset.AssetBuildings.Show): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/show', { data });
},
Delete(
data: ApiTypes.Asset.AssetBuildings.Delete,
): Promise<MyResponseType> {
Delete(data: ApiTypes.Asset.AssetBuildings.Delete): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/delete', { data });
},
Select(
data?: ApiTypes.Asset.AssetBuildings.Select,
): Promise<MyResponseType> {
Select(data?: ApiTypes.Asset.AssetBuildings.Select): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/select', { data });
},
GetBuildingTree(
data: ApiTypes.Asset.AssetBuildings.GetBuildingTree,
): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/get_building_tree', {
data,
});
},
},
AssetHouses: {
List(data?: ApiTypes.Asset.AssetHouses.List): Promise<MyResponseType> {
@ -62,32 +47,22 @@ export const Apis = {
Store(data: ApiTypes.Asset.AssetProjects.Store): Promise<MyResponseType> {
return request('admin/asset/asset_projects/store', { data });
},
Update(
data: ApiTypes.Asset.AssetProjects.Update,
): Promise<MyResponseType> {
Update(data: ApiTypes.Asset.AssetProjects.Update): Promise<MyResponseType> {
return request('admin/asset/asset_projects/update', { data });
},
Show(data: ApiTypes.Asset.AssetProjects.Show): Promise<MyResponseType> {
return request('admin/asset/asset_projects/show', { data });
},
SoftDelete(
data: ApiTypes.Asset.AssetProjects.SoftDelete,
): Promise<MyResponseType> {
SoftDelete(data: ApiTypes.Asset.AssetProjects.SoftDelete): Promise<MyResponseType> {
return request('admin/asset/asset_projects/soft_delete', { data });
},
Restore(
data: ApiTypes.Asset.AssetProjects.Restore,
): Promise<MyResponseType> {
Restore(data: ApiTypes.Asset.AssetProjects.Restore): Promise<MyResponseType> {
return request('admin/asset/asset_projects/restore', { data });
},
Delete(
data: ApiTypes.Asset.AssetProjects.Delete,
): Promise<MyResponseType> {
Delete(data: ApiTypes.Asset.AssetProjects.Delete): Promise<MyResponseType> {
return request('admin/asset/asset_projects/delete', { data });
},
Select(
data?: ApiTypes.Asset.AssetProjects.Select,
): Promise<MyResponseType> {
Select(data?: ApiTypes.Asset.AssetProjects.Select): Promise<MyResponseType> {
return request('admin/asset/asset_projects/select', { data });
},
},
@ -143,17 +118,13 @@ export const Apis = {
Me(): Promise<MyResponseType> {
return request('admin/common/auth/me', {});
},
ChangePassword(
data: ApiTypes.Common.Auth.ChangePassword,
): Promise<MyResponseType> {
ChangePassword(data: ApiTypes.Common.Auth.ChangePassword): Promise<MyResponseType> {
return request('admin/common/auth/change_password', { data });
},
PreUpload(data: ApiTypes.Common.Auth.PreUpload): Promise<MyResponseType> {
return request('admin/common/auth/pre_upload', { data });
},
TemporaryUrl(
data: ApiTypes.Common.Auth.TemporaryUrl,
): Promise<MyResponseType> {
TemporaryUrl(data: ApiTypes.Common.Auth.TemporaryUrl): Promise<MyResponseType> {
return request('admin/common/auth/temporary_url', { data });
},
},
@ -172,160 +143,96 @@ export const Apis = {
Show(data: ApiTypes.Company.Companies.Show): Promise<MyResponseType> {
return request('admin/company/companies/show', { data });
},
SoftDelete(
data: ApiTypes.Company.Companies.SoftDelete,
): Promise<MyResponseType> {
SoftDelete(data: ApiTypes.Company.Companies.SoftDelete): Promise<MyResponseType> {
return request('admin/company/companies/soft_delete', { data });
},
Restore(
data: ApiTypes.Company.Companies.Restore,
): Promise<MyResponseType> {
Restore(data: ApiTypes.Company.Companies.Restore): Promise<MyResponseType> {
return request('admin/company/companies/restore', { data });
},
Delete(data: ApiTypes.Company.Companies.Delete): Promise<MyResponseType> {
return request('admin/company/companies/delete', { data });
},
Select(
data?: ApiTypes.Company.Companies.Select,
): Promise<MyResponseType> {
Select(data?: ApiTypes.Company.Companies.Select): Promise<MyResponseType> {
return request('admin/company/companies/select', { data });
},
},
CompanyEmployees: {
List(
data?: ApiTypes.Company.CompanyEmployees.List,
): Promise<MyResponseType> {
List(data?: ApiTypes.Company.CompanyEmployees.List): Promise<MyResponseType> {
return request('admin/company/company_employees/list', { data });
},
Store(
data: ApiTypes.Company.CompanyEmployees.Store,
): Promise<MyResponseType> {
Store(data: ApiTypes.Company.CompanyEmployees.Store): Promise<MyResponseType> {
return request('admin/company/company_employees/store', { data });
},
Update(
data: ApiTypes.Company.CompanyEmployees.Update,
): Promise<MyResponseType> {
Update(data: ApiTypes.Company.CompanyEmployees.Update): Promise<MyResponseType> {
return request('admin/company/company_employees/update', { data });
},
Show(
data: ApiTypes.Company.CompanyEmployees.Show,
): Promise<MyResponseType> {
Show(data: ApiTypes.Company.CompanyEmployees.Show): Promise<MyResponseType> {
return request('admin/company/company_employees/show', { data });
},
SoftDelete(
data: ApiTypes.Company.CompanyEmployees.SoftDelete,
): Promise<MyResponseType> {
SoftDelete(data: ApiTypes.Company.CompanyEmployees.SoftDelete): Promise<MyResponseType> {
return request('admin/company/company_employees/soft_delete', { data });
},
Restore(
data: ApiTypes.Company.CompanyEmployees.Restore,
): Promise<MyResponseType> {
Restore(data: ApiTypes.Company.CompanyEmployees.Restore): Promise<MyResponseType> {
return request('admin/company/company_employees/restore', { data });
},
Delete(
data: ApiTypes.Company.CompanyEmployees.Delete,
): Promise<MyResponseType> {
Delete(data: ApiTypes.Company.CompanyEmployees.Delete): Promise<MyResponseType> {
return request('admin/company/company_employees/delete', { data });
},
Select(
data?: ApiTypes.Company.CompanyEmployees.Select,
): Promise<MyResponseType> {
Select(data?: ApiTypes.Company.CompanyEmployees.Select): Promise<MyResponseType> {
return request('admin/company/company_employees/select', { data });
},
},
CompanyPositions: {
List(
data?: ApiTypes.Company.CompanyPositions.List,
): Promise<MyResponseType> {
List(data?: ApiTypes.Company.CompanyPositions.List): Promise<MyResponseType> {
return request('admin/company/company_positions/list', { data });
},
Store(
data: ApiTypes.Company.CompanyPositions.Store,
): Promise<MyResponseType> {
Store(data: ApiTypes.Company.CompanyPositions.Store): Promise<MyResponseType> {
return request('admin/company/company_positions/store', { data });
},
Update(
data: ApiTypes.Company.CompanyPositions.Update,
): Promise<MyResponseType> {
Update(data: ApiTypes.Company.CompanyPositions.Update): Promise<MyResponseType> {
return request('admin/company/company_positions/update', { data });
},
Show(
data: ApiTypes.Company.CompanyPositions.Show,
): Promise<MyResponseType> {
Show(data: ApiTypes.Company.CompanyPositions.Show): Promise<MyResponseType> {
return request('admin/company/company_positions/show', { data });
},
Delete(
data: ApiTypes.Company.CompanyPositions.Delete,
): Promise<MyResponseType> {
Delete(data: ApiTypes.Company.CompanyPositions.Delete): Promise<MyResponseType> {
return request('admin/company/company_positions/delete', { data });
},
Select(
data?: ApiTypes.Company.CompanyPositions.Select,
): Promise<MyResponseType> {
Select(data?: ApiTypes.Company.CompanyPositions.Select): Promise<MyResponseType> {
return request('admin/company/company_positions/select', { data });
},
},
CompanyReceiptAccounts: {
List(
data?: ApiTypes.Company.CompanyReceiptAccounts.List,
): Promise<MyResponseType> {
List(data?: ApiTypes.Company.CompanyReceiptAccounts.List): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/list', { data });
},
Store(
data: ApiTypes.Company.CompanyReceiptAccounts.Store,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/store', {
data,
});
Store(data: ApiTypes.Company.CompanyReceiptAccounts.Store): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/store', { data });
},
Update(
data: ApiTypes.Company.CompanyReceiptAccounts.Update,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/update', {
data,
});
Update(data: ApiTypes.Company.CompanyReceiptAccounts.Update): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/update', { data });
},
Show(
data: ApiTypes.Company.CompanyReceiptAccounts.Show,
): Promise<MyResponseType> {
Show(data: ApiTypes.Company.CompanyReceiptAccounts.Show): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/show', { data });
},
SoftDelete(
data: ApiTypes.Company.CompanyReceiptAccounts.SoftDelete,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/soft_delete', {
data,
});
SoftDelete(data: ApiTypes.Company.CompanyReceiptAccounts.SoftDelete): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/soft_delete', { data });
},
Restore(
data: ApiTypes.Company.CompanyReceiptAccounts.Restore,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/restore', {
data,
});
Restore(data: ApiTypes.Company.CompanyReceiptAccounts.Restore): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/restore', { data });
},
Delete(
data: ApiTypes.Company.CompanyReceiptAccounts.Delete,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/delete', {
data,
});
Delete(data: ApiTypes.Company.CompanyReceiptAccounts.Delete): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/delete', { data });
},
},
Organizations: {
List(
data?: ApiTypes.Company.Organizations.List,
): Promise<MyResponseType> {
List(data?: ApiTypes.Company.Organizations.List): Promise<MyResponseType> {
return request('admin/company/organizations/list', { data });
},
Store(
data: ApiTypes.Company.Organizations.Store,
): Promise<MyResponseType> {
Store(data: ApiTypes.Company.Organizations.Store): Promise<MyResponseType> {
return request('admin/company/organizations/store', { data });
},
Update(
data: ApiTypes.Company.Organizations.Update,
): Promise<MyResponseType> {
Update(data: ApiTypes.Company.Organizations.Update): Promise<MyResponseType> {
return request('admin/company/organizations/update', { data });
},
Move(data: ApiTypes.Company.Organizations.Move): Promise<MyResponseType> {
@ -334,29 +241,19 @@ export const Apis = {
Show(data: ApiTypes.Company.Organizations.Show): Promise<MyResponseType> {
return request('admin/company/organizations/show', { data });
},
SoftDelete(
data: ApiTypes.Company.Organizations.SoftDelete,
): Promise<MyResponseType> {
SoftDelete(data: ApiTypes.Company.Organizations.SoftDelete): Promise<MyResponseType> {
return request('admin/company/organizations/soft_delete', { data });
},
Restore(
data: ApiTypes.Company.Organizations.Restore,
): Promise<MyResponseType> {
Restore(data: ApiTypes.Company.Organizations.Restore): Promise<MyResponseType> {
return request('admin/company/organizations/restore', { data });
},
Delete(
data: ApiTypes.Company.Organizations.Delete,
): Promise<MyResponseType> {
Delete(data: ApiTypes.Company.Organizations.Delete): Promise<MyResponseType> {
return request('admin/company/organizations/delete', { data });
},
Select(
data?: ApiTypes.Company.Organizations.Select,
): Promise<MyResponseType> {
Select(data?: ApiTypes.Company.Organizations.Select): Promise<MyResponseType> {
return request('admin/company/organizations/select', { data });
},
SelectTree(
data?: ApiTypes.Company.Organizations.SelectTree,
): Promise<MyResponseType> {
SelectTree(data?: ApiTypes.Company.Organizations.SelectTree): Promise<MyResponseType> {
return request('admin/company/organizations/select_tree', { data });
},
},
@ -378,43 +275,32 @@ export const Apis = {
Delete(data: ApiTypes.Grid.Grids.Delete): Promise<MyResponseType> {
return request('admin/grid/grids/delete', { data });
},
GetGridMark(
data: ApiTypes.Grid.Grids.GetGridMark,
): Promise<MyResponseType> {
AddManager(data: ApiTypes.Grid.Grids.AddManager): Promise<MyResponseType> {
return request('admin/grid/grids/add_manager', { data });
},
GetGridMark(data: ApiTypes.Grid.Grids.GetGridMark): Promise<MyResponseType> {
return request('admin/grid/grids/get_grid_mark', { data });
},
},
},
Permission: {
SysPermissions: {
List(
data: ApiTypes.Permission.SysPermissions.List,
): Promise<MyResponseType> {
List(data: ApiTypes.Permission.SysPermissions.List): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/list', { data });
},
Tree(
data: ApiTypes.Permission.SysPermissions.Tree,
): Promise<MyResponseType> {
Tree(data: ApiTypes.Permission.SysPermissions.Tree): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/tree', { data });
},
Store(
data: ApiTypes.Permission.SysPermissions.Store,
): Promise<MyResponseType> {
Store(data: ApiTypes.Permission.SysPermissions.Store): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/store', { data });
},
Update(
data: ApiTypes.Permission.SysPermissions.Update,
): Promise<MyResponseType> {
Update(data: ApiTypes.Permission.SysPermissions.Update): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/update', { data });
},
Delete(
data: ApiTypes.Permission.SysPermissions.Delete,
): Promise<MyResponseType> {
Delete(data: ApiTypes.Permission.SysPermissions.Delete): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/delete', { data });
},
Move(
data: ApiTypes.Permission.SysPermissions.Move,
): Promise<MyResponseType> {
Move(data: ApiTypes.Permission.SysPermissions.Move): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/move', { data });
},
SelectApi(): Promise<MyResponseType> {
@ -428,29 +314,21 @@ export const Apis = {
Store(data: ApiTypes.Permission.SysRoles.Store): Promise<MyResponseType> {
return request('admin/permission/sys_roles/store', { data });
},
Update(
data: ApiTypes.Permission.SysRoles.Update,
): Promise<MyResponseType> {
Update(data: ApiTypes.Permission.SysRoles.Update): Promise<MyResponseType> {
return request('admin/permission/sys_roles/update', { data });
},
Delete(
data: ApiTypes.Permission.SysRoles.Delete,
): Promise<MyResponseType> {
Delete(data: ApiTypes.Permission.SysRoles.Delete): Promise<MyResponseType> {
return request('admin/permission/sys_roles/delete', { data });
},
Select(): Promise<MyResponseType> {
return request('admin/permission/sys_roles/select', {});
},
GetPermissions(
data: ApiTypes.Permission.SysRoles.GetPermissions,
): Promise<MyResponseType> {
GetPermissions(data: ApiTypes.Permission.SysRoles.GetPermissions): Promise<MyResponseType> {
return request('admin/permission/sys_roles/get_permissions', { data });
},
SetPermissions(
data: ApiTypes.Permission.SysRoles.SetPermissions,
): Promise<MyResponseType> {
SetPermissions(data: ApiTypes.Permission.SysRoles.SetPermissions): Promise<MyResponseType> {
return request('admin/permission/sys_roles/set_permissions', { data });
},
},
},
};
}

View File

@ -5,6 +5,7 @@ import { useParams } from '@umijs/max';
import { Tabs } from 'antd';
import { useEffect, useState } from 'react';
import ComponentsInfo from './components/ComponentsInfo';
import Employees from './components/Employees';
import Organizations from './components/Organizations';
import Positions from './components/Positions';
import Projects from './components/Projects';
@ -45,7 +46,7 @@ export default function Show({ title = '机构详情' }) {
label: '员工管理',
key: '4',
closable: false,
// children: <Employees item={data} />,
children: <Employees item={data} />,
},
{
label: '岗位管理',

View File

@ -0,0 +1,76 @@
import {
MyBetaModalFormProps,
MyButtons,
MyColumns,
MyProTableProps,
} from '@/common';
import { Apis } from '@/gen/Apis';
import { ProTable } from '@ant-design/pro-components';
import { Space } from 'antd';
import EmployeesCreate from '../modals/EmployeesCreate';
import EmployeesUpdate from '../modals/EmployeesUpdate';
export default function Index(props: MyBetaModalFormProps) {
return (
<ProTable
{...MyProTableProps.props}
// search={false}
request={async (params, sort) =>
MyProTableProps.request(
{ ...params, companies_id: props?.item?.id },
sort,
Apis.Company.CompanyEmployees.List,
)
}
toolBarRender={(action) => [
<EmployeesCreate
key="Create"
item={{ companies_id: props?.item?.id }}
reload={action?.reload}
title="员工"
/>,
]}
columns={[
MyColumns.ID(),
{
title: '姓名',
dataIndex: 'name',
},
{
title: '手机号',
dataIndex: 'phone',
},
{
title: '机构',
dataIndex: ['company', 'name'],
search: false,
},
{
title: '组织',
dataIndex: ['organization', 'name'],
search: false,
},
MyColumns.UpdatedAt(),
MyColumns.CreatedAt(),
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={index}>
<EmployeesUpdate
item={item}
reload={action?.reload}
title="员工"
/>
<MyButtons.Delete
onConfirm={() =>
Apis.Common.Admins.Delete({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
</Space>
),
}),
]}
/>
);
}

View File

@ -0,0 +1,77 @@
import {
MyBetaModalFormProps,
MyButtons,
MyFormItems,
MyModalFormProps,
rulesHelper,
} from '@/common';
import { Selects } from '@/components/Select';
import { Apis } from '@/gen/Apis';
import { SexEnum } from '@/gen/Enums';
import { BetaSchemaForm } from '@ant-design/pro-components';
import { message } from 'antd';
export default function Create(props: MyBetaModalFormProps) {
return (
<BetaSchemaForm<ApiTypes.Company.CompanyEmployees.Store>
{...MyModalFormProps.props}
title={`添加${props?.title}`}
wrapperCol={{ span: 24 }}
width="500px"
trigger={<MyButtons.Create title={`添加${props?.title}`} />}
onFinish={async (values) =>
Apis.Company.CompanyEmployees.Store(values)
.then(() => {
props.reload?.();
message.success(props.title + '成功');
return true;
})
.catch(() => false)
}
columns={[
Selects?.Organizations({
title: '所属组织',
params: { companies_id: props?.item?.companies_id },
key: 'organizations_id',
formItemProps: { ...rulesHelper.text },
}),
{
key: 'name',
title: '姓名',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
},
{
key: 'phone',
title: '手机号',
valueType: 'number',
fieldProps: {
maxLength: 11,
},
colProps: { span: 12 },
formItemProps: { ...rulesHelper.text },
},
MyFormItems.EnumRadio({
key: 'sex',
title: '性别',
colProps: { span: 6 },
valueEnum: SexEnum,
required: true,
}),
{
key: 'password',
title: '密码',
colProps: { span: 24 },
valueType: 'password',
},
{
key: 'remark',
title: '备注',
colProps: { span: 24 },
valueType: 'textarea',
},
]}
/>
);
}

View File

@ -0,0 +1,90 @@
import {
MyBetaModalFormProps,
MyButtons,
MyFormItems,
MyModalFormProps,
rulesHelper,
} from '@/common';
import { Selects } from '@/components/Select';
import { Apis } from '@/gen/Apis';
import { SexEnum } from '@/gen/Enums';
import { BetaSchemaForm } from '@ant-design/pro-components';
import { Form, message } from 'antd';
export default function Update(props: MyBetaModalFormProps) {
const [form] = Form.useForm();
return (
<BetaSchemaForm<ApiTypes.Company.CompanyEmployees.Update>
{...MyModalFormProps.props}
title={`编辑员工`}
trigger={<MyButtons.Edit />}
wrapperCol={{ span: 24 }}
width="500px"
form={form}
onOpenChange={(open: any) => {
if (open && props.item) {
form.setFieldsValue({
...props.item,
roles_id: props.item?.roles?.map((item: any) => item.value),
});
}
}}
onFinish={async (values) =>
Apis.Company.CompanyEmployees.Update({
...values,
id: props.item?.id ?? 0,
})
.then(() => {
props.reload?.();
message.success(props.title + '成功');
return true;
})
.catch(() => false)
}
columns={[
Selects?.Organizations({
title: '所属组织',
params: { companies_id: props?.item?.companies_id },
key: 'organizations_id',
formItemProps: { ...rulesHelper.text },
}),
{
key: 'name',
title: '姓名',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
},
{
key: 'phone',
title: '手机号',
valueType: 'number',
fieldProps: {
maxLength: 11,
},
colProps: { span: 12 },
formItemProps: { ...rulesHelper.text },
},
MyFormItems.EnumRadio({
key: 'sex',
title: '性别',
colProps: { span: 6 },
valueEnum: SexEnum,
required: true,
}),
{
key: 'password',
title: '密码',
colProps: { span: 24 },
valueType: 'password',
},
{
key: 'remark',
title: '备注',
colProps: { span: 24 },
valueType: 'textarea',
},
]}
/>
);
}

View File

@ -28,6 +28,9 @@ export default function Index({ title = '员工管理' }) {
]}
columns={[
MyColumns.ID(),
MyColumns.Companies({
title: '选择机构',
}),
{
title: '姓名',
dataIndex: 'name',