From 8c73e695e2d84848d5ef8efeb1cd58a8946fdcfd Mon Sep 17 00:00:00 2001 From: zsqtony <450952271@qq.com> Date: Tue, 1 Jul 2025 11:35:54 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=9C=BA=E6=9E=84=E5=91=98?= =?UTF-8?q?=E5=B7=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/components/schema/MyColumns.tsx | 34 +-- src/gen/ApiTypes.d.ts | 20 +- src/gen/Apis.ts | 248 +++++------------- src/pages/company/companies/$id.tsx | 3 +- .../companies/components/Employees.tsx | 76 ++++++ .../companies/modals/EmployeesCreate.tsx | 77 ++++++ .../companies/modals/EmployeesUpdate.tsx | 90 +++++++ src/pages/company/employees/index.tsx | 3 + 8 files changed, 330 insertions(+), 221 deletions(-) create mode 100644 src/pages/company/companies/components/Employees.tsx create mode 100644 src/pages/company/companies/modals/EmployeesCreate.tsx create mode 100644 src/pages/company/companies/modals/EmployeesUpdate.tsx diff --git a/src/common/components/schema/MyColumns.tsx b/src/common/components/schema/MyColumns.tsx index a2f985d..b0d1086 100644 --- a/src/common/components/schema/MyColumns.tsx +++ b/src/common/components/schema/MyColumns.tsx @@ -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, '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 ( - - -
{data.name}
-
- ); - }, + title: '选择机构', valueType: 'select', - key: 'networks_id', - fieldProps: { - fieldNames: { value: 'id', label: 'name' }, - optionRender: (item: any) => { - return ( - - -
{item.data.name}
-
- ); - }, - }, - 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 }) { diff --git a/src/gen/ApiTypes.d.ts b/src/gen/ApiTypes.d.ts index c6f53ee..bba826a 100644 --- a/src/gen/ApiTypes.d.ts +++ b/src/gen/ApiTypes.d.ts @@ -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; // - }; diff --git a/src/gen/Apis.ts b/src/gen/Apis.ts index be72609..033c9aa 100644 --- a/src/gen/Apis.ts +++ b/src/gen/Apis.ts @@ -7,36 +7,21 @@ export const Apis = { List(data?: ApiTypes.Asset.AssetBuildings.List): Promise { return request('admin/asset/asset_buildings/list', { data }); }, - Store( - data: ApiTypes.Asset.AssetBuildings.Store, - ): Promise { + Store(data: ApiTypes.Asset.AssetBuildings.Store): Promise { return request('admin/asset/asset_buildings/store', { data }); }, - Update( - data: ApiTypes.Asset.AssetBuildings.Update, - ): Promise { + Update(data: ApiTypes.Asset.AssetBuildings.Update): Promise { return request('admin/asset/asset_buildings/update', { data }); }, Show(data: ApiTypes.Asset.AssetBuildings.Show): Promise { return request('admin/asset/asset_buildings/show', { data }); }, - Delete( - data: ApiTypes.Asset.AssetBuildings.Delete, - ): Promise { + Delete(data: ApiTypes.Asset.AssetBuildings.Delete): Promise { return request('admin/asset/asset_buildings/delete', { data }); }, - Select( - data?: ApiTypes.Asset.AssetBuildings.Select, - ): Promise { + Select(data?: ApiTypes.Asset.AssetBuildings.Select): Promise { return request('admin/asset/asset_buildings/select', { data }); }, - GetBuildingTree( - data: ApiTypes.Asset.AssetBuildings.GetBuildingTree, - ): Promise { - return request('admin/asset/asset_buildings/get_building_tree', { - data, - }); - }, }, AssetHouses: { List(data?: ApiTypes.Asset.AssetHouses.List): Promise { @@ -62,32 +47,22 @@ export const Apis = { Store(data: ApiTypes.Asset.AssetProjects.Store): Promise { return request('admin/asset/asset_projects/store', { data }); }, - Update( - data: ApiTypes.Asset.AssetProjects.Update, - ): Promise { + Update(data: ApiTypes.Asset.AssetProjects.Update): Promise { return request('admin/asset/asset_projects/update', { data }); }, Show(data: ApiTypes.Asset.AssetProjects.Show): Promise { return request('admin/asset/asset_projects/show', { data }); }, - SoftDelete( - data: ApiTypes.Asset.AssetProjects.SoftDelete, - ): Promise { + SoftDelete(data: ApiTypes.Asset.AssetProjects.SoftDelete): Promise { return request('admin/asset/asset_projects/soft_delete', { data }); }, - Restore( - data: ApiTypes.Asset.AssetProjects.Restore, - ): Promise { + Restore(data: ApiTypes.Asset.AssetProjects.Restore): Promise { return request('admin/asset/asset_projects/restore', { data }); }, - Delete( - data: ApiTypes.Asset.AssetProjects.Delete, - ): Promise { + Delete(data: ApiTypes.Asset.AssetProjects.Delete): Promise { return request('admin/asset/asset_projects/delete', { data }); }, - Select( - data?: ApiTypes.Asset.AssetProjects.Select, - ): Promise { + Select(data?: ApiTypes.Asset.AssetProjects.Select): Promise { return request('admin/asset/asset_projects/select', { data }); }, }, @@ -143,17 +118,13 @@ export const Apis = { Me(): Promise { return request('admin/common/auth/me', {}); }, - ChangePassword( - data: ApiTypes.Common.Auth.ChangePassword, - ): Promise { + ChangePassword(data: ApiTypes.Common.Auth.ChangePassword): Promise { return request('admin/common/auth/change_password', { data }); }, PreUpload(data: ApiTypes.Common.Auth.PreUpload): Promise { return request('admin/common/auth/pre_upload', { data }); }, - TemporaryUrl( - data: ApiTypes.Common.Auth.TemporaryUrl, - ): Promise { + TemporaryUrl(data: ApiTypes.Common.Auth.TemporaryUrl): Promise { return request('admin/common/auth/temporary_url', { data }); }, }, @@ -172,160 +143,96 @@ export const Apis = { Show(data: ApiTypes.Company.Companies.Show): Promise { return request('admin/company/companies/show', { data }); }, - SoftDelete( - data: ApiTypes.Company.Companies.SoftDelete, - ): Promise { + SoftDelete(data: ApiTypes.Company.Companies.SoftDelete): Promise { return request('admin/company/companies/soft_delete', { data }); }, - Restore( - data: ApiTypes.Company.Companies.Restore, - ): Promise { + Restore(data: ApiTypes.Company.Companies.Restore): Promise { return request('admin/company/companies/restore', { data }); }, Delete(data: ApiTypes.Company.Companies.Delete): Promise { return request('admin/company/companies/delete', { data }); }, - Select( - data?: ApiTypes.Company.Companies.Select, - ): Promise { + Select(data?: ApiTypes.Company.Companies.Select): Promise { return request('admin/company/companies/select', { data }); }, }, CompanyEmployees: { - List( - data?: ApiTypes.Company.CompanyEmployees.List, - ): Promise { + List(data?: ApiTypes.Company.CompanyEmployees.List): Promise { return request('admin/company/company_employees/list', { data }); }, - Store( - data: ApiTypes.Company.CompanyEmployees.Store, - ): Promise { + Store(data: ApiTypes.Company.CompanyEmployees.Store): Promise { return request('admin/company/company_employees/store', { data }); }, - Update( - data: ApiTypes.Company.CompanyEmployees.Update, - ): Promise { + Update(data: ApiTypes.Company.CompanyEmployees.Update): Promise { return request('admin/company/company_employees/update', { data }); }, - Show( - data: ApiTypes.Company.CompanyEmployees.Show, - ): Promise { + Show(data: ApiTypes.Company.CompanyEmployees.Show): Promise { return request('admin/company/company_employees/show', { data }); }, - SoftDelete( - data: ApiTypes.Company.CompanyEmployees.SoftDelete, - ): Promise { + SoftDelete(data: ApiTypes.Company.CompanyEmployees.SoftDelete): Promise { return request('admin/company/company_employees/soft_delete', { data }); }, - Restore( - data: ApiTypes.Company.CompanyEmployees.Restore, - ): Promise { + Restore(data: ApiTypes.Company.CompanyEmployees.Restore): Promise { return request('admin/company/company_employees/restore', { data }); }, - Delete( - data: ApiTypes.Company.CompanyEmployees.Delete, - ): Promise { + Delete(data: ApiTypes.Company.CompanyEmployees.Delete): Promise { return request('admin/company/company_employees/delete', { data }); }, - Select( - data?: ApiTypes.Company.CompanyEmployees.Select, - ): Promise { + Select(data?: ApiTypes.Company.CompanyEmployees.Select): Promise { return request('admin/company/company_employees/select', { data }); }, }, CompanyPositions: { - List( - data?: ApiTypes.Company.CompanyPositions.List, - ): Promise { + List(data?: ApiTypes.Company.CompanyPositions.List): Promise { return request('admin/company/company_positions/list', { data }); }, - Store( - data: ApiTypes.Company.CompanyPositions.Store, - ): Promise { + Store(data: ApiTypes.Company.CompanyPositions.Store): Promise { return request('admin/company/company_positions/store', { data }); }, - Update( - data: ApiTypes.Company.CompanyPositions.Update, - ): Promise { + Update(data: ApiTypes.Company.CompanyPositions.Update): Promise { return request('admin/company/company_positions/update', { data }); }, - Show( - data: ApiTypes.Company.CompanyPositions.Show, - ): Promise { + Show(data: ApiTypes.Company.CompanyPositions.Show): Promise { return request('admin/company/company_positions/show', { data }); }, - Delete( - data: ApiTypes.Company.CompanyPositions.Delete, - ): Promise { + Delete(data: ApiTypes.Company.CompanyPositions.Delete): Promise { return request('admin/company/company_positions/delete', { data }); }, - Select( - data?: ApiTypes.Company.CompanyPositions.Select, - ): Promise { + Select(data?: ApiTypes.Company.CompanyPositions.Select): Promise { return request('admin/company/company_positions/select', { data }); }, }, CompanyReceiptAccounts: { - List( - data?: ApiTypes.Company.CompanyReceiptAccounts.List, - ): Promise { + List(data?: ApiTypes.Company.CompanyReceiptAccounts.List): Promise { return request('admin/company/company_receipt_accounts/list', { data }); }, - Store( - data: ApiTypes.Company.CompanyReceiptAccounts.Store, - ): Promise { - return request('admin/company/company_receipt_accounts/store', { - data, - }); + Store(data: ApiTypes.Company.CompanyReceiptAccounts.Store): Promise { + return request('admin/company/company_receipt_accounts/store', { data }); }, - Update( - data: ApiTypes.Company.CompanyReceiptAccounts.Update, - ): Promise { - return request('admin/company/company_receipt_accounts/update', { - data, - }); + Update(data: ApiTypes.Company.CompanyReceiptAccounts.Update): Promise { + return request('admin/company/company_receipt_accounts/update', { data }); }, - Show( - data: ApiTypes.Company.CompanyReceiptAccounts.Show, - ): Promise { + Show(data: ApiTypes.Company.CompanyReceiptAccounts.Show): Promise { return request('admin/company/company_receipt_accounts/show', { data }); }, - SoftDelete( - data: ApiTypes.Company.CompanyReceiptAccounts.SoftDelete, - ): Promise { - return request('admin/company/company_receipt_accounts/soft_delete', { - data, - }); + SoftDelete(data: ApiTypes.Company.CompanyReceiptAccounts.SoftDelete): Promise { + return request('admin/company/company_receipt_accounts/soft_delete', { data }); }, - Restore( - data: ApiTypes.Company.CompanyReceiptAccounts.Restore, - ): Promise { - return request('admin/company/company_receipt_accounts/restore', { - data, - }); + Restore(data: ApiTypes.Company.CompanyReceiptAccounts.Restore): Promise { + return request('admin/company/company_receipt_accounts/restore', { data }); }, - Delete( - data: ApiTypes.Company.CompanyReceiptAccounts.Delete, - ): Promise { - return request('admin/company/company_receipt_accounts/delete', { - data, - }); + Delete(data: ApiTypes.Company.CompanyReceiptAccounts.Delete): Promise { + return request('admin/company/company_receipt_accounts/delete', { data }); }, }, Organizations: { - List( - data?: ApiTypes.Company.Organizations.List, - ): Promise { + List(data?: ApiTypes.Company.Organizations.List): Promise { return request('admin/company/organizations/list', { data }); }, - Store( - data: ApiTypes.Company.Organizations.Store, - ): Promise { + Store(data: ApiTypes.Company.Organizations.Store): Promise { return request('admin/company/organizations/store', { data }); }, - Update( - data: ApiTypes.Company.Organizations.Update, - ): Promise { + Update(data: ApiTypes.Company.Organizations.Update): Promise { return request('admin/company/organizations/update', { data }); }, Move(data: ApiTypes.Company.Organizations.Move): Promise { @@ -334,29 +241,19 @@ export const Apis = { Show(data: ApiTypes.Company.Organizations.Show): Promise { return request('admin/company/organizations/show', { data }); }, - SoftDelete( - data: ApiTypes.Company.Organizations.SoftDelete, - ): Promise { + SoftDelete(data: ApiTypes.Company.Organizations.SoftDelete): Promise { return request('admin/company/organizations/soft_delete', { data }); }, - Restore( - data: ApiTypes.Company.Organizations.Restore, - ): Promise { + Restore(data: ApiTypes.Company.Organizations.Restore): Promise { return request('admin/company/organizations/restore', { data }); }, - Delete( - data: ApiTypes.Company.Organizations.Delete, - ): Promise { + Delete(data: ApiTypes.Company.Organizations.Delete): Promise { return request('admin/company/organizations/delete', { data }); }, - Select( - data?: ApiTypes.Company.Organizations.Select, - ): Promise { + Select(data?: ApiTypes.Company.Organizations.Select): Promise { return request('admin/company/organizations/select', { data }); }, - SelectTree( - data?: ApiTypes.Company.Organizations.SelectTree, - ): Promise { + SelectTree(data?: ApiTypes.Company.Organizations.SelectTree): Promise { return request('admin/company/organizations/select_tree', { data }); }, }, @@ -378,43 +275,32 @@ export const Apis = { Delete(data: ApiTypes.Grid.Grids.Delete): Promise { return request('admin/grid/grids/delete', { data }); }, - GetGridMark( - data: ApiTypes.Grid.Grids.GetGridMark, - ): Promise { + AddManager(data: ApiTypes.Grid.Grids.AddManager): Promise { + return request('admin/grid/grids/add_manager', { data }); + }, + GetGridMark(data: ApiTypes.Grid.Grids.GetGridMark): Promise { return request('admin/grid/grids/get_grid_mark', { data }); }, }, }, Permission: { SysPermissions: { - List( - data: ApiTypes.Permission.SysPermissions.List, - ): Promise { + List(data: ApiTypes.Permission.SysPermissions.List): Promise { return request('admin/permission/sys_permissions/list', { data }); }, - Tree( - data: ApiTypes.Permission.SysPermissions.Tree, - ): Promise { + Tree(data: ApiTypes.Permission.SysPermissions.Tree): Promise { return request('admin/permission/sys_permissions/tree', { data }); }, - Store( - data: ApiTypes.Permission.SysPermissions.Store, - ): Promise { + Store(data: ApiTypes.Permission.SysPermissions.Store): Promise { return request('admin/permission/sys_permissions/store', { data }); }, - Update( - data: ApiTypes.Permission.SysPermissions.Update, - ): Promise { + Update(data: ApiTypes.Permission.SysPermissions.Update): Promise { return request('admin/permission/sys_permissions/update', { data }); }, - Delete( - data: ApiTypes.Permission.SysPermissions.Delete, - ): Promise { + Delete(data: ApiTypes.Permission.SysPermissions.Delete): Promise { return request('admin/permission/sys_permissions/delete', { data }); }, - Move( - data: ApiTypes.Permission.SysPermissions.Move, - ): Promise { + Move(data: ApiTypes.Permission.SysPermissions.Move): Promise { return request('admin/permission/sys_permissions/move', { data }); }, SelectApi(): Promise { @@ -428,29 +314,21 @@ export const Apis = { Store(data: ApiTypes.Permission.SysRoles.Store): Promise { return request('admin/permission/sys_roles/store', { data }); }, - Update( - data: ApiTypes.Permission.SysRoles.Update, - ): Promise { + Update(data: ApiTypes.Permission.SysRoles.Update): Promise { return request('admin/permission/sys_roles/update', { data }); }, - Delete( - data: ApiTypes.Permission.SysRoles.Delete, - ): Promise { + Delete(data: ApiTypes.Permission.SysRoles.Delete): Promise { return request('admin/permission/sys_roles/delete', { data }); }, Select(): Promise { return request('admin/permission/sys_roles/select', {}); }, - GetPermissions( - data: ApiTypes.Permission.SysRoles.GetPermissions, - ): Promise { + GetPermissions(data: ApiTypes.Permission.SysRoles.GetPermissions): Promise { return request('admin/permission/sys_roles/get_permissions', { data }); }, - SetPermissions( - data: ApiTypes.Permission.SysRoles.SetPermissions, - ): Promise { + SetPermissions(data: ApiTypes.Permission.SysRoles.SetPermissions): Promise { return request('admin/permission/sys_roles/set_permissions', { data }); }, }, }, -}; +} \ No newline at end of file diff --git a/src/pages/company/companies/$id.tsx b/src/pages/company/companies/$id.tsx index cc5ebfc..d2c90bc 100644 --- a/src/pages/company/companies/$id.tsx +++ b/src/pages/company/companies/$id.tsx @@ -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: , + children: , }, { label: '岗位管理', diff --git a/src/pages/company/companies/components/Employees.tsx b/src/pages/company/companies/components/Employees.tsx new file mode 100644 index 0000000..122291b --- /dev/null +++ b/src/pages/company/companies/components/Employees.tsx @@ -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 ( + + MyProTableProps.request( + { ...params, companies_id: props?.item?.id }, + sort, + Apis.Company.CompanyEmployees.List, + ) + } + toolBarRender={(action) => [ + , + ]} + 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) => ( + + + + Apis.Common.Admins.Delete({ id: item.id }).then(() => + action?.reload(), + ) + } + /> + + ), + }), + ]} + /> + ); +} diff --git a/src/pages/company/companies/modals/EmployeesCreate.tsx b/src/pages/company/companies/modals/EmployeesCreate.tsx new file mode 100644 index 0000000..896cb18 --- /dev/null +++ b/src/pages/company/companies/modals/EmployeesCreate.tsx @@ -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 ( + + {...MyModalFormProps.props} + title={`添加${props?.title}`} + wrapperCol={{ span: 24 }} + width="500px" + trigger={} + 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', + }, + ]} + /> + ); +} diff --git a/src/pages/company/companies/modals/EmployeesUpdate.tsx b/src/pages/company/companies/modals/EmployeesUpdate.tsx new file mode 100644 index 0000000..f017165 --- /dev/null +++ b/src/pages/company/companies/modals/EmployeesUpdate.tsx @@ -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 ( + + {...MyModalFormProps.props} + title={`编辑员工`} + trigger={} + 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', + }, + ]} + /> + ); +} diff --git a/src/pages/company/employees/index.tsx b/src/pages/company/employees/index.tsx index f717486..66f3745 100644 --- a/src/pages/company/employees/index.tsx +++ b/src/pages/company/employees/index.tsx @@ -28,6 +28,9 @@ export default function Index({ title = '员工管理' }) { ]} columns={[ MyColumns.ID(), + MyColumns.Companies({ + title: '选择机构', + }), { title: '姓名', dataIndex: 'name',