From b4f2148684b1652f1d168db41956ae6ffeca8659 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Jan 2026 18:46:34 +0800 Subject: [PATCH 1/8] =?UTF-8?q?fix=EF=BC=9A=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .umirc.ts | 5 +- src/gen/ApiTypes.d.ts | 242 ++++++++++++- src/gen/Apis.ts | 151 +++++++- src/gen/Enums.ts | 37 +- src/pages/banner/index.tsx | 3 - src/pages/company/employees/index.tsx | 7 + .../employees/modals/EmployeeCreate.tsx | 27 +- .../employees/modals/EmployeeUpdate.tsx | 24 +- src/pages/company/list/index.tsx | 7 - .../company/list/pages/set_page_info.tsx | 336 ++++++++++++++++++ src/pages/company/list/pages/style.scss | 198 +++++++++++ src/pages/company/list/show/$id.tsx | 28 +- src/pages/company/list/table/CustomerEnd.tsx | 46 +++ src/pages/company/list/table/Roles.tsx | 90 +++++ src/pages/system/sys_permissions/index.tsx | 7 - 15 files changed, 1160 insertions(+), 48 deletions(-) create mode 100644 src/pages/company/list/pages/set_page_info.tsx create mode 100644 src/pages/company/list/pages/style.scss create mode 100644 src/pages/company/list/table/CustomerEnd.tsx create mode 100644 src/pages/company/list/table/Roles.tsx diff --git a/.umirc.ts b/.umirc.ts index 6fdf83b..0beccf1 100644 --- a/.umirc.ts +++ b/.umirc.ts @@ -14,12 +14,11 @@ export default defineConfig({ }, proxy: { '/api/': { - // target: 'http://yt:8003', + target: 'http://10.39.13.78:8001', // target: 'http://10.39.13.78:8001/', - target: 'https://test-admin.linyikj.com.cn/', + // target: 'https://test-admin.linyikj.com.cn/', // target: 'https://admin.linyikj.com.cn/', // target: 'http://c789629c.natappfree.cc', - changeOrigin: true, pathRewrite: { '^': '' }, }, diff --git a/src/gen/ApiTypes.d.ts b/src/gen/ApiTypes.d.ts index 38324cf..46ac407 100644 --- a/src/gen/ApiTypes.d.ts +++ b/src/gen/ApiTypes.d.ts @@ -660,11 +660,13 @@ declare namespace ApiTypes { type Store = { "name": string; // 岗位名称 "is_use"?: number; // 是否启用,1启用,0禁用 + "remark"?: string; // 备注 }; type Update = { "id": number; // id "name": string; // 岗位名称 "is_use"?: number; // 是否启用,1启用,0禁用 + "remark"?: string; // 备注 }; type Show = { "id": number; // id @@ -748,7 +750,9 @@ declare namespace ApiTypes { } namespace CompanyApps { type List = { + "id"?: number; // id "name"?: string; // 模糊搜索:名称 + "companies_id": number; // 机构id,[ref:companies] }; type Store = { "companies_id": number; // 机构id,[ref:companies] @@ -772,6 +776,33 @@ declare namespace ApiTypes { "id": number; // id }; } + namespace CompanyConfigs { + type List = { + "companies_id"?: number; // 机构IDid,[ref:companies] + "config_key"?: string; // 模糊搜索:名称 + }; + type Store = { + "companies_id": number; // 机构IDid,[ref:companies] + "config_key": string; // 机构配置键,[enum:CompanyConfigsConfigKeyEnum] + "config_value": string[]; // 机构配置值 + }; + type Update = { + "id": number; // id + "companies_id": number; // 机构IDid,[ref:companies] + "config_key": string; // 机构配置键,[enum:CompanyConfigsConfigKeyEnum] + "config_value": string[]; // 机构配置值 + }; + type GetDetail = { + "companies_id": number; // 机构IDid,[ref:companies] + "config_key": string; // 机构配置键,[enum:CompanyConfigsConfigKeyEnum] + }; + type Show = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } namespace CompanyEmployees { type List = { "companies_id"?: number; // 机构ID @@ -788,6 +819,7 @@ declare namespace ApiTypes { "positions_id"?: number; // 岗位id,[ref:company_positions] "sex"?: string; // 性别,[enum:SexEnum] "remark"?: string; // 备注 + "is_company_admin"?: boolean; // 是否机构管理员 }; type Update = { "id": number; // id @@ -798,6 +830,7 @@ declare namespace ApiTypes { "positions_id"?: number; // 岗位id,[ref:company_positions] "sex"?: string; // 性别,[enum:SexEnum] "remark"?: string; // 备注 + "is_company_admin"?: boolean; // 是否机构管理员 }; type Show = { "id": number; // id @@ -820,6 +853,15 @@ declare namespace ApiTypes { "upload_file": mimes:xlsx,xls; // 上传文件 }; } + namespace CompanyPermissions { + type GetPermissions = { + "companies_id": number; // 机构ID + }; + type SetPermissions = { + "companies_id": number; // 机构ID + "permissions_ids": string[]; // 菜单权限ID列表 + }; + } namespace CompanyPositions { type List = { "companies_id"?: number; // 机构ID @@ -913,6 +955,33 @@ declare namespace ApiTypes { "company_name"?: string; // 模糊搜索:机构名称 }; } + namespace CompanyQuickActions { + type List = { + "name"?: string; // 模糊搜索:名称 + }; + type Store = { + "companies_id": number; // 机构IDid,[ref:companies] + "name": string; // 名称 + "icon": string[]; // 图标 + "sort"?: number; // 排序:越小越靠前 + }; + type BatchStore = { + "companies_id": number; // 机构IDid,[ref:companies] + }; + type Update = { + "id": number; // id + "companies_id": number; // 机构IDid,[ref:companies] + "name": string; // 名称 + "icon": string[]; // 图标 + "sort"?: number; // 排序:越小越靠前 + }; + type Show = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } namespace CompanyReceiptAccounts { type List = { "company_name"?: string; // 模糊搜索:名称 @@ -1134,6 +1203,9 @@ declare namespace ApiTypes { type List = { "name"?: string; // 模糊搜索:名称 "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects] + "project_name"?: string; // 项目名称 + "companies_id"?: number; // 所属机构id,[ref:companies] + "company_name"?: string; // 机构名称 }; type Store = { "asset_projects_id": number; // 所属项目id,[ref:asset_projects] @@ -1322,6 +1394,44 @@ declare namespace ApiTypes { "id": number; // id }; } + namespace HouseOrderRefunds { + type List = { + "house_orders_id"?: number; // 订单id + "refund_status"?: string; // 退款状态 + "payment_method"?: string; // 支付方式 + "refund_no"?: string; // 退款编号 + "apply_employees_id"?: number; // 申请员工id + "date_range"?: string[]; // 日期范围 [start_date, end_date] + }; + type Store = { + "house_orders_id": number; // 房屋物业费账单id,[ref:house_orders] + "refund_amount": number; // 退款金额(元,前端提交) + "refund_reason"?: string; // 退款原因 + }; + type Update = { + "id": number; // id + "house_orders_id": number; // 房屋物业费账单id,[ref:house_orders] + "refund_amount": number; // 退款金额(元,前端提交) + "refund_reason"?: string; // 退款原因 + }; + type Show = { + "id": number; // id + }; + type Audit = { + "id": number; // 退款记录id + "approved": boolean; // 是否通过审核 + "audit_remark"?: string; // 审核备注 + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } namespace HouseOrders { type List = { "id"?: number; // id @@ -1343,6 +1453,31 @@ declare namespace ApiTypes { "id": number; // id }; } + namespace HousePrepaymentLogs { + type List = { + "house_prepayments_id"?: number; // 房屋预付缴费id,[ref:house_prepayments] + "asset_houses_id"?: number; // 房屋id,[ref:asset_houses] + "house_prepayment_payments_id"?: number; // 房屋预付缴费支付记录id,[ref:house_prepayment_payments] + "full_name"?: string; // 房屋名称 + }; + type Deduct = { + "asset_houses_id": number; // 房屋id,[ref:asset_houses] + "bills_id": string[]; // 账单id,[ref:house_bills] + "amount": number; // 扣款金额 + }; + type Show = { + "id": number; // id + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } namespace HousePrepaymentPayments { type List = { "house_prepayments_id"?: number; // 房屋预付id,[ref:house_prepayments] @@ -1356,6 +1491,45 @@ declare namespace ApiTypes { "id": number; // id }; } + namespace HousePrepaymentRefunds { + type List = { + "house_prepayments_id"?: number; // 预缴id + "house_prepayment_payments_id"?: number; // 预缴支付id + "refund_status"?: string; // 退款状态 + "payment_method"?: string; // 支付方式 + "refund_no"?: string; // 退款编号 + "apply_employees_id"?: number; // 申请员工id + "date_range"?: string[]; // 日期范围 [start_date, end_date] + }; + type Store = { + "house_prepayment_payments_id": number; // 房屋预缴支付记录id,[ref:house_prepayment_payments] + "refund_amount": number; // 退款金额(元,前端提交) + "refund_reason"?: string; // 退款原因 + }; + type Update = { + "id": number; // id + "house_prepayments_id": number; // 房屋预缴id,[ref:house_prepayments] + "refund_amount": number; // 退款金额(元,前端提交) + "refund_reason"?: string; // 退款原因 + }; + type Show = { + "id": number; // id + }; + type Audit = { + "id": number; // 退款记录id + "approved": boolean; // 是否通过审核 + "audit_remark"?: string; // 审核备注 + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } namespace HousePrepayments { type List = { "full_name"?: string; // 模糊搜索:房屋名称 @@ -1656,9 +1830,70 @@ declare namespace ApiTypes { "id": number; // id }; } + namespace HouseWorkOrderPayments { + type List = { + "name"?: string; // 模糊搜索:名称 + }; + type Store = { + "house_work_orders_id": number; // 工单id,[ref:house_work_orders] + "amount": number; // 金额(单位分) + "actual_amount"?: number; // 实际支付金额(单位分) + "payment_method": string; // 支付方式,[enum:HouseOrdersPaymentMethodEnum] + "payment_status"?: string; // 支付状态,[enum:HouseOrdersOrderStatusEnum] + "paid_time"?: Date; // 支付时间 + "payment_no"?: string; // 支付发起单号 + "transaction_id"?: string; // 交易号(微信、支付宝的单号) + "third_trade_no"?: string; // 第三方交易号(如通联、乐刷) + "bank_type"?: string; // 银行类型 + "notify_json"?: string[]; // 回调通知参数 + "receipt_account": string[]; // 收款账号信息 + "asset_houses_id"?: number; // 资产房屋id,[ref:asset_houses] + "asset_units_id"?: number; // 资产单元id,[ref:asset_units] + "asset_buildings_id"?: number; // 资产楼栋id,[ref:asset_buildings] + "asset_projects_id": number; // 资产项目id,[ref:asset_projects] + "companies_id": number; // 公司id,[ref:companies] + "customers_id"?: number; // 客户[ref:customers] + "phone"?: string; // 手机号 + "openid"?: string; // 付款人的openid + }; + type Update = { + "id": number; // id + "house_work_orders_id": number; // 工单id,[ref:house_work_orders] + "amount": number; // 金额(单位分) + "actual_amount"?: number; // 实际支付金额(单位分) + "payment_method": string; // 支付方式,[enum:HouseOrdersPaymentMethodEnum] + "payment_status"?: string; // 支付状态,[enum:HouseOrdersOrderStatusEnum] + "paid_time"?: Date; // 支付时间 + "payment_no"?: string; // 支付发起单号 + "transaction_id"?: string; // 交易号(微信、支付宝的单号) + "third_trade_no"?: string; // 第三方交易号(如通联、乐刷) + "bank_type"?: string; // 银行类型 + "notify_json"?: string[]; // 回调通知参数 + "receipt_account": string[]; // 收款账号信息 + "asset_houses_id"?: number; // 资产房屋id,[ref:asset_houses] + "asset_units_id"?: number; // 资产单元id,[ref:asset_units] + "asset_buildings_id"?: number; // 资产楼栋id,[ref:asset_buildings] + "asset_projects_id": number; // 资产项目id,[ref:asset_projects] + "companies_id": number; // 公司id,[ref:companies] + "customers_id"?: number; // 客户[ref:customers] + "phone"?: string; // 手机号 + "openid"?: string; // 付款人的openid + }; + type Show = { + "id": number; // id + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } namespace HouseWorkOrders { type List = { - "title"?: string; // 模糊搜索:名称 "house_name"?: string; // 模糊搜索:房屋名称 "type"?: string[]; // 工单类型,[enum:HouseWorkOrdersTypeEnum] "level"?: string; // 工单优先级,[enum:HouseWorkOrdersLevelEnum] @@ -1701,6 +1936,11 @@ declare namespace ApiTypes { "predict_complete_at"?: Date; // 预计完成时间 "level"?: string; // 优先级,[enum:HouseWorkOrdersLevelEnum] }; + type Visited = { + "id": number; // id + "visited_remark"?: string; // 访问说明 + "visited_attachment"?: string[]; // 访问附件 + }; type SoftDelete = { "id": number; // id }; diff --git a/src/gen/Apis.ts b/src/gen/Apis.ts index 754e829..5ac9495 100644 --- a/src/gen/Apis.ts +++ b/src/gen/Apis.ts @@ -435,7 +435,7 @@ export const Apis = { }, }, CompanyApps: { - List(data?: ApiTypes.Company.CompanyApps.List): Promise { + List(data: ApiTypes.Company.CompanyApps.List): Promise { return request('admin/company/company_apps/list', { data }); }, Store(data: ApiTypes.Company.CompanyApps.Store): Promise { @@ -451,6 +451,26 @@ export const Apis = { return request('admin/company/company_apps/delete', { data }); }, }, + CompanyConfigs: { + List(data?: ApiTypes.Company.CompanyConfigs.List): Promise { + return request('admin/company/company_configs/list', { data }); + }, + Store(data: ApiTypes.Company.CompanyConfigs.Store): Promise { + return request('admin/company/company_configs/store', { data }); + }, + Update(data: ApiTypes.Company.CompanyConfigs.Update): Promise { + return request('admin/company/company_configs/update', { data }); + }, + GetDetail(data: ApiTypes.Company.CompanyConfigs.GetDetail): Promise { + return request('admin/company/company_configs/get_detail', { data }); + }, + Show(data: ApiTypes.Company.CompanyConfigs.Show): Promise { + return request('admin/company/company_configs/show', { data }); + }, + Delete(data: ApiTypes.Company.CompanyConfigs.Delete): Promise { + return request('admin/company/company_configs/delete', { data }); + }, + }, CompanyEmployees: { List(data?: ApiTypes.Company.CompanyEmployees.List): Promise { return request('admin/company/company_employees/list', { data }); @@ -483,6 +503,17 @@ export const Apis = { return request('admin/company/company_employees/download_template', {responseType: 'blob',}); }, }, + CompanyPermissions: { + GetPermissions(data: ApiTypes.Company.CompanyPermissions.GetPermissions): Promise { + return request('admin/company/company_permissions/get_permissions', { data }); + }, + SetPermissions(data: ApiTypes.Company.CompanyPermissions.SetPermissions): Promise { + return request('admin/company/company_permissions/set_permissions', { data }); + }, + PermissionTree(): Promise { + return request('admin/company/company_permissions/permission_tree', {}); + }, + }, CompanyPositions: { List(data?: ApiTypes.Company.CompanyPositions.List): Promise { return request('admin/company/company_positions/list', { data }); @@ -546,6 +577,26 @@ export const Apis = { return request('admin/company/company_property_brands/select', { data }); }, }, + CompanyQuickActions: { + List(data?: ApiTypes.Company.CompanyQuickActions.List): Promise { + return request('admin/company/company_quick_actions/list', { data }); + }, + Store(data: ApiTypes.Company.CompanyQuickActions.Store): Promise { + return request('admin/company/company_quick_actions/store', { data }); + }, + BatchStore(data: ApiTypes.Company.CompanyQuickActions.BatchStore): Promise { + return request('admin/company/company_quick_actions/batch_store', { data }); + }, + Update(data: ApiTypes.Company.CompanyQuickActions.Update): Promise { + return request('admin/company/company_quick_actions/update', { data }); + }, + Show(data: ApiTypes.Company.CompanyQuickActions.Show): Promise { + return request('admin/company/company_quick_actions/show', { data }); + }, + Delete(data: ApiTypes.Company.CompanyQuickActions.Delete): Promise { + return request('admin/company/company_quick_actions/delete', { data }); + }, + }, CompanyReceiptAccounts: { List(data?: ApiTypes.Company.CompanyReceiptAccounts.List): Promise { return request('admin/company/company_receipt_accounts/list', { data }); @@ -783,6 +834,32 @@ export const Apis = { return request('admin/house_order/house_order_payments/delete', { data }); }, }, + HouseOrderRefunds: { + List(data?: ApiTypes.HouseOrder.HouseOrderRefunds.List): Promise { + return request('admin/house_order/house_order_refunds/list', { data }); + }, + Store(data: ApiTypes.HouseOrder.HouseOrderRefunds.Store): Promise { + return request('admin/house_order/house_order_refunds/store', { data }); + }, + Update(data: ApiTypes.HouseOrder.HouseOrderRefunds.Update): Promise { + return request('admin/house_order/house_order_refunds/update', { data }); + }, + Show(data: ApiTypes.HouseOrder.HouseOrderRefunds.Show): Promise { + return request('admin/house_order/house_order_refunds/show', { data }); + }, + Audit(data: ApiTypes.HouseOrder.HouseOrderRefunds.Audit): Promise { + return request('admin/house_order/house_order_refunds/audit', { data }); + }, + SoftDelete(data: ApiTypes.HouseOrder.HouseOrderRefunds.SoftDelete): Promise { + return request('admin/house_order/house_order_refunds/soft_delete', { data }); + }, + Restore(data: ApiTypes.HouseOrder.HouseOrderRefunds.Restore): Promise { + return request('admin/house_order/house_order_refunds/restore', { data }); + }, + Delete(data: ApiTypes.HouseOrder.HouseOrderRefunds.Delete): Promise { + return request('admin/house_order/house_order_refunds/delete', { data }); + }, + }, HouseOrders: { List(data?: ApiTypes.HouseOrder.HouseOrders.List): Promise { return request('admin/house_order/house_orders/list', { data }); @@ -800,6 +877,26 @@ export const Apis = { return request('admin/house_order/house_orders/delete', { data }); }, }, + HousePrepaymentLogs: { + List(data?: ApiTypes.HouseOrder.HousePrepaymentLogs.List): Promise { + return request('admin/house_order/house_prepayment_logs/list', { data }); + }, + Deduct(data: ApiTypes.HouseOrder.HousePrepaymentLogs.Deduct): Promise { + return request('admin/house_order/house_prepayment_logs/deduct', { data }); + }, + Show(data: ApiTypes.HouseOrder.HousePrepaymentLogs.Show): Promise { + return request('admin/house_order/house_prepayment_logs/show', { data }); + }, + SoftDelete(data: ApiTypes.HouseOrder.HousePrepaymentLogs.SoftDelete): Promise { + return request('admin/house_order/house_prepayment_logs/soft_delete', { data }); + }, + Restore(data: ApiTypes.HouseOrder.HousePrepaymentLogs.Restore): Promise { + return request('admin/house_order/house_prepayment_logs/restore', { data }); + }, + Delete(data: ApiTypes.HouseOrder.HousePrepaymentLogs.Delete): Promise { + return request('admin/house_order/house_prepayment_logs/delete', { data }); + }, + }, HousePrepaymentPayments: { List(data?: ApiTypes.HouseOrder.HousePrepaymentPayments.List): Promise { return request('admin/house_order/house_prepayment_payments/list', { data }); @@ -811,6 +908,32 @@ export const Apis = { return request('admin/house_order/house_prepayment_payments/delete', { data }); }, }, + HousePrepaymentRefunds: { + List(data?: ApiTypes.HouseOrder.HousePrepaymentRefunds.List): Promise { + return request('admin/house_order/house_prepayment_refunds/list', { data }); + }, + Store(data: ApiTypes.HouseOrder.HousePrepaymentRefunds.Store): Promise { + return request('admin/house_order/house_prepayment_refunds/store', { data }); + }, + Update(data: ApiTypes.HouseOrder.HousePrepaymentRefunds.Update): Promise { + return request('admin/house_order/house_prepayment_refunds/update', { data }); + }, + Show(data: ApiTypes.HouseOrder.HousePrepaymentRefunds.Show): Promise { + return request('admin/house_order/house_prepayment_refunds/show', { data }); + }, + Audit(data: ApiTypes.HouseOrder.HousePrepaymentRefunds.Audit): Promise { + return request('admin/house_order/house_prepayment_refunds/audit', { data }); + }, + SoftDelete(data: ApiTypes.HouseOrder.HousePrepaymentRefunds.SoftDelete): Promise { + return request('admin/house_order/house_prepayment_refunds/soft_delete', { data }); + }, + Restore(data: ApiTypes.HouseOrder.HousePrepaymentRefunds.Restore): Promise { + return request('admin/house_order/house_prepayment_refunds/restore', { data }); + }, + Delete(data: ApiTypes.HouseOrder.HousePrepaymentRefunds.Delete): Promise { + return request('admin/house_order/house_prepayment_refunds/delete', { data }); + }, + }, HousePrepayments: { List(data?: ApiTypes.HouseOrder.HousePrepayments.List): Promise { return request('admin/house_order/house_prepayments/list', { data }); @@ -1025,6 +1148,29 @@ export const Apis = { return request('admin/work_order/house_work_logs/delete', { data }); }, }, + HouseWorkOrderPayments: { + List(data?: ApiTypes.WorkOrder.HouseWorkOrderPayments.List): Promise { + return request('admin/work_order/house_work_order_payments/list', { data }); + }, + Store(data: ApiTypes.WorkOrder.HouseWorkOrderPayments.Store): Promise { + return request('admin/work_order/house_work_order_payments/store', { data }); + }, + Update(data: ApiTypes.WorkOrder.HouseWorkOrderPayments.Update): Promise { + return request('admin/work_order/house_work_order_payments/update', { data }); + }, + Show(data: ApiTypes.WorkOrder.HouseWorkOrderPayments.Show): Promise { + return request('admin/work_order/house_work_order_payments/show', { data }); + }, + SoftDelete(data: ApiTypes.WorkOrder.HouseWorkOrderPayments.SoftDelete): Promise { + return request('admin/work_order/house_work_order_payments/soft_delete', { data }); + }, + Restore(data: ApiTypes.WorkOrder.HouseWorkOrderPayments.Restore): Promise { + return request('admin/work_order/house_work_order_payments/restore', { data }); + }, + Delete(data: ApiTypes.WorkOrder.HouseWorkOrderPayments.Delete): Promise { + return request('admin/work_order/house_work_order_payments/delete', { data }); + }, + }, HouseWorkOrders: { List(data?: ApiTypes.WorkOrder.HouseWorkOrders.List): Promise { return request('admin/work_order/house_work_orders/list', { data }); @@ -1041,6 +1187,9 @@ export const Apis = { Assign(data: ApiTypes.WorkOrder.HouseWorkOrders.Assign): Promise { return request('admin/work_order/house_work_orders/assign', { data }); }, + Visited(data: ApiTypes.WorkOrder.HouseWorkOrders.Visited): Promise { + return request('admin/work_order/house_work_orders/visited', { data }); + }, SoftDelete(data: ApiTypes.WorkOrder.HouseWorkOrders.SoftDelete): Promise { return request('admin/work_order/house_work_orders/soft_delete', { data }); }, diff --git a/src/gen/Enums.ts b/src/gen/Enums.ts index a8a8ab1..dca5f92 100644 --- a/src/gen/Enums.ts +++ b/src/gen/Enums.ts @@ -154,7 +154,7 @@ export const BannersTypeEnum= { // 缓存类型 export const CacheTypeEnum= { - 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#ad9561","value":"MobilePhoneVerificationCode"}, + 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#c639cc","value":"MobilePhoneVerificationCode"}, }; // CompaniesMerchantTypeEnum @@ -182,6 +182,11 @@ export const CompanyAppsWorkTypeEnum= { 'WorkWechat': {"text":"企微","color":"#0091ea","value":"WorkWechat"}, }; +// CompanyConfigsConfigKeyEnum +export const CompanyConfigsConfigKeyEnum= { + 'Theme': {"text":"主题色","color":"#3b82f6","value":"Theme"}, +}; + // CompanyEmployeeBacklogsStatusEnum export const CompanyEmployeeBacklogsStatusEnum= { 'Pending': {"text":"待办","color":"#FF6600","value":"Pending"}, @@ -471,6 +476,16 @@ export const HouseOccupantsStatusEnum= { 'Unbound': {"text":"解绑","color":"#f5222d","value":"Unbound"}, }; +// HouseOrderRefundsRefundStatusEnum +export const HouseOrderRefundsRefundStatusEnum= { + 'Requested': {"text":"已申请","color":"#2196f3","value":"Requested"}, + 'Reviewing': {"text":"审核中","color":"#ff9800","value":"Reviewing"}, + 'Rejected': {"text":"已拒绝","color":"#f44336","value":"Rejected"}, + 'Processing': {"text":"退款中","color":"#9c27b0","value":"Processing"}, + 'Refunded': {"text":"已退款","color":"#4caf50","value":"Refunded"}, + 'Failed': {"text":"退款失败","color":"#e91e63","value":"Failed"}, +}; + // 订单状态枚举 export const HouseOrdersOrderStatusEnum= { 'Pending': {"text":"待支付","color":"#facc15","value":"Pending"}, @@ -487,6 +502,8 @@ export const HouseOrdersPaymentMethodEnum= { 'BankTransfer': {"text":"银行转账","color":"#6c757d","value":"BankTransfer"}, 'TongLian': {"text":"通联支付","color":"#ff9f0a","value":"TongLian"}, 'Prepayment': {"text":"预缴支付","color":"#f59e0b","value":"Prepayment"}, + 'POS': {"text":"POS机","color":"#8b5cf6","value":"POS"}, + 'Cash': {"text":"现金","color":"#dc2626","value":"Cash"}, }; // HousePrepaymentLogsTypeEnum @@ -544,6 +561,12 @@ export const HouseRegistersUsagePlanEnum= { 'Commercial': {"text":"商用","color":"#f5222d","value":"Commercial"}, }; +// HouseWorkOrdersAcceptResultEnum +export const HouseWorkOrdersAcceptResultEnum= { + 'Satisfied': {"text":"满意","color":"#28A745","value":"Satisfied"}, + 'Unsatisfied': {"text":"不满意","color":"#DC3545","value":"Unsatisfied"}, +}; + // HouseWorkOrdersAssignStatusEnum export const HouseWorkOrdersAssignStatusEnum= { 'Unassigned': {"text":"未指派","color":"#ff0000","value":"Unassigned"}, @@ -572,13 +595,22 @@ export const HouseWorkOrdersLevelEnum= { // HouseWorkOrdersLocationEnum export const HouseWorkOrdersLocationEnum= { 'CommonArea': {"text":"公共区域","color":"#ff0000","value":"CommonArea"}, - 'MyHome': {"text":"我家","color":"#00ff00","value":"MyHome"}, + 'MyHome': {"text":"房屋","color":"#00ff00","value":"MyHome"}, +}; + +// HouseWorkOrdersRefundStatusEnum +export const HouseWorkOrdersRefundStatusEnum= { + 'Refunding': {"text":"退款中","color":"#FFA500","value":"Refunding"}, + 'Refunded': {"text":"已退款","color":"#28A745","value":"Refunded"}, + 'PartialRefund': {"text":"部分退款","color":"#17A2B8","value":"PartialRefund"}, }; // HouseWorkOrdersStatusEnum export const HouseWorkOrdersStatusEnum= { 'Pending': {"text":"待处理","color":"#FFA500","value":"Pending"}, 'Processing': {"text":"处理中","color":"#1E90FF","value":"Processing"}, + 'PendingPayment': {"text":"待支付","color":"#FF8C00","value":"PendingPayment"}, + 'PendingAcceptance': {"text":"待验收","color":"#17A2B8","value":"PendingAcceptance"}, 'Completed': {"text":"已完成","color":"#28A745","value":"Completed"}, 'Closed': {"text":"已关闭","color":"#6C757D","value":"Closed"}, }; @@ -614,6 +646,7 @@ export const SexEnum= { export const SysModuleEnum= { 'Admin': {"text":"管理员","color":"#cf1322","value":"Admin"}, 'Customer': {"text":"客户","color":"#d4b106","value":"Customer"}, + 'Company': {"text":"机构","color":"#1890ff","value":"Company"}, }; // SysPermissionsTypeEnum diff --git a/src/pages/banner/index.tsx b/src/pages/banner/index.tsx index 6d61d9e..578206c 100644 --- a/src/pages/banner/index.tsx +++ b/src/pages/banner/index.tsx @@ -8,15 +8,12 @@ import { import { Apis } from '@/gen/Apis'; import { BannersRedirectTypeEnum, BannersTypeEnum } from '@/gen/Enums'; import { ProTable } from '@ant-design/pro-components'; -import { useNavigate } from '@umijs/max'; import { Space } from 'antd'; import BannerCreate from './modals/BannerCreate'; import BannerShow from './modals/BannerShow'; import BannerUpdate from './modals/BannerUpdate'; export default function Index({ title = '内容管理' }) { - const navigate = useNavigate(); - // 注册当前页面为标签页 usePageTabs({ tabKey: 'banners', diff --git a/src/pages/company/employees/index.tsx b/src/pages/company/employees/index.tsx index e36788d..da8eeaa 100644 --- a/src/pages/company/employees/index.tsx +++ b/src/pages/company/employees/index.tsx @@ -79,6 +79,13 @@ export default function Index({ title = '员工管理' }) { dataIndex: ['position', 'name'], search: false, }, + { + title: '是否管理员', + dataIndex: 'is_company_admin', + render: (_, item: any) => { + return item?.is_company_admin ? '是' : '否'; + }, + }, MyColumns.UpdatedAt(), // MyColumns.CreatedAt(), MyColumns.Option({ diff --git a/src/pages/company/employees/modals/EmployeeCreate.tsx b/src/pages/company/employees/modals/EmployeeCreate.tsx index a904def..809cea0 100644 --- a/src/pages/company/employees/modals/EmployeeCreate.tsx +++ b/src/pages/company/employees/modals/EmployeeCreate.tsx @@ -35,7 +35,7 @@ export default function Create(props: MyBetaModalFormProps) { }) .then(() => { props.reload?.(); - message.success(props.title + '成功'); + message.success('编辑成功'); return true; }) .catch(() => false) @@ -50,7 +50,7 @@ export default function Create(props: MyBetaModalFormProps) { colProps: { span: 24 }, required: true, fieldProps: { - onChange: (val: any) => { + onChange: () => { form.setFieldsValue({ organizations_id: undefined, positions_id: undefined, @@ -59,7 +59,6 @@ export default function Create(props: MyBetaModalFormProps) { }, }), ]), - { valueType: 'dependency', name: ['companies_id'], @@ -77,7 +76,6 @@ export default function Create(props: MyBetaModalFormProps) { ]; }, }, - { key: 'name', title: '姓名', @@ -101,6 +99,14 @@ export default function Create(props: MyBetaModalFormProps) { valueEnum: SexEnum, required: true, }), + { + title: '密码', + key: 'password', + formItemProps: { ...rulesHelper.text }, + tooltip: '请设置机构端登录密码', + colProps: { span: 24 }, + }, + { valueType: 'dependency', name: ['companies_id'], @@ -117,13 +123,12 @@ export default function Create(props: MyBetaModalFormProps) { ]; }, }, - - // { - // key: 'password', - // title: '密码', - // colProps: { span: 24 }, - // valueType: 'password', - // }, + { + title: '是否管理员', + key: 'is_company_admin', + valueType: 'switch', + colProps: { span: 6 }, + }, { key: 'remark', title: '备注', diff --git a/src/pages/company/employees/modals/EmployeeUpdate.tsx b/src/pages/company/employees/modals/EmployeeUpdate.tsx index 19cd914..716070d 100644 --- a/src/pages/company/employees/modals/EmployeeUpdate.tsx +++ b/src/pages/company/employees/modals/EmployeeUpdate.tsx @@ -69,6 +69,11 @@ export default function Update(props: MyBetaModalFormProps) { valueEnum: SexEnum, required: true, }), + { + title: '密码', + key: 'password', + colProps: { span: 24 }, + }, Selects?.Positions({ title: '岗位', params: { companies_id: props?.item?.companies_id }, @@ -76,14 +81,21 @@ export default function Update(props: MyBetaModalFormProps) { formItemProps: { ...rulesHelper.text }, fieldProps: { showSearch: true, + labelRender: (res: any) => { + if (res?.label) { + return res?.label; + } else { + return props?.item?.position?.name; + } + }, }, }), - // { - // key: 'password', - // title: '密码', - // colProps: { span: 24 }, - // valueType: 'password', - // }, + { + title: '是否管理员', + key: 'is_company_admin', + valueType: 'switch', + colProps: { span: 6 }, + }, { key: 'remark', title: '备注', diff --git a/src/pages/company/list/index.tsx b/src/pages/company/list/index.tsx index 32b9812..efeba7f 100644 --- a/src/pages/company/list/index.tsx +++ b/src/pages/company/list/index.tsx @@ -3,7 +3,6 @@ import { MyColumns, MyPageContainer, MyProTableProps, - usePageTabs, } from '@/common'; import { Apis } from '@/gen/Apis'; import { ProTable } from '@ant-design/pro-components'; @@ -16,12 +15,6 @@ import CompanyUpdate from './modals/CompanyUpdate'; export default function Index({ title = '机构列表' }) { const navigate = useNavigate(); - // 注册当前页面为标签页 - usePageTabs({ - tabKey: 'company-companies', - tabLabel: title, - }); - return ( (); + const [getShowData, setShowData] = useState({}); + const [searchParams] = useSearchParams(); + const [formValues, setFormValues] = useState({ + logo: [], + color: '#1890ff', + pageColor: `linear-gradient(180deg,rgba(208, 229, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg,#d3d7ff 0%,rgba(255, 255, 255, 0) 37%),linear-gradient(194deg,#dffff3 0%,#f8f8f8 30%)`, + }); + const [GET_DEFAULT_COLOR, SET_DEFAULT_COLOR] = useState([ + { + color: '#d3d7ff', + percent: 0, + }, + { + color: '#dffff3', + percent: 100, + }, + ]); + // 处理表单值变化,用于实时预览 + const handleValuesChange = (row: FormData) => { + console.log('row', row); + let data: ApiTypes.Company.CompanyConfigs.Store = { + companies_id: Number(searchParams.get('id')) || 0, + config_key: 'Theme', + config_value: { + color: formValues?.color, + pageColor: formValues?.pageColor, + logo: row?.logo || formValues?.logo, + pageColorValue: formValues?.pageColorValue, + }, + }; + + console.log(data); + if (getShowData?.id) { + Apis.Company.CompanyConfigs.Update({ + ...data, + id: getShowData?.id || 0, + }).then(() => { + message.success('保存成功'); + }); + } else { + Apis.Company.CompanyConfigs.Store(data).then(() => { + message.success('保存成功'); + }); + } + }; + + useEffect(() => { + if (searchParams.get('id')) { + Apis.Company.CompanyConfigs.GetDetail({ + companies_id: searchParams.get('id'), + config_key: 'Theme', + }).then((res: any) => { + console.log('res', res); + let cssStrColor = + res?.data?.config_value?.pageColorValue?.[0] || '#d3d7ff'; + let cssEndColor = + res?.data?.config_value?.pageColorValue?.[1] || '#dffff3'; + setShowData(res?.data); + let newCss = `linear-gradient(180deg,rgba(208, 229, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, ${cssStrColor} 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, ${cssEndColor} 0%, #f8f8f8 30%)`; + setFormValues({ + ...res?.data?.config_value, + pageColor: newCss, + }); + console.log('newCss', newCss); + form.setFieldsValue({ + ...res?.data?.config_value, + pageColorOtherValue: [ + { + color: cssStrColor || '', + percent: 0, + }, + { + color: cssEndColor || '', + percent: 100, + }, + ], + }); + console.log('res', res); + }); + } + }, [searchParams.get('id')]); + + return ( + +
+ + {/* 左侧表单区域 */} + + + + {...MyModalFormProps.props} + title={title} + // 基础表单 + layoutType="Form" + width="800px" + wrapperCol={{ span: 24 }} + labelAlign="left" + form={form} + submitter={{ + render: () => { + return [ +
+ { + handleValuesChange(form.getFieldsValue()); + }} + title="保存" + /> +
, + ]; + }, + }} + onFinish={async (values: any) => { + // onSave(values); + }} + columns={[ + MyFormItems.UploadImages({ + key: 'logo', + title: ( +
+ 机构Logo + + (请上传480*480,png格式的Logo) + +
+ ), + max: 1, + colProps: { span: 24 }, + fieldProps: { + onChange: (val: { url: string }[]) => { + setFormValues({ ...formValues, logo: val }); + }, + }, + }), + { + title: ( +
+ 品牌主色配置 + + (设置主品牌色,将应用于按钮、链接等交互组件) + +
+ ), + colProps: { span: 24 }, + valueType: 'color', + key: 'color', + fieldProps: { + showText: true, + defaultValue: formValues?.color || '#1890ff', + format: 'rgb', + onChange: (value: any, css: string) => { + console.log('value', value, css); + setFormValues({ ...formValues, color: css }); + }, + }, + }, + { + title: ( +
+ 全局渐变色配置 + + (设置全局渐变色,将应用于页面背景等元素) + +
+ ), + key: 'pageColorOtherValue', + colProps: { span: 24 }, + valueType: 'color', + fieldProps: { + defaultValue: GET_DEFAULT_COLOR, + mode: 'gradient', + arrow: true, + color: 'toRgb', + format: 'rgb', + showText: true, + onChange: (value: any, css: any) => { + console.log('value', value, css); + let cssStrColor = value?.colors + ? value?.colors?.[0]?.color?.metaColor + : value; + let cssEndColor = value?.colors + ? value?.colors?.[1]?.color?.metaColor + : value; + let newCss = `linear-gradient(180deg,rgba(208, 229, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, rgba(${cssStrColor?.r}, ${cssStrColor?.g}, ${cssStrColor?.b},${cssStrColor?.a}) 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, rgba(${cssEndColor?.r}, ${cssEndColor?.g}, ${cssEndColor?.b},${cssEndColor?.a}) 0%, #f8f8f8 30%)`; + setFormValues({ + ...formValues, + pageColor: newCss, + pageColorValue: [ + `rgba(${cssStrColor?.r}, ${cssStrColor?.g}, ${cssStrColor?.b},${cssStrColor?.a})`, + `rgba(${cssEndColor?.r}, ${cssEndColor?.g}, ${cssEndColor?.b},${cssEndColor?.a})`, + ], + }); + }, + }, + }, + ]} + /> +
+ + {/* 右侧手机预览区域 */} + + +
+
+ {/* 手机顶部状态栏 */} +
+
9:41
+
信号 电池
+
+ {/* 页面内容 */} +
+
+ {formValues?.logo?.[0] && ( + + )} + 某小区1栋1单元2102 +
+ +
+ + +
+ 按钮 +
+
+ 按钮 +
+
+ 按钮 +
+
+ + 标签 + 标签 + 标签 + +
+
+ tab 1 +
+
tab 2
+
tab 3
+
+
+
+ tab 1 +
+
tab 2
+
tab 3
+
+
+
+
+
+
+
+ +
+
+
+ ); +} diff --git a/src/pages/company/list/pages/style.scss b/src/pages/company/list/pages/style.scss new file mode 100644 index 0000000..561a2ae --- /dev/null +++ b/src/pages/company/list/pages/style.scss @@ -0,0 +1,198 @@ +.page-config-container { + padding: 20px; + min-height: calc(100vh - 160px); +} + +.form-card { + height: 100%; + overflow-y: auto; + + .page-config-form { + .ant-form-item { + margin-bottom: 16px; + } + } +} + +.preview-card { + height: 100%; + display: flex; + flex-direction: column; + + .ant-card-body { + flex: 1; + display: flex; + justify-content: center; + align-items: center; + padding: 20px; + } +} + +.phone-frame { + width: 375px; + height: 812px; + border: 10px solid #333; + border-radius: 40px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); + overflow: hidden; + position: relative; + background-color: #000; + + // 手机顶部听筒 + &::before { + content: ''; + position: absolute; + top: 20px; + left: 50%; + transform: translateX(-50%); + width: 60px; + height: 5px; + background-color: #222; + border-radius: 3px; + z-index: 1; + } + + // 手机底部home键 + &::after { + content: ''; + position: absolute; + bottom: 10px; + left: 50%; + transform: translateX(-50%); + width: 50px; + height: 50px; + border: 2px solid #333; + border-radius: 50%; + z-index: 1; + } +} + +.phone-screen { + width: 100%; + height: 100%; + background-color: #f8f8f8; + background-size: cover; + background-position: center; + background-repeat: no-repeat; + position: relative; + overflow-y: auto; + font-size: 14px; + color: #333; + + // 滚动条样式 + &::-webkit-scrollbar { + width: 4px; + } + + &::-webkit-scrollbar-track { + background: rgba(0, 0, 0, 0.1); + } + + &::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.3); + border-radius: 2px; + } +} + +.phone-status-bar { + height: 44px; + background-color: rgba(0, 0, 0, 0.8); + color: #fff; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 16px; + font-size: 12px; + position: sticky; + top: 0; + z-index: 100; +} + +.phone-header { + background-color: #1890ff; + color: #fff; + padding: 16px; + text-align: center; +} + +.phone-content { + padding: 20px; + height: 300px; + // min-height: calc(100% - 120px); + background: linear-gradient( + 180deg, + rgba(208, 229, 255, 0.44) 0%, + rgba(255, 255, 255, 0) 100% + ), + linear-gradient(146deg, #d3d7ff 0%, rgba(255, 255, 255, 0) 37%), + linear-gradient(194deg, #dffff3 0%, #ffffff 30%); + p { + margin: 0 0 16px 0; + line-height: 1.6; + } + + .page-type-indicator { + background-color: #f0f0f0; + padding: 8px; + border-radius: 4px; + font-size: 12px; + color: #666; + margin-top: 20px; + } + .page-title { + margin: 0; + font-size: 14px; + font-weight: bold; + display: flex; + align-items: center; + img { + width: 24px; + height: 24px; + margin-right: 8px; + } + } + + .tab-content { + padding: 15px 0 0 0; + } + .phone-button { + padding: 4px 12px; + border-radius: 4px; + color: #fff; + } + .tabs-content { + display: flex; + align-items: center; + .tab-item { + padding: 5px 15px; + border-radius: 4px; + margin-right: 10px; + color: #333; + cursor: pointer; + } + } +} + +.phone-footer { + background-color: #f5f5f5; + color: #666; + padding: 12px; + text-align: center; + font-size: 12px; + border-top: 1px solid #e8e8e8; + position: sticky; + bottom: 0; +} + +@media (max-width: 1200px) { + .page-config-container { + .ant-row { + .ant-col { + &[span='12'] { + width: 100%; + margin-bottom: 20px; + } + } + } + } +} diff --git a/src/pages/company/list/show/$id.tsx b/src/pages/company/list/show/$id.tsx index 281dd8b..48cc6ab 100644 --- a/src/pages/company/list/show/$id.tsx +++ b/src/pages/company/list/show/$id.tsx @@ -10,10 +10,12 @@ import CompanyUpdate from '../modals/CompanyUpdate'; import CompanyApps from '../table/Apps'; import Assets from '../table/Assets'; import Brands from '../table/Brands'; +import CustomerEnd from '../table/CustomerEnd'; import Employees from '../table/Employees'; import Organizations from '../table/Organizations'; import Positions from '../table/Positions'; import ReceiptAccounts from '../table/ReceiptAccounts'; +import Roles from '../table/Roles'; export default function Show({ title }: { title?: string } = {}) { const { id } = useParams<{ id: string }>(); @@ -44,48 +46,60 @@ export default function Show({ title }: { title?: string } = {}) { let items = [ { - label: '1-项目配置', + label: '项目配置', key: '1', closable: false, children: , }, { - label: '2-组织配置', + label: '组织配置', key: '2', closable: false, children: , }, { - label: '3-岗位配置', + label: '岗位配置', key: '3', closable: false, children: , }, { - label: '4-员工配置', + label: '员工配置', key: '4', closable: false, children: , }, { - label: '5-账号配置', + label: '账号配置', key: '5', closable: false, children: , }, { - label: '6-应用配置', + label: '应用配置', key: '6', closable: false, children: , }, { - label: '7-品牌配置', + label: '品牌配置', key: '7', closable: false, children: , }, + { + label: '权限配置', + key: '8', + closable: false, + children: , + }, + { + label: '客户端配置', + key: '9', + closable: false, + children: , + }, ]; return ( diff --git a/src/pages/company/list/table/CustomerEnd.tsx b/src/pages/company/list/table/CustomerEnd.tsx new file mode 100644 index 0000000..447524c --- /dev/null +++ b/src/pages/company/list/table/CustomerEnd.tsx @@ -0,0 +1,46 @@ +import { MyBetaModalFormProps, MyButtons } from '@/common'; +import { ProCard } from '@ant-design/pro-components'; +import { useNavigate } from '@umijs/max'; + +export default function CustomerEnd(props: MyBetaModalFormProps) { + const navigate = useNavigate(); + return ( +
+ + { + navigate( + `/company/list/pages/set_page_info?id=${props?.item?.id}`, + ); + }} + /> + } + > +
+ 替换系统默认的金刚区图标,将图标颜色统一调整为机构主色,保持视觉格一致 +
+
+ + } + > +
+ 品牌主色是机构在小程序中最核心的视觉代表色。通过配置品牌主色,你可以让整个小程序的交互组件自动统一为机构专属风格,提升品牌识别度。 +
+
+
+
+ ); +} diff --git a/src/pages/company/list/table/Roles.tsx b/src/pages/company/list/table/Roles.tsx new file mode 100644 index 0000000..0c0fece --- /dev/null +++ b/src/pages/company/list/table/Roles.tsx @@ -0,0 +1,90 @@ +import { MyBetaModalFormProps, MyButtons } from '@/common'; +import { Apis } from '@/gen/Apis'; +import { ProCard } from '@ant-design/pro-components'; +import { message, Space, Tree, TreeProps } from 'antd'; +import { DataNode } from 'antd/es/tree'; +import { useEffect, useState } from 'react'; + +export default function Index(props: MyBetaModalFormProps) { + const [treeData, setTreeData] = useState([]); + const [checkedKeys, setCheckedKeys] = useState([]); + + const processTree = (item: any): DataNode => { + return { + ...item, + key: item.id, + title: item.id + '_' + item.name, + children: item.children?.map(processTree), + }; + }; + + const getPermissions = () => { + //获取已经配置的,菜单 + Apis.Company.CompanyPermissions.GetPermissions({ + companies_id: props?.item?.id || 0, + }).then((res: any) => { + console.log('res', res); + setCheckedKeys(res?.data?.permissions_ids); + }); + }; + + const getPermissionTree = () => { + //获取机构可配置菜单 + Apis.Company.CompanyPermissions.PermissionTree().then((res: any) => { + const data = res.data?.map(processTree); + setTreeData(data); + getPermissions(); + }); + }; + + useEffect(() => { + getPermissionTree(); + }, []); + + const onCheck: TreeProps['onCheck'] = (checkedKeys, info) => { + console.log('onCheck', checkedKeys, info); + const ids: string[] = []; + info.checkedNodes?.forEach((item: DataNode) => { + if (item.children?.length === 0) { + ids.push(item.key as string); + } + }); + console.log('ids', ids); + setCheckedKeys(ids); + // props.onChange?.(ids); + }; + + return (treeData?.length ?? 0) > 0 ? ( + { + Apis.Company.CompanyPermissions.SetPermissions({ + companies_id: props?.item?.id || 0, + permissions_ids: checkedKeys || [], + }).then(() => { + message.success('保存成功'); + }); + }} + />, + ]} + > + + + + + ) : ( + <> + ); +} diff --git a/src/pages/system/sys_permissions/index.tsx b/src/pages/system/sys_permissions/index.tsx index cc8375c..a63e181 100644 --- a/src/pages/system/sys_permissions/index.tsx +++ b/src/pages/system/sys_permissions/index.tsx @@ -3,7 +3,6 @@ import { MyColumns, MyPageContainer, MyProTableProps, - usePageTabs, } from '@/common'; import MyEnumRadioGroup from '@/common/components/formFields/MyEnumRadioGroup'; import { Apis } from '@/gen/Apis'; @@ -20,12 +19,6 @@ export default function Index({ title = '功能' }) { const actionRef = useRef(); const [guardName, setGuardName] = useState('Admin'); - // 注册当前页面为标签页 - usePageTabs({ - tabKey: 'system-permissions', - tabLabel: title, - }); - const getData = async () => { let data = await Apis.Permission.SysPermissions.List({ guard_name: guardName, From 40faecad7970a530ea8ee8866b2d9d87e7948fb4 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 18 Jan 2026 11:10:09 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fix:=E6=9C=80=E6=96=B0=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .umirc.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.umirc.ts b/.umirc.ts index c9ee7e9..7f1ef60 100644 --- a/.umirc.ts +++ b/.umirc.ts @@ -14,8 +14,8 @@ export default defineConfig({ }, proxy: { '/api/': { - target: 'http://10.39.13.78:8001', - // target: 'http://10.39.13.78:8001/', + // target: 'http://10.39.13.78:8001', + target: 'http://10.39.13.78:8001/', // target: 'https://test-admin.linyikj.com.cn/', // target: 'https://admin.linyikj.com.cn/', changeOrigin: true, From 8232c3b7d91952a94e7e0e26eccdb81f8bac4256 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 18 Jan 2026 11:14:13 +0800 Subject: [PATCH 3/8] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0=E6=9C=BA=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/company/list/show/$id.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/company/list/show/$id.tsx b/src/pages/company/list/show/$id.tsx index e3c11bb..44f9066 100644 --- a/src/pages/company/list/show/$id.tsx +++ b/src/pages/company/list/show/$id.tsx @@ -118,7 +118,7 @@ export default function Show({ title }: { title?: string } = {}) { } >
请按以下顺序配置:
-
+
应用配置 ➡️ 组织配置 ➡️ 岗位配置 ➡️ 员工配置 ➡️ 账号配置 ➡️ 品牌配置 ➡️ 项目配置; From b38bc643bf5e185565065f9734c82dcbdb971ce2 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 21 Jan 2026 18:04:19 +0800 Subject: [PATCH 4/8] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gen/ApiTypes.d.ts | 609 +++++++++++++++++- src/gen/Apis.ts | 300 ++++++++- src/gen/Enums.ts | 206 +++++- src/pages/asset/activities/index.tsx | 10 - .../activities/modals/ActivityCreate.tsx | 6 + .../activities/modals/ActivityUpdate.tsx | 49 +- .../company/list/pages/set_page_info.tsx | 8 +- .../work_order/modals/WorkOrderAssign.tsx | 25 +- 8 files changed, 1175 insertions(+), 38 deletions(-) diff --git a/src/gen/ApiTypes.d.ts b/src/gen/ApiTypes.d.ts index 46ac407..8f1a874 100644 --- a/src/gen/ApiTypes.d.ts +++ b/src/gen/ApiTypes.d.ts @@ -6,6 +6,7 @@ declare namespace ApiTypes { "status"?: string; // 状态,[enum:ActivitiesStatusEnum] "publish_status"?: string; // 发布状态,[enum:ActivitiesPublishStatusEnum] "asset_projects_id"?: number; // 项目ID,[ref:asset_projects] + "project_name"?: string; // 项目名称 }; type Store = { "title": string; // 活动标题 @@ -62,6 +63,97 @@ declare namespace ApiTypes { }; } } + namespace Approval { + namespace ApprovalInstances { + type PendingList = { + "type"?: string; // 业务类型,[enum:ApprovalTemplatesTypeEnum] + "applicant_name"?: string; // 申请人姓名 + "asset_projects_id"?: number; // 所属项目id + "status"?: string; // 状态,[enum:ApprovalRecordsStatusEnum] + }; + type Show = { + "id": number; // 审批实例id + }; + type Approve = { + "record_id": number; // 审批记录id + "status": string; // 审批结果,[enum:ApprovalRecordsStatusEnum] + "opinion"?: string; // 审批意见 + }; + type Cancel = { + "id": number; // 审批实例id + }; + type Transfer = { + "record_id": number; // 审批记录id + "to_employee_id": number; // 接收人id,[ref:company_employees] + "opinion"?: string; // 转交理由 + }; + type List = { + "companies_id"?: number; // 机构ID + "type"?: string; // 业务类型,[enum:ApprovalTemplatesTypeEnum] + "status"?: string; // 状态,[enum:ApprovalInstancesStatusEnum] + "applicant_name"?: string; // 申请人姓名 + "asset_projects_id"?: number; // 所属项目id + }; + type ProcessedList = { + "type"?: string; // 业务类型,[enum:ApprovalTemplatesTypeEnum] + "status"?: string; // 审批结果,[enum:ApprovalRecordsStatusEnum] + "asset_projects_id"?: number; // 所属项目id + }; + type CcList = { + "type"?: string; // 业务类型,[enum:ApprovalTemplatesTypeEnum] + "asset_projects_id"?: number; // 所属项目id + }; + } + namespace ApprovalTemplates { + type List = { + "companies_id"?: number; // 机构ID + "name"?: string; // 模糊搜索:名称 + "type"?: string; // 业务类型,[enum:ApprovalTemplatesTypeEnum] + "is_enabled"?: boolean; // 是否启用 + "asset_projects_id"?: number; // 所属项目id + }; + type Store = { + "companies_id": number; // 机构ID + "name": string; // 模板名称 + "code": string; // 模板编码 + "type": string; // 业务类型,[enum:ApprovalTemplatesTypeEnum] + "description"?: string; // 模板描述 + "is_enabled"?: boolean; // 是否启用 + "asset_projects_id"?: number; // 所属项目id + "nodes": string[]; // 审批节点列表 + }; + type Update = { + "id": number; // id + "name": string; // 模板名称 + "code": string; // 模板编码 + "type": string; // 业务类型,[enum:ApprovalTemplatesTypeEnum] + "description"?: string; // 模板描述 + "is_enabled"?: boolean; // 是否启用 + "asset_projects_id"?: number; // 所属项目id + "nodes": string[]; // 审批节点列表 + }; + type Show = { + "id": number; // id + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + type ToggleEnabled = { + "id": number; // id + "is_enabled": boolean; // 是否启用 + }; + type ReplaceApprover = { + "from_employee_id": number; // 原审批人ID,[ref:company_employees] + "to_employee_id": number; // 新审批人ID,[ref:company_employees] + }; + } + } namespace Archive { namespace HouseOccupants { type List = { @@ -215,6 +307,69 @@ declare namespace ApiTypes { "keywords"?: string; // 关键词 }; } + namespace AssetCarPorts { + type List = { + "id"?: number; // 车位id + "companies_id"?: number; // 机构id,[ref:companies] + "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects] + "asset_parking_places_id"?: number; // 所属车场id,[ref:asset_parking_places] + "full_name"?: string; // 模糊搜索:名称 + "project_name"?: string; // 项目名称 + "parking_place_name"?: string; // 车场名称 + "status"?: string; // 状态,[enum:AssetCarPortsStatusEnum] + "type"?: string; // 车位类型,[enum:AssetCarPortsTypeEnum] + "property_type"?: string; // 产权类型,[enum:AssetCarPortsPropertyTypeEnum] + }; + type Store = { + "companies_id"?: number; // 机构id,[ref:companies] + "asset_projects_id": number; // 所属项目id,[ref:asset_projects] + "asset_parking_places_id": number; // 所属车场id,[ref:asset_parking_places] + "name": string; // 车位名称 + "full_name": string; // 车位全称 + "built_area": number; // 建筑面积 + "status"?: string; // 状态,[enum:AssetCarPortsStatusEnum] + "type"?: string; // 车位类型,[enum:AssetCarPortsTypeEnum] + "property_type"?: string; // 产权类型,[enum:AssetCarPortsPropertyTypeEnum] + "asset_houses_id"?: number; // 关联房屋ID,[ref:asset_houses] + "owner_name"?: string; // 业主姓名 + "owner_phone"?: string; // 业主手机号 + "remark"?: string; // 备注 + }; + type Update = { + "id": number; // id + "companies_id"?: number; // 机构id,[ref:companies] + "asset_projects_id": number; // 所属项目id,[ref:asset_projects] + "asset_parking_places_id": number; // 所属车场id,[ref:asset_parking_places] + "name": string; // 车位名称 + "full_name": string; // 车位全称 + "built_area": number; // 建筑面积 + "status"?: string; // 状态,[enum:AssetCarPortsStatusEnum] + "type"?: string; // 车位类型,[enum:AssetCarPortsTypeEnum] + "property_type"?: string; // 产权类型,[enum:AssetCarPortsPropertyTypeEnum] + "asset_houses_id"?: number; // 关联房屋ID,[ref:asset_houses] + "owner_name"?: string; // 业主姓名 + "owner_phone"?: string; // 业主手机号 + "remark"?: string; // 备注 + }; + type Show = { + "id": number; // id + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + type Select = { + "companies_id"?: number; // 机构id,[ref:companies] + "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects] + "asset_parking_places_id"?: number; // 所属车场id,[ref:asset_parking_places] + "keywords"?: string; // 关键词 + }; + } namespace AssetHouses { type List = { "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects] @@ -280,6 +435,12 @@ declare namespace ApiTypes { "asset_units_id"?: number; // 所属单元id,[ref:asset_units] "keywords"?: string; // 关键词 }; + type SelectFullName = { + "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects] + "asset_buildings_id"?: number; // 所属楼栋id,[ref:asset_buildings] + "asset_units_id"?: number; // 所属单元id,[ref:asset_units] + "keywords"?: string; // 关键词 + }; type Import = { "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects] "upload_file"?: mimes:xlsx,xls; // 上传的时候必填文件 @@ -294,10 +455,97 @@ declare namespace ApiTypes { "download_type": string; // 下载类型:page 当前页(含查询条件),query 所有页(含查询条件),all所有记录 }; } + namespace AssetParkingPlaces { + type List = { + "id"?: number; // 车场id + "companies_id"?: number; // 机构id,[ref:companies] + "asset_projects_id"?: number; // 项目id,[ref:asset_projects] + "name"?: string; // 模糊搜索:名称 + "type"?: string; // 车场类型,[enum:AssetParkingPlacesTypeEnum] + "property_type"?: string; // 产权类型,[enum:AssetParkingPlacesPropertyTypeEnum] + "location_type"?: string; // 位置类型,[enum:AssetParkingPlacesLocationTypeEnum] + "charge_type"?: string; // 收费类型,[enum:AssetParkingPlacesChargeTypeEnum] + "project_name"?: string; // 模糊搜索:所属项目名称 + }; + type Store = { + "companies_id"?: number; // 机构id,[ref:companies] + "asset_projects_id": number; // 所属项目id,[ref:asset_projects] + "name": string; // 车场名称 + "type"?: string; // 车场类型,[enum:AssetParkingPlacesTypeEnum] + "export_numbers"?: number; // 出口数量 + "import_numbers"?: number; // 入口数量 + "total_spaces"?: number; // 总车位数 + "property_type"?: string; // 产权类型,[enum:AssetParkingPlacesPropertyTypeEnum] + "location_type"?: string; // 位置类型,[enum:AssetParkingPlacesLocationTypeEnum] + "charge_type"?: string; // 收费类型,[enum:AssetParkingPlacesChargeTypeEnum] + "remark"?: string; // 备注 + }; + type Update = { + "id": number; // id + "companies_id"?: number; // 机构id,[ref:companies] + "asset_projects_id": number; // 所属项目id,[ref:asset_projects] + "name": string; // 车场名称 + "type"?: string; // 车场类型,[enum:AssetParkingPlacesTypeEnum] + "export_numbers"?: number; // 出口数量 + "import_numbers"?: number; // 入口数量 + "total_spaces"?: number; // 总车位数 + "property_type"?: string; // 产权类型,[enum:AssetParkingPlacesPropertyTypeEnum] + "location_type"?: string; // 位置类型,[enum:AssetParkingPlacesLocationTypeEnum] + "charge_type"?: string; // 收费类型,[enum:AssetParkingPlacesChargeTypeEnum] + "remark"?: string; // 备注 + }; + type Show = { + "id": number; // id + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + type Select = { + "companies_id"?: number; // 机构id,[ref:companies] + "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects] + "keywords"?: string; // 关键词 + }; + } + namespace AssetProjectAdmins { + type List = { + "asset_projects_id"?: number; // 项目id,[ref:asset_projects] + "company_employees_id"?: number; // 员工id,[ref:company_employees] + "project_name"?: string; // 模糊搜索:名称 + "employee_name"?: string; // 模糊搜索:员工名称 + "companies_id"?: number; // 公司ID + }; + type Store = { + "asset_projects_id": number; // 项目id,[ref:asset_projects] + "company_employees_id": number; // 员工id,[ref:company_employees] + "type": string; // 类型,[enum:HouseWorkOrdersTypeEnum] + }; + type Show = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } namespace AssetProjects { type List = { + "id"?: number; // id "companies_id"?: number; // 所属机构id,[ref:companies] "name"?: string; // 模糊搜索:名称 + "code"?: string; // 项目编码 + "province"?: string; // 省 + "city"?: string; // 市 + "area"?: string; // 区 + "street"?: string; // 街道 + "property_type"?: string; // 物业类型,[enum:AssetProjectsPropertyTypeEnum] + "property_brand_name"?: string; // 物业品牌名称 + "ownership_type"?: string; // 业权类型,[enum:AssetProjectsOwnershipTypeEnum] + "is_owners_committee"?: boolean; // 是否成立业委会 }; type Store = { "name": string; // 项目名称 @@ -319,8 +567,25 @@ declare namespace ApiTypes { "status"?: string; // 状态,[enum:AssetProjectsStatusEnum] "entrust_type"?: string; // 委托类型,[enum:AssetProjectsEntrustTypeEnum] "charge"?: string; // 收费方式,[enum:AssetProjectsChargeEnum] + "plot_ratio"?: number; // 容积率 + "total_households"?: number; // 总户数 + "total_parking_spaces"?: number; // 总车位数 + "takeover_households"?: number; // 接管总户数 + "takeover_parking_spaces"?: number; // 接管车位数 + "contract_building_area"?: number; // 合同建筑面积(㎡) + "land_area"?: number; // 占地面积(㎡) + "takeover_building_area"?: number; // 接管建筑面积(㎡) + "property_area"?: number; // 物业面积(㎡) + "green_area"?: number; // 绿化面积(㎡) "takeover_date"?: Date; // 接管日期 + "exit_date"?: Date; // 退场日期 "closure_date"?: Date; // 封园日期 + "project_phase_number"?: number; // 项目中期数 + "ownership_type"?: string; // 业权类型,[enum:AssetProjectsOwnershipTypeEnum] + "is_owners_committee"?: boolean; // 是否成立业委会 + "owners_committee_number"?: number; // 第几届业委会 + "owners_committee_start_date"?: Date; // 业委会开始日期 + "owners_committee_end_date"?: Date; // 业委会结束日期 "company_property_brands_id"?: number; // 物业品牌id,[ref:company_property_brands] }; type Update = { @@ -344,8 +609,25 @@ declare namespace ApiTypes { "status"?: string; // 状态,[enum:AssetProjectsStatusEnum] "entrust_type"?: string; // 委托类型,[enum:AssetProjectsEntrustTypeEnum] "charge"?: string; // 收费方式,[enum:AssetProjectsChargeEnum] + "plot_ratio"?: number; // 容积率 + "total_households"?: number; // 总户数 + "total_parking_spaces"?: number; // 总车位数 + "takeover_households"?: number; // 接管总户数 + "takeover_parking_spaces"?: number; // 接管车位数 + "contract_building_area"?: number; // 合同建筑面积(㎡) + "land_area"?: number; // 占地面积(㎡) + "takeover_building_area"?: number; // 接管建筑面积(㎡) + "property_area"?: number; // 物业面积(㎡) + "green_area"?: number; // 绿化面积(㎡) "takeover_date"?: Date; // 接管日期 + "exit_date"?: Date; // 退场日期 "closure_date"?: Date; // 封园日期 + "project_phase_number"?: number; // 项目中期数 + "ownership_type"?: string; // 业权类型,[enum:AssetProjectsOwnershipTypeEnum] + "is_owners_committee"?: boolean; // 是否成立业委会 + "owners_committee_number"?: number; // 第几届业委会 + "owners_committee_start_date"?: Date; // 业委会开始日期 + "owners_committee_end_date"?: Date; // 业委会结束日期 "company_property_brands_id"?: number; // 物业品牌id,[ref:company_property_brands] }; type BindCompany = { @@ -495,10 +777,21 @@ declare namespace ApiTypes { "full_name"?: string; // 模糊搜索:房屋名称 "company_name"?: string; // 模糊搜索:公司名称 "bill_status"?: string[]; // 账单状态,[enum:HouseBillsBillStatusEnum] + "asset_projects_id"?: number; // 资产项目id,[ref:asset_projects] + "companies_id"?: number; // 机构ID + "project_name"?: string; // 模糊搜索:项目名称 + "year"?: number; // 账单年份 + "month"?: number; // 账单月份 + "type"?: string; // 账单类型,[enum:HouseBillsTypeEnum] }; type SummaryBillList = { - "full_name"?: string; // 模糊搜索:房屋名称 + "project_name"?: string; // 模糊搜索:项目名称 + "asset_projects_id"?: number; // 资产项目id,[ref:asset_projects] + "asset_buildings_id"?: number; // 资产楼栋id,[ref:asset_buildings] + "asset_units_id"?: number; // 资产单元id,[ref:asset_units] "asset_houses_id"?: number; // 资产房屋id,[ref:asset_houses] + "full_name"?: string; // 模糊搜索:房屋名称 + "has_overdue"?: boolean; // 是否欠费:true-欠费, false-清欠 }; type Store = { "asset_houses_id": number; // 资产房屋id,[ref:asset_houses] @@ -546,6 +839,19 @@ declare namespace ApiTypes { type Import = { "upload_file"?: mimes:xlsx,xls; // 上传的时候必填文件 }; + type Export = { + "asset_houses_id"?: number; // 资产房屋id,[ref:asset_houses] + "full_name"?: string; // 模糊搜索:房屋名称 + "company_name"?: string; // 模糊搜索:公司名称 + "bill_status"?: string[]; // 账单状态,[enum:HouseBillsBillStatusEnum] + "asset_projects_id"?: number; // 资产项目id,[ref:asset_projects] + "project_name"?: string; // 模糊搜索:项目名称 + "year"?: number; // 账单年份 + "month"?: number; // 账单月份 + "type"?: string; // 账单类型,[enum:HouseBillsTypeEnum] + "current"?: number; // 页码 + "download_type": string; // 下载类型:page 当前页(含查询条件),query 所有页(含查询条件),all所有记录 + }; } } namespace Collcetion { @@ -832,6 +1138,10 @@ declare namespace ApiTypes { "remark"?: string; // 备注 "is_company_admin"?: boolean; // 是否机构管理员 }; + type ResetPassword = { + "id": number; // id + "password": string; // 密码[hidden] + }; type Show = { "id": number; // id }; @@ -852,6 +1162,15 @@ declare namespace ApiTypes { type Import = { "upload_file": mimes:xlsx,xls; // 上传文件 }; + type Export = { + "companies_id"?: number; // 机构ID + "organizations_id"?: number; // 组织机构ID + "organization_name"?: string; // 组织机构名称 + "name"?: string; // 模糊搜索:名称 + "phone"?: string; // 模糊搜索:手机号 + "download_type"?: string; // 下载类型:all-全部,page-当前页 + "current"?: number; // 当前页偏移量 + }; } namespace CompanyPermissions { type GetPermissions = { @@ -957,7 +1276,7 @@ declare namespace ApiTypes { } namespace CompanyQuickActions { type List = { - "name"?: string; // 模糊搜索:名称 + "companies_id": number; // 机构IDid,[ref:companies] }; type Store = { "companies_id": number; // 机构IDid,[ref:companies] @@ -1023,6 +1342,35 @@ declare namespace ApiTypes { "companies_id"?: number; // 所属机构id,[ref:companies] }; } + namespace OrganizationProjects { + type List = { + "companies_id"?: number; // 机构id,[ref:companies] + "organizations_id"?: number; // 组织id,[ref:organizations] + "asset_projects_id"?: number; // 项目id,[ref:asset_projects] + "organization_name"?: string; // 模糊搜索:组织名称 + "project_name"?: string; // 模糊搜索:项目名称 + }; + type Store = { + "companies_id": number; // 机构id,[ref:companies] + "organizations_id": number; // 组织id,[ref:organizations] + "asset_projects_id": number; // 项目id,[ref:asset_projects] + }; + type BatchStore = { + "companies_id": number; // 机构id,[ref:companies] + "organizations_id": number; // 组织id,[ref:organizations] + "asset_projects_ids": string[]; // 项目id列表,[ref:asset_projects] + }; + type Show = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + type DeleteByOrganization = { + "companies_id": number; // 机构id,[ref:companies] + "organizations_id": number; // 组织id,[ref:organizations] + }; + } namespace Organizations { type List = { "name"?: string; // 模糊搜索:名称 @@ -1198,6 +1546,61 @@ declare namespace ApiTypes { }; } } + namespace GoodsReleases { + namespace GoodsReleases { + type List = { + "code"?: string; // 放行码 + "apply_name"?: string; // 申请人姓名 + "apply_phone"?: string; // 申请人电话 + "status"?: string; // 状态,[enum:GoodsReleasesStatusEnum] + "passed_type"?: string; // 通行类型,[enum:GoodsReleasesPassedTypeEnum] + "asset_projects_id"?: number; // 所属项目 + "asset_houses_id"?: number; // 房屋 + "companies_id"?: number; // 所属机构 + }; + type Store = { + "asset_houses_id": number; // 访问房屋 + "apply_name": string; // 申请人姓名 + "apply_phone": string; // 申请人电话 + "passed_type": string; // 通行类型,[enum:GoodsReleasesPassedTypeEnum] + "goods": string[]; // 放行物品信息 + "passed_time": Date; // 通行时间 + "remark"?: string; // 备注 + }; + type Update = { + "id": number; // id + "apply_name"?: string; // 申请人姓名 + "apply_phone"?: string; // 申请人电话 + "passed_type"?: string; // 通行类型,[enum:GoodsReleasesPassedTypeEnum] + "goods"?: string[]; // 放行物品信息 + "passed_time"?: Date; // 通行时间 + "remark"?: string; // 备注 + }; + type Show = { + "id": number; // id + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + type ApproveByEmployee = { + "id": number; // id + "status": string; // 审核状态(Approved/Rejected) + "reason"?: string; // 驳回原因 + }; + type Release = { + "id": number; // id + }; + type ScanRelease = { + "code": string; // 放行码 + }; + } + } namespace Grid { namespace Grids { type List = { @@ -1233,6 +1636,24 @@ declare namespace ApiTypes { } } namespace HouseCharage { + namespace HouseChargeHasCarPorts { + type List = { + "house_charge_standards_id": number; // 收费标准id,[ref:house_charge_standards] + }; + type Store = { + "house_charge_standards_id": number; // 收费标准id,[ref:house_charge_standards] + "car_ports_ids": string[]; // 车位id数组 + }; + type GetChargeStandardCarPortIds = { + "house_charge_standards_id": number; // 收费标准id,[ref:house_charge_standards] + }; + type Show = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } namespace HouseChargeHasHouses { type List = { "house_charge_standards_id": number; // 房屋收费标准id,[ref:house_charge_standards] @@ -1386,6 +1807,7 @@ declare namespace ApiTypes { "payment_no"?: string; // 模糊搜索:支付单号 "transaction_id"?: string; // 模糊搜索:交易号(微信、支付宝的单号 "third_trade_no"?: string; // 第三方交易号(如通联、乐刷) + "accept_serial_number"?: string; // 模糊搜索:流水号 }; type Show = { "id": number; // id @@ -1435,10 +1857,61 @@ declare namespace ApiTypes { namespace HouseOrders { type List = { "id"?: number; // id - "order_code"?: string; // 模糊搜索:名称 + "order_code"?: string; // 模糊搜索:订单编号 "payment_no"?: string; // 支付编号 "companies_id"?: number; // 机构ID "full_name"?: string; // 模糊搜索:房屋名称 + "creator"?: string; // 创建人 + "creator_phone"?: string; // 创建人电话 + "audit_status"?: string; // 审核状态,[enum:HouseOrdersAuditStatusEnum] + "auditor"?: string; // 审核人 + "auditor_phone"?: string; // 审核人电话 + "is_serial_number"?: boolean; // 是否有流水号 + "accept_name"?: string; // 收款账户名称 + "accept_bank"?: string; // 收款银行名称 + "accept_account"?: string; // 收款账户 + "accept_serial_number"?: string; // 收款流水号 + "asset_projects_id"?: number; // 项目ID + "payment_method"?: string; // 支付方式,[enum:HouseOrdersPaymentMethodEnum] + "payment_methods"?: string[]; // 支付方式,[enum:HouseOrdersPaymentMethodEnum] + "paid_time"?: string[]; // 支付时间范围 + }; + type Store = { + "payment_method": string; // 支付方式,[enum:HouseOrdersPaymentMethodEnum] + "total_paid_amount": number; // 支付金额 + "paid_time": Date; // 支付时间 + "accept_name"?: string; // 收款账户名称 + "accept_bank"?: string; // 收款银行名称 + "accept_account"?: string; // 收款账户 + "accept_serial_number"?: string; // 收款流水号 + "fee"?: number; // 手续费 + "bill_ids": string[]; // 账单数组 [{id, amount}] + "remark"?: string; // 备注 + }; + type Update = { + "id": number; // 订单ID + "payment_method": string; // 支付方式,[enum:HouseOrdersPaymentMethodEnum] + "total_paid_amount": number; // 支付金额 + "paid_time": Date; // 支付时间 + "accept_name"?: string; // 收款账户名称 + "accept_bank"?: string; // 收款银行名称 + "accept_account"?: string; // 收款账户 + "accept_serial_number"?: string; // 收款流水号 + "fee"?: number; // 手续费 + "bill_ids": string[]; // 账单数组 [{id, amount}] + "remark"?: string; // 备注 + }; + type Audit = { + "id": number; // id + "audit_status": string; // 状态,[enum:HouseOrdersAuditStatusEnum] + "auditor_remark"?: string; // 审核备注 + "payment_method": string; // 支付方式,[enum:HouseOrdersPaymentMethodEnum] + "paid_time": Date; // 支付时间 + "accept_name"?: string; // 收款账户名称 + "accept_bank"?: string; // 收款银行名称 + "accept_account"?: string; // 收款账户 + "accept_serial_number"?: string; // 收款流水号 + "fee"?: number; // 手续费 }; type Show = { "id": number; // id @@ -1452,6 +1925,39 @@ declare namespace ApiTypes { type Delete = { "id": number; // id }; + type Export = { + "id"?: number; // id + "order_code"?: string; // 模糊搜索:名称 + "payment_no"?: string; // 支付编号 + "companies_id"?: number; // 机构ID + "full_name"?: string; // 模糊搜索:房屋名称 + "creator"?: string; // 创建人 + "creator_phone"?: string; // 创建人电话 + "audit_status"?: string; // 审核状态,[enum:HouseOrdersAuditStatusEnum] + "auditor"?: string; // 审核人 + "auditor_phone"?: string; // 审核人电话 + "is_serial_number"?: boolean; // 是否有流水号 + "current"?: number; // 页码 + "download_type": string; // 下载类型:page 当前页(含查询条件),query 所有页(含查询条件),all所有记录 + }; + type UpdateSerialNumber = { + "id": number; // id + "serial_number": string; // 流水号 + }; + type BatchUpdateSerialNumber = { + "ids": string[]; // 订单ID数组 + "serial_number": string; // 流水号 + }; + type ImportSerialNumber = { + "upload_file": mimes:xlsx,xls; // 上传文件 + }; + type GetPayCode = { + "amount": number; // 金额 + "discount_amount"?: number; // 优惠金额 + "late_fee"?: number; // 滞纳金 + "total_payable_amount": number; // 应付金额 + "bill_ids": string[]; // 账单id + }; } namespace HousePrepaymentLogs { type List = { @@ -1704,15 +2210,19 @@ declare namespace ApiTypes { namespace Msg { namespace MsgPropertyAnnouncements { type List = { + "id"?: number; // 公告id "title"?: string; // 模糊搜索:标题 "asset_projects_id"?: number; // 项目id,[ref:asset_projects] "project_name"?: string; // 模糊搜索:项目名称 "is_publish"?: number; // 是否发布 + "object"?: string; // 接收对象,[enum:MsgPropertyAnnouncementsObjectEnum] + "publish_at"?: string[]; // 发布时间, 格式:[ }; type Store = { "asset_projects_id": number; // 项目id,[ref:asset_projects] "title": string; // 标题 "content": string; // 内容 + "object": string; // 接收对象,[enum:MsgPropertyAnnouncementsObjectEnum] "publish_type": string; // 发布类型,[MsgPropertyAnnouncementsPublishTypeEnum] "schedule_publish_at"?: Date; // 计划发布时间 "is_publish"?: boolean; // 是否发布 @@ -1724,6 +2234,7 @@ declare namespace ApiTypes { "asset_projects_id": number; // 项目id,[ref:asset_projects] "title": string; // 标题 "content": string; // 内容 + "object": string; // 接收对象,[enum:MsgPropertyAnnouncementsObjectEnum] "publish_type": string; // 发布类型,[MsgPropertyAnnouncementsPublishTypeEnum] "schedule_publish_at"?: Date; // 计划发布时间 "is_publish"?: boolean; // 是否发布 @@ -1812,6 +2323,91 @@ declare namespace ApiTypes { }; } } + namespace Refund { + namespace Refunds { + type List = { + "type"?: string; // 退款类型,[enum:RefundsTypeEnum] + "business_id"?: number; // 业务ID(配合type使用) + "refund_status"?: string; // 退款状态,[enum:RefundsStatusEnum] + "applicant_name"?: string; // 申请人姓名 + "asset_projects_id"?: number; // 项目ID + "apply_time"?: string[]; // 申请时间范围 + "asset_houses_id"?: number; // 房屋ID + "companies_id"?: number; // 机构ID + }; + type Store = { + "type": string; // 退款类型,[enum:RefundsTypeEnum] + "business_id"?: number; // 业务ID(根据type对应不同表) + "refund_amount": number; // 退款金额(单位元) + "company_receipt_accounts_id": number; // 出款账户id + "payee_name"?: string; // 收款人姓名 + "payee_bank"?: string; // 收款银行 + "payee_account"?: string; // 收款账号 + "reason"?: string; // 退款原因 + "asset_projects_id"?: number; // 项目ID + "companies_id": number; // 机构ID + "approval_templates_id"?: number; // 审批模板ID + "node_approvers"?: string[]; // 各节点审批人员列表 + }; + type Show = { + "id": number; // id + }; + type Complete = { + "id": number; // id + "serial_number"?: string; // 退款流水号 + "refund_time"?: Date; // 退款时间 + "voucher"?: string[]; // 退款凭证 + }; + type Cancel = { + "id": number; // id + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } + } + namespace Visitor { + namespace VisitorApplies { + type List = { + "status"?: string; // 审核状态,[enum:VisitorAppliesStatusEnum] + "visit_start_time"?: Date; // 预计到访时间 + "visitor_name"?: string; // 模糊搜索:访客姓名 + "visitor_phone"?: string; // 模糊搜索:访客电话 + "host_phone"?: string; // 模糊搜索:被访人电话 + "asset_projects_id"?: number; // 项目ID + "companies_id"?: number; // 机构ID + }; + type Show = { + "id": number; // 申请id + }; + type Approve = { + "id": number; // 访客申请id + }; + type Reject = { + "id": number; // 访客申请id + "remark": string; // 驳回原因 + }; + type Scan = { + "code": string; // 通行码 + "scan_type": string; // 扫码类型:进入/离开,[enum:VisitorScanTypeEnum] + }; + type SoftDelete = { + "id": number; // id + }; + type Restore = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + } + } namespace WorkOrder { namespace HouseWorkLogs { type List = { @@ -1822,6 +2418,10 @@ declare namespace ApiTypes { "status": string; // 工单状态,[enum:HouseWorkOrdersStatusEnum] "description"?: string; // 进度描述 "attachments"?: string[]; // 附件 + "is_fee"?: boolean; // 是否产生费用 + "amount"?: number; // 金额(单位元) + "company_project_receipt_accounts_id"?: number; // 收款账户id,[ref:company_project_receipt_accounts] + "is_passed"?: boolean; // 装修验收:0-不合格,1-合格 }; type Show = { "id": number; // id @@ -1941,6 +2541,9 @@ declare namespace ApiTypes { "visited_remark"?: string; // 访问说明 "visited_attachment"?: string[]; // 访问附件 }; + type Closed = { + "id": number; // id + }; type SoftDelete = { "id": number; // id }; diff --git a/src/gen/Apis.ts b/src/gen/Apis.ts index 5ac9495..ffce542 100644 --- a/src/gen/Apis.ts +++ b/src/gen/Apis.ts @@ -41,6 +41,69 @@ export const Apis = { }, }, }, + Approval: { + ApprovalInstances: { + PendingList(data?: ApiTypes.Approval.ApprovalInstances.PendingList): Promise { + return request('admin/approval/approval_instances/pending_list', { data }); + }, + PendingCount(): Promise { + return request('admin/approval/approval_instances/pending_count', {}); + }, + MyApplyList(): Promise { + return request('admin/approval/approval_instances/my_apply_list', {}); + }, + Show(data: ApiTypes.Approval.ApprovalInstances.Show): Promise { + return request('admin/approval/approval_instances/show', { data }); + }, + Approve(data: ApiTypes.Approval.ApprovalInstances.Approve): Promise { + return request('admin/approval/approval_instances/approve', { data }); + }, + Cancel(data: ApiTypes.Approval.ApprovalInstances.Cancel): Promise { + return request('admin/approval/approval_instances/cancel', { data }); + }, + Transfer(data: ApiTypes.Approval.ApprovalInstances.Transfer): Promise { + return request('admin/approval/approval_instances/transfer', { data }); + }, + List(data?: ApiTypes.Approval.ApprovalInstances.List): Promise { + return request('admin/approval/approval_instances/list', { data }); + }, + ProcessedList(data?: ApiTypes.Approval.ApprovalInstances.ProcessedList): Promise { + return request('admin/approval/approval_instances/processed_list', { data }); + }, + CcList(data?: ApiTypes.Approval.ApprovalInstances.CcList): Promise { + return request('admin/approval/approval_instances/cc_list', { data }); + }, + }, + ApprovalTemplates: { + List(data?: ApiTypes.Approval.ApprovalTemplates.List): Promise { + return request('admin/approval/approval_templates/list', { data }); + }, + Store(data: ApiTypes.Approval.ApprovalTemplates.Store): Promise { + return request('admin/approval/approval_templates/store', { data }); + }, + Update(data: ApiTypes.Approval.ApprovalTemplates.Update): Promise { + return request('admin/approval/approval_templates/update', { data }); + }, + Show(data: ApiTypes.Approval.ApprovalTemplates.Show): Promise { + return request('admin/approval/approval_templates/show', { data }); + }, + SoftDelete(data: ApiTypes.Approval.ApprovalTemplates.SoftDelete): Promise { + return request('admin/approval/approval_templates/soft_delete', { data }); + }, + Restore(data: ApiTypes.Approval.ApprovalTemplates.Restore): Promise { + return request('admin/approval/approval_templates/restore', { data }); + }, + Delete(data: ApiTypes.Approval.ApprovalTemplates.Delete): Promise { + return request('admin/approval/approval_templates/delete', { data }); + }, + ToggleEnabled(data: ApiTypes.Approval.ApprovalTemplates.ToggleEnabled): Promise { + return request('admin/approval/approval_templates/toggle_enabled', { data }); + }, + ReplaceApprover(data: ApiTypes.Approval.ApprovalTemplates.ReplaceApprover): Promise { + return request('admin/approval/approval_templates/replace_approver', { data }); + }, + }, + }, Archive: { HouseOccupants: { List(data?: ApiTypes.Archive.HouseOccupants.List): Promise { @@ -131,6 +194,32 @@ export const Apis = { return request('admin/asset/asset_buildings/select', { data }); }, }, + AssetCarPorts: { + List(data?: ApiTypes.Asset.AssetCarPorts.List): Promise { + return request('admin/asset/asset_car_ports/list', { data }); + }, + Store(data: ApiTypes.Asset.AssetCarPorts.Store): Promise { + return request('admin/asset/asset_car_ports/store', { data }); + }, + Update(data: ApiTypes.Asset.AssetCarPorts.Update): Promise { + return request('admin/asset/asset_car_ports/update', { data }); + }, + Show(data: ApiTypes.Asset.AssetCarPorts.Show): Promise { + return request('admin/asset/asset_car_ports/show', { data }); + }, + SoftDelete(data: ApiTypes.Asset.AssetCarPorts.SoftDelete): Promise { + return request('admin/asset/asset_car_ports/soft_delete', { data }); + }, + Restore(data: ApiTypes.Asset.AssetCarPorts.Restore): Promise { + return request('admin/asset/asset_car_ports/restore', { data }); + }, + Delete(data: ApiTypes.Asset.AssetCarPorts.Delete): Promise { + return request('admin/asset/asset_car_ports/delete', { data }); + }, + Select(data?: ApiTypes.Asset.AssetCarPorts.Select): Promise { + return request('admin/asset/asset_car_ports/select', { data }); + }, + }, AssetHouses: { List(data?: ApiTypes.Asset.AssetHouses.List): Promise { return request('admin/asset/asset_houses/list', { data }); @@ -150,6 +239,9 @@ export const Apis = { Select(data?: ApiTypes.Asset.AssetHouses.Select): Promise { return request('admin/asset/asset_houses/select', { data }); }, + SelectFullName(data?: ApiTypes.Asset.AssetHouses.SelectFullName): Promise { + return request('admin/asset/asset_houses/select_full_name', { data }); + }, Import(data?: ApiTypes.Asset.AssetHouses.Import): Promise { return request('admin/asset/asset_houses/import', { data }); }, @@ -160,6 +252,46 @@ export const Apis = { return request('admin/asset/asset_houses/export', { responseType: 'blob',data }); }, }, + AssetParkingPlaces: { + List(data?: ApiTypes.Asset.AssetParkingPlaces.List): Promise { + return request('admin/asset/asset_parking_places/list', { data }); + }, + Store(data: ApiTypes.Asset.AssetParkingPlaces.Store): Promise { + return request('admin/asset/asset_parking_places/store', { data }); + }, + Update(data: ApiTypes.Asset.AssetParkingPlaces.Update): Promise { + return request('admin/asset/asset_parking_places/update', { data }); + }, + Show(data: ApiTypes.Asset.AssetParkingPlaces.Show): Promise { + return request('admin/asset/asset_parking_places/show', { data }); + }, + SoftDelete(data: ApiTypes.Asset.AssetParkingPlaces.SoftDelete): Promise { + return request('admin/asset/asset_parking_places/soft_delete', { data }); + }, + Restore(data: ApiTypes.Asset.AssetParkingPlaces.Restore): Promise { + return request('admin/asset/asset_parking_places/restore', { data }); + }, + Delete(data: ApiTypes.Asset.AssetParkingPlaces.Delete): Promise { + return request('admin/asset/asset_parking_places/delete', { data }); + }, + Select(data?: ApiTypes.Asset.AssetParkingPlaces.Select): Promise { + return request('admin/asset/asset_parking_places/select', { data }); + }, + }, + AssetProjectAdmins: { + List(data?: ApiTypes.Asset.AssetProjectAdmins.List): Promise { + return request('admin/asset/asset_project_admins/list', { data }); + }, + Store(data: ApiTypes.Asset.AssetProjectAdmins.Store): Promise { + return request('admin/asset/asset_project_admins/store', { data }); + }, + Show(data: ApiTypes.Asset.AssetProjectAdmins.Show): Promise { + return request('admin/asset/asset_project_admins/show', { data }); + }, + Delete(data: ApiTypes.Asset.AssetProjectAdmins.Delete): Promise { + return request('admin/asset/asset_project_admins/delete', { data }); + }, + }, AssetProjects: { List(data?: ApiTypes.Asset.AssetProjects.List): Promise { return request('admin/asset/asset_projects/list', { data }); @@ -296,6 +428,9 @@ export const Apis = { DownloadTemplate(): Promise { return request('admin/bill/house_bills/download_template', {responseType: 'blob',}); }, + Export(data: ApiTypes.Bill.HouseBills.Export): Promise { + return request('admin/bill/house_bills/export', { responseType: 'blob',data }); + }, }, }, Collcetion: { @@ -481,6 +616,9 @@ export const Apis = { Update(data: ApiTypes.Company.CompanyEmployees.Update): Promise { return request('admin/company/company_employees/update', { data }); }, + ResetPassword(data: ApiTypes.Company.CompanyEmployees.ResetPassword): Promise { + return request('admin/company/company_employees/reset_password', { data }); + }, Show(data: ApiTypes.Company.CompanyEmployees.Show): Promise { return request('admin/company/company_employees/show', { data }); }, @@ -502,6 +640,9 @@ export const Apis = { DownloadTemplate(): Promise { return request('admin/company/company_employees/download_template', {responseType: 'blob',}); }, + Export(data?: ApiTypes.Company.CompanyEmployees.Export): Promise { + return request('admin/company/company_employees/export', { responseType: 'blob',data }); + }, }, CompanyPermissions: { GetPermissions(data: ApiTypes.Company.CompanyPermissions.GetPermissions): Promise { @@ -578,7 +719,7 @@ export const Apis = { }, }, CompanyQuickActions: { - List(data?: ApiTypes.Company.CompanyQuickActions.List): Promise { + List(data: ApiTypes.Company.CompanyQuickActions.List): Promise { return request('admin/company/company_quick_actions/list', { data }); }, Store(data: ApiTypes.Company.CompanyQuickActions.Store): Promise { @@ -623,6 +764,26 @@ export const Apis = { return request('admin/company/company_receipt_accounts/select', { data }); }, }, + OrganizationProjects: { + List(data?: ApiTypes.Company.OrganizationProjects.List): Promise { + return request('admin/company/organization_projects/list', { data }); + }, + Store(data: ApiTypes.Company.OrganizationProjects.Store): Promise { + return request('admin/company/organization_projects/store', { data }); + }, + BatchStore(data: ApiTypes.Company.OrganizationProjects.BatchStore): Promise { + return request('admin/company/organization_projects/batch_store', { data }); + }, + Show(data: ApiTypes.Company.OrganizationProjects.Show): Promise { + return request('admin/company/organization_projects/show', { data }); + }, + Delete(data: ApiTypes.Company.OrganizationProjects.Delete): Promise { + return request('admin/company/organization_projects/delete', { data }); + }, + DeleteByOrganization(data: ApiTypes.Company.OrganizationProjects.DeleteByOrganization): Promise { + return request('admin/company/organization_projects/delete_by_organization', { data }); + }, + }, Organizations: { List(data?: ApiTypes.Company.Organizations.List): Promise { return request('admin/company/organizations/list', { data }); @@ -715,6 +876,40 @@ export const Apis = { }, }, }, + GoodsReleases: { + GoodsReleases: { + List(data?: ApiTypes.GoodsReleases.GoodsReleases.List): Promise { + return request('admin/goods_releases/goods_releases/list', { data }); + }, + Store(data: ApiTypes.GoodsReleases.GoodsReleases.Store): Promise { + return request('admin/goods_releases/goods_releases/store', { data }); + }, + Update(data: ApiTypes.GoodsReleases.GoodsReleases.Update): Promise { + return request('admin/goods_releases/goods_releases/update', { data }); + }, + Show(data: ApiTypes.GoodsReleases.GoodsReleases.Show): Promise { + return request('admin/goods_releases/goods_releases/show', { data }); + }, + SoftDelete(data: ApiTypes.GoodsReleases.GoodsReleases.SoftDelete): Promise { + return request('admin/goods_releases/goods_releases/soft_delete', { data }); + }, + Restore(data: ApiTypes.GoodsReleases.GoodsReleases.Restore): Promise { + return request('admin/goods_releases/goods_releases/restore', { data }); + }, + Delete(data: ApiTypes.GoodsReleases.GoodsReleases.Delete): Promise { + return request('admin/goods_releases/goods_releases/delete', { data }); + }, + ApproveByEmployee(data: ApiTypes.GoodsReleases.GoodsReleases.ApproveByEmployee): Promise { + return request('admin/goods_releases/goods_releases/approve_by_employee', { data }); + }, + Release(data: ApiTypes.GoodsReleases.GoodsReleases.Release): Promise { + return request('admin/goods_releases/goods_releases/release', { data }); + }, + ScanRelease(data: ApiTypes.GoodsReleases.GoodsReleases.ScanRelease): Promise { + return request('admin/goods_releases/goods_releases/scan_release', { data }); + }, + }, + }, Grid: { Grids: { List(data?: ApiTypes.Grid.Grids.List): Promise { @@ -741,6 +936,23 @@ export const Apis = { }, }, HouseCharage: { + HouseChargeHasCarPorts: { + List(data: ApiTypes.HouseCharage.HouseChargeHasCarPorts.List): Promise { + return request('admin/house_charage/house_charge_has_car_ports/list', { data }); + }, + Store(data: ApiTypes.HouseCharage.HouseChargeHasCarPorts.Store): Promise { + return request('admin/house_charage/house_charge_has_car_ports/store', { data }); + }, + GetChargeStandardCarPortIds(data: ApiTypes.HouseCharage.HouseChargeHasCarPorts.GetChargeStandardCarPortIds): Promise { + return request('admin/house_charage/house_charge_has_car_ports/get_charge_standard_car_port_ids', { data }); + }, + Show(data: ApiTypes.HouseCharage.HouseChargeHasCarPorts.Show): Promise { + return request('admin/house_charage/house_charge_has_car_ports/show', { data }); + }, + Delete(data: ApiTypes.HouseCharage.HouseChargeHasCarPorts.Delete): Promise { + return request('admin/house_charage/house_charge_has_car_ports/delete', { data }); + }, + }, HouseChargeHasHouses: { List(data: ApiTypes.HouseCharage.HouseChargeHasHouses.List): Promise { return request('admin/house_charage/house_charge_has_houses/list', { data }); @@ -864,6 +1076,15 @@ export const Apis = { List(data?: ApiTypes.HouseOrder.HouseOrders.List): Promise { return request('admin/house_order/house_orders/list', { data }); }, + Store(data: ApiTypes.HouseOrder.HouseOrders.Store): Promise { + return request('admin/house_order/house_orders/store', { data }); + }, + Update(data: ApiTypes.HouseOrder.HouseOrders.Update): Promise { + return request('admin/house_order/house_orders/update', { data }); + }, + Audit(data: ApiTypes.HouseOrder.HouseOrders.Audit): Promise { + return request('admin/house_order/house_orders/audit', { data }); + }, Show(data: ApiTypes.HouseOrder.HouseOrders.Show): Promise { return request('admin/house_order/house_orders/show', { data }); }, @@ -876,6 +1097,24 @@ export const Apis = { Delete(data: ApiTypes.HouseOrder.HouseOrders.Delete): Promise { return request('admin/house_order/house_orders/delete', { data }); }, + Export(data: ApiTypes.HouseOrder.HouseOrders.Export): Promise { + return request('admin/house_order/house_orders/export', { responseType: 'blob',data }); + }, + UpdateSerialNumber(data: ApiTypes.HouseOrder.HouseOrders.UpdateSerialNumber): Promise { + return request('admin/house_order/house_orders/update_serial_number', { data }); + }, + BatchUpdateSerialNumber(data: ApiTypes.HouseOrder.HouseOrders.BatchUpdateSerialNumber): Promise { + return request('admin/house_order/house_orders/batch_update_serial_number', { data }); + }, + ImportSerialNumber(data: ApiTypes.HouseOrder.HouseOrders.ImportSerialNumber): Promise { + return request('admin/house_order/house_orders/import_serial_number', { data }); + }, + DownloadSerialNumberTemplate(): Promise { + return request('admin/house_order/house_orders/download_serial_number_template', {responseType: 'blob',}); + }, + GetPayCode(data: ApiTypes.HouseOrder.HouseOrders.GetPayCode): Promise { + return request('admin/house_order/house_orders/get_pay_code', { data }); + }, }, HousePrepaymentLogs: { List(data?: ApiTypes.HouseOrder.HousePrepaymentLogs.List): Promise { @@ -1133,6 +1372,62 @@ export const Apis = { }, }, }, + Refund: { + Refunds: { + List(data?: ApiTypes.Refund.Refunds.List): Promise { + return request('admin/refund/refunds/list', { data }); + }, + Store(data: ApiTypes.Refund.Refunds.Store): Promise { + return request('admin/refund/refunds/store', { data }); + }, + Show(data: ApiTypes.Refund.Refunds.Show): Promise { + return request('admin/refund/refunds/show', { data }); + }, + Complete(data: ApiTypes.Refund.Refunds.Complete): Promise { + return request('admin/refund/refunds/complete', { data }); + }, + Cancel(data: ApiTypes.Refund.Refunds.Cancel): Promise { + return request('admin/refund/refunds/cancel', { data }); + }, + SoftDelete(data: ApiTypes.Refund.Refunds.SoftDelete): Promise { + return request('admin/refund/refunds/soft_delete', { data }); + }, + Restore(data: ApiTypes.Refund.Refunds.Restore): Promise { + return request('admin/refund/refunds/restore', { data }); + }, + Delete(data: ApiTypes.Refund.Refunds.Delete): Promise { + return request('admin/refund/refunds/delete', { data }); + }, + }, + }, + Visitor: { + VisitorApplies: { + List(data?: ApiTypes.Visitor.VisitorApplies.List): Promise { + return request('admin/visitor/visitor_applies/list', { data }); + }, + Show(data: ApiTypes.Visitor.VisitorApplies.Show): Promise { + return request('admin/visitor/visitor_applies/show', { data }); + }, + Approve(data: ApiTypes.Visitor.VisitorApplies.Approve): Promise { + return request('admin/visitor/visitor_applies/approve', { data }); + }, + Reject(data: ApiTypes.Visitor.VisitorApplies.Reject): Promise { + return request('admin/visitor/visitor_applies/reject', { data }); + }, + Scan(data: ApiTypes.Visitor.VisitorApplies.Scan): Promise { + return request('admin/visitor/visitor_applies/scan', { data }); + }, + SoftDelete(data: ApiTypes.Visitor.VisitorApplies.SoftDelete): Promise { + return request('admin/visitor/visitor_applies/soft_delete', { data }); + }, + Restore(data: ApiTypes.Visitor.VisitorApplies.Restore): Promise { + return request('admin/visitor/visitor_applies/restore', { data }); + }, + Delete(data: ApiTypes.Visitor.VisitorApplies.Delete): Promise { + return request('admin/visitor/visitor_applies/delete', { data }); + }, + }, + }, WorkOrder: { HouseWorkLogs: { List(data: ApiTypes.WorkOrder.HouseWorkLogs.List): Promise { @@ -1190,6 +1485,9 @@ export const Apis = { Visited(data: ApiTypes.WorkOrder.HouseWorkOrders.Visited): Promise { return request('admin/work_order/house_work_orders/visited', { data }); }, + Closed(data: ApiTypes.WorkOrder.HouseWorkOrders.Closed): Promise { + return request('admin/work_order/house_work_orders/closed', { data }); + }, SoftDelete(data: ApiTypes.WorkOrder.HouseWorkOrders.SoftDelete): Promise { return request('admin/work_order/house_work_orders/soft_delete', { data }); }, diff --git a/src/gen/Enums.ts b/src/gen/Enums.ts index dca5f92..bc2c4d9 100644 --- a/src/gen/Enums.ts +++ b/src/gen/Enums.ts @@ -26,6 +26,69 @@ export const ActivityEnrollsStatusEnum= { 'Cancelled': {"text":"取消","color":"#ff9800","value":"Cancelled"}, }; +// 审批实例状态枚举 +export const ApprovalInstancesStatusEnum= { + 'Pending': {"text":"待审批","color":"#ff9800","value":"Pending"}, + 'Approved': {"text":"已通过","color":"#4caf50","value":"Approved"}, + 'Rejected': {"text":"已拒绝","color":"#f44336","value":"Rejected"}, + 'Cancelled': {"text":"已取消","color":"#9e9e9e","value":"Cancelled"}, +}; + +// 审批记录状态枚举 +export const ApprovalRecordsStatusEnum= { + 'Pending': {"text":"待审批","color":"#ff9800","value":"Pending"}, + 'Approved': {"text":"同意","color":"#4caf50","value":"Approved"}, + 'Rejected': {"text":"拒绝","color":"#f44336","value":"Rejected"}, + 'Transferred': {"text":"转交","color":"#9c27b0","value":"Transferred"}, +}; + +// 审批方式枚举 +export const ApprovalTemplateNodesApproveTypeEnum= { + 'And': {"text":"会签","color":"#4caf50","value":"And"}, + 'Or': {"text":"或签","color":"#ff9800","value":"Or"}, +}; + +// 审批节点类型枚举 +export const ApprovalTemplateNodesNodeTypeEnum= { + 'Approver': {"text":"审批人","color":"#2196f3","value":"Approver"}, + 'CC': {"text":"抄送人","color":"#9e9e9e","value":"CC"}, +}; + +// 审批业务类型枚举 +export const ApprovalTemplatesTypeEnum= { + 'Contract': {"text":"合同","color":"#2196f3","value":"Contract"}, + 'Finance': {"text":"财务","color":"#4caf50","value":"Finance"}, + 'Refund': {"text":"退款","color":"#f44336","value":"Refund"}, +}; + +// 车位产权类型 +export const AssetCarPortsPropertyTypeEnum= { + 'Ownership': {"text":"产权车位","color":"#1e90ff","value":"Ownership"}, + 'CivilDefense': {"text":"人防车位","color":"#32cd32","value":"CivilDefense"}, + 'Public': {"text":"公共车位","color":"#ff8c00","value":"Public"}, + 'Temporary': {"text":"临时车位","color":"#ba55d3","value":"Temporary"}, + 'Other': {"text":"其他","color":"#a9a9a9","value":"Other"}, +}; + +// 车位状态 +export const AssetCarPortsStatusEnum= { + 'Unsold': {"text":"未售","color":"#6b7280","value":"Unsold"}, + 'Sold': {"text":"已售","color":"#10b981","value":"Sold"}, + 'Rented': {"text":"已租","color":"#3b82f6","value":"Rented"}, + 'Unrented': {"text":"未租","color":"#f59e0b","value":"Unrented"}, + 'Other': {"text":"其他","color":"#9ca3af","value":"Other"}, +}; + +// 车位类型 +export const AssetCarPortsTypeEnum= { + 'Standard': {"text":"标准车位","color":"#1e90ff","value":"Standard"}, + 'Mini': {"text":"微型车位","color":"#32cd32","value":"Mini"}, + 'Accessible': {"text":"无障碍车位","color":"#ff8c00","value":"Accessible"}, + 'Tandem': {"text":"子母车位","color":"#ba55d3","value":"Tandem"}, + 'Mechanical': {"text":"机械车位","color":"#20b2aa","value":"Mechanical"}, + 'Other': {"text":"其他","color":"#a9a9a9","value":"Other"}, +}; + // AssetHousesOrientationEnum export const AssetHousesOrientationEnum= { 'East': {"text":"东","color":"#007bff","value":"East"}, @@ -81,6 +144,34 @@ export const AssetHousesUsageEnum= { 'PropertyRoom': {"text":"物业用房","color":"#dc3545","value":"PropertyRoom"}, }; +// 车场收费类型 +export const AssetParkingPlacesChargeTypeEnum= { + 'Free': {"text":"免费","color":"#32cd32","value":"Free"}, + 'TemporaryCharge': {"text":"临停收费","color":"#1e90ff","value":"TemporaryCharge"}, + 'MonthlyCharge': {"text":"月卡收费","color":"#ff8c00","value":"MonthlyCharge"}, + 'MixedCharge': {"text":"混合收费","color":"#ba55d3","value":"MixedCharge"}, +}; + +// 车场位置类型 +export const AssetParkingPlacesLocationTypeEnum= { + 'GroundParking': {"text":"地面车场","color":"#ffa500","value":"GroundParking"}, + 'UndergroundParking': {"text":"地下车场","color":"#4682b4","value":"UndergroundParking"}, +}; + +// 车场产权类型 +export const AssetParkingPlacesPropertyTypeEnum= { + 'DispersedOwnership': {"text":"分散产权","color":"#ff7f50","value":"DispersedOwnership"}, + 'SingleOwnership': {"text":"单一产权","color":"#1e90ff","value":"SingleOwnership"}, + 'SharedOwnership': {"text":"共有产权","color":"#32cd32","value":"SharedOwnership"}, +}; + +// 车场类型 +export const AssetParkingPlacesTypeEnum= { + 'ResidentialSupporting': {"text":"住宅配套车场","color":"#ff8c00","value":"ResidentialSupporting"}, + 'Commercial': {"text":"商业车场","color":"#1e90ff","value":"Commercial"}, + 'Mixed': {"text":"混合车场","color":"#32cd32","value":"Mixed"}, +}; + // AssetProjectsChargeEnum export const AssetProjectsChargeEnum= { 'Contract': {"text":"包干制","color":"#007bff","value":"Contract"}, @@ -94,6 +185,12 @@ export const AssetProjectsEntrustTypeEnum= { 'GovernmentFullEntrust': {"text":"政府类全委","color":"#ffc107","value":"GovernmentFullEntrust"}, }; +// 业权类型 +export const AssetProjectsOwnershipTypeEnum= { + 'SingleOwnership': {"text":"单业权","color":"#00cc66","value":"SingleOwnership"}, + 'MultipleOwnership': {"text":"多业权","color":"#0099ff","value":"MultipleOwnership"}, +}; + // AssetProjectsPropertyTypeEnum export const AssetProjectsPropertyTypeEnum= { 'Residence': {"text":"住宅","color":"#ff0000","value":"Residence"}, @@ -154,7 +251,7 @@ export const BannersTypeEnum= { // 缓存类型 export const CacheTypeEnum= { - 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#c639cc","value":"MobilePhoneVerificationCode"}, + 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#3f0fe5","value":"MobilePhoneVerificationCode"}, }; // CompaniesMerchantTypeEnum @@ -284,6 +381,29 @@ export const CustomerOpinionsTypeEnum= { 'FeatureSuggestion': {"text":"新功能建议","color":"#00bfff","value":"FeatureSuggestion"}, }; +// 物品放行审核状态 +export const GoodsReleasesAuditStatusEnum= { + 'Pending': {"text":"待审核","color":"#faad14","value":"Pending"}, + 'Approved': {"text":"已通过","color":"#52c41a","value":"Approved"}, + 'Rejected': {"text":"已退回","color":"#ff4d4f","value":"Rejected"}, +}; + +// 物品放行通行类型 +export const GoodsReleasesPassedTypeEnum= { + 'Moving': {"text":"搬家","color":"#1890ff","value":"Moving"}, + 'Delivery': {"text":"出货","color":"#52c41a","value":"Delivery"}, + 'Other': {"text":"其他","color":"#faad14","value":"Other"}, +}; + +// 物品放行状态 +export const GoodsReleasesStatusEnum= { + 'Pending': {"text":"待审核","color":"#faad14","value":"Pending"}, + 'OwnerApproved': {"text":"业主已审","color":"#1890ff","value":"OwnerApproved"}, + 'Approved': {"text":"已通过","color":"#52c41a","value":"Approved"}, + 'Rejected': {"text":"已退回","color":"#ff4d4f","value":"Rejected"}, + 'Released': {"text":"已放行","color":"#722ed1","value":"Released"}, +}; + // 账单状态枚举 export const HouseBillsBillStatusEnum= { 'PendingPayment': {"text":"待支付","color":"#facc15","value":"PendingPayment"}, @@ -301,6 +421,7 @@ export const HouseBillsTypeEnum= { 'ElectricityFee': {"text":"电费","color":"#f59e0b","value":"ElectricityFee"}, 'SharedWaterFee': {"text":"公摊水费","color":"#8b5cf6","value":"SharedWaterFee"}, 'SharedElectricityFee': {"text":"公摊电费","color":"#ec4899","value":"SharedElectricityFee"}, + 'CarPortFee': {"text":"车位费","color":"#f59e0b","value":"CarPortFee"}, }; // HouseChargeStandardsApportionmentMethodEnum @@ -351,6 +472,7 @@ export const HouseChargeStandardsStatusEnum= { export const HouseChargeStandardsTypeEnum= { 'House': {"text":"房屋","color":"#3b82f6","value":"House"}, 'Meter': {"text":"仪表","color":"#10b981","value":"Meter"}, + 'CarPort': {"text":"车位","color":"#f59e0b","value":"CarPort"}, }; // HouseChargeTaskDetailsStatusEnum @@ -360,6 +482,12 @@ export const HouseChargeTaskDetailsStatusEnum= { 'Failed': {"text":"失败","color":"#ef4444","value":"Failed"}, }; +// HouseChargeTaskDetailsTargetTypeEnum +export const HouseChargeTaskDetailsTargetTypeEnum= { + 'House': {"text":"房屋","color":"#3b82f6","value":"House"}, + 'CarPort': {"text":"车位","color":"#f59e0b","value":"CarPort"}, +}; + // HouseChargeTasksStatusEnum export const HouseChargeTasksStatusEnum= { 'Pending': {"text":"待执行","color":"#f59e0b","value":"Pending"}, @@ -486,6 +614,13 @@ export const HouseOrderRefundsRefundStatusEnum= { 'Failed': {"text":"退款失败","color":"#e91e63","value":"Failed"}, }; +// 订单审核状态枚举 +export const HouseOrdersAuditStatusEnum= { + 'Pending': {"text":"待审核","color":"#f59e0b","value":"Pending"}, + 'Approved': {"text":"已通过","color":"#10b981","value":"Approved"}, + 'Rejected': {"text":"已驳回","color":"#ef4444","value":"Rejected"}, +}; + // 订单状态枚举 export const HouseOrdersOrderStatusEnum= { 'Pending': {"text":"待支付","color":"#facc15","value":"Pending"}, @@ -551,6 +686,7 @@ export const HouseRegistersTypeEnum= { 'MoveIn': {"text":"搬入登记","color":"#ffc53d","value":"MoveIn"}, 'UpdateInfo': {"text":"修改信息","color":"#722ed1","value":"UpdateInfo"}, 'UpdatePhone': {"text":"修改电话","color":"#13c2c2","value":"UpdatePhone"}, + 'GoodsRelease': {"text":"物品放行","color":"#a0d911","value":"GoodsRelease"}, }; // HouseRegistersUsagePlanEnum @@ -622,6 +758,12 @@ export const HouseWorkOrdersTypeEnum= { 'Complaint': {"text":"投诉","color":"#aa00ff","value":"Complaint"}, }; +// 公告接收对象 +export const MsgPropertyAnnouncementsObjectEnum= { + 'Customer': {"text":"客户","color":"#3b82f6","value":"Customer"}, + 'Employee': {"text":"员工","color":"#10b981","value":"Employee"}, +}; + // MsgPropertyAnnouncementsPublishTypeEnum export const MsgPropertyAnnouncementsPublishTypeEnum= { 'Manual': {"text":"手动","color":"#4caf50","value":"Manual"}, @@ -636,6 +778,30 @@ export const OrganizationsTypeEnum= { 'Department': {"text":"部门","color":"#dc3545","value":"Department"}, }; +// 退款状态枚举 +export const RefundsStatusEnum= { + 'Pending': {"text":"待审批","color":"#ff9800","value":"Pending"}, + 'Reviewing': {"text":"审核中","color":"#2196f3","value":"Reviewing"}, + 'Approved': {"text":"已审批","color":"#9c27b0","value":"Approved"}, + 'Processing': {"text":"退款中","color":"#00bcd4","value":"Processing"}, + 'Completed': {"text":"已退款","color":"#4caf50","value":"Completed"}, + 'PartialRefund': {"text":"部分退款","color":"#8bc34a","value":"PartialRefund"}, + 'Rejected': {"text":"已拒绝","color":"#f44336","value":"Rejected"}, + 'Failed': {"text":"退款失败","color":"#e91e63","value":"Failed"}, + 'Cancelled': {"text":"已取消","color":"#9e9e9e","value":"Cancelled"}, +}; + +// 退款类型枚举 +export const RefundsTypeEnum= { + 'HouseBill': {"text":"物业费退款","color":"#2196f3","value":"HouseBill"}, + 'Bill': {"text":"账单退款","color":"#4caf50","value":"Bill"}, + 'ContractBill': {"text":"合同退款","color":"#ff9800","value":"ContractBill"}, + 'RenovationApply': {"text":"退保证金","color":"#86aac3ff","value":"RenovationApply"}, + 'HouseDoorCard': {"text":"门禁退款","color":"#9c27b0","value":"HouseDoorCard"}, + 'HouseWorkOrder': {"text":"工单退款","color":"#00bcd4","value":"HouseWorkOrder"}, + 'Other': {"text":"其他退款","color":"#607d8b","value":"Other"}, +}; + // 性别 export const SexEnum= { 'Male': {"text":"男","color":"#0000ff","value":"Male"}, @@ -656,6 +822,44 @@ export const SysPermissionsTypeEnum= { 'Button': {"text":"按钮","color":"#97224f","value":"Button"}, }; +// 来访事由 +export const VisitReasonEnum= { + 'Visit': {"text":"拜访","color":"#2196f3","value":"Visit"}, + 'Business': {"text":"商务","color":"#3f51b5","value":"Business"}, + 'Interview': {"text":"面试","color":"#9c27b0","value":"Interview"}, + 'Private': {"text":"私人","color":"#e91e63","value":"Private"}, + 'Express': {"text":"快递","color":"#00bcd4","value":"Express"}, + 'Renovation': {"text":"装修","color":"#ff5722","value":"Renovation"}, + 'Other': {"text":"其他","color":"#607d8b","value":"Other"}, +}; + +// 访客申请状态 +export const VisitorAppliesStatusEnum= { + 'Pending': {"text":"审核中","color":"#ff9800","value":"Pending"}, + 'Approved': {"text":"已通过","color":"#4caf50","value":"Approved"}, + 'Rejected': {"text":"已驳回","color":"#f44336","value":"Rejected"}, + 'Expired': {"text":"已失效","color":"#9e9e9e","value":"Expired"}, +}; + +// 访客申请类型 +export const VisitorApplyTypeEnum= { + 'invite': {"text":"业主邀请","color":"#2196f3","value":"invite"}, + 'register': {"text":"访客登记","color":"#ff9800","value":"register"}, +}; + +// 通行码状态 +export const VisitorCodeStatusEnum= { + 'unused': {"text":"未使用","color":"#2196f3","value":"unused"}, + 'used': {"text":"已使用","color":"#4caf50","value":"used"}, + 'expired': {"text":"已过期","color":"#f44336","value":"expired"}, +}; + +// 访客扫码类型 +export const VisitorScanTypeEnum= { + 'enter': {"text":"进入","color":"#4caf50","value":"enter"}, + 'exit': {"text":"离开","color":"#f44336","value":"exit"}, +}; + // WechatAuthsPlatformEnum export const WechatAuthsPlatformEnum= { 'MiniProgram': {"text":"微信小程序","color":"#3b82f6","value":"MiniProgram"}, diff --git a/src/pages/asset/activities/index.tsx b/src/pages/asset/activities/index.tsx index 6e6ad53..daf2c36 100644 --- a/src/pages/asset/activities/index.tsx +++ b/src/pages/asset/activities/index.tsx @@ -3,7 +3,6 @@ import { MyColumns, MyPageContainer, MyProTableProps, - usePageTabs, } from '@/common'; import { Apis } from '@/gen/Apis'; import { @@ -12,7 +11,6 @@ import { ActivitiesStatusEnum, } from '@/gen/Enums'; import { ProTable } from '@ant-design/pro-components'; -import { useNavigate } from '@umijs/max'; import { Space } from 'antd'; import ActivityCreate from './modals/ActivityCreate'; import ActivityShow from './modals/ActivityShow'; @@ -20,14 +18,6 @@ import ActivityUpdate from './modals/ActivityUpdate'; import EnrollsList from './modals/EnrollsList'; export default function Index({ title = '项目活动' }) { - const navigate = useNavigate(); - - // 注册当前页面为标签页 - usePageTabs({ - tabKey: 'activity', - tabLabel: title, - }); - return ( false) } columns={[ + Selects?.Companies({ + key: 'companies_id', + title: '选择机构', + colProps: { span: 24 }, + required: true, + }), ...(props?.item?.id ? [] : [ diff --git a/src/pages/asset/activities/modals/ActivityUpdate.tsx b/src/pages/asset/activities/modals/ActivityUpdate.tsx index d548711..e719a0f 100644 --- a/src/pages/asset/activities/modals/ActivityUpdate.tsx +++ b/src/pages/asset/activities/modals/ActivityUpdate.tsx @@ -28,22 +28,31 @@ export default function Update(props: MyBetaModalFormProps) { form={form} onOpenChange={(open: any) => { if (open && props.item) { - form.setFieldsValue(props.item); - form.setFieldValue('project_ids', props.item?.project_ids[0]); - form.setFieldValue('activity_time', [ - props.item?.start_time, - props.item?.end_time, - ]); - form.setFieldValue('content', props.item?.content); + form.setFieldsValue({ + ...props.item, + activity_time: [ + props.item?.start_time || '', + props.item?.end_time || '', + ], + project_ids: props?.item?.activity_projects?.map( + (res: any) => res?.asset_projects_id, + ), + }); + // form.setFieldValue('project_ids', props.item?.project_ids[0]); + // form.setFieldValue('activity_time', [ + // props.item?.start_time || '', + // props.item?.end_time || '', + // ]); + // form.setFieldValue('content', props.item?.content); } }} onFinish={async (values) => Apis.Activity.Activities.Update({ ...values, id: props.item?.id ?? 0, - project_ids: values?.project_ids - ? [values?.project_ids] - : [props.item?.id], + // project_ids: values?.project_ids + // ? [values?.project_ids] + // : [props.item?.id], }) .then(() => { props.reload?.(); @@ -53,17 +62,35 @@ export default function Update(props: MyBetaModalFormProps) { .catch(() => false) } columns={[ + Selects?.Companies({ + key: 'companies_id', + title: '选择机构', + colProps: { span: 24 }, + required: true, + }), Selects?.AssetProjects({ key: 'project_ids', title: '关联项目', colProps: { span: 24 }, - required: true, + formItemProps: { ...rulesHelper.array }, fieldProps: { showSearch: true, + mode: 'multiple', fieldNames: { label: 'label', value: 'value', }, + labelRender: (res: any) => { + if (res?.label) { + return res?.label; + } else { + return props?.item?.activity_projects?.map((i: any) => { + if (res?.value === i?.asset_projects_id) { + return i?.asset_project?.name; + } + }); + } + }, }, }), { diff --git a/src/pages/company/list/pages/set_page_info.tsx b/src/pages/company/list/pages/set_page_info.tsx index f56c72a..259fbe9 100644 --- a/src/pages/company/list/pages/set_page_info.tsx +++ b/src/pages/company/list/pages/set_page_info.tsx @@ -26,7 +26,7 @@ export default function Index({ title = '小程序页面配置' }) { const [formValues, setFormValues] = useState({ logo: [], color: '#1890ff', - pageColor: `linear-gradient(180deg,rgba(208, 229, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg,#d3d7ff 0%,rgba(255, 255, 255, 0) 37%),linear-gradient(194deg,#dffff3 0%,#f8f8f8 30%)`, + pageColor: `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg,#d3d7ff 0%,rgba(255, 255, 255, 0) 37%),linear-gradient(194deg,#dffff3 0%,#f8f8f8 30%)`, }); const [GET_DEFAULT_COLOR, SET_DEFAULT_COLOR] = useState([ { @@ -79,7 +79,7 @@ export default function Index({ title = '小程序页面配置' }) { let cssEndColor = res?.data?.config_value?.pageColorValue?.[1] || '#dffff3'; setShowData(res?.data); - let newCss = `linear-gradient(180deg,rgba(208, 229, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, ${cssStrColor} 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, ${cssEndColor} 0%, #f8f8f8 30%)`; + let newCss = `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, ${cssStrColor} 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, ${cssEndColor} 0%, #f8f8f8 30%)`; setFormValues({ ...res?.data?.config_value, pageColor: newCss, @@ -148,7 +148,7 @@ export default function Index({ title = '小程序页面配置' }) { ]; }, }} - onFinish={async (values: any) => { + onFinish={async () => { // onSave(values); }} columns={[ @@ -219,7 +219,7 @@ export default function Index({ title = '小程序页面配置' }) { let cssEndColor = value?.colors ? value?.colors?.[1]?.color?.metaColor : value; - let newCss = `linear-gradient(180deg,rgba(208, 229, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, rgba(${cssStrColor?.r}, ${cssStrColor?.g}, ${cssStrColor?.b},${cssStrColor?.a}) 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, rgba(${cssEndColor?.r}, ${cssEndColor?.g}, ${cssEndColor?.b},${cssEndColor?.a}) 0%, #f8f8f8 30%)`; + let newCss = `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, rgba(${cssStrColor?.r}, ${cssStrColor?.g}, ${cssStrColor?.b},${cssStrColor?.a}) 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, rgba(${cssEndColor?.r}, ${cssEndColor?.g}, ${cssEndColor?.b},${cssEndColor?.a}) 0%, #f8f8f8 30%)`; setFormValues({ ...formValues, pageColor: newCss, diff --git a/src/pages/work_order/modals/WorkOrderAssign.tsx b/src/pages/work_order/modals/WorkOrderAssign.tsx index 301e096..d50fd2b 100644 --- a/src/pages/work_order/modals/WorkOrderAssign.tsx +++ b/src/pages/work_order/modals/WorkOrderAssign.tsx @@ -24,15 +24,24 @@ export default function WorkOrderAssign( trigger={} key={new Date().getTime()} form={form} - request={async () => { - const res = await Apis.WorkOrder.HouseWorkOrders.Show({ - id: props.item.id, - }); - return { - title: res.data.title, - assign_employee_id: res.data.assign_employee_id, - }; + onOpenChange={(open: any) => { + if (open && props.item) { + form.setFieldsValue({ + title: props?.item?.title, + content: props?.item?.content, + assign_employee_id: props?.item?.assign_employee_id, + }); + } }} + // request={async () => { + // const res = await Apis.WorkOrder.HouseWorkOrders.Show({ + // id: props.item.id, + // }); + // return { + // title: res.data.title, + // assign_employee_id: res.data.assign_employee_id, + // }; + // }} onFinish={async (values) => Apis.WorkOrder.HouseWorkOrders.Assign({ ...values, From c34437c3e946de2af1afd615de50d3caf33bb7be Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 22 Jan 2026 11:41:55 +0800 Subject: [PATCH 5/8] =?UTF-8?q?fix=EF=BC=9A=E6=9B=B4=E6=96=B0=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9C=BA=E6=9E=84=E7=AB=AFadmin=EF=BC=8Clogo?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../company/list/pages/set_page_info.tsx | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/pages/company/list/pages/set_page_info.tsx b/src/pages/company/list/pages/set_page_info.tsx index 259fbe9..1ea6212 100644 --- a/src/pages/company/list/pages/set_page_info.tsx +++ b/src/pages/company/list/pages/set_page_info.tsx @@ -17,6 +17,7 @@ interface FormData { color: string; pageColor: string; pageColorValue?: string[]; + admin_logo?: { url: string }[]; } export default function Index({ title = '小程序页面配置' }) { @@ -25,10 +26,11 @@ export default function Index({ title = '小程序页面配置' }) { const [searchParams] = useSearchParams(); const [formValues, setFormValues] = useState({ logo: [], + admin_logo: [], color: '#1890ff', pageColor: `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg,#d3d7ff 0%,rgba(255, 255, 255, 0) 37%),linear-gradient(194deg,#dffff3 0%,#f8f8f8 30%)`, }); - const [GET_DEFAULT_COLOR, SET_DEFAULT_COLOR] = useState([ + const GET_DEFAULT_COLOR = [ { color: '#d3d7ff', percent: 0, @@ -37,7 +39,7 @@ export default function Index({ title = '小程序页面配置' }) { color: '#dffff3', percent: 100, }, - ]); + ]; // 处理表单值变化,用于实时预览 const handleValuesChange = (row: FormData) => { console.log('row', row); @@ -49,6 +51,7 @@ export default function Index({ title = '小程序页面配置' }) { pageColor: formValues?.pageColor, logo: row?.logo || formValues?.logo, pageColorValue: formValues?.pageColorValue, + admin_logo: row?.admin_logo, }, }; @@ -70,7 +73,7 @@ export default function Index({ title = '小程序页面配置' }) { useEffect(() => { if (searchParams.get('id')) { Apis.Company.CompanyConfigs.GetDetail({ - companies_id: searchParams.get('id'), + companies_id: searchParams.get('id') ?? 0, config_key: 'Theme', }).then((res: any) => { console.log('res', res); @@ -156,9 +159,9 @@ export default function Index({ title = '小程序页面配置' }) { key: 'logo', title: (
- 机构Logo + 机构小程序Logo - (请上传480*480,png格式的Logo) + (请上传正方形,建议:480*480,png格式的Logo)
), @@ -170,6 +173,19 @@ export default function Index({ title = '小程序页面配置' }) { }, }, }), + MyFormItems.UploadImages({ + key: 'admin_logo', + title: ( +
+ 机构后台Logo + + (请上传长方形横版,jpg,png格式的Logo) + +
+ ), + max: 1, + colProps: { span: 24 }, + }), { title: (
From 7d2dc1ea90c721ea8cac28301e34280565f9dced Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 22 Jan 2026 13:55:06 +0800 Subject: [PATCH 6/8] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0=EF=BC=8C=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/company/list/table/CustomerEnd.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/pages/company/list/table/CustomerEnd.tsx b/src/pages/company/list/table/CustomerEnd.tsx index 447524c..2a94a73 100644 --- a/src/pages/company/list/table/CustomerEnd.tsx +++ b/src/pages/company/list/table/CustomerEnd.tsx @@ -25,7 +25,7 @@ export default function CustomerEnd(props: MyBetaModalFormProps) { } >
- 替换系统默认的金刚区图标,将图标颜色统一调整为机构主色,保持视觉格一致 + 替换系统默认的颜色统一调整为机构主色,保持视觉格一致
+ + } + > +
+ 配置客户端小程序首屏底部菜单图标,请上传png格式图标 +
+
); From 8dacc2b6e70509f02191abdf10921b2e92680b1f Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 22 Jan 2026 17:35:12 +0800 Subject: [PATCH 7/8] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=B8=90=E5=8F=98=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/company/list/pages/set_page_info.tsx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/pages/company/list/pages/set_page_info.tsx b/src/pages/company/list/pages/set_page_info.tsx index 1ea6212..4eff843 100644 --- a/src/pages/company/list/pages/set_page_info.tsx +++ b/src/pages/company/list/pages/set_page_info.tsx @@ -28,7 +28,8 @@ export default function Index({ title = '小程序页面配置' }) { logo: [], admin_logo: [], color: '#1890ff', - pageColor: `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg,#d3d7ff 0%,rgba(255, 255, 255, 0) 37%),linear-gradient(194deg,#dffff3 0%,#f8f8f8 30%)`, + // pageColor: `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg,#d3d7ff 0%,rgba(255, 255, 255, 0) 37%),linear-gradient(194deg,#dffff3 0%,#f8f8f8 30%)`, + pageColor: `linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, #f7f7f7 100%, rgba(255, 255, 255, 0) 100%), linear-gradient(145deg, #D3D7FF 3%, rgba(255, 255, 255, 0) 49%), linear-gradient(222deg, #84FFD8 0%, #F7F7F7 67%)`, }); const GET_DEFAULT_COLOR = [ { @@ -82,7 +83,11 @@ export default function Index({ title = '小程序页面配置' }) { let cssEndColor = res?.data?.config_value?.pageColorValue?.[1] || '#dffff3'; setShowData(res?.data); - let newCss = `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, ${cssStrColor} 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, ${cssEndColor} 0%, #f8f8f8 30%)`; + // let newCss = `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, ${cssStrColor} 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, ${cssEndColor} 0%, #f8f8f8 30%)`; + let newCss = `linear-gradient(180deg,rgba(208, 229, 255, 0.44) 0%,#f7f7f7 100%,rgba(255, 255, 255, 0) 100%),linear-gradient(145deg, ${cssStrColor} 3%,rgba(255, 255, 255, 0) 49%),linear-gradient(222deg, ${cssEndColor} 0%,#F7F7F7 67%)`; + // let newCss = + // 'linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, #FFFFFF 100%, rgba(255, 255, 255, 0) 100%), linear-gradient(145deg, #D3D7FF 3%, rgba(255, 255, 255, 0) 49%), linear-gradient(222deg, #84FFD8 0%, #F7F7F7 67%);'; + setFormValues({ ...res?.data?.config_value, pageColor: newCss, @@ -235,7 +240,8 @@ export default function Index({ title = '小程序页面配置' }) { let cssEndColor = value?.colors ? value?.colors?.[1]?.color?.metaColor : value; - let newCss = `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, rgba(${cssStrColor?.r}, ${cssStrColor?.g}, ${cssStrColor?.b},${cssStrColor?.a}) 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, rgba(${cssEndColor?.r}, ${cssEndColor?.g}, ${cssEndColor?.b},${cssEndColor?.a}) 0%, #f8f8f8 30%)`; + // let newCss = `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, rgba(${cssStrColor?.r}, ${cssStrColor?.g}, ${cssStrColor?.b},${cssStrColor?.a}) 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, rgba(${cssEndColor?.r}, ${cssEndColor?.g}, ${cssEndColor?.b},${cssEndColor?.a}) 0%, #f8f8f8 30%)`; + let newCss = `linear-gradient(180deg, rgba(208, 229, 255, 0.44) 50%, #f7f7f7 100%, rgba(255, 255, 255, 0) 100%), linear-gradient(145deg, rgba(${cssStrColor?.r}, ${cssStrColor?.g}, ${cssStrColor?.b},${cssStrColor?.a}) 3%, rgba(255, 255, 255, 0) 49%), linear-gradient(222deg, rgba(${cssEndColor?.r}, ${cssEndColor?.g}, ${cssEndColor?.b},${cssEndColor?.a}) 0%, #F7F7F7 67%)`; setFormValues({ ...formValues, pageColor: newCss, @@ -264,7 +270,10 @@ export default function Index({ title = '小程序页面配置' }) { {/* 页面内容 */}
{formValues?.logo?.[0] && ( From 92c4c9023916630d32d2b36961ed02c20a879a4b Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 22 Jan 2026 18:46:31 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0=E6=B8=90=E5=8F=98?= =?UTF-8?q?=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/company/list/pages/set_page_info.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/pages/company/list/pages/set_page_info.tsx b/src/pages/company/list/pages/set_page_info.tsx index 4eff843..ac56a46 100644 --- a/src/pages/company/list/pages/set_page_info.tsx +++ b/src/pages/company/list/pages/set_page_info.tsx @@ -83,11 +83,7 @@ export default function Index({ title = '小程序页面配置' }) { let cssEndColor = res?.data?.config_value?.pageColorValue?.[1] || '#dffff3'; setShowData(res?.data); - // let newCss = `linear-gradient(180deg,rgba(255, 255, 255, 0.44) 0%,rgba(255, 255, 255, 0) 100%),linear-gradient(146deg, ${cssStrColor} 0%, rgba(255, 255, 255, 0) 37%),linear-gradient(194deg, ${cssEndColor} 0%, #f8f8f8 30%)`; let newCss = `linear-gradient(180deg,rgba(208, 229, 255, 0.44) 0%,#f7f7f7 100%,rgba(255, 255, 255, 0) 100%),linear-gradient(145deg, ${cssStrColor} 3%,rgba(255, 255, 255, 0) 49%),linear-gradient(222deg, ${cssEndColor} 0%,#F7F7F7 67%)`; - // let newCss = - // 'linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, #FFFFFF 100%, rgba(255, 255, 255, 0) 100%), linear-gradient(145deg, #D3D7FF 3%, rgba(255, 255, 255, 0) 49%), linear-gradient(222deg, #84FFD8 0%, #F7F7F7 67%);'; - setFormValues({ ...res?.data?.config_value, pageColor: newCss,