diff --git a/src/views/enterpriseLibrary/enterprise/components/child/BasicInfo.vue b/src/views/enterpriseLibrary/enterprise/components/child/BasicInfo.vue index cc223da..b26d6e3 100644 --- a/src/views/enterpriseLibrary/enterprise/components/child/BasicInfo.vue +++ b/src/views/enterpriseLibrary/enterprise/components/child/BasicInfo.vue @@ -123,7 +123,56 @@ export default { { required: true, message: '请选择注册日期', trigger: 'change' } ], businessTerm: [ - { required: true, message: '请输入营业期限', trigger: 'blur' } + { required: true, message: '请输入营业期限', trigger: 'blur' }, + { + validator: (rule, value, callback) => { + if (!value) { + callback(); + return; + } + const trimmedValue = value.trim(); + // 检查是否为"永久"或"长期" + if (trimmedValue === '永久' || trimmedValue === '长期') { + callback(); + return; + } + // 检查是否为日期格式 + // 支持格式:yyyy-MM-dd, yyyy/MM/dd, yyyy年MM月dd日, yyyy.MM.dd + const datePatterns = [ + /^\d{4}-\d{2}-\d{2}$/, // yyyy-MM-dd + /^\d{4}\/\d{2}\/\d{2}$/, // yyyy/MM/dd + /^\d{4}\.\d{2}\.\d{2}$/, // yyyy.MM.dd + /^\d{4}年\d{1,2}月\d{1,2}日$/, // yyyy年MM月dd日 + /^\d{4}-\d{1,2}-\d{1,2}$/, // yyyy-M-d + /^\d{4}\/\d{1,2}\/\d{1,2}$/ // yyyy/M/d + ]; + const isDate = datePatterns.some(pattern => pattern.test(trimmedValue)); + if (isDate) { + // 进一步验证日期是否有效 + let dateStr = trimmedValue; + // 转换中文日期格式为标准格式 + if (dateStr.includes('年')) { + dateStr = dateStr.replace(/年/g, '-').replace(/月/g, '-').replace(/日/g, ''); + } + dateStr = dateStr.replace(/\//g, '-').replace(/\./g, '-'); + const dateParts = dateStr.split('-'); + if (dateParts.length === 3) { + const year = parseInt(dateParts[0]); + const month = parseInt(dateParts[1]); + const day = parseInt(dateParts[2]); + const date = new Date(year, month - 1, day); + if (date.getFullYear() === year && + date.getMonth() === month - 1 && + date.getDate() === day) { + callback(); + return; + } + } + } + callback(new Error('营业期限只能输入"永久"、"长期"或有效的日期格式(如:2024-01-01)')); + }, + trigger: 'blur' + } ], residence: [ { required: true, message: '请输入住所', trigger: 'blur' } diff --git a/src/views/enterpriseLibrary/enterprise/components/child/LegalPerson.vue b/src/views/enterpriseLibrary/enterprise/components/child/LegalPerson.vue index 87d9d10..937d54c 100644 --- a/src/views/enterpriseLibrary/enterprise/components/child/LegalPerson.vue +++ b/src/views/enterpriseLibrary/enterprise/components/child/LegalPerson.vue @@ -125,7 +125,7 @@ export default { methods: { // 身份证号校验 validateIdCard(rule, value, callback) { - if (!validIdCard(value)) { + if (!validIdCard(value) && value) { callback(new Error('请输入合法的身份证号码')) } else { callback() @@ -133,7 +133,7 @@ export default { }, // 联系方式校验 validateMobile(rule, value, callback) { - if (!validMobile(value)) { + if (!validMobile(value) && value) { callback(new Error('请输入合法的联系方式')) } else { callback() diff --git a/src/views/enterpriseLibrary/enterprise/index.vue b/src/views/enterpriseLibrary/enterprise/index.vue index 2019783..c47ffb5 100644 --- a/src/views/enterpriseLibrary/enterprise/index.vue +++ b/src/views/enterpriseLibrary/enterprise/index.vue @@ -31,66 +31,68 @@ -
-
-

{{ item.enterpriseName }}

-
- -
-
- 法定代表人: - {{ item.legalPersonName }} +
+
+
+

{{ item.enterpriseName }}

-
- 统一信用代码: - {{ item.enterpriseCode }} + +
+
+ 法定代表人: + {{ item.legalPersonName }} +
+
+ 统一信用代码: + {{ item.enterpriseCode }} +
+
+ + +
+
+ 资质库 + {{ item.qualificationNum }} +
+
+ 业绩库 + {{ item.performanceNum }} +
+
+ 人员库 + {{ item.personnelNum }} +
+
+ 财务库 + {{ item.financeNum }} +
+ +
+ + +
+
+ 企业知识库 + 企业知识库 +
+
+ 详情 + 详情 +
+
+ 编辑 + 编辑 +
+
+ 删除 + 删除 +
- +
- {{ doc }} -
- - -
-
- 资质库 - {{ item.qualificationNum }} -
-
- 业绩库 - {{ item.performanceNum }} -
-
- 人员库 - {{ item.personnelNum }} -
-
- 财务库 - {{ item.financeNum }} -
- -
- - -
-
- 企业知识库 - 企业知识库 -
-
- 详情 - 详情 -
-
- 编辑 - 编辑 -
-
- 删除 - 删除 -
+ {{ item.errorInfos.join(',') }}
@@ -352,6 +354,11 @@ export default { } } +.enterprise-card-wrapper { + display: flex; + flex-direction: column; +} + .enterprise-card { background: #fff; border-radius: 8px; @@ -447,17 +454,15 @@ export default { } .expired-tags { - margin-bottom: 15px; + padding: 8px 12px; + flex-shrink: 0; - .expired-tag { - display: inline-block; - background: #ff4d4f; - color: #fff; - font-size: 12px; - padding: 2px 8px; - border-radius: 4px; - margin-right: 8px; - margin-bottom: 4px; + .expired-text { + display: block; + color: #db3e29; + font-size: 14px; + line-height: 1.5; + word-break: break-all; } } diff --git a/src/views/enterpriseLibrary/personnel/components/child/QualificationInfoDetail.vue b/src/views/enterpriseLibrary/personnel/components/child/QualificationInfoDetail.vue index 1f67544..4cb8f0c 100644 --- a/src/views/enterpriseLibrary/personnel/components/child/QualificationInfoDetail.vue +++ b/src/views/enterpriseLibrary/personnel/components/child/QualificationInfoDetail.vue @@ -7,28 +7,59 @@