advice.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. let fileArray = [];
  2. function openApply() {
  3. const manual = document.getElementById('advice_manual');
  4. const manualHead = document.getElementById('advice_manual_header');
  5. const apply = document.getElementById('advice_apply');
  6. const applyHead = document.getElementById('advice_apply_header');
  7. manual.style.display = 'none';
  8. manualHead.style.display = 'none';
  9. apply.style.display = 'block';
  10. applyHead.style.display = 'block';
  11. }
  12. async function dupleNickCheck() {
  13. const nicknameInput = document.getElementById('lg_nickname');
  14. const nickname = nicknameInput.value;
  15. if (nickname.length > 0) {
  16. const res = await axios.post('api/v1/board/nickname', {nickname})
  17. if (res.data.checkCount > 0) {
  18. alert('중복된 닉네임입니다.');
  19. nicknameInput.value = null;
  20. } else {
  21. alert('사용 가능한 닉네임입니다.');
  22. nicknameInput.disabled = true;
  23. }
  24. }
  25. }
  26. function subForm() {
  27. if (validationCheck()) {
  28. const form = document.getElementById('logi_ad_form')
  29. const formData = new FormData(form);
  30. formData.append('userName', document.getElementById('lg_name').value);
  31. formData.append('phoneNum', document.getElementById('lg_phone').value);
  32. formData.append('email', document.getElementById('lg_email').value);
  33. formData.append('nickname', document.getElementById('lg_nickname').value);
  34. if (fileArray.length > 0) {
  35. for (let file of fileArray) {
  36. formData.append('files', file[0]);
  37. }
  38. }
  39. axios.post('api/v1/board', formData)
  40. .then(function (res) {
  41. alert('신청이 완료되었습니다.');
  42. clearApply();
  43. clearModal();
  44. })
  45. .catch(function (e) {
  46. console.log(e)
  47. })
  48. }
  49. }
  50. function clearApply() {
  51. const div = document.getElementById('advice_apply');
  52. const inputElements = div.querySelectorAll('input');
  53. const btnElements = div.querySelectorAll('button');
  54. inputElements.forEach(input => {
  55. input.value = '';
  56. });
  57. btnElements.forEach(btn => {
  58. btn.disabled = false;
  59. })
  60. const ul = document.getElementById('lg_file_list');
  61. ul.innerHTML = '';
  62. fileArray = [];
  63. }
  64. /*function clearModal() {
  65. const form = document.getElementById('check_info');
  66. const inputElements = form.querySelectorAll('input');
  67. inputElements.forEach(input => {
  68. input.value = '';
  69. });
  70. const timer = document.getElementById('timer');
  71. timer.innerHTML = '';
  72. }*/
  73. function initFile(input) {
  74. const files = input.files;
  75. let html = '';
  76. if (fileArray.length > 5) {
  77. alert('파일은 5개까지 업로드 가능합니다.')
  78. } else {
  79. fileArray.push(files);
  80. }
  81. const ul = document.getElementById('lg_file_list');
  82. const textNode = document.createTextNode(files[0].name);
  83. const li = document.createElement('li');
  84. li.setAttribute('class', 'list-group-item')
  85. li.appendChild(textNode);
  86. ul.appendChild(li);
  87. }
  88. async function bindDetail(id) {
  89. const data = await getDetail(id);
  90. if (data.comment != null) {
  91. data.content = `${data.content}\n\n\n----------답변----------\n\n\n${data.comment}`;
  92. }
  93. document.getElementById('lg_detail_name').value = data.userName;
  94. document.getElementById('lg_detail_phone').value = data.phoneNum;
  95. document.getElementById('lg_detail_email').value = data.email;
  96. document.getElementById('lg_detail_nickname').value = data.nickName;
  97. document.getElementById('lg_detail_company').value = data.company;
  98. document.getElementById('lg_detail_title').value = data.title;
  99. document.getElementById('lg_detail_content').value = data.content;
  100. }
  101. function getDetail(id) {
  102. return axios.get('/api/v1/board/detail', {params: {id}})
  103. .then(res => {
  104. return res.data;
  105. })
  106. .catch(error => {
  107. return error;
  108. })
  109. }