Merge pull request 'develop' (#13) from develop into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m51s

Reviewed-on: #13
This commit is contained in:
zsq 2026-04-17 16:43:50 +08:00
commit 11ccdf73a0
24 changed files with 689 additions and 640 deletions

View File

@ -1031,4 +1031,140 @@ export const Selects = {
},
};
},
//获取题目分类
QuestionCategories(props?: PropsType): ReturnType {
const {
title = '所属分类',
key = 'category_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.Survey.QuestionCategories.Select({
...params,
name: params?.keyWords || undefined,
});
return res?.data;
},
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'name',
value: 'id',
},
...rest?.fieldProps,
},
};
},
//获取问卷
Surveys(props?: PropsType): ReturnType {
const {
title = '选择问卷',
key = 'surveys_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.Survey.Surveys.Select({
...params,
name: params?.keyWords || undefined,
});
return res?.data;
},
...rest,
fieldProps: {
showSearch: true,
fieldNames: {
label: 'name',
value: 'id',
},
...rest?.fieldProps,
},
};
},
//突发事件分类
EmergencyCategories(props?: PropsType): ReturnType {
const {
title = '选择分类',
key = 'two_emergency_categories_id',
required = false,
hideInTable = true,
...rest
} = props ?? {};
return {
title: title,
key: key,
valueType: 'cascader',
hideInTable: hideInTable,
formItemProps: { ...(required ? rulesHelper.number : {}) },
request: async (params) => {
let res = await Apis.Emergency.EmergencyEventCategories.SelectTree({
...params,
name: params?.keyWords || undefined,
});
return res?.data;
},
...rest,
fieldProps: {
showSearch: true,
allowClear: true,
// changeOnSelect: true,
treeDefaultExpandAll: true,
fieldNames: {
label: 'name',
value: 'id',
},
...rest?.fieldProps,
},
};
},
//突发事件等级
EmergencyEventLevels(props?: PropsType): ReturnType {
const {
title = '选择等级',
key = 'emergency_event_levels_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.Emergency.EmergencyEventLevels.Select({
...params,
name: params?.keyWords || undefined,
});
return res?.data;
},
...rest,
fieldProps: {
showSearch: true,
allowClear: true,
...rest?.fieldProps,
},
};
},
};

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

