apps:public:inquiry

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
apps:public:inquiry [2020/03/18 17:22]
admin
apps:public:inquiry [2020/06/30 17:30] (現在)
行 119: 行 119:
 </script> </script>
  
-<script+<script src="/lib/components/public/inquiry.js"></script>
-const VueRecaptcha window.VueRecaptcha; +
- +
-Vue.component('confirm-modal',+
-  template: '#confirm-modal-template', +
-  components: { +
-    'modal-base': httpVueLoader('/lib/components/ModalBase.vue'+
-  }, +
-  data: function() { +
-    return { +
-      message: { +
-        type: '', +
-        title: '', +
-        content: '', +
-        name: '', +
-        email: '' +
-      } +
-    } +
-  }, +
-  methods: { +
-    show(message) { +
-      this.message = message; +
-      jQuery('#confirmModal').modal('show'); +
-    }, +
-    hide() { +
-      jQuery('#confirmModal').modal('hide'); +
-    }, +
-    sendButtonClickHandler() { +
-      this.$emit('send-message'); +
-      this.hide(); +
-    }, +
-    cancelButtonClickHandler() { +
-      this.hide(); +
-    } +
-  } +
-}); +
- +
-var app = new Vue({ +
-  el: '#app', +
-  components: {  +
-    'vue-recaptcha': VueRecaptcha +
-  }, +
-  data: { +
-    message: { +
-      type: '', +
-      title: '', +
-      content: '', +
-      name: '', +
-      email: '' +
-    }, +
-    errors: { +
-      type: '', +
-      title: '', +
-      content: '', +
-      name: '', +
-      email: '' +
-    } +
-  }, +
-  methods: { +
-    clearMessage() { +
-      this.message.type = ''; +
-      this.message.title = ''; +
-      this.message.content = ''; +
-      this.message.name = ''; +
-      this.message.email = ''; +
-    }, +
-    clearErrors() { +
-      this.errors.type = ''; +
-      this.errors.title = ''; +
-      this.errors.content = ''; +
-      this.errors.name = ''; +
-      this.errors.email = ''; +
-    }, +
-    validate() { +
-      let isValid = true; +
-      this.clearErrors(); +
-      this.message.recaptcha = document.getElementById('g-recaptcha-response').value; +
-      if (!this.message.recaptcha ) { +
-        this.errors.type = 'チェックしてください.'; +
-        isValid = false; +
-      }       +
-      if (!this.message.type) { +
-        this.errors.type = 'お問い合わせの種類を選択してください.'; +
-        isValid = false; +
-      } +
-      if (!this.message.name) { +
-        this.errors.name = 'お名前を入力してください.'; +
-        isValid = false; +
-      } +
-      if (!this.message.email) { +
-        this.errors.email = '正しい email アドレスを入力してください.'; +
-        isValid = false; +
-      } +
-      if (this.message.type == '大会要項の送付依頼' && !this.message.content) { +
-        this.errors.content = '大会要項の送付依頼の場合は、通信欄に送付先住所を記入してください.'; +
-        isValid = false; +
-      } +
-      return isValid; +
-    }, +
-    showConfirmModalHandler() { +
-      if (this.validate()) { +
-        this.$refs.confirmModal.show(this.message); +
-      } +
-    }, +
-    sendMessageHandler() { +
-      this.loading = true; +
-      const url = '/lib/exe/api.php'; +
-      const api = axios.create({withCredentials: true}); +
-      api.post(url,+
-        resource: 'apps:inquiry', +
-        action: 'sendInquiry', +
-        params: this.message +
-      }) +
-      .then((res) =+
-        alert('送信しました.'); +
-      }) +
-      .catch((res) => { +
-        alert('送信に失敗しました. 内容を確認し、再送信してください.'); +
-        this.loading = false; +
-      }); +
-    },    +
-    clearMessageHandler() { +
-      this.clearErrors(); +
-      this.clearMessage(); +
-    } +
-  } +
-}) +
-</script>+
  
 </html> </html>
  • apps/public/inquiry.txt
  • 最終更新: 2020/06/30 17:30
  • (外部編集)