back-end done

This commit is contained in:
Amir Mohamadi
2020-12-10 16:36:48 +03:30
parent 80a7abafb7
commit bc5e617778
92 changed files with 5217 additions and 3379 deletions
+49 -16
View File
@@ -69,46 +69,45 @@
<div class="row">
<div class="col-12">
<h2>{{staticData.t6}}</h2>
<form class="form">
<form class="form" @submit.prevent="upload">
<div class="row">
<div class="col-12">
<div class="formRow center-align">
<div class="formRow center-align" :class="validation.reason ? 'err' : null">
<select name="reason" v-model="formData.reason">
<option disabled selected :value="false">{{staticData.t7}}</option>
<option value="wtf">دلیل خاصی ندارم والا هوثلم سر رفته بود</option>
<option value="">2</option>
<option value="">3</option>
<option v-for="item in reasons" :key="item._id" :value="item.reason_details.fa.reason">{{item.reason_details[$route.params.lang].reason}}</option>
</select>
<p v-if="validation.reason">{{validation.reason.msg}}</p>
</div>
</div>
<div class="col-6">
<div class="formRow err">
<div class="formRow" :class="validation.first_name ? 'err' : null">
<input type="text" :placeholder="staticData.t8" name="first_name" v-model="formData.first_name">
<p>err</p>
<p v-if="validation.first_name">{{validation.first_name.msg}}</p>
</div>
</div>
<div class="col-6">
<div class="formRow">
<div class="formRow" :class="validation.last_name ? 'err' : null">
<input type="text" :placeholder="staticData.t9" name="last_name" v-model="formData.last_name">
<p>err</p>
<p v-if="validation.last_name">{{validation.last_name.msg}}</p>
</div>
</div>
<div class="col-6">
<div class="formRow">
<div class="formRow" :class="validation.phone_number ? 'err' : null">
<input type="text" :placeholder="staticData.t10" name="phone_number" v-model="formData.phone_number">
<p>err</p>
<p v-if="validation.phone_number">{{validation.phone_number.msg}}</p>
</div>
</div>
<div class="col-6">
<div class="formRow">
<div class="formRow" :class="validation.email ? 'err' : null">
<input type="text" :placeholder="staticData.t11" name="email" v-model="formData.email">
<p>err</p>
<p v-if="validation.email">{{validation.email.msg}}</p>
</div>
</div>
<div class="col-12">
<div class="formRow">
<div class="formRow" :class="validation.message ? 'err' : null">
<textarea :placeholder="staticData.t12" name="message" v-model="formData.message"></textarea>
<p>err</p>
<p v-if="validation.message">{{validation.message.msg}}</p>
</div>
</div>
<div class="col-12">
@@ -138,13 +137,47 @@
email: '',
message: '',
locale: this.$route.params.lang
}
},
reasons: null,
validation: {}
}
},
computed: {
staticData() {
return this.$store.state.staticData.contact[this.$route.params.lang]
}
},
methods: {
upload() {
this.validation = {}
const data = this.formData
this.$axios.post(`/api/public/contact`, data)
.then(res => {
this.$message({
message: this.staticData.t14,
type: 'success'
})
this.formData = {
reason: false,
first_name: '',
last_name: '',
phone_number: '',
email: '',
message: '',
locale: this.$route.params.lang
}
})
.catch(err => {
if (err.response.status === 422) this.validation = err.response.data.validation
else console.log(err.response.data.message)
})
}
},
async asyncData({$axios}) {
const reasons = await $axios.get(`/api/public/contact/reason`)
return {
reasons: reasons.data
}
}
}
</script>