|
|
@@ -7,31 +7,25 @@
|
|
|
<div class="form--contents--wrap">
|
|
|
<div class="contact-form">
|
|
|
<div class="form--contents half--cont">
|
|
|
- <h3>작성자 (성명) <span class="required">*</span></h3>
|
|
|
- <div>
|
|
|
- <UInput
|
|
|
- v-model="formData.name"
|
|
|
- placeholder="성명을 입력해주세요"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <h3>작성자 (성명) <span class="required">*</span></h3>
|
|
|
+ <UInput
|
|
|
+ v-model="formData.name"
|
|
|
+ placeholder="성명을 입력해주세요"
|
|
|
+ />
|
|
|
</div>
|
|
|
<div class="form--contents half--cont">
|
|
|
- <h3>직책</h3>
|
|
|
- <div>
|
|
|
- <UInput
|
|
|
- v-model="formData.etc1"
|
|
|
- placeholder="직책을 입력해주세요"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <h3>직책</h3>
|
|
|
+ <UInput
|
|
|
+ v-model="formData.etc1"
|
|
|
+ placeholder="직책을 입력해주세요"
|
|
|
+ />
|
|
|
</div>
|
|
|
<div class="form--contents half--cont">
|
|
|
- <h3>회사명</h3>
|
|
|
- <div>
|
|
|
- <UInput
|
|
|
- v-model="formData.etc2"
|
|
|
- placeholder="회사명을 입력해주세요"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <h3>회사명</h3>
|
|
|
+ <UInput
|
|
|
+ v-model="formData.etc2"
|
|
|
+ placeholder="회사명을 입력해주세요"
|
|
|
+ />
|
|
|
</div>
|
|
|
<div class="form--contents half--cont">
|
|
|
<h3>연락처 <span class="required">*</span></h3>
|
|
|
@@ -55,60 +49,29 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="form--contents half--cont">
|
|
|
- <h3>이메일 <span class="required">*</span></h3>
|
|
|
- <div>
|
|
|
- <UInput
|
|
|
- type="email"
|
|
|
- v-model="formData.email"
|
|
|
- placeholder="이메일을 입력해주세요"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <h3>이메일 <span class="required">*</span></h3>
|
|
|
+ <UInput
|
|
|
+ type="email"
|
|
|
+ v-model="formData.email"
|
|
|
+ placeholder="이메일을 입력해주세요"
|
|
|
+ />
|
|
|
</div>
|
|
|
<div class="form--contents half--cont">
|
|
|
<h3>문의항목 <span class="required">*</span></h3>
|
|
|
- <div class="radio-group">
|
|
|
- <label>
|
|
|
- <input
|
|
|
- type="radio"
|
|
|
- v-model="formData.category"
|
|
|
- value="원료"
|
|
|
- />
|
|
|
- <span>원료</span>
|
|
|
- </label>
|
|
|
- <label>
|
|
|
- <input
|
|
|
- type="radio"
|
|
|
- v-model="formData.category"
|
|
|
- value="제품"
|
|
|
- />
|
|
|
- <span>제품</span>
|
|
|
- </label>
|
|
|
- <label>
|
|
|
- <input
|
|
|
- type="radio"
|
|
|
- v-model="formData.category"
|
|
|
- value="기술"
|
|
|
- />
|
|
|
- <span>기술</span>
|
|
|
- </label>
|
|
|
- <label>
|
|
|
- <input
|
|
|
- type="radio"
|
|
|
- v-model="formData.category"
|
|
|
- value="기타"
|
|
|
- />
|
|
|
- <span>기타</span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
+ <URadioGroup
|
|
|
+ v-model="formData.category"
|
|
|
+ :items="categoryOptions"
|
|
|
+ value-key="value"
|
|
|
+ orientation="horizontal"
|
|
|
+ class="qna--radio--group"
|
|
|
+ />
|
|
|
</div>
|
|
|
<div class="form--contents">
|
|
|
- <h3>제목 <span class="required">*</span></h3>
|
|
|
- <div>
|
|
|
- <UInput
|
|
|
- v-model="formData.title"
|
|
|
- placeholder="제목을 입력해주세요"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <h3>제목 <span class="required">*</span></h3>
|
|
|
+ <UInput
|
|
|
+ v-model="formData.title"
|
|
|
+ placeholder="제목을 입력해주세요"
|
|
|
+ />
|
|
|
</div>
|
|
|
<div class="form--contents">
|
|
|
<h3>내용 <span class="required">*</span></h3>
|
|
|
@@ -123,14 +86,14 @@
|
|
|
<textarea
|
|
|
v-model="formData.contents"
|
|
|
rows="10"
|
|
|
- placeholder="문의 내용을 입력해주세요"
|
|
|
+ placeholder="내용 입력"
|
|
|
></textarea>
|
|
|
</template>
|
|
|
</client-only>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="form--contents">
|
|
|
- <h3>개인 정보 수집 및 이용 동의</h3>
|
|
|
+ <h3 class="privacy--title">개인 정보 수집 및 이용 동의</h3>
|
|
|
<div class="privacy-box">
|
|
|
<div class="privacy-content">
|
|
|
그린웨일 글로벌 주식회사 ('www.greenwhaleglobal.com'이하 '그린웨일 글로벌')은(는) 「개인정보 보호법」 제30조에 따라 정부주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다.<br/><br/>
|
|
|
@@ -198,41 +161,30 @@
|
|
|
3. 대검찰청 : (국번없이) 1301 (www.spo.go.kr)<br/>
|
|
|
4. 경찰청 : (국번없이) 182 (cyberbureau.police.go.kr)<br/>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="agree-check">
|
|
|
<h4>개인정보 수집 및 이용에 동의합니까?</h4>
|
|
|
- <div class="radio-group">
|
|
|
- <label>
|
|
|
- <input
|
|
|
- type="radio"
|
|
|
- v-model="formData.agree"
|
|
|
- value="Y"
|
|
|
- />
|
|
|
- <span>동의합니다.</span>
|
|
|
- </label>
|
|
|
- <label>
|
|
|
- <input
|
|
|
- type="radio"
|
|
|
- v-model="formData.agree"
|
|
|
- value="N"
|
|
|
- />
|
|
|
- <span>동의하지 않습니다.</span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
+ <URadioGroup
|
|
|
+ v-model="formData.agree"
|
|
|
+ :items="agreeOptions"
|
|
|
+ value-key="value"
|
|
|
+ orientation="horizontal"
|
|
|
+ class="agree-radio-group"
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="form--contents">
|
|
|
- <div class="btn--wrap">
|
|
|
- <UButton
|
|
|
- :loading="isSubmitting"
|
|
|
- @click="submitForm"
|
|
|
- size="lg"
|
|
|
- color="primary"
|
|
|
- >
|
|
|
- {{ isSubmitting ? '전송중...' : '보내기' }}
|
|
|
- </UButton>
|
|
|
- </div>
|
|
|
+
|
|
|
+ <div class="btn--wrap">
|
|
|
+ <UButton
|
|
|
+ :loading="isSubmitting"
|
|
|
+ @click="submitForm"
|
|
|
+ size="lg"
|
|
|
+ >
|
|
|
+ {{ isSubmitting ? '전송중...' : '보내기' }}
|
|
|
+ </UButton>
|
|
|
</div>
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
@@ -243,7 +195,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { ref, onMounted } from 'vue'
|
|
|
+import { ref, computed, onMounted } from 'vue'
|
|
|
import TopVisual from '~/components/topVisual.vue'
|
|
|
import SummernoteEditor from '~/components/SummernoteEditor.vue'
|
|
|
|
|
|
@@ -261,6 +213,36 @@ const phoneOptions = [
|
|
|
{ value: '033', label: '033' }
|
|
|
]
|
|
|
|
|
|
+// 문의항목 옵션
|
|
|
+const categoryOptions = computed(() => [
|
|
|
+ {
|
|
|
+ value: '원료',
|
|
|
+ label: '원료',
|
|
|
+ ui: formData.value.category === '원료' ? { label: 'actv' } : {}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '제품',
|
|
|
+ label: '제품',
|
|
|
+ ui: formData.value.category === '제품' ? { label: 'actv' } : {}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '기술',
|
|
|
+ label: '기술',
|
|
|
+ ui: formData.value.category === '기술' ? { label: 'actv' } : {}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '기타',
|
|
|
+ label: '기타',
|
|
|
+ ui: formData.value.category === '기타' ? { label: 'actv' } : {}
|
|
|
+ }
|
|
|
+])
|
|
|
+
|
|
|
+// 동의 옵션
|
|
|
+const agreeOptions = [
|
|
|
+ { value: 'Y', label: '동의합니다.' },
|
|
|
+ { value: 'N', label: '동의하지 않습니다.' }
|
|
|
+]
|
|
|
+
|
|
|
// 반응형 데이터
|
|
|
const isSubmitting = ref(false)
|
|
|
const formData = ref({
|
|
|
@@ -271,15 +253,15 @@ const formData = ref({
|
|
|
tel_2: '',
|
|
|
tel_3: '',
|
|
|
email: '',
|
|
|
- category: '',
|
|
|
+ category: '원료',
|
|
|
title: '',
|
|
|
contents: '',
|
|
|
- agree: ''
|
|
|
+ agree: 'Y'
|
|
|
})
|
|
|
|
|
|
// Summernote 에디터 설정
|
|
|
const editorHeight = 400
|
|
|
-const editorPlaceholder = '문의 내용을 입력해주세요'
|
|
|
+const editorPlaceholder = '내용 입력'
|
|
|
|
|
|
// 페이지 설정
|
|
|
const className = "contact"
|
|
|
@@ -352,7 +334,7 @@ const submitForm = async () => {
|
|
|
contents: formData.value.contents
|
|
|
}
|
|
|
|
|
|
- const response = await $api.postForm('/board_proc', submitData)
|
|
|
+ const response = await $postForm('/board_proc', submitData)
|
|
|
|
|
|
if (response && response.success) {
|
|
|
alert('문의가 정상적으로 접수되었습니다.')
|
|
|
@@ -384,10 +366,10 @@ const resetForm = () => {
|
|
|
tel_2: '',
|
|
|
tel_3: '',
|
|
|
email: '',
|
|
|
- category: '',
|
|
|
+ category: '원료',
|
|
|
title: '',
|
|
|
contents: '',
|
|
|
- agree: ''
|
|
|
+ agree: 'Y'
|
|
|
}
|
|
|
}
|
|
|
|