From 21455a92583767197e0905b19b78101cc14bee54 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Wed, 19 Nov 2025 10:21:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/bonus.js | 67 +++++++++++++++++++ src/utils/request.js | 2 +- .../personnel/components/child/BasicInfo.vue | 8 ++- .../technical/components/LeftType.vue | 2 + .../technical/components/RightTable.vue | 4 +- 5 files changed, 79 insertions(+), 4 deletions(-) diff --git a/src/utils/bonus.js b/src/utils/bonus.js index 534d9a9..4643a59 100644 --- a/src/utils/bonus.js +++ b/src/utils/bonus.js @@ -238,4 +238,71 @@ export function formatDate(dateStr) { const day = match[3].padStart(2, '0'); // 日期补零 return `${year}-${month}-${day}`; +} + +// 将中文日期(包括毕业证书上的日期)转换为yyyy-MM-dd格式 +export function convertChineseDate(chineseDate) { + if (!chineseDate) return ''; + + const chineseNumbers = { + '〇': '0', '○': '0', '零': '0', '○': '0', + '一': '1', '二': '2', '三': '3', '四': '4', '五': '5', + '六': '6', '七': '7', '八': '8', '九': '9', '十': '10' + }; + + const monthMap = { + '一': '01', '二': '02', '三': '03', '四': '04', '五': '05', '六': '06', + '七': '07', '八': '08', '九': '09', '十': '10', '十一': '11', '十二': '12', + '1': '01', '2': '02', '3': '03', '4': '04', '5': '05', '6': '06', + '7': '07', '8': '08', '9': '09', '10': '10', '11': '11', '12': '12' + }; + + try { + let dateStr = chineseDate.toString(); + + // 处理年份中的中文数字 + let yearPart = dateStr.split('年')[0]; + let convertedYear = ''; + for (let char of yearPart) { + convertedYear += chineseNumbers[char] || char; + } + + // 提取月日部分 + const monthDayPart = dateStr.split('年')[1]; + if (!monthDayPart) return chineseDate; + + const monthMatch = monthDayPart.match(/(.+?)月/); + const dayMatch = monthDayPart.match(/(\d+|[一二三四五六七八九十]+)日/); + + const year = convertedYear; + let month = monthMatch ? (monthMap[monthMatch[1]] || monthMatch[1].padStart(2, '0')) : '01'; + let day = '01'; + + // 处理日 + if (dayMatch) { + let dayStr = dayMatch[1]; + // 转换中文日 + if (isNaN(dayStr)) { + if (dayStr === '十') day = '10'; + else if (dayStr.startsWith('十')) day = '1' + (chineseNumbers[dayStr[1]] || '0'); + else if (dayStr.endsWith('十')) day = (chineseNumbers[dayStr[0]] || '0') + '0'; + else day = dayStr.split('').map(char => chineseNumbers[char] || char).join(''); + } else { + day = dayStr; + } + day = day.padStart(2, '0'); + } + + // 验证日期有效性 + const finalDate = `${year}-${month}-${day}`; + if (!isNaN(new Date(finalDate).getTime())) { + return finalDate; + } + + return chineseDate; + + } catch (error) { + console.error('日期转换错误:', error); + return chineseDate; + } } \ No newline at end of file diff --git a/src/utils/request.js b/src/utils/request.js index 4ce5d00..66c983e 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -41,7 +41,7 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, - timeout: 60000 * 2, + timeout: 60000 * 4, }) // 判断是否为二进制数据(File/Blob) diff --git a/src/views/enterpriseLibrary/personnel/components/child/BasicInfo.vue b/src/views/enterpriseLibrary/personnel/components/child/BasicInfo.vue index 6ba33a6..35fad9d 100644 --- a/src/views/enterpriseLibrary/personnel/components/child/BasicInfo.vue +++ b/src/views/enterpriseLibrary/personnel/components/child/BasicInfo.vue @@ -124,6 +124,7 @@