|  | @@ -22,7 +22,7 @@
 | 
	
		
			
				|  |  |            <el-form-item label="Email" prop="email">
 | 
	
		
			
				|  |  |              <el-input v-model="form.email"></el-input>
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  | -          <el-form-item label="Language Preference">
 | 
	
		
			
				|  |  | +          <el-form-item label="Language Preference" prop="language">
 | 
	
		
			
				|  |  |              <el-select v-model="form.language" placeholder="Select Language">
 | 
	
		
			
				|  |  |                
 | 
	
		
			
				|  |  |                <el-option label="English" value="English"></el-option>
 | 
	
	
		
			
				|  | @@ -33,7 +33,7 @@
 | 
	
		
			
				|  |  |                
 | 
	
		
			
				|  |  |              </el-select>
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  | -          <el-form-item label="Your message">
 | 
	
		
			
				|  |  | +          <el-form-item label="Your message" prop="message">
 | 
	
		
			
				|  |  |              <el-input type="text" v-model="form.message"></el-input>
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  |            <el-form-item>
 | 
	
	
		
			
				|  | @@ -50,6 +50,8 @@
 | 
	
		
			
				|  |  |    import { elIsEmail, elIsValidatePhone } from "@/utils/el-validate";
 | 
	
		
			
				|  |  |    import { send as emailSend } from "@emailjs/browser";
 | 
	
		
			
				|  |  |    import { emailConfig } from "@/utils/config"
 | 
	
		
			
				|  |  | +  import { SEND_COUNT_KEY, isSameDay } from "@/utils";
 | 
	
		
			
				|  |  | +  import { Store } from "@/utils/store";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    export default {
 | 
	
		
			
				|  |  |      data() {
 | 
	
	
		
			
				|  | @@ -95,11 +97,33 @@
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      methods: {
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  |        submitForm(formName) {
 | 
	
		
			
				|  |  | +      const store = new Store();
 | 
	
		
			
				|  |  | +      const localStorageData = store.get(SEND_COUNT_KEY, {
 | 
	
		
			
				|  |  | +        time: Date.now(),
 | 
	
		
			
				|  |  | +        count: 0,
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // 判断是否同一天
 | 
	
		
			
				|  |  | +      if (isSameDay(localStorageData.time, new Date().getTime())) {
 | 
	
		
			
				|  |  | +        // 同一天 超过3次 则不允许提交
 | 
	
		
			
				|  |  | +        if (localStorageData.count >= 3) {
 | 
	
		
			
				|  |  | +          this.$alert(
 | 
	
		
			
				|  |  | +            "You have reached the maximum number of submissions!",
 | 
	
		
			
				|  |  | +            "",
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +              callback: (action) => {},
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          );
 | 
	
		
			
				|  |  | +          return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          this.$refs[formName].validate(async (valid) => {
 | 
	
		
			
				|  |  |          if (valid) {
 | 
	
		
			
				|  |  |            try {
 | 
	
		
			
				|  |  | -            this.isLoading=true;
 | 
	
		
			
				|  |  | +            this.isLoading = true;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              const data = await emailSend(
 | 
	
		
			
				|  |  |                emailConfig.SERVICE_ID,
 | 
	
	
		
			
				|  | @@ -113,13 +137,24 @@
 | 
	
		
			
				|  |  |                  message: this.form.message,
 | 
	
		
			
				|  |  |                }
 | 
	
		
			
				|  |  |              );
 | 
	
		
			
				|  |  | -              this.isLoading=false;
 | 
	
		
			
				|  |  | +              this.isLoading = false;
 | 
	
		
			
				|  |  |                
 | 
	
		
			
				|  |  |              if (data.status === 200) {
 | 
	
		
			
				|  |  | -              this.$alert('Thank you for contacting us. We’ll get in touch with you in the next 24 hours', '', {
 | 
	
		
			
				|  |  | -          callback: action => {
 | 
	
		
			
				|  |  | +              this.$alert( "Thank you for contacting us. We’ll get in touch with you in the next 24 hours", '', 
 | 
	
		
			
				|  |  | +              {
 | 
	
		
			
				|  |  | +              callback: action => {
 | 
	
		
			
				|  |  | +                this.$refs[formName].resetFields();
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +         
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | +                    // 发送成功后,保存发送次数
 | 
	
		
			
				|  |  | +                store.save(SEND_COUNT_KEY, {
 | 
	
		
			
				|  |  | +                time: Date.now(),
 | 
	
		
			
				|  |  | +                count:
 | 
	
		
			
				|  |  | +                  localStorageData.count + 1 >= 4
 | 
	
		
			
				|  |  | +                    ? 1
 | 
	
		
			
				|  |  | +                    : localStorageData.count + 1,
 | 
	
		
			
				|  |  | +              });1213             
 | 
	
		
			
				|  |  |               
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                window.alert("Form submitted failed!");
 | 
	
	
		
			
				|  | @@ -139,7 +174,7 @@
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    </script>
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  | -  <style  scoped>
 | 
	
		
			
				|  |  | +  <style scoped>
 | 
	
		
			
				|  |  |  .el-card{
 | 
	
		
			
				|  |  |    background: #9bc943;
 | 
	
		
			
				|  |  |  }
 |