@ -673,8 +673,7 @@ declare namespace ApiTypes {
namespace Attendance {
namespace AttendanceConfigs {
type List = {
"page"?: number; // -
"per_page"?: number; // -
"project_name"?: string; // -
};
type Store = {
"asset_projects_id": number; // 项目ID
@ -692,6 +691,9 @@ declare namespace ApiTypes {
"id": number; // id
"is_enabled": boolean; // 是否启用: 1:启用 0:禁用
};
type Delete = {
"id": number; // id
};
}
namespace AttendanceEmployeeTracks {
type List = {
@ -2256,193 +2258,264 @@ declare namespace ApiTypes {
namespace Emergency {
namespace EmergencyEventBills {
type List = {
"emergency_events_id"?: number; // -
"cost_type"?: string; // -
"fee_type"?: string; // -
"fee_name"?: string; // -
"payment_status"?: string; // -
"payment_method"?: string; // -
"emergency_events_id"?: number; // 突发事件ID,[ref:emergency_events]
"cost_type"?: string; // 收支类型,[enum:EmergencyEventBillsCostTypeEnum]
"fee_type"?: string; // 费用类型,[enum:EmergencyEventBillsFeeTypeEnum]
"fee_name"?: string; // 费用名称
"payment_status"?: string; // 支付状态,[enum:EmergencyEventBillsPaymentStatusEnum]
"payment_method"?: string; // 支付方式,[enum:EmergencyEventBillsPaymentMethodEnum]
};
type Store = {
"emergency_events_id": number; // -
"cost_type": string; // -
"fee_type": string; // -
"fee_name": string; // -
"amount": number; // -
"payee": string; // -
"payee_bank": string; // -
"payee_account": string; // -
"payer": string; // -
"payer_bank": string; // -
"payer_account": string; // -
"emergency_events_id": number; // 突发事件ID,[ref:emergency_events]
"cost_type": string; // 收支类型,[enum:EmergencyEventBillsCostTypeEnum]
"fee_type": string; // 费用类型,[enum:EmergencyEventBillsFeeTypeEnum]
"fee_name": string; // 费用名称
"amount": number; // 金额
"payee": string; // 收款方
"payee_bank": string; // 收款方银行
"payee_account": string; // 收款方账号
"payer": string; // 付款方
"payer_bank": string; // 付款方银行
"payer_account": string; // 付款方账号
};
type Update = {
"id": number; // -
"cost_type": string; // -
"fee_type": string; // -
"fee_name": string; // -
"amount": number; // -
"payee": string; // -
"payee_bank": string; // -
"payee_account": string; // -
"payer": string; // -
"payer_bank": string; // -
"payer_account": string; // -
"id": number; // id
"cost_type": string; // 收支类型,[enum:EmergencyEventBillsCostTypeEnum]
"fee_type": string; // 费用类型,[enum:EmergencyEventBillsFeeTypeEnum]
"fee_name": string; // 费用名称
"amount": number; // 金额
"payee": string; // 收款方
"payee_bank": string; // 收款方银行
"payee_account": string; // 收款方账号
"payer": string; // 付款方
"payer_bank": string; // 付款方银行
"payer_account": string; // 付款方账号
};
type Show = {
"id": number; // id
};
type SoftDelete = {
"id": number; // id
};
type Restore = {
"id": number; // id
};
type Delete = {
"id": number; // id
};
}
namespace EmergencyEventCategories {
type List = {
"name"?: string; // -
"parent_id"?: number; // -
"name"?: string; // 模糊搜索:名称
"parent_id"?: number; // 父级ID
};
type TreeList = {
"name"?: string; // -
"parent_id"?: number; // -
"name"?: string; // 模糊搜索:名称
"parent_id"?: number; // 父级ID
};
type Store = {
"name": string; // -
"description"?: string; // -
"is_enabled"?: number; // -
"_lft"?: number; // -
"_rgt"?: number; // -
"parent_id"?: number; // -
"name": string; // 分类名称
"description"?: string; // 分类描述
"is_enabled"?: number; // 是否启用:0-否,1-是
"parent_id"?: number; // 父级分类ID
};
type Update = {
"id": number; // -
"name": string; // -
"description"?: string; // -
"is_enabled"?: number; // -
"_lft"?: number; // -
"_rgt"?: number; // -
"parent_id"?: number; // -
"id": number; // id
"name": string; // 分类名称
"description"?: string; // 分类描述
"is_enabled"?: number; // 是否启用:0-否,1-是
"parent_id"?: number; // 父级分类ID
};
type Move = {
"id": number; // -
"type": string; // -
"id": number; // ID
"type": string; // 类型up-上移down-下移
};
type Show = {
"id": number; // id
};
type SoftDelete = {
"id": number; // id
};
type Restore = {
"id": number; // id
};
type Delete = {
"id": number; // id
};
type Select = {
"keywords"?: string; // 关键词
};
type SelectTree = {
"keywords"?: string; // -
"type"?: string; // -
"parent_id"?: number; // -
"keywords"?: string; // 关键词
"type"?: string; // 类型
"parent_id"?: number; // 父级ID
};
}
namespace EmergencyEventFollows {
type List = {
"emergency_events_id": number; // -
"content"?: string; // -
"emergency_events_id": number; // 突发事件ID,[ref:emergency_events]
"content"?: string; // 跟进内容
};
type Store = {
"emergency_events_id": number; // -
"content": string; // -
"attachments"?: string[]; // -
"emergency_events_id": number; // 突发事件ID,[ref:emergency_events]
"content": string; // 跟进内容
"attachments"?: string[]; // 附件
};
type Show = {
"id": number; // id
};
type Delete = {
"id": number; // id
};
}
namespace EmergencyEventLevels {
type List = {
"name"?: string; // 模糊搜索:名称
};
type Store = {
"name": string; // -
"is_enabled"?: number; // -
"name": string; // 名称
"is_enabled"?: number; // 是否启用:0-否,1-是
};
type Update = {
"id": number; // -
"name": string; // -
"is_enabled"?: number; // -
"id": number; // id
"name": string; // 名称
"is_enabled"?: number; // 是否启用:0-否,1-是
};
type Show = {
"id": number; // id
};
type SoftDelete = {
"id": number; // id
};
type Restore = {
"id": number; // id
};
type Delete = {
"id": number; // id
};
type Select = {
"name"?: string; // 名称
};
}
namespace EmergencyEventTeams {
type List = {
"name"?: string; // -
"leader_name"?: string; // -
"name"?: string; // 模糊搜索:名称
"leader_name"?: string; // 队长名称
};
type Store = {
"name": string; // -
"asset_projects_id": number; // -
"company_employees_id": number; // -
"is_enabled"?: number; // -
"members"?: string[]; // -
"name": string; // 名称
"asset_projects_id": number; // 项目ID,[ref:asset_projects]
"company_employees_id": number; // 组长员工ID,[ref:company_employees]
"is_enabled"?: number; // 是否启用:0-否,1-是
"members"?: string[]; // 团队成员
};
type Update = {
"id": number; // -
"name": string; // -
"asset_projects_id": number; // -
"company_employees_id": number; // -
"is_enabled"?: number; // -
"members"?: string[]; // -
"id": number; // id
"name": string; // 名称
"asset_projects_id": number; // 项目ID,[ref:asset_projects]
"company_employees_id": number; // 组长员工ID,[ref:company_employees]
"is_enabled"?: number; // 是否启用:0-否,1-是
"members"?: string[]; // 团队成员
};
type Show = {
"id": number; // id
};
type SoftDelete = {
"id": number; // id
};
type Restore = {
"id": number; // id
};
type Delete = {
"id": number; // id
};
type Select = {
"name"?: string; // -
"leader_name"?: string; // -
"name"?: string; // 模糊搜索:名称
"leader_name"?: string; // 队长名称
};
}
namespace EmergencyEvents {
type List = {
"name"?: string; // -
"asset_projects_id"?: number; // -
"asset_projects_name"?: string; // -
"emergency_event_employees_id"?: number; // -
"reporter_name"?: string; // -
"emergency_time"?: string[]; // -
"status"?: string; // -
"audit_status"?: string; // -
"name"?: string; // 模糊搜索:事件名称
"asset_projects_id"?: number; // 事发项目ID
"asset_projects_name"?: string; // 事发项目名称
"emergency_event_employees_id"?: number; // 报事人ID
"reporter_name"?: string; // 报事人名称
"emergency_time"?: string[]; // 事发时间范围
"status"?: string; // 状态,[enum:EmergencyEventsStatusEnum]
"audit_status"?: string; // 审核状态,[enum:EmergencyEventsAuditStatusEnum]
};
type Store = {
"name": string; // -
"two_emergency_categories_id": number; // -
"emergency_event_levels_id": number; // -
"asset_projects_id": number; // -
"emergency_time": Date; // -
"emergency_location": string; // -
"emergency_description": string; // -
"emergency_cause": string; // -
"cause_result": string; // -
"emergency_images"?: string[]; // -
"emergency_events_id"?: number; // -
"related_person"?: string; // -
"supplement"?: string; // -
"compensation_type"?: string; // -
"compensation_rate"?: number; // -
"compensation_amount"?: number; // -
"compensation_paid_amount"?: number; // -
"emergency_event_organizations_id": number; // -
"name": string; // 事件名称
"two_emergency_categories_id": number; // 二级分类ID,[ref:emergency_event_categories]
"emergency_event_levels_id": number; // 事件等级ID,[ref:emergency_event_levels]
"asset_projects_id": number; // 项目ID,[ref:asset_projects]
"emergency_time": Date; // 事件发生时间
"emergency_location": string; // 事件发生地点
"emergency_description": string; // 事件描述
"emergency_cause": string; // 事件原因
"cause_result": string; // 造成结果
"emergency_images"?: string[]; // 事件图片
"emergency_events_id"?: number; // 关联事件ID,[ref:emergency_events]
"related_person"?: string; // 关联人物
"supplement"?: string; // 补充信息
"compensation_type"?: string; // 赔偿类型,[enum:EmergencyEventsCompensationTypeEnum]
"compensation_rate"?: number; // 赔偿比例
"compensation_amount"?: number; // 赔偿金额
"compensation_paid_amount"?: number; // 已支付赔偿金额
"emergency_event_organizations_id": number; // 提报组织ID,[ref:organizations]
};
type Update = {
"id": number; // -
"name": string; // -
"two_emergency_categories_id": number; // -
"emergency_event_levels_id": number; // -
"emergency_event_levels_name"?: string; // -
"asset_projects_id": number; // -
"emergency_time": Date; // -
"emergency_location": string; // -
"emergency_description": string; // -
"emergency_cause": string; // -
"cause_result": string; // -
"emergency_images"?: string[]; // -
"emergency_events_id"?: number; // -
"related_person"?: string; // -
"supplement"?: string; // -
"compensation_type"?: string; // -
"compensation_rate"?: number; // -
"compensation_amount"?: number; // -
"compensation_paid_amount"?: number; // -
"id": number; // id
"name": string; // 事件名称
"two_emergency_categories_id": number; // 二级分类ID,[ref:emergency_event_categories]
"emergency_event_levels_id": number; // 事件等级ID,[ref:emergency_event_levels]
"emergency_event_levels_name"?: string; // 事件等级名称
"asset_projects_id": number; // 项目ID,[ref:asset_projects]
"emergency_time": Date; // 事件发生时间
"emergency_location": string; // 事件发生地点
"emergency_description": string; // 事件描述
"emergency_cause": string; // 事件原因
"cause_result": string; // 造成结果
"emergency_images"?: string[]; // 事件图片
"emergency_events_id"?: number; // 关联事件ID,[ref:emergency_events]
"related_person"?: string; // 关联人物
"supplement"?: string; // 补充信息
"compensation_type"?: string; // 赔偿类型,[enum:EmergencyEventsCompensationTypeEnum]
"compensation_rate"?: number; // 赔偿比例
"compensation_amount"?: number; // 赔偿金额
"compensation_paid_amount"?: number; // 已支付赔偿金额
};
type Show = {
"id": number; // id
};
type Assign = {
"id": number; // -
"two_emergency_categories_id": number; // -
"emergency_event_teams_id"?: number; // -
"id": number; // id
"two_emergency_categories_id": number; // 二级分类ID,[ref:emergency_event_categories]
"emergency_event_teams_id"?: number; // 处理团队ID,[ref:emergency_event_teams]
};
type ApplyClose = {
"id": number; // -
"handled_result"?: string; // -
"introspection"?: string; // -
"id": number; // id
"handled_result"?: string; // 处理结果
"introspection"?: string; // 反思与总结
};
type Audit = {
"id": number; // -
"audit_status": string; // -
"audit_remark"?: string; // -
"id": number; // id
"audit_status": string; // 审核状态,[enum:EmergencyEventsAuditStatusEnum]
"audit_remark"?: string; // 审核备注
};
type SoftDelete = {
"id": number; // id
};
type Restore = {
"id": number; // id
};
type Delete = {
"id": number; // id
};
type Select = {
"keywords"?: string; // -
"asset_projects_id"?: number; // -
"keywords"?: string; // 关键词
"asset_projects_id"?: number; // 项目ID
};
}
}
@ -3563,6 +3636,8 @@ declare namespace ApiTypes {
}
}
namespace Statistics {
namespace ContractsCount {
}
namespace IndexCount {
}
}
@ -3864,6 +3939,12 @@ declare namespace ApiTypes {
type Closed = {
"id": number; // id
};
type SoftDelete = {
"id": number; // id
};
type Restore = {
"id": number; // id
};
type Delete = {
"id": number; // id
};

View File

@ -335,6 +335,9 @@ export const Apis = {
Enable(data: ApiTypes.Attendance.AttendanceConfigs.Enable): Promise<MyResponseType> {
return request('company/attendance/attendance_configs/enable', { data });
},
Delete(data: ApiTypes.Attendance.AttendanceConfigs.Delete): Promise<MyResponseType> {
return request('company/attendance/attendance_configs/delete', { data });
},
},
AttendanceEmployeeTracks: {
List(data?: ApiTypes.Attendance.AttendanceEmployeeTracks.List): Promise<MyResponseType> {
@ -1211,17 +1214,17 @@ export const Apis = {
Update(data: ApiTypes.Emergency.EmergencyEventBills.Update): Promise<MyResponseType> {
return request('company/emergency/emergency_event_bills/update', { data });
},
Show(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_bills/show', {});
Show(data: ApiTypes.Emergency.EmergencyEventBills.Show): Promise<MyResponseType> {
return request('company/emergency/emergency_event_bills/show', { data });
},
SoftDelete(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_bills/soft_delete', {});
SoftDelete(data: ApiTypes.Emergency.EmergencyEventBills.SoftDelete): Promise<MyResponseType> {
return request('company/emergency/emergency_event_bills/soft_delete', { data });
},
Restore(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_bills/restore', {});
Restore(data: ApiTypes.Emergency.EmergencyEventBills.Restore): Promise<MyResponseType> {
return request('company/emergency/emergency_event_bills/restore', { data });
},
Delete(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_bills/delete', {});
Delete(data: ApiTypes.Emergency.EmergencyEventBills.Delete): Promise<MyResponseType> {
return request('company/emergency/emergency_event_bills/delete', { data });
},
},
EmergencyEventCategories: {
@ -1240,20 +1243,20 @@ export const Apis = {
Move(data: ApiTypes.Emergency.EmergencyEventCategories.Move): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/move', { data });
},
Show(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/show', {});
Show(data: ApiTypes.Emergency.EmergencyEventCategories.Show): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/show', { data });
},
SoftDelete(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/soft_delete', {});
SoftDelete(data: ApiTypes.Emergency.EmergencyEventCategories.SoftDelete): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/soft_delete', { data });
},
Restore(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/restore', {});
Restore(data: ApiTypes.Emergency.EmergencyEventCategories.Restore): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/restore', { data });
},
Delete(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/delete', {});
Delete(data: ApiTypes.Emergency.EmergencyEventCategories.Delete): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/delete', { data });
},
Select(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/select', {});
Select(data?: ApiTypes.Emergency.EmergencyEventCategories.Select): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/select', { data });
},
SelectTree(data?: ApiTypes.Emergency.EmergencyEventCategories.SelectTree): Promise<MyResponseType> {
return request('company/emergency/emergency_event_categories/select_tree', { data });
@ -1266,13 +1269,16 @@ export const Apis = {
Store(data: ApiTypes.Emergency.EmergencyEventFollows.Store): Promise<MyResponseType> {
return request('company/emergency/emergency_event_follows/store', { data });
},
Show(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_follows/show', {});
Show(data: ApiTypes.Emergency.EmergencyEventFollows.Show): Promise<MyResponseType> {
return request('company/emergency/emergency_event_follows/show', { data });
},
Delete(data: ApiTypes.Emergency.EmergencyEventFollows.Delete): Promise<MyResponseType> {
return request('company/emergency/emergency_event_follows/delete', { data });
},
},
EmergencyEventLevels: {
List(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/list', {});
List(data?: ApiTypes.Emergency.EmergencyEventLevels.List): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/list', { data });
},
Store(data: ApiTypes.Emergency.EmergencyEventLevels.Store): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/store', { data });
@ -1280,20 +1286,20 @@ export const Apis = {
Update(data: ApiTypes.Emergency.EmergencyEventLevels.Update): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/update', { data });
},
Show(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/show', {});
Show(data: ApiTypes.Emergency.EmergencyEventLevels.Show): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/show', { data });
},
SoftDelete(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/soft_delete', {});
SoftDelete(data: ApiTypes.Emergency.EmergencyEventLevels.SoftDelete): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/soft_delete', { data });
},
Restore(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/restore', {});
Restore(data: ApiTypes.Emergency.EmergencyEventLevels.Restore): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/restore', { data });
},
Delete(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/delete', {});
Delete(data: ApiTypes.Emergency.EmergencyEventLevels.Delete): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/delete', { data });
},
Select(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/select', {});
Select(data?: ApiTypes.Emergency.EmergencyEventLevels.Select): Promise<MyResponseType> {
return request('company/emergency/emergency_event_levels/select', { data });
},
},
EmergencyEventTeams: {
@ -1306,17 +1312,17 @@ export const Apis = {
Update(data: ApiTypes.Emergency.EmergencyEventTeams.Update): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/update', { data });
},
Show(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/show', {});
Show(data: ApiTypes.Emergency.EmergencyEventTeams.Show): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/show', { data });
},
SoftDelete(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/soft_delete', {});
SoftDelete(data: ApiTypes.Emergency.EmergencyEventTeams.SoftDelete): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/soft_delete', { data });
},
Restore(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/restore', {});
Restore(data: ApiTypes.Emergency.EmergencyEventTeams.Restore): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/restore', { data });
},
Delete(): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/delete', {});
Delete(data: ApiTypes.Emergency.EmergencyEventTeams.Delete): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/delete', { data });
},
Select(data?: ApiTypes.Emergency.EmergencyEventTeams.Select): Promise<MyResponseType> {
return request('company/emergency/emergency_event_teams/select', { data });
@ -1332,8 +1338,8 @@ export const Apis = {
Update(data: ApiTypes.Emergency.EmergencyEvents.Update): Promise<MyResponseType> {
return request('company/emergency/emergency_events/update', { data });
},
Show(): Promise<MyResponseType> {
return request('company/emergency/emergency_events/show', {});
Show(data: ApiTypes.Emergency.EmergencyEvents.Show): Promise<MyResponseType> {
return request('company/emergency/emergency_events/show', { data });
},
Assign(data: ApiTypes.Emergency.EmergencyEvents.Assign): Promise<MyResponseType> {
return request('company/emergency/emergency_events/assign', { data });
@ -1344,14 +1350,14 @@ export const Apis = {
Audit(data: ApiTypes.Emergency.EmergencyEvents.Audit): Promise<MyResponseType> {
return request('company/emergency/emergency_events/audit', { data });
},
SoftDelete(): Promise<MyResponseType> {
return request('company/emergency/emergency_events/soft_delete', {});
SoftDelete(data: ApiTypes.Emergency.EmergencyEvents.SoftDelete): Promise<MyResponseType> {
return request('company/emergency/emergency_events/soft_delete', { data });
},
Restore(): Promise<MyResponseType> {
return request('company/emergency/emergency_events/restore', {});
Restore(data: ApiTypes.Emergency.EmergencyEvents.Restore): Promise<MyResponseType> {
return request('company/emergency/emergency_events/restore', { data });
},
Delete(): Promise<MyResponseType> {
return request('company/emergency/emergency_events/delete', {});
Delete(data: ApiTypes.Emergency.EmergencyEvents.Delete): Promise<MyResponseType> {
return request('company/emergency/emergency_events/delete', { data });
},
Select(data?: ApiTypes.Emergency.EmergencyEvents.Select): Promise<MyResponseType> {
return request('company/emergency/emergency_events/select', { data });
@ -1973,6 +1979,17 @@ export const Apis = {
},
},
Statistics: {
ContractsCount: {
StatusOverview(): Promise<MyResponseType> {
return request('company/statistics/contracts_count/status_overview', {});
},
ArchiveUsage(): Promise<MyResponseType> {
return request('company/statistics/contracts_count/archive_usage', {});
},
ClearCache(): Promise<MyResponseType> {
return request('company/statistics/contracts_count/clear_cache', {});
},
},
IndexCount: {
FinancialAnalysis(): Promise<MyResponseType> {
return request('company/statistics/index_count/financial_analysis', {});
@ -2184,6 +2201,12 @@ export const Apis = {
Closed(data: ApiTypes.WorkOrder.HouseWorkOrders.Closed): Promise<MyResponseType> {
return request('company/work_order/house_work_orders/closed', { data });
},
SoftDelete(data: ApiTypes.WorkOrder.HouseWorkOrders.SoftDelete): Promise<MyResponseType> {
return request('company/work_order/house_work_orders/soft_delete', { data });
},
Restore(data: ApiTypes.WorkOrder.HouseWorkOrders.Restore): Promise<MyResponseType> {
return request('company/work_order/house_work_orders/restore', { data });
},
Delete(data: ApiTypes.WorkOrder.HouseWorkOrders.Delete): Promise<MyResponseType> {
return request('company/work_order/house_work_orders/delete', { data });
},

View File

@ -1,4 +1,9 @@
import { MyColumns, MyPageContainer, MyProTableProps } from '@/common';
import {
MyButtons,
MyColumns,
MyPageContainer,
MyProTableProps,
} from '@/common';
import { Apis } from '@/gen/Apis';
import { ProTable } from '@ant-design/pro-components';
import { Space } from 'antd';
@ -37,6 +42,11 @@ export default function Index({ title = '打卡配置' }) {
dataIndex: 'check_in_range',
search: false,
},
{
title: '关联项目',
dataIndex: ['asset_project', 'name'],
search: false,
},
MyColumns.Boolean({
dataIndex: 'require_photo',
title: '是否要求拍照打卡',
@ -58,6 +68,13 @@ export default function Index({ title = '打卡配置' }) {
render: (_, item: any, index, action) => (
<Space key={index}>
<Update item={item} reload={action?.reload} title={title} />
<MyButtons.Delete
onConfirm={() =>
Apis.Attendance.AttendanceConfigs.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
</Space>
),
}),

View File

@ -4,6 +4,7 @@ import {
MyModalFormProps,
rulesHelper,
} from '@/common';
import { SelectContract } from '@/components/SelectContract';
import { Apis } from '@/gen/Apis';
import { BetaSchemaForm } from '@ant-design/pro-components';
import { Form, message } from 'antd';
@ -27,6 +28,7 @@ export default function Update(props: MyBetaModalFormProps) {
onFinish={async (values) =>
Apis.Attendance.AttendanceConfigs.UpdateConfig({
...values,
require_photo: values?.require_photo ? true : false,
id: props.item?.id ?? 1,
})
.then(() => {
@ -37,6 +39,16 @@ export default function Update(props: MyBetaModalFormProps) {
.catch(() => false)
}
columns={[
SelectContract.AssetProjects({
key: 'asset_projects_id',
title: '关联项目',
colProps: { span: 24 },
required: true,
fieldProps: {
showSearch: true,
// mode: 'multiple',
},
}),
{
key: 'check_in_range',
title: '可打卡范围',

View File

@ -127,7 +127,7 @@ export default function Index({ title = '新增班次' }) {
valueType: 'time',
fieldProps: {
style: { width: '100%' },
placeholder: '请输入班次开始时间',
placeholder: '请选择班次开始时间',
format: 'HH:mm',
},
colProps: { span: 8 },
@ -138,7 +138,7 @@ export default function Index({ title = '新增班次' }) {
valueType: 'time',
fieldProps: {
style: { width: '100%' },
placeholder: '请输入班次开始时间',
placeholder: '请选择班次结束时间',
format: 'HH:mm',
},
colProps: { span: 8 },

View File

@ -197,7 +197,7 @@ export default function Index({ title = '编辑班次' }) {
valueType: 'time',
fieldProps: {
style: { width: '100%' },
placeholder: '请输入班次开始时间',
placeholder: '请选择班次开始时间',
format: 'HH:mm',
},
colProps: { span: 8 },
@ -207,7 +207,7 @@ export default function Index({ title = '编辑班次' }) {
key: 'work_end_time',
fieldProps: {
style: { width: '100%' },
placeholder: '请输入班次开始时间',
placeholder: '请选择班次结束时间',
format: 'HH:mm',
},
valueType: 'time',

View File

@ -1,9 +1,4 @@
import {
MyButtons,
MyColumns,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import { ProTable } from '@ant-design/pro-components';
import { Space } from 'antd';
@ -11,33 +6,6 @@ import Create from './modals/Create';
import Update from './modals/Update';
export default function Index({ title = '分类' }) {
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = (action: any) => {
return getCurrentPermissions(
{
create: <Create key="Create" reload={action?.reload} title={title} />,
},
'MyCategories',
);
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions(
{
update: <Update item={item} reload={action?.reload} title={title} />,
delete: (
<MyButtons.Delete
onConfirm={() =>
Apis.Emergency.EmergencyEventCategories.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
),
},
'MyCategories',
);
};
return (
<ProTable
{...MyProTableProps.props}
@ -49,7 +17,9 @@ export default function Index({ title = '分类' }) {
)
}
headerTitle="突发事件分类"
toolBarRender={(action) => [toolBarRender(action)]}
toolBarRender={(action) => [
<Create key="Create" reload={action?.reload} title={title} />,
]}
columns={[
MyColumns.ID({
search: false,
@ -72,7 +42,17 @@ export default function Index({ title = '分类' }) {
MyColumns.CreatedAt(),
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={index}>{tableRender(item, action)}</Space>
<Space key={index}>
{' '}
<Update item={item} reload={action?.reload} title={title} />
<MyButtons.Delete
onConfirm={() =>
Apis.Emergency.EmergencyEventCategories.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
</Space>
),
}),
]}

View File

@ -7,9 +7,10 @@ import {
import { TreeSelects } from '@/components/TreeSelect';
import { Apis } from '@/gen/Apis';
import { BetaSchemaForm } from '@ant-design/pro-components';
import { message } from 'antd';
import { Form, message } from 'antd';
export default function Create(props: MyBetaModalFormProps) {
const [form] = Form.useForm();
return (
<BetaSchemaForm<ApiTypes.Emergency.EmergencyEventCategories.Store>
{...MyModalFormProps.props}
@ -17,7 +18,13 @@ export default function Create(props: MyBetaModalFormProps) {
wrapperCol={{ span: 24 }}
width="500px"
key={new Date().getTime()}
form={form}
trigger={<MyButtons.Create title={`添加${props.title}`} />}
onOpenChange={(open: any) => {
if (open) {
form.resetFields();
}
}}
onFinish={async (values) =>
Apis.Emergency.EmergencyEventCategories.Store(values)
.then(() => {

View File

@ -1,9 +1,4 @@
import {
MyButtons,
MyColumns,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import {
EmergencyEventsCompensationTypeEnum,
@ -17,42 +12,6 @@ import Review from './modals/Review';
import Update from './modals/Update';
export default function Index({ title = '突发事件' }) {
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = (action: any) => {
return getCurrentPermissions(
{
create: <Create key="Create" reload={action?.reload} title={title} />,
},
'MyEvents',
);
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions(
{
show: (
<MyButtons.View
key="show"
title="查看"
to={`/emergency/events/show/${item.id}`}
/>
),
assign: <Assign item={item} reload={action?.reload} />,
update: <Update item={item} reload={action?.reload} title={title} />,
review: <Review item={item} reload={action?.reload} />,
delete: (
<MyButtons.Delete
onConfirm={() =>
Apis.Emergency.EmergencyEvents.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
),
},
'MyEvents',
);
};
return (
<ProTable
{...MyProTableProps.props}
@ -64,7 +23,9 @@ export default function Index({ title = '突发事件' }) {
)
}
headerTitle={`${title}列表`}
toolBarRender={(action: any) => [toolBarRender(action)]}
toolBarRender={(action: any) => [
<Create key="Create" reload={action?.reload} title={title} />,
]}
columns={[
MyColumns.ID({
search: false,
@ -117,7 +78,23 @@ export default function Index({ title = '突发事件' }) {
MyColumns.CreatedAt(),
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={index}>{tableRender(item, action)}</Space>
<Space key={index}>
<MyButtons.View
key="show"
title="查看"
to={`/quality/emergency/events/show/${item.id}`}
/>
<Assign item={item} reload={action?.reload} />
<Update item={item} reload={action?.reload} title={title} />
<Review item={item} reload={action?.reload} />
<MyButtons.Delete
onConfirm={() =>
Apis.Emergency.EmergencyEvents.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
</Space>
),
}),
]}

View File

@ -3,7 +3,6 @@ import {
MyButtons,
MyColumns,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { Apis } from '@/gen/Apis';
import { ProTable } from '@ant-design/pro-components';
@ -12,40 +11,6 @@ import Create from './modals/Create';
import Show from './modals/Show';
export default function Index(props: MyBetaModalFormProps) {
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = (action: any) => {
return getCurrentPermissions(
{
Create: (
<Create
key="Create"
reload={action?.reload}
item={props?.item}
title="跟进记录"
/>
),
},
'MyFollows',
);
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions(
{
update: <Show item={item} key="Show" />,
delete: (
<MyButtons.Delete
key="delete"
onConfirm={() =>
Apis.Emergency.EmergencyEventFollows.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
),
},
'MyFollows',
);
};
return (
<ProTable
{...MyProTableProps.props}
@ -61,7 +26,14 @@ export default function Index(props: MyBetaModalFormProps) {
}
search={false}
headerTitle="跟进记录"
toolBarRender={(action) => [toolBarRender(action)]}
toolBarRender={(action) => [
<Create
key="Create"
reload={action?.reload}
item={props?.item}
title="跟进记录"
/>,
]}
columns={[
MyColumns.ID({
search: false,
@ -94,7 +66,17 @@ export default function Index(props: MyBetaModalFormProps) {
MyColumns.CreatedAt(),
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={index}>{tableRender(item, action)}</Space>
<Space key={index}>
<Show item={item} key="Show" />
<MyButtons.Delete
key="delete"
onConfirm={() =>
Apis.Emergency.EmergencyEventFollows.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
</Space>
),
}),
]}

View File

@ -1,9 +1,4 @@
import {
MyButtons,
MyColumns,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import { ProTable } from '@ant-design/pro-components';
import { Space } from 'antd';
@ -11,33 +6,6 @@ import Create from './modals/Create';
import Update from './modals/Update';
export default function Index({ title = '等级' }) {
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = (action: any) => {
return getCurrentPermissions(
{
Create: <Create key="Create" reload={action?.reload} title={title} />,
},
'MyLevels',
);
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions(
{
update: <Update item={item} reload={action?.reload} title={title} />,
delete: (
<MyButtons.Delete
key="delete"
onConfirm={() =>
Apis.Emergency.EmergencyEventLevels.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
),
},
'MyLevels',
);
};
return (
<ProTable
{...MyProTableProps.props}
@ -49,7 +17,9 @@ export default function Index({ title = '等级' }) {
)
}
headerTitle="突发事件等级"
toolBarRender={(action) => [toolBarRender(action)]}
toolBarRender={(action) => [
<Create key="Create" reload={action?.reload} title={title} />,
]}
columns={[
MyColumns.ID({
search: false,
@ -67,7 +37,17 @@ export default function Index({ title = '等级' }) {
MyColumns.CreatedAt(),
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={index}>{tableRender(item, action)}</Space>
<Space key={index}>
<Update item={item} reload={action?.reload} title={title} />
<MyButtons.Delete
key="delete"
onConfirm={() =>
Apis.Emergency.EmergencyEventLevels.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
</Space>
),
}),
]}

View File

@ -6,16 +6,23 @@ import {
} from '@/common';
import { Apis } from '@/gen/Apis';
import { BetaSchemaForm } from '@ant-design/pro-components';
import { message } from 'antd';
import { Form, message } from 'antd';
export default function Create(props: MyBetaModalFormProps) {
const [form] = Form.useForm();
return (
<BetaSchemaForm<ApiTypes.Emergency.EmergencyEventLevels.Store>
{...MyModalFormProps.props}
title={`添加${props.title}`}
wrapperCol={{ span: 24 }}
width="500px"
form={form}
key={new Date().getTime()}
onOpenChange={(open: any) => {
if (open) {
form.resetFields(); // 清空表单数据
}
}}
trigger={<MyButtons.Create title={`添加${props.title}`} />}
onFinish={async (values) =>
Apis.Emergency.EmergencyEventLevels.Store(values)

View File

@ -1,9 +1,4 @@
import {
MyButtons,
MyColumns,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import { ProTable } from '@ant-design/pro-components';
import { Space } from 'antd';
@ -11,35 +6,6 @@ import Create from './modals/Create';
import Update from './modals/Update';
export default function Index({ title = '应急小组' }) {
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = (action: any) => {
return getCurrentPermissions(
{
Create: (
<Create key="Create" reload={action?.reload} title="应急小组" />
),
},
'MyLevels',
);
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions(
{
update: <Update item={item} reload={action?.reload} title={title} />,
delete: (
<MyButtons.Delete
onConfirm={() =>
Apis.Emergency.EmergencyEventCategories.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
),
},
'MyLevels',
);
};
return (
<ProTable
{...MyProTableProps.props}
@ -51,7 +17,9 @@ export default function Index({ title = '应急小组' }) {
)
}
headerTitle="应急小组"
toolBarRender={(action) => [toolBarRender(action)]}
toolBarRender={(action) => [
<Create key="Create" reload={action?.reload} title="应急小组" />,
]}
columns={[
MyColumns.ID({
search: false,
@ -96,7 +64,16 @@ export default function Index({ title = '应急小组' }) {
MyColumns.CreatedAt(),
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={index}>{tableRender(item, action)}</Space>
<Space key={index}>
<Update item={item} reload={action?.reload} title={title} />
<MyButtons.Delete
onConfirm={() =>
Apis.Emergency.EmergencyEventCategories.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
</Space>
),
}),
]}

View File

@ -1,9 +1,4 @@
import {
MyButtons,
MyColumns,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import { ProTable } from '@ant-design/pro-components';
import { Space } from 'antd';
@ -11,33 +6,6 @@ import Create from '../modals/QuestionCategoriesCreate';
import Update from '../modals/QuestionCategoriesUpdate';
export default function QuestionCategoriesList({ title = '题目分类' }) {
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = (action: any) => {
return getCurrentPermissions(
{
add: <Create key="Create" reload={action?.reload} title={title} />,
},
'MyQuestionCategoriesList',
);
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions(
{
update: <Update item={item} reload={action?.reload} title={title} />,
delete: (
<MyButtons.Delete
onConfirm={() =>
Apis.Survey.QuestionCategories.Delete({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
),
},
'MyQuestionCategoriesList',
);
};
return (
<ProTable
{...MyProTableProps.props}
@ -50,7 +18,9 @@ export default function QuestionCategoriesList({ title = '题目分类' }) {
Apis.Survey.QuestionCategories.List,
)
}
toolBarRender={(action) => [toolBarRender(action)]}
toolBarRender={(action) => [
<Create key="Create" reload={action?.reload} title={title} />,
]}
columns={[
MyColumns.ID({
search: false,
@ -63,7 +33,14 @@ export default function QuestionCategoriesList({ title = '题目分类' }) {
render: (_, item: any, index, action) => (
<Space key={`item_${index}`}>
<>{tableRender(item, action)}</>
<Update item={item} reload={action?.reload} title={title} />
<MyButtons.Delete
onConfirm={() =>
Apis.Survey.QuestionCategories.Delete({ id: item.id }).then(
() => action?.reload(),
)
}
/>
</Space>
),
}),

View File

@ -1,9 +1,4 @@
import {
MyButtons,
MyColumns,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import { QuestionsTypeEnum } from '@/gen/Enums';
import { ProTable } from '@ant-design/pro-components';
@ -12,33 +7,6 @@ import Create from '../modals/QuestionsCreate';
import Update from '../modals/QuestionsUpdate';
export default function QuestionsList({ title = '题目' }) {
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = (action: any) => {
return getCurrentPermissions(
{
add: <Create key="Create" reload={action?.reload} title={title} />,
},
'MyQuestionsList',
);
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions(
{
update: <Update item={item} reload={action?.reload} title={title} />,
delete: (
<MyButtons.Delete
onConfirm={() =>
Apis.Survey.Questions.Delete({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
),
},
'MyQuestionsList',
);
};
return (
<ProTable
{...MyProTableProps.props}
@ -46,7 +14,9 @@ export default function QuestionsList({ title = '题目' }) {
request={async (params, sort) =>
MyProTableProps.request(params, sort, Apis.Survey.Questions.List)
}
toolBarRender={(action) => [toolBarRender(action)]}
toolBarRender={(action) => [
<Create key="Create" reload={action?.reload} title={title} />,
]}
columns={[
MyColumns.ID({
search: false,
@ -71,7 +41,16 @@ export default function QuestionsList({ title = '题目' }) {
MyColumns.Option({
width: 120,
render: (_, item: any, index, action) => (
<Space key={`item_${index}`}>{tableRender(item, action)}</Space>
<Space key={`item_${index}`}>
<Update item={item} reload={action?.reload} title={title} />
<MyButtons.Delete
onConfirm={() =>
Apis.Survey.Questions.Delete({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
</Space>
),
}),
]}

View File

@ -1,10 +1,4 @@
import {
MyButtons,
MyColumns,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { isInTimeRange } from '@/common/utils/day';
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import { SurveyReleasesTypeEnum } from '@/gen/Enums';
import { ProTable } from '@ant-design/pro-components';
@ -13,60 +7,6 @@ import Create from '../modals/SurveyReleasesCreate';
import Update from '../modals/SurveyReleasesUpdate';
export default function SurveyReleasesList({ title = '问卷发布列表' }) {
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = (action: any) => {
return getCurrentPermissions(
{
add: <Create key="Create" reload={action?.reload} title="发布" />,
},
'MySurveyReleasesList',
);
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions(
{
publish: (
<MyButtons.Default
isConfirm
title="立即发布"
description="确定要发布?"
disabled={item?.release_type !== 'Manual' || item.status}
onConfirm={() =>
Apis.Survey.SurveyReleases.Publish({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
),
cancel: (
<MyButtons.Default
isConfirm
title="下架"
description="确定要下架问卷?"
disabled={
!item.status && !isInTimeRange(item?.start_date, item?.end_date)
}
onConfirm={() =>
Apis.Survey.SurveyReleases.Cancel({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
),
update: <Update item={item} reload={action?.reload} title={title} />,
delete: (
<MyButtons.Delete
onConfirm={() =>
Apis.Survey.SurveyReleases.Delete({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
),
},
'MySurveyReleasesList',
);
};
return (
<ProTable
{...MyProTableProps.props}
@ -74,7 +14,9 @@ export default function SurveyReleasesList({ title = '问卷发布列表' }) {
request={async (params, sort) =>
MyProTableProps.request(params, sort, Apis.Survey.SurveyReleases.List)
}
toolBarRender={(action) => [toolBarRender(action)]}
toolBarRender={(action) => [
<Create key="Create" reload={action?.reload} title="发布" />,
]}
columns={[
MyColumns.ID({
search: false,
@ -104,7 +46,27 @@ export default function SurveyReleasesList({ title = '问卷发布列表' }) {
MyColumns.CreatedAt(),
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={`item_${index}`}>{tableRender(item, action)}</Space>
<Space key={`item_${index}`}>
<MyButtons.Default
isConfirm
title="立即发布"
description="确定要发布?"
disabled={item?.release_type !== 'Manual' || item.status}
onConfirm={() =>
Apis.Survey.SurveyReleases.Publish({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
<Update item={item} reload={action?.reload} title={title} />
<MyButtons.Delete
onConfirm={() =>
Apis.Survey.SurveyReleases.Delete({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
</Space>
),
}),
]}

View File

@ -2,11 +2,11 @@ import { MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import { ProTable } from '@ant-design/pro-components';
import MyShow from '../modals/SurveyResponsesShow';
export default function SurveyResponsesList({ title = '问卷回收' }) {
export default function SurveyResponsesList({ title = '客户提交问卷' }) {
return (
<ProTable
{...MyProTableProps.props}
headerTitle={`${title}`}
headerTitle={`${title}列表`}
request={async (params, sort) =>
MyProTableProps.request(params, sort, Apis.Survey.SurveyResponses.List)
}

View File

@ -1,9 +1,4 @@
import {
MyButtons,
MyColumns,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import { PlusOutlined } from '@ant-design/icons';
import { ProTable } from '@ant-design/pro-components';
@ -13,61 +8,6 @@ import SurveysListShow from '../modals/SurveysListShow';
export default function SurveysList({ title = '问卷设置' }) {
const navigate = useNavigate();
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = () => {
return getCurrentPermissions(
{
add: (
<MyButtons.Default
key="Create"
size="middle"
type="primary"
icon={<PlusOutlined />}
onClick={() => {
navigate('/marketing/survey/pages/create_surveys');
}}
title="新增问卷"
/>
),
},
'MySurveysList',
);
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions(
{
show: (
<SurveysListShow
key="queryInfo"
item={item}
title="查看"
reload={action?.reload}
/>
),
update: (
<MyButtons.Default
key="update"
type="primary"
onClick={() => {
navigate(`/marketing/survey/pages/update_surveys?id=${item.id}`);
}}
title="编辑"
/>
),
delete: (
<MyButtons.Delete
onConfirm={() =>
Apis.Survey.Surveys.Delete({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
),
},
'MySurveysList',
);
};
return (
<ProTable
@ -76,7 +16,18 @@ export default function SurveysList({ title = '问卷设置' }) {
request={async (params, sort) =>
MyProTableProps.request(params, sort, Apis.Survey.Surveys.List)
}
toolBarRender={() => [toolBarRender()]}
toolBarRender={() => [
<MyButtons.Default
key="Create"
size="middle"
type="primary"
icon={<PlusOutlined />}
onClick={() => {
navigate('/quality/marketing/survey/pages/create_surveys');
}}
title="新增问卷"
/>,
]}
columns={[
MyColumns.ID({
search: false,
@ -100,7 +51,31 @@ export default function SurveysList({ title = '问卷设置' }) {
MyColumns.Option({
width: 120,
render: (_, item: any, index, action) => (
<Space key={`item_${index}`}>{tableRender(item, action)}</Space>
<Space key={`item_${index}`}>
<SurveysListShow
key="queryInfo"
item={item}
title="查看"
reload={action?.reload}
/>
<MyButtons.Default
key="update"
type="primary"
onClick={() => {
navigate(
`/quality/marketing/survey/pages/update_surveys?id=${item.id}`,
);
}}
title="编辑"
/>
<MyButtons.Delete
onConfirm={() =>
Apis.Survey.Surveys.Delete({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
</Space>
),
}),
]}

View File

@ -67,6 +67,7 @@ export default function SurveyReleasesCreate(props: MyBetaModalFormProps) {
},
MyFormItems.UploadImages({
key: 'cover_image',
tooltip: '建议(尺寸高度161px宽度100%)',
title: '封面图',
colProps: { span: 24 },
max: 1,

View File

@ -69,6 +69,7 @@ export default function SurveyReleasesCreate(props: MyBetaModalFormProps) {
MyFormItems.UploadImages({
key: 'cover_image',
title: '封面图',
tooltip: '建议(尺寸高度161px宽度100%)',
colProps: { span: 24 },
max: 1,
}),

View File

@ -3,7 +3,6 @@ import {
MyColumns,
MyPageContainer,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { Apis } from '@/gen/Apis';
import {
@ -32,47 +31,6 @@ export const ComplaintOrdersStatusEnum = {
};
export default function Index({ title = '客户投诉' }) {
const getCurrentPermissions = useCurrentPermissions();
let toolBarRender = (action: any) => {
return getCurrentPermissions({
create: <Create key="Create" reload={action?.reload} title={title} />,
});
};
let tableRender = (item: any, action: any) => {
return getCurrentPermissions({
show: <ComplaintShow item={item} title="详情" reload={action?.reload} />,
update: (
<>
{item.status === 'Pending' && (
<Update item={item} reload={action?.reload} title={title} />
)}
</>
),
assign: (
<>
{item.assign_status === 'Unassigned' && (
<Assign item={item} reload={action?.reload} title="指派" />
)}
</>
),
completed: (
<>
{item.status === 'Completed' && item.is_visited === 0 && (
<ComplaintShow item={item} title="回访" reload={action?.reload} />
)}
</>
),
delete: (
<MyButtons.Delete
onConfirm={() =>
Apis.WorkOrder.HouseWorkOrders.SoftDelete({
id: item.id,
}).then(() => action?.reload())
}
/>
),
});
};
return (
<MyPageContainer
title={title}
@ -80,9 +38,9 @@ export default function Index({ title = '客户投诉' }) {
tabKey="complaint"
tabLabel={title}
>
<ProTable
<ProTable<Record<any, any>>
{...MyProTableProps.props}
headerTitle="客户投诉"
headerTitle="工单列表"
request={async (params, sort) =>
MyProTableProps.request(
{
@ -93,7 +51,9 @@ export default function Index({ title = '客户投诉' }) {
Apis.WorkOrder.HouseWorkOrders.List,
)
}
toolBarRender={(action) => [toolBarRender(action)]}
toolBarRender={(action) => [
<Create key="Create" reload={action?.reload} title={title} />,
]}
columns={[
MyColumns.ID({ search: false }),
MyColumns.EnumTag({
@ -157,7 +117,31 @@ export default function Index({ title = '客户投诉' }) {
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={index}>
<>{tableRender(item, action)}</>
<ComplaintShow
item={item}
title="详情"
reload={action?.reload}
/>
{item.status === 'Pending' && (
<Update item={item} reload={action?.reload} title={title} />
)}
{item.assign_status === 'Unassigned' && (
<Assign item={item} reload={action?.reload} title="指派" />
)}
{item.status === 'Completed' && item.is_visited === 0 && (
<ComplaintShow
item={item}
title="回访"
reload={action?.reload}
/>
)}
<MyButtons.Delete
onConfirm={() =>
Apis.WorkOrder.HouseWorkOrders.SoftDelete({
id: item.id,
}).then(() => action?.reload())
}
/>
</Space>
),
}),

View File

@ -20,11 +20,11 @@ export default function WorkOrderCreate(props: MyBetaModalFormProps) {
<BetaSchemaForm<ApiTypes.WorkOrder.HouseWorkOrders.Store>
{...MyModalFormProps.props}
title={`创建工单`}
wrapperCol={{ span: 19 }}
labelCol={{ span: 4 }}
wrapperCol={{ span: 20 }}
width="600px"
layout="horizontal"
labelCol={{ span: 5 }}
trigger={<MyButtons.Create title={`投诉`} />}
trigger={<MyButtons.Create title="投诉" />}
onOpenChange={(open: any) => {
if (open) {
form.resetFields(); // 清空表单数据
@ -45,23 +45,6 @@ export default function WorkOrderCreate(props: MyBetaModalFormProps) {
.catch(() => false)
}
columns={[
// MyFormItems.EnumRadio({
// key: 'type',
// title: '工单类型',
// colProps: { span: 24 },
// // valueEnum: HouseWorkOrdersTypeEnum,
// valueEnum: () => {
// let obj: any = JSON.parse(JSON.stringify(HouseWorkOrdersTypeEnum));
// delete obj.RenovationAcceptance;
// delete obj.EquipmentMaintenance;
// delete obj.RenovationInspection;
// delete obj.Emergency;
// delete obj.EmergEquipmentMaintenancency;
// delete obj.SecurityInspection;
// return obj;
// },
// required: true,
// }),
MyFormItems.EnumRadio({
key: 'complaint_type',
title: '投诉类型',

View File

@ -50,6 +50,14 @@ export default function WorkOrderCreate(props: MyBetaModalFormProps) {
valueEnum: () => {
let obj: any = JSON.parse(JSON.stringify(HouseWorkOrdersTypeEnum));
delete obj.Complaint;
delete obj.RenovationAcceptance;
delete obj.EquipmentMaintenance;
delete obj.RenovationInspection;
delete obj.Emergency;
delete obj.EmergEquipmentMaintenancency;
delete obj.SecurityInspection;
delete obj.Complaint;
delete obj.QualityCheck;
return obj;
},
required: true,