fix:客户导入、员工创建初始密码
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m42s
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m42s
This commit is contained in:
parent
3255c9deb6
commit
13e98eaf4c
@ -18,8 +18,8 @@ export default defineConfig({
|
||||
proxy: {
|
||||
'/api/': {
|
||||
target: 'http://10.39.13.78:8001/',
|
||||
// target: 'https://test-admin.linyikj.com.cn/',
|
||||
// target: 'https://admin.linyikj.com.cn/',
|
||||
// target: 'https://test-company.linyikj.com.cn/',
|
||||
// target: 'https://company.linyikj.com.cn/',
|
||||
changeOrigin: true,
|
||||
pathRewrite: { '^': '' },
|
||||
},
|
||||
|
||||
162
src/gen/ApiTypes.d.ts
vendored
162
src/gen/ApiTypes.d.ts
vendored
@ -196,6 +196,9 @@ declare namespace ApiTypes {
|
||||
"id": number; // id
|
||||
"is_contact": boolean; // 是否是常用联系人
|
||||
};
|
||||
type Import = {
|
||||
"upload_file"?: mimes:xlsx,xls; // 上传的时候必填文件
|
||||
};
|
||||
}
|
||||
namespace HouseRegisters {
|
||||
type List = {
|
||||
@ -667,6 +670,156 @@ declare namespace ApiTypes {
|
||||
};
|
||||
}
|
||||
}
|
||||
namespace Attendance {
|
||||
namespace AttendanceConfigs {
|
||||
type List = {
|
||||
"page"?: number; // -
|
||||
"per_page"?: number; // -
|
||||
};
|
||||
type Store = {
|
||||
"asset_projects_id": number; // 项目ID
|
||||
"check_in_range": number; // 打卡范围(米)
|
||||
"require_photo": boolean; // 是否要求拍照打卡
|
||||
"allow_out_range_checkin"?: boolean; // 是否允许范围外打卡
|
||||
};
|
||||
type UpdateConfig = {
|
||||
"id": number; // id
|
||||
"check_in_range": number; // 打卡范围(米)
|
||||
"require_photo": boolean; // 是否要求拍照打卡
|
||||
"allow_out_range_checkin"?: boolean; // 是否允许范围外打卡
|
||||
};
|
||||
type Enable = {
|
||||
"id": number; // id
|
||||
"is_enabled": boolean; // 是否启用: 1:启用 0:禁用
|
||||
};
|
||||
}
|
||||
namespace AttendanceEmployeeTracks {
|
||||
type List = {
|
||||
"company_employees_id"?: number; // 员工ID
|
||||
"asset_projects_id"?: number; // 项目ID
|
||||
"start_date"?: Date; // 开始日期
|
||||
"end_date"?: Date; // 结束日期
|
||||
};
|
||||
type Detail = {
|
||||
"company_employees_id": number; // 员工ID
|
||||
"start_date": Date; // 开始日期
|
||||
"end_date": Date; // 结束日期
|
||||
"asset_projects_id"?: number; // 项目ID
|
||||
};
|
||||
type Heatmap = {
|
||||
"company_employees_id": number; // 员工ID
|
||||
"date": Date; // 日期
|
||||
};
|
||||
}
|
||||
namespace AttendanceRecords {
|
||||
type List = {
|
||||
"company_employees_id"?: number; // 员工ID
|
||||
"asset_projects_id"?: number; // 项目ID
|
||||
"status"?: string; // 状态
|
||||
"checkin_type"?: string; // 打卡类型
|
||||
"checkin_time"?: string[]; // 打卡时间
|
||||
};
|
||||
type Show = {
|
||||
"id": number; // 记录ID
|
||||
};
|
||||
type Export = {
|
||||
"company_employees_id"?: number; // 员工ID
|
||||
"asset_projects_id"?: number; // 项目ID
|
||||
"status"?: string; // 状态
|
||||
"checkin_type"?: string; // 打卡类型
|
||||
"checkin_time"?: string[]; // 打卡时间
|
||||
};
|
||||
}
|
||||
namespace AttendanceSchedules {
|
||||
type List = {
|
||||
"company_employees_id"?: number; // 员工ID
|
||||
"asset_projects_id"?: number; // 项目ID
|
||||
"schedule_date"?: Date; // 排班日期
|
||||
"status"?: string; // 状态,[enum:AttendanceSchedulesStatusEnum]
|
||||
"project_name"?: string; // 项目名称
|
||||
"employee_name"?: string; // -
|
||||
};
|
||||
type Store = {
|
||||
"company_employees_id": number; // 员工ID
|
||||
"attendance_shifts_id": number; // 班次ID
|
||||
"asset_projects_id": number; // 项目ID
|
||||
"schedule_date": Date; // 排班日期
|
||||
"remark"?: string; // 备注
|
||||
};
|
||||
type BatchStore = {
|
||||
"schedules": string[]; // 排班列表
|
||||
};
|
||||
type ShiftList = {
|
||||
"organizations_id": number; // 组织ID
|
||||
"schedule_date": Date; // 排班日期
|
||||
};
|
||||
type Update = {
|
||||
"id": number; // id
|
||||
"company_employees_id"?: number; // 员工ID
|
||||
"attendance_shifts_id"?: number; // 班次ID
|
||||
"asset_projects_id"?: number; // 项目ID
|
||||
"schedule_date"?: Date; // 排班日期
|
||||
"remark"?: string; // 备注
|
||||
};
|
||||
type ChangeStatus = {
|
||||
"id": number; // id
|
||||
"status": string; // 状态,[enum:AttendanceSchedulesStatusEnum]
|
||||
};
|
||||
type Cancel = {
|
||||
"id": number; // id
|
||||
};
|
||||
type Show = {
|
||||
"id": number; // id
|
||||
};
|
||||
type SoftDelete = {
|
||||
"id": number; // id
|
||||
};
|
||||
type Restore = {
|
||||
"id": number; // id
|
||||
};
|
||||
type Delete = {
|
||||
"id": number; // id
|
||||
};
|
||||
}
|
||||
namespace AttendanceShifts {
|
||||
type List = {
|
||||
"name"?: string; // 班次名称
|
||||
"is_enabled"?: boolean; // 状态
|
||||
"asset_projects_id"?: number; // 项目ID
|
||||
"project_name"?: string; // 项目名称
|
||||
};
|
||||
type Store = {
|
||||
"name": string; // 班次名称
|
||||
"asset_projects_id": number; // 关联项目IDs
|
||||
"allow_checkin_start": date_format:H:i:s; // 可打卡开始时间
|
||||
"allow_checkin_end": date_format:H:i:s; // 可打卡结束时间
|
||||
"is_enabled"?: boolean; // 状态
|
||||
"remark"?: string; // 备注
|
||||
"periods": string[]; // 时段列表
|
||||
};
|
||||
type Update = {
|
||||
"id": number; // id
|
||||
"name"?: string; // 班次名称
|
||||
"asset_projects_id"?: number; // 关联项目IDs
|
||||
"allow_checkin_start"?: date_format:H:i:s; // 可打卡开始时间
|
||||
"allow_checkin_end"?: date_format:H:i:s; // 可打卡结束时间
|
||||
"is_enabled"?: boolean; // 状态
|
||||
"remark"?: string; // 备注
|
||||
"periods"?: string[]; // 时段列表
|
||||
};
|
||||
type Show = {
|
||||
"id": number; // id
|
||||
};
|
||||
type Delete = {
|
||||
"id": number; // id
|
||||
};
|
||||
type Select = {
|
||||
"name"?: string; // 班次名称
|
||||
"asset_projects_id"?: number; // 项目ID
|
||||
"project_name"?: string; // 项目名称
|
||||
};
|
||||
}
|
||||
}
|
||||
namespace Bill {
|
||||
namespace HouseBills {
|
||||
type List = {
|
||||
@ -790,6 +943,9 @@ declare namespace ApiTypes {
|
||||
type TemporaryUrl = {
|
||||
"filename": string; // 文件名称
|
||||
};
|
||||
type SwitchProject = {
|
||||
"project_id": string; // 项目ID all-查看所有
|
||||
};
|
||||
}
|
||||
namespace ConvenienceServices {
|
||||
type List = {
|
||||
@ -902,7 +1058,7 @@ declare namespace ApiTypes {
|
||||
}
|
||||
namespace CompanyProjectReceiptAccounts {
|
||||
type List = {
|
||||
"asset_projects_id"?: number; // 所属项目id,[ref:asset_projects]
|
||||
"projects_id"?: number; // 所属项目id,[ref:asset_projects]
|
||||
};
|
||||
type Store = {
|
||||
"projects_id": number; // 所属项目id,[ref:asset_projects]
|
||||
@ -1784,6 +1940,10 @@ declare namespace ApiTypes {
|
||||
};
|
||||
}
|
||||
}
|
||||
namespace Statistics {
|
||||
namespace IndexCount {
|
||||
}
|
||||
}
|
||||
namespace Visitor {
|
||||
namespace VisitorApplies {
|
||||
type List = {
|
||||
|
||||
127
src/gen/Apis.ts
127
src/gen/Apis.ts
@ -121,6 +121,12 @@ export const Apis = {
|
||||
ChangeIsContact(data: ApiTypes.Archive.HouseOccupants.ChangeIsContact): Promise<MyResponseType> {
|
||||
return request('company/archive/house_occupants/change_is_contact', { data });
|
||||
},
|
||||
Import(data?: ApiTypes.Archive.HouseOccupants.Import): Promise<MyResponseType> {
|
||||
return request('company/archive/house_occupants/import', { data });
|
||||
},
|
||||
DownloadTemplate(): Promise<MyResponseType> {
|
||||
return request('company/archive/house_occupants/download_template', {responseType: 'blob',});
|
||||
},
|
||||
},
|
||||
HouseRegisters: {
|
||||
List(data?: ApiTypes.Archive.HouseRegisters.List): Promise<MyResponseType> {
|
||||
@ -315,6 +321,102 @@ export const Apis = {
|
||||
},
|
||||
},
|
||||
},
|
||||
Attendance: {
|
||||
AttendanceConfigs: {
|
||||
List(data?: ApiTypes.Attendance.AttendanceConfigs.List): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_configs/list', { data });
|
||||
},
|
||||
Store(data: ApiTypes.Attendance.AttendanceConfigs.Store): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_configs/store', { data });
|
||||
},
|
||||
UpdateConfig(data: ApiTypes.Attendance.AttendanceConfigs.UpdateConfig): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_configs/update_config', { data });
|
||||
},
|
||||
Enable(data: ApiTypes.Attendance.AttendanceConfigs.Enable): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_configs/enable', { data });
|
||||
},
|
||||
},
|
||||
AttendanceEmployeeTracks: {
|
||||
List(data?: ApiTypes.Attendance.AttendanceEmployeeTracks.List): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_employee_tracks/list', { data });
|
||||
},
|
||||
Detail(data: ApiTypes.Attendance.AttendanceEmployeeTracks.Detail): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_employee_tracks/detail', { data });
|
||||
},
|
||||
Heatmap(data: ApiTypes.Attendance.AttendanceEmployeeTracks.Heatmap): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_employee_tracks/heatmap', { data });
|
||||
},
|
||||
Cleanup(): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_employee_tracks/cleanup', {});
|
||||
},
|
||||
},
|
||||
AttendanceRecords: {
|
||||
List(data?: ApiTypes.Attendance.AttendanceRecords.List): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_records/list', { data });
|
||||
},
|
||||
Show(data: ApiTypes.Attendance.AttendanceRecords.Show): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_records/show', { data });
|
||||
},
|
||||
Export(data?: ApiTypes.Attendance.AttendanceRecords.Export): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_records/export', { responseType: 'blob',data });
|
||||
},
|
||||
},
|
||||
AttendanceSchedules: {
|
||||
List(data?: ApiTypes.Attendance.AttendanceSchedules.List): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/list', { data });
|
||||
},
|
||||
Store(data: ApiTypes.Attendance.AttendanceSchedules.Store): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/store', { data });
|
||||
},
|
||||
BatchStore(data: ApiTypes.Attendance.AttendanceSchedules.BatchStore): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/batch_store', { data });
|
||||
},
|
||||
ShiftList(data: ApiTypes.Attendance.AttendanceSchedules.ShiftList): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/shift_list', { data });
|
||||
},
|
||||
Update(data: ApiTypes.Attendance.AttendanceSchedules.Update): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/update', { data });
|
||||
},
|
||||
ChangeStatus(data: ApiTypes.Attendance.AttendanceSchedules.ChangeStatus): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/change_status', { data });
|
||||
},
|
||||
Cancel(data: ApiTypes.Attendance.AttendanceSchedules.Cancel): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/cancel', { data });
|
||||
},
|
||||
Show(data: ApiTypes.Attendance.AttendanceSchedules.Show): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/show', { data });
|
||||
},
|
||||
SoftDelete(data: ApiTypes.Attendance.AttendanceSchedules.SoftDelete): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/soft_delete', { data });
|
||||
},
|
||||
Restore(data: ApiTypes.Attendance.AttendanceSchedules.Restore): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/restore', { data });
|
||||
},
|
||||
Delete(data: ApiTypes.Attendance.AttendanceSchedules.Delete): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_schedules/delete', { data });
|
||||
},
|
||||
},
|
||||
AttendanceShifts: {
|
||||
List(data?: ApiTypes.Attendance.AttendanceShifts.List): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_shifts/list', { data });
|
||||
},
|
||||
Store(data: ApiTypes.Attendance.AttendanceShifts.Store): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_shifts/store', { data });
|
||||
},
|
||||
Update(data: ApiTypes.Attendance.AttendanceShifts.Update): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_shifts/update', { data });
|
||||
},
|
||||
Show(data: ApiTypes.Attendance.AttendanceShifts.Show): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_shifts/show', { data });
|
||||
},
|
||||
Delete(data: ApiTypes.Attendance.AttendanceShifts.Delete): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_shifts/delete', { data });
|
||||
},
|
||||
Select(data?: ApiTypes.Attendance.AttendanceShifts.Select): Promise<MyResponseType> {
|
||||
return request('company/attendance/attendance_shifts/select', { data });
|
||||
},
|
||||
},
|
||||
},
|
||||
Bill: {
|
||||
HouseBills: {
|
||||
List(data?: ApiTypes.Bill.HouseBills.List): Promise<MyResponseType> {
|
||||
@ -390,6 +492,12 @@ export const Apis = {
|
||||
TemporaryUrl(data: ApiTypes.Common.Auth.TemporaryUrl): Promise<MyResponseType> {
|
||||
return request('company/common/auth/temporary_url', { data });
|
||||
},
|
||||
SwitchProject(data: ApiTypes.Common.Auth.SwitchProject): Promise<MyResponseType> {
|
||||
return request('company/common/auth/switch_project', { data });
|
||||
},
|
||||
GetProjects(): Promise<MyResponseType> {
|
||||
return request('company/common/auth/get_projects', {});
|
||||
},
|
||||
},
|
||||
ConvenienceServices: {
|
||||
List(data?: ApiTypes.Common.ConvenienceServices.List): Promise<MyResponseType> {
|
||||
@ -1019,6 +1127,25 @@ export const Apis = {
|
||||
},
|
||||
},
|
||||
},
|
||||
Statistics: {
|
||||
IndexCount: {
|
||||
FinancialAnalysis(): Promise<MyResponseType> {
|
||||
return request('company/statistics/index_count/financial_analysis', {});
|
||||
},
|
||||
TodayDynamics(): Promise<MyResponseType> {
|
||||
return request('company/statistics/index_count/today_dynamics', {});
|
||||
},
|
||||
WorkOrderAnalysis(): Promise<MyResponseType> {
|
||||
return request('company/statistics/index_count/work_order_analysis', {});
|
||||
},
|
||||
CommunityOverview(): Promise<MyResponseType> {
|
||||
return request('company/statistics/index_count/community_overview', {});
|
||||
},
|
||||
ClearCache(): Promise<MyResponseType> {
|
||||
return request('company/statistics/index_count/clear_cache', {});
|
||||
},
|
||||
},
|
||||
},
|
||||
Visitor: {
|
||||
VisitorApplies: {
|
||||
List(data?: ApiTypes.Visitor.VisitorApplies.List): Promise<MyResponseType> {
|
||||
|
||||
@ -227,6 +227,37 @@ export const AssetUnitsBuildingTypeEnum= {
|
||||
'Tower': {"text":"塔楼","color":"#ffc107","value":"Tower"},
|
||||
};
|
||||
|
||||
// AttendanceRecordsCheckinTypeEnum
|
||||
export const AttendanceRecordsCheckinTypeEnum= {
|
||||
'CheckIn': {"text":"上班","color":"#1890ff","value":"CheckIn"},
|
||||
'CheckOut': {"text":"下班","color":"#52c41a","value":"CheckOut"},
|
||||
};
|
||||
|
||||
// AttendanceRecordsStatusEnum
|
||||
export const AttendanceRecordsStatusEnum= {
|
||||
'Normal': {"text":"正常","color":"#52c41a","value":"Normal"},
|
||||
'Late': {"text":"迟到","color":"#faad14","value":"Late"},
|
||||
'EarlyLeave': {"text":"早退","color":"#fa8c16","value":"EarlyLeave"},
|
||||
'OutOfRange': {"text":"范围外","color":"#ff4d4f","value":"OutOfRange"},
|
||||
'Reissue': {"text":"补卡","color":"#1890ff","value":"Reissue"},
|
||||
};
|
||||
|
||||
// AttendanceSchedulesStatusEnum
|
||||
export const AttendanceSchedulesStatusEnum= {
|
||||
'Pending': {"text":"待生效","color":"#faad14","value":"Pending"},
|
||||
'Active': {"text":"生效中","color":"#52c41a","value":"Active"},
|
||||
'Cancelled': {"text":"已取消","color":"#ff4d4f","value":"Cancelled"},
|
||||
};
|
||||
|
||||
// 打卡状态枚举
|
||||
export const AttendanceStatusEnum= {
|
||||
'Normal': {"text":"正常","color":"#52c41a","value":"Normal"},
|
||||
'Late': {"text":"迟到","color":"#faad14","value":"Late"},
|
||||
'Early': {"text":"早退","color":"#faad14","value":"Early"},
|
||||
'OutOfRange': {"text":"范围外","color":"#ff4d4f","value":"OutOfRange"},
|
||||
'MakeUp': {"text":"补卡","color":"#722ed1","value":"MakeUp"},
|
||||
};
|
||||
|
||||
// BannerSpacesTypeEnum
|
||||
export const BannerSpacesTypeEnum= {
|
||||
'Popup': {"text":"弹窗","color":"#ff0000","value":"Popup"},
|
||||
@ -251,7 +282,7 @@ export const BannersTypeEnum= {
|
||||
|
||||
// 缓存类型
|
||||
export const CacheTypeEnum= {
|
||||
'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#e482d3","value":"MobilePhoneVerificationCode"},
|
||||
'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#e72e44","value":"MobilePhoneVerificationCode"},
|
||||
};
|
||||
|
||||
// CompaniesMerchantTypeEnum
|
||||
@ -297,6 +328,13 @@ export const CompanyEmployeeBacklogsTypeEnum= {
|
||||
'MomentTask': {"text":"朋友圈任务","color":"#FF6600","value":"MomentTask"},
|
||||
};
|
||||
|
||||
// CompanyEmployeesTypeEnum
|
||||
export const CompanyEmployeesTypeEnum= {
|
||||
'Staff': {"text":"员工","color":"#1890ff","value":"Staff"},
|
||||
'WeCom': {"text":"企微","color":"#2196f3","value":"WeCom"},
|
||||
'External': {"text":"外部","color":"#4caf50","value":"External"},
|
||||
};
|
||||
|
||||
// CompanyReceiptAccountsPayChannelEnum
|
||||
export const CompanyReceiptAccountsPayChannelEnum= {
|
||||
'WeChat': {"text":"微信","color":"#07c160","value":"WeChat"},
|
||||
@ -762,6 +800,12 @@ export const HouseWorkOrdersTypeEnum= {
|
||||
'Complaint': {"text":"投诉","color":"#aa00ff","value":"Complaint"},
|
||||
};
|
||||
|
||||
// 公告阅读者类型
|
||||
export const MsgPropertyAnnouncementReadsReaderTypeEnum= {
|
||||
'Customer': {"text":"客户","color":"#3b82f6","value":"Customer"},
|
||||
'Employee': {"text":"员工","color":"#10b981","value":"Employee"},
|
||||
};
|
||||
|
||||
// 公告接收对象
|
||||
export const MsgPropertyAnnouncementsObjectEnum= {
|
||||
'Customer': {"text":"客户","color":"#3b82f6","value":"Customer"},
|
||||
|
||||
@ -44,11 +44,11 @@ export default function Index({ title = '员工管理' }) {
|
||||
title="重置"
|
||||
type="default"
|
||||
isConfirm={true}
|
||||
description={`确定要重置用户「${item.name}」的密码为「12345678」吗?`}
|
||||
description={`确定要重置用户「${item.name}」的密码为「ly#123」吗?`}
|
||||
onConfirm={() =>
|
||||
Apis.Company.CompanyEmployees.ResetPassword({
|
||||
id: item.id,
|
||||
password: '12345678',
|
||||
password: 'ly#123',
|
||||
}).then(() => action?.reload())
|
||||
}
|
||||
/>
|
||||
|
||||
@ -36,7 +36,7 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
...values,
|
||||
companies_id: values?.companies_id || props?.item?.id,
|
||||
// type: CompanyEmployeesTypeEnum.External.value,
|
||||
password: '12345678',
|
||||
password: 'ly#123',
|
||||
organizations_id:
|
||||
values?.organizations_id?.[values.organizations_id.length - 1],
|
||||
})
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import {
|
||||
MyButtons,
|
||||
MyColumns,
|
||||
MyImportModal,
|
||||
MyPageContainer,
|
||||
MyProTableProps,
|
||||
} from '@/common';
|
||||
@ -31,17 +32,17 @@ export default function Index({ title = '房屋档案' }) {
|
||||
request={async (params, sort) =>
|
||||
MyProTableProps.request(params, sort, Apis.Asset.AssetHouses.List)
|
||||
}
|
||||
// toolBarRender={(action) => [
|
||||
// <MyImportModal
|
||||
// key="ImportHouse"
|
||||
// title="批量导入"
|
||||
// type="default"
|
||||
// size="middle"
|
||||
// templateApi={Apis.Archive.HouseOccupants.DownloadTemplate}
|
||||
// importApi={Apis.Archive.HouseOccupants.Import}
|
||||
// reload={action?.reload}
|
||||
// />,
|
||||
// ]}
|
||||
toolBarRender={(action) => [
|
||||
<MyImportModal
|
||||
key="ImportHouse"
|
||||
title="批量导入"
|
||||
type="default"
|
||||
size="middle"
|
||||
templateApi={Apis.Archive.HouseOccupants.DownloadTemplate}
|
||||
importApi={Apis.Archive.HouseOccupants.Import}
|
||||
reload={action?.reload}
|
||||
/>,
|
||||
]}
|
||||
columns={[
|
||||
MyColumns.ID({ search: false }),
|
||||
Selects?.AssetProjects({
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user