documentName.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * 文档名称处理工具
  3. * 用于格式化文档名称的显示
  4. */
  5. /**
  6. * 格式化文档名称用于显示
  7. * 规则:通过"-"拆分,消除其中的"NA",然后再用"-"合并
  8. * 例如:
  9. * - CHINESE01-NA-NA-张三文档计划-20260131 -> CHINESE01-张三文档计划-20260131
  10. * - PRJ001-中国-NA-文档名-20260121 -> PRJ001-中国-文档名-20260121
  11. * - PRJ001-中国-59-文档名-20260121 -> PRJ001-中国-59-文档名-20260121
  12. *
  13. * @param {String} name - 原始文档名称
  14. * @returns {String} 格式化后的文档名称
  15. */
  16. export const formatDocumentNameForDisplay = (name) => {
  17. if (!name) return ''
  18. // 按 - 分割名称
  19. const parts = name.split('-')
  20. // 过滤掉值为 'NA' 的部分
  21. const filteredParts = parts.filter(part => part !== 'NA')
  22. // 重新组合
  23. return filteredParts.join('-')
  24. }
  25. /**
  26. * 解析文档名称的各个部分
  27. * @param {String} name - 文档名称
  28. * @returns {Object} 包含各部分的对象
  29. */
  30. export const parseDocumentName = (name) => {
  31. if (!name) {
  32. return {
  33. projectCode: '',
  34. country: '',
  35. center: '',
  36. specificName: '',
  37. effectiveDate: ''
  38. }
  39. }
  40. const parts = name.split('-')
  41. // 标准格式:{项目编号}-{国家名}-{中心号}-{具体文档名}-{生效日期}
  42. if (parts.length >= 5) {
  43. return {
  44. projectCode: parts[0] || '',
  45. country: parts[1] || '',
  46. center: parts[2] || '',
  47. specificName: parts.slice(3, -1).join('-') || '', // 中间部分可能包含多个-
  48. effectiveDate: parts[parts.length - 1] || ''
  49. }
  50. }
  51. // 非标准格式,返回原始名称
  52. return {
  53. projectCode: '',
  54. country: '',
  55. center: '',
  56. specificName: name,
  57. effectiveDate: ''
  58. }
  59. }