pay-admin/src/components/Select.tsx

612 lines
14 KiB
TypeScript
Raw Normal View History

2025-06-29 18:42:50 +08:00
import { rulesHelper } from '@/common';
import { Apis } from '@/gen/Apis';
import { ProColumns, ProFormColumnsType } from '@ant-design/pro-components';
type ReturnType = ProColumns<any, 'text'> & ProFormColumnsType<any, 'text'>;
type PropsType = { required?: boolean } & ReturnType;
2025-06-30 15:55:47 +08:00
export const Selects = {
2025-06-29 18:42:50 +08:00
Companies(props?: PropsType): ReturnType {
const {
title = '机构',
key = 'parent_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
await Apis.Company.Companies.Select({
keywords: params?.KeyWords,
...params,
})
).data,
...rest,
2025-06-30 15:55:47 +08:00
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
2025-06-29 18:42:50 +08:00
};
},
2025-06-30 14:20:46 +08:00
// 楼栋下拉框
AssetBuildings(props?: PropsType): ReturnType {
const {
title = '楼栋',
key = 'asset_buildings_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
2025-06-30 15:55:47 +08:00
request: async (params) =>
(
await Apis.Asset.AssetBuildings.Select({
keywords: params?.KeyWords,
asset_projects_id: params?.asset_projects_id,
...params,
})
).data,
...rest,
2025-06-30 14:20:46 +08:00
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
2025-06-30 15:55:47 +08:00
...rest?.fieldProps,
2025-06-30 14:20:46 +08:00
},
2025-06-30 15:55:47 +08:00
};
},
// 单元下拉框
AssetUnits(props?: PropsType): ReturnType {
const {
title = '单元',
key = 'asset_buildings_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
2025-06-30 14:20:46 +08:00
request: async (params) =>
(
2025-06-30 15:55:47 +08:00
await Apis.Asset.AssetUnits.Select({
2025-06-30 14:20:46 +08:00
keywords: params?.KeyWords,
asset_projects_id: params?.asset_projects_id,
2025-06-30 15:55:47 +08:00
asset_buildings_id: params?.asset_buildings_id,
2025-06-30 14:20:46 +08:00
...params,
})
).data,
...rest,
2025-06-30 15:55:47 +08:00
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
2025-06-30 14:20:46 +08:00
};
},
2025-09-18 19:40:30 +08:00
// 网格单元下拉框
2025-07-17 13:58:54 +08:00
GridUnits(props?: PropsType): ReturnType {
const {
title = '单元',
key = 'asset_buildings_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
2025-06-30 18:42:21 +08:00
2025-07-17 13:58:54 +08:00
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
2025-09-18 19:40:30 +08:00
request: async (params) => {
let res = await Apis.Asset.AssetUnits.GridSelect({
keywords: params?.KeyWords,
asset_projects_id: params?.asset_projects_id,
...params,
});
res?.data?.map((l: any) => {
l.label = l.asset_building.name + l.label;
});
return res?.data;
},
2025-07-17 13:58:54 +08:00
...rest,
fieldProps: {
showSearch: true,
2025-09-18 19:40:30 +08:00
// mode: 'multiple',
2025-07-17 13:58:54 +08:00
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
2025-06-30 18:42:21 +08:00
//网格标识
GetGridMark(props?: PropsType): ReturnType {
const {
title = '网格标识',
key = 'grid_mark',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
await Apis.Grid.Grids.GetGridMark({
keywords: params?.KeyWords,
asset_projects_id: params?.asset_projects_id,
...params,
})
).data,
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
2025-07-16 10:18:01 +08:00
//组织
Organizations(props?: PropsType): ReturnType {
2025-06-30 18:42:21 +08:00
const {
2025-07-16 10:18:01 +08:00
title = '组织',
key = 'organizations_id',
2025-06-30 18:42:21 +08:00
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
2025-07-16 10:18:01 +08:00
valueType: 'select',
2025-06-30 18:42:21 +08:00
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
2025-07-16 10:18:01 +08:00
await Apis.Company.Organizations.Select({
2025-06-30 18:42:21 +08:00
keywords: params?.KeyWords,
2025-07-16 10:18:01 +08:00
companies_id: params?.companies_id,
2025-06-30 18:42:21 +08:00
...params,
})
).data,
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
2025-07-16 10:18:01 +08:00
label: 'label',
value: 'value',
2025-06-30 18:42:21 +08:00
},
...rest?.fieldProps,
},
};
},
2025-07-16 10:18:01 +08:00
//组织树
OrganizationsTree(props?: PropsType): ReturnType {
2025-06-30 14:20:46 +08:00
const {
2025-06-30 15:55:47 +08:00
title = '组织',
key = 'organizations_id',
2025-06-30 14:20:46 +08:00
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
2025-07-17 13:58:54 +08:00
valueType: 'cascader',
2025-06-30 14:20:46 +08:00
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
2025-06-30 15:55:47 +08:00
request: async (params) =>
(
2025-07-16 10:18:01 +08:00
await Apis.Company.Organizations.SelectTree({
2025-06-30 15:55:47 +08:00
keywords: params?.KeyWords,
2025-07-16 10:18:01 +08:00
companies_id: params?.companies_id,
2025-06-30 15:55:47 +08:00
...params,
})
).data,
...rest,
2025-06-30 14:20:46 +08:00
fieldProps: {
showSearch: true,
2025-07-17 13:58:54 +08:00
changeOnSelect: true,
2025-06-30 14:20:46 +08:00
fieldNames: {
2025-07-16 10:18:01 +08:00
label: 'name',
value: 'id',
children: 'children',
2025-06-30 14:20:46 +08:00
},
2025-06-30 15:55:47 +08:00
...rest?.fieldProps,
2025-06-30 14:20:46 +08:00
},
2025-06-30 15:55:47 +08:00
};
},
//员工
Employees(props?: PropsType): ReturnType {
const {
title = '员工',
2025-07-16 10:18:01 +08:00
key = 'company_employees_id',
2025-06-30 15:55:47 +08:00
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
2025-06-30 14:20:46 +08:00
request: async (params) =>
(
2025-06-30 15:55:47 +08:00
await Apis.Company.CompanyEmployees.Select({
2025-06-30 14:20:46 +08:00
keywords: params?.KeyWords,
2025-07-02 16:43:04 +08:00
...params,
})
).data,
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
2025-07-10 18:01:45 +08:00
//岗位
Positions(props?: PropsType): ReturnType {
const {
title = '岗位',
key = 'positions_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
await Apis.Company.CompanyPositions.Select({
keywords: params?.KeyWords,
...params,
})
).data,
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
2025-07-02 16:43:04 +08:00
//项目
AssetProjects(props?: PropsType): ReturnType {
const {
title = '选择项目',
key = 'asset_projects_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
await Apis.Asset.AssetProjects.Select({
keywords: params?.KeyWords,
2025-07-17 13:58:54 +08:00
...params,
})
).data,
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
2025-09-18 19:40:30 +08:00
//机构收款账户
CompanyAccounts(props?: PropsType): ReturnType {
const {
title = '收款账户',
key = 'receipt_accounts_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
2025-10-04 23:45:30 +08:00
request: async (params) =>
(
await Apis.Company.CompanyReceiptAccounts.Select({
keywords: params?.KeyWords,
companies_id: params?.companies_id,
...params,
})
).data,
2025-09-18 19:40:30 +08:00
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
2025-10-04 23:45:30 +08:00
value: 'value',
2025-09-18 19:40:30 +08:00
},
...rest?.fieldProps,
},
};
},
//项目收款账户
2025-07-17 13:58:54 +08:00
ProjectAccounts(props?: PropsType): ReturnType {
const {
title = '收款账户',
key = 'company_receipt_accounts_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
await Apis.Company.CompanyProjectReceiptAccounts.Select({
keywords: params?.KeyWords,
2025-10-04 23:45:30 +08:00
projects_id: params?.asset_projects_id,
2025-06-30 14:20:46 +08:00
...params,
})
).data,
...rest,
2025-06-30 15:55:47 +08:00
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
2025-06-30 14:20:46 +08:00
};
},
2025-07-01 17:56:01 +08:00
//房屋
AssetHouses(props?: PropsType): ReturnType {
const {
title = '选择房屋',
key = 'asset_houses_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
await Apis.Asset.AssetHouses.Select({
keywords: params?.KeyWords,
...params,
})
).data,
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
//获取广告位
GetBannerSpace(props?: PropsType): ReturnType {
const {
title = '广告位',
key = 'banner_spaces_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
await Apis.Banner.BannerSpaces.Select({
keywords: params?.KeyWords,
...params,
})
).data,
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
2025-09-08 17:22:58 +08:00
//收费标准
ChargeStandard(props?: PropsType): ReturnType {
const {
title = '选择收费标准',
key = 'house_charge_standards_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
await Apis.HouseCharage.HouseChargeStandards.Select({
keywords: params?.KeyWords,
asset_projects_id: params?.asset_projects_id,
...params,
})
).data,
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
// 物业品牌
PropertyBrands(props?: PropsType): ReturnType {
const {
title = '品牌',
key = 'company_property_brands_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) =>
(
await Apis.Company.CompanyPropertyBrands.Select({
keywords: params?.KeyWords,
...params,
})
).data,
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
2025-10-04 23:45:30 +08:00
//获取仪表
2025-10-01 18:01:02 +08:00
AssetMeters(props?: PropsType): ReturnType {
const {
title = '选择仪表',
key = 'id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'select',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) => {
let res = await Apis.Meter.HouseMeters.List({
keywords: params?.KeyWords,
asset_projects_id: params?.asset_projects_id,
charge_standards_id: params?.house_charge_standards_id,
...params,
});
res?.data?.map((l: any) => {
l.label = l.id + ':' + l.name;
2025-10-09 20:21:05 +08:00
l.value = l.id;
});
return res?.data;
},
2025-10-01 18:01:02 +08:00
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'label',
value: 'value',
},
...rest?.fieldProps,
},
};
},
2025-06-29 18:42:50 +08:00
};