2025-06-24 19:46:34 +08:00
|
|
|
// API相关常量
|
|
|
|
|
export const API_BASE_URL = import.meta.env.VITE_APP_BASE_URL || '/api';
|
|
|
|
|
|
|
|
|
|
// 存储相关常量
|
|
|
|
|
export const STORAGE_KEYS = {
|
|
|
|
|
TOKEN: 'LEASER_TOKEN',
|
|
|
|
|
USER_INFO: 'LEASER_USER_INFO',
|
|
|
|
|
LOCALE: 'arco-locale',
|
|
|
|
|
THEME: 'arco-theme',
|
|
|
|
|
} as const;
|
|
|
|
|
|
|
|
|
|
// 路由相关常量
|
|
|
|
|
export const ROUTE_NAMES = {
|
|
|
|
|
LOGIN: 'login',
|
|
|
|
|
DASHBOARD: 'dashboard',
|
|
|
|
|
PROJECT: 'project',
|
|
|
|
|
TENANT: 'tenant',
|
|
|
|
|
CONTRACT: 'contract',
|
|
|
|
|
} as const;
|
|
|
|
|
|
|
|
|
|
// 业务相关常量
|
|
|
|
|
export const PAGE_SIZE_OPTIONS = [10, 20, 50, 100];
|
|
|
|
|
export const DEFAULT_PAGE_SIZE = 20;
|
|
|
|
|
|
|
|
|
|
// 文件相关常量
|
|
|
|
|
export const FILE_UPLOAD = {
|
|
|
|
|
MAX_SIZE: 10 * 1024 * 1024, // 10MB
|
|
|
|
|
ALLOWED_TYPES: [
|
|
|
|
|
'image/jpeg',
|
|
|
|
|
'image/png',
|
|
|
|
|
'image/gif',
|
|
|
|
|
'application/pdf',
|
|
|
|
|
'application/msword',
|
|
|
|
|
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
|
|
|
],
|
|
|
|
|
} as const;
|
|
|
|
|
|
|
|
|
|
// 表单验证相关常量
|
|
|
|
|
export const VALIDATION_RULES = {
|
|
|
|
|
PHONE: /^1[3-9]\d{9}$/,
|
|
|
|
|
EMAIL: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
|
|
|
|
|
ID_CARD:
|
|
|
|
|
/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
|
|
|
|
|
} as const;
|
2026-01-12 00:19:24 +08:00
|
|
|
|
|
|
|
|
// 房源状态
|
|
|
|
|
//状态:1招商 2保留 3下架 4在租
|
|
|
|
|
export const HOUSE_STATUS = [
|
|
|
|
|
{ id: 1, text: '招商' },
|
|
|
|
|
{ id: 2, text: '保留' },
|
|
|
|
|
{ id: 3, text: '下架' },
|
|
|
|
|
{ id: 4, text: '在租' },
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
// 价格单位选项
|
|
|
|
|
export const PRICE_UNITS = [
|
|
|
|
|
{ value: 1, text: '元/㎡*月' },
|
|
|
|
|
{ value: 2, text: '元/㎡*天' },
|
|
|
|
|
{ value: 3, text: '元/天' },
|
|
|
|
|
{ value: 4, text: '元/月' },
|
|
|
|
|
{ value: 5, text: '元/年' },
|
|
|
|
|
] as const;
|
|
|
|
|
|
|
|
|
|
// 价格单位映射表
|
|
|
|
|
export const PRICE_UNIT_MAP = new Map([
|
|
|
|
|
[1, '元/㎡*月'],
|
|
|
|
|
[2, '元/㎡*天'],
|
|
|
|
|
[3, '元/天'],
|
|
|
|
|
[4, '元/月'],
|
|
|
|
|
[5, '元/年'],
|
|
|
|
|
]);
|
2026-01-23 17:35:56 +08:00
|
|
|
|
|
|
|
|
// 租客来源
|
|
|
|
|
export const TENANT_SOURCES = [
|
|
|
|
|
{ value: 1, text: '中介' },
|
|
|
|
|
{ value: 2, text: '招商获客' },
|
|
|
|
|
{ value: 3, text: '线下来访' },
|
|
|
|
|
{ value: 4, text: '客户转介' },
|
|
|
|
|
{ value: 5, text: '其他转介' },
|
|
|
|
|
];
|
|
|
|
|
// 租客映射表
|
|
|
|
|
export const TENANT_SOURCE_MAP = new Map([
|
|
|
|
|
[1, '中介'],
|
|
|
|
|
[2, '招商获客'],
|
|
|
|
|
[3, '线下来访'],
|
|
|
|
|
[4, '客户转介'],
|
|
|
|
|
[5, '其他转介'],
|
|
|
|
|
]);
|
|
|
|
|
// 租客类型
|
|
|
|
|
export const TENANT_TYPES = [
|
|
|
|
|
{ value: 1, text: '企业' },
|
|
|
|
|
{ value: 2, text: '个人' },
|
|
|
|
|
{ value: 3, text: '非营利组织' },
|
|
|
|
|
{ value: 4, text: '其他' },
|
|
|
|
|
];
|
|
|
|
|
// 租客映射表
|
|
|
|
|
export const TENANT_TYPE_MAP = new Map([
|
|
|
|
|
[1, '企业'],
|
|
|
|
|
[2, '个人'],
|
|
|
|
|
[3, '非营利组织'],
|
|
|
|
|
[4, '其他'],
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
// 租客状态
|
|
|
|
|
// 状态:1正常 2欠费 3即将到期 4已到期 5可归档 6已归档
|
|
|
|
|
export const TENANT_STATUS = [
|
|
|
|
|
{ value: 1, text: '正常' },
|
|
|
|
|
{ value: 2, text: '欠费' },
|
|
|
|
|
{ value: 3, text: '即将到期' },
|
|
|
|
|
{ value: 4, text: '已到期' },
|
|
|
|
|
{ value: 5, text: '可归档' },
|
|
|
|
|
{ value: 6, text: '已归档' },
|
|
|
|
|
];
|
|
|
|
|
// 租客状态映射表
|
|
|
|
|
export const TENANT_STATUS_MAP = new Map([
|
|
|
|
|
[1, '正常'],
|
|
|
|
|
[2, '欠费'],
|
|
|
|
|
[3, '即将到期'],
|
|
|
|
|
[4, '已到期'],
|
|
|
|
|
[5, '可归档'],
|
|
|
|
|
[6, '已归档'],
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
// 企业规模
|
|
|
|
|
export const COMPANY_SCALES = [
|
|
|
|
|
{ value: 1, text: '小微企业' },
|
|
|
|
|
{ value: 2, text: '中型企业' },
|
|
|
|
|
{ value: 3, text: '大型企业' },
|
|
|
|
|
{ value: 4, text: '集团/上市公司' },
|
|
|
|
|
];
|
|
|
|
|
// 企业规模映射表
|
|
|
|
|
export const COMPANY_SCALE_MAP = new Map([
|
|
|
|
|
[1, '小微企业'],
|
|
|
|
|
[2, '中型企业'],
|
|
|
|
|
[3, '大型企业'],
|
|
|
|
|
[4, '集团/上市公司'],
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
// 行业分类
|
|
|
|
|
export const INDUSTRY_CATEGORIES = [
|
|
|
|
|
{ value: 1, text: '科技/互联网' },
|
|
|
|
|
{ value: 2, text: '金融/保险' },
|
|
|
|
|
{ value: 3, text: '专业服务(法律/咨询/会计)' },
|
|
|
|
|
{ value: 4, text: '医疗/健康' },
|
|
|
|
|
{ value: 5, text: '教育培训' },
|
|
|
|
|
{ value: 6, text: '零售/消费' },
|
|
|
|
|
{ value: 7, text: '制造业' },
|
|
|
|
|
{ value: 8, text: '文化/传媒' },
|
|
|
|
|
{ value: 9, text: '房地产/建筑' },
|
|
|
|
|
{ value: 10, text: '其他' },
|
|
|
|
|
];
|
|
|
|
|
// 行业分类映射表
|
|
|
|
|
export const INDUSTRY_CATEGORY_MAP = new Map([
|
|
|
|
|
[1, '科技/互联网'],
|
|
|
|
|
[2, '金融/保险'],
|
|
|
|
|
[3, '专业服务(法律/咨询/会计)'],
|
|
|
|
|
[4, '医疗/健康'],
|
|
|
|
|
[5, '教育培训'],
|
|
|
|
|
[6, '零售/消费'],
|
|
|
|
|
[7, '制造业'],
|
|
|
|
|
[8, '文化/传媒'],
|
|
|
|
|
[9, '房地产/建筑'],
|
|
|
|
|
[10, '其他'],
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
// 发票类型
|
|
|
|
|
export const INVOICE_TYPES = [
|
|
|
|
|
{ value: 1, text: '增值税专用发票' },
|
|
|
|
|
{ value: 2, text: '增值税电子专用发票' },
|
|
|
|
|
{ value: 3, text: '增值税普通发票' },
|
|
|
|
|
{ value: 4, text: '增值税电子普通发票' },
|
|
|
|
|
{ value: 5, text: '全面数字化电子发票' },
|
|
|
|
|
];
|
|
|
|
|
// 发票类型映射表
|
|
|
|
|
export const INVOICE_TYPE_MAP = new Map([
|
|
|
|
|
[1, '增值税专用发票'],
|
|
|
|
|
[2, '增值税电子专用发票'],
|
|
|
|
|
[3, '增值税普通发票'],
|
|
|
|
|
[4, '增值税电子普通发票'],
|
|
|
|
|
[5, '全面数字化电子发票'],
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
// 租客归档原因
|
|
|
|
|
export const TENANT_FILING_TYPES = [
|
|
|
|
|
{ value: 1, text: '到期退租(自然到期)' },
|
|
|
|
|
{ value: 2, text: '提前退租(协商终止)' },
|
|
|
|
|
{ value: 3, text: '非正常终止(违约或被清退)' },
|
|
|
|
|
{ value: 4, text: '签约未履行(签约后未生效)' },
|
|
|
|
|
{ value: 5, text: '其他原因' },
|
|
|
|
|
];
|
|
|
|
|
// 租客归档原因映射表
|
|
|
|
|
export const TENANT_FILING_TYPE_MAP = new Map([
|
|
|
|
|
[1, '到期退租(自然到期)'],
|
|
|
|
|
[2, '提前退租(协商终止)'],
|
|
|
|
|
[3, '非正常终止(违约或被清退)'],
|
|
|
|
|
[4, '签约未履行(签约后未生效)'],
|
|
|
|
|
[5, '其他原因'],
|
|
|
|
|
]);
|