useSalesData.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /**
  2. * 영업사원 관련 데이터 관리 Composable
  3. * 팀 리스트, 직책 리스트 및 관련 유틸리티 함수 제공
  4. */
  5. export const useSalesData = () => {
  6. const config = useRuntimeConfig()
  7. /**
  8. * 회사별 영업팀 리스트 반환
  9. */
  10. const getTeamsList = () => {
  11. switch (config.public.company) {
  12. case "g":
  13. return [
  14. { id: 0, name: "마스터팀" },
  15. { id: 1, name: "1팀" },
  16. { id: 2, name: "2팀" },
  17. { id: 3, name: "3팀" },
  18. { id: 4, name: "4팀" },
  19. { id: 5, name: "5팀" },
  20. { id: 6, name: "6팀" },
  21. { id: 7, name: "7팀" },
  22. { id: 8, name: "8팀" },
  23. { id: 9, name: "9팀" },
  24. { id: 10, name: "10팀" },
  25. ]
  26. case "w":
  27. return [
  28. { id: 0, name: "특판팀" },
  29. { id: 1, name: "1팀" },
  30. { id: 2, name: "2팀" },
  31. { id: 3, name: "3팀" },
  32. { id: 4, name: "4팀" },
  33. { id: 5, name: "5팀" },
  34. { id: 6, name: "6팀" },
  35. { id: 7, name: "7팀" },
  36. { id: 8, name: "8팀" },
  37. { id: 9, name: "9팀" },
  38. { id: 10, name: "10팀" },
  39. ]
  40. default:
  41. return [
  42. { id: 0, name: "마스터팀" },
  43. { id: 1, name: "1팀" },
  44. { id: 2, name: "2팀" },
  45. { id: 3, name: "3팀" },
  46. { id: 4, name: "4팀" },
  47. { id: 5, name: "5팀" },
  48. { id: 6, name: "6팀" },
  49. { id: 7, name: "7팀" },
  50. { id: 8, name: "8팀" },
  51. { id: 9, name: "9팀" },
  52. { id: 10, name: "10팀" },
  53. ]
  54. }
  55. }
  56. /**
  57. * 회사별 직책 리스트 반환
  58. */
  59. const getPositionsList = () => {
  60. switch (config.public.company) {
  61. case "g":
  62. return [
  63. { value: 10, label: "팀장" },
  64. { value: 15, label: "마스터" },
  65. { value: 20, label: "차장" },
  66. { value: 30, label: "과장" },
  67. { value: 40, label: "대리" },
  68. { value: 60, label: "사원" },
  69. ]
  70. case "w":
  71. return [
  72. { value: 0, label: "인턴" },
  73. { value: 1, label: "사원" },
  74. { value: 2, label: "주임" },
  75. { value: 3, label: "대리" },
  76. { value: 4, label: "과장" },
  77. { value: 5, label: "차장" },
  78. { value: 6, label: "부장" },
  79. { value: 7, label: "팀장" },
  80. { value: 8, label: "지점장" },
  81. { value: 9, label: "Expert" },
  82. { value: 10, label: "부지점장" },
  83. ]
  84. default:
  85. return []
  86. }
  87. }
  88. const teams = ref(getTeamsList())
  89. const positions = ref(getPositionsList())
  90. /**
  91. * 팀 ID로 팀 이름 조회
  92. * @param {number|string} teamId - 팀 ID
  93. * @returns {string} 팀 이름
  94. */
  95. const getTeamName = (teamId) => {
  96. const team = teams.value.find(t => t.id == teamId)
  97. return team ? team.name : "-"
  98. }
  99. /**
  100. * 직책 코드로 직책 이름 조회
  101. * @param {number|string} positionCode - 직책 코드
  102. * @returns {string} 직책 이름
  103. */
  104. const getPositionName = (positionCode) => {
  105. const position = positions.value.find(p => p.value == positionCode)
  106. return position ? position.label : "-"
  107. }
  108. return {
  109. teams,
  110. positions,
  111. getTeamName,
  112. getPositionName,
  113. }
  114. }