Skip to content
Snippets Groups Projects
SickForm.vue 16 KiB
Newer Older
Omar Elkadi's avatar
Omar Elkadi committed
<template>
  <form
    class="container mb-1 mt-1 p-1 border border-info rounded"
    @submit.prevent="OnSubmit"
    enctype="multipart/form-data"
Omar Elkadi's avatar
Omar Elkadi committed
  >
    <div class="form-row">
Omar Elkadi's avatar
Omar Elkadi committed
      <div class="form-group col-md-5">
        <label for="fname">Vorname</label>
        <input
          type="text"
          class="form-control"
          id="fname"
          v-model="patientStudent.ForeName"
Omar Elkadi's avatar
Omar Elkadi committed
          required
        />
      </div>
      <div class="form-group col-md-5">
        <label for="lname">Nachname</label>
        <input
          type="text"
          class="form-control"
          id="lname"
          v-model="patientStudent.LastName"
Omar Elkadi's avatar
Omar Elkadi committed
          required
        />
        </div>
        <div class="form-group col-md-2">
        <label for="Matnum">Matrikuelnummer</label>
        <input
Omar Elkadi's avatar
Omar Elkadi committed
          class="form-control"
          id="Matnum"
          v-model="patientStudent.MatrikelNumber"
Omar Elkadi's avatar
Omar Elkadi committed
          required
        />
      </div>
    </div>
    <div class="form-row">
      <div class="form-group col-md-6">
        <label for="inputEmail4">E-mail</label>
        <input
          type="email"
          class="form-control"
          id="inputEmail4"
          v-model="patientStudent.EMail"
Omar Elkadi's avatar
Omar Elkadi committed
          required
        />
      </div>
      <div class="form-group col-md-6">
        <label for="phone">Anrufnummer</label>
        <input
          type="tel"
          class="form-control"
          placeholder="+00 0000 00000000"
          id="phone"
          v-model="patientStudent.PhoneNumber"
Omar Elkadi's avatar
Omar Elkadi committed
          required
        />
      </div>
    </div>
    <div class="form-row">
      <div class="form-group col-md-10">
        <label for="Street">Straße</label>
        <input
          type="text"
          class="form-control"
          id="Street"
          v-model="patientStudent.Address.Street"
Omar Elkadi's avatar
Omar Elkadi committed
          required
        />
      </div>
      <div class="form-group col-md-2">
        <label for="HausNumber">Hausnummer</label>
        <input
          type="text"
          class="form-control"
          id="HausNumber"
          v-model="patientStudent.Address.HausNumber"
Omar Elkadi's avatar
Omar Elkadi committed
          required
        />
      </div>
    </div>
    <div class="form-row">
      <div class="form-group col-md-2">
        <label for="inputZip">Postleizahl</label>
        <input type="text" class="form-control" id="inputZip" v-model="patientStudent.Address.ZIPcode" required />
Omar Elkadi's avatar
Omar Elkadi committed
      </div>
      <div class="form-group col-md-6">
        <label for="inputCity">Stadt</label>
        <input type="text" class="form-control" id="inputCity"    v-model="patientStudent.Address.City" required />
Omar Elkadi's avatar
Omar Elkadi committed
      </div>
      <div class="form-group col-md-4">
        <label for="inputCountry">Land</label>
        <select id="inputCountry" class="form-control" v-model="patientStudent.Address.selectedCountry">
Omar Elkadi's avatar
Omar Elkadi committed
           <option v-for="country in countries" v-bind:key="country.code">
            {{country.name}}
            </option>
     </select>
    </div>
    </div>
Omar Elkadi's avatar
Omar Elkadi committed
     <div class="form-row">
      <div class="form-group col-md-4">
        <label for="date-input-start">Startdatum</label>
        <input class="form-control" type="date" id="date-input-start" v-model="SickNote.StartDate" required>
Omar Elkadi's avatar
Omar Elkadi committed
      </div>
      <div class="form-group col-md-4">
      <label for="date-input-end">Enddatum</label>
       <input class="form-control" type="date" id="date-input-end" v-model="SickNote.EndDate" required>
Omar Elkadi's avatar
Omar Elkadi committed
      </div>
      <div class="form-group col-md-4">
        <label for="formFile" class="form-label">Krankmeldung</label>
        <!-- set a refrence on tag using ref="file" will allow us to get the file -->
        <input class="form-control" type="file" id="formFile" ref="file" accept=".pdf,.docx,image/*" @change="handleFileUpload()" required>
Omar Elkadi's avatar
Omar Elkadi committed
      </div>
    </div>
    <!--
     <div class="form-group">
Omar Elkadi's avatar
Omar Elkadi committed
      <div class="form-check">
        <input class="form-check-input" type="checkbox" id="gridCheck" />
        <label class="form-check-label" for="gridCheck">
          Check me out
        </label>
      </div>
    </div>
    -->
    <button type="submit" class="btn btn-success">Abschicken</button>
Omar Elkadi's avatar
Omar Elkadi committed
  </form>
</template>

<script lang="ts">
import axios from 'axios'

Omar Elkadi's avatar
Omar Elkadi committed
export default {
  data () {
    return {
      EvidenceFile: '',
      patientStudent: {
Omar Elkadi's avatar
Omar Elkadi committed
        ForeName: '',
        LastName: '',
        MatrikelNumber: '',
        PhoneNumber: '',
        EMail: '',
        Address: {
          Street: '',
          HausNumber: '',
          City: '',
          ZIPcode: '',
          selectedCountry: 'Germany'
        }
      },
      SickNote: {
        StartDate: new Date().getDate(),
        EndDate: new Date().getDate()
Omar Elkadi's avatar
Omar Elkadi committed
      },
      countries:
      [
        { name: 'Afghanistan', code: 'AF' },
        { name: 'Åland Islands', code: 'AX' },
        { name: 'Albania', code: 'AL' },
        { name: 'Algeria', code: 'DZ' },
        { name: 'American Samoa', code: 'AS' },
        { name: 'AndorrA', code: 'AD' },
        { name: 'Angola', code: 'AO' },
        { name: 'Anguilla', code: 'AI' },
        { name: 'Antarctica', code: 'AQ' },
        { name: 'Antigua and Barbuda', code: 'AG' },
        { name: 'Argentina', code: 'AR' },
        { name: 'Armenia', code: 'AM' },
        { name: 'Aruba', code: 'AW' },
        { name: 'Australia', code: 'AU' },
        { name: 'Austria', code: 'AT' },
        { name: 'Azerbaijan', code: 'AZ' },
        { name: 'Bahamas', code: 'BS' },
        { name: 'Bahrain', code: 'BH' },
        { name: 'Bangladesh', code: 'BD' },
        { name: 'Barbados', code: 'BB' },
        { name: 'Belarus', code: 'BY' },
        { name: 'Belgium', code: 'BE' },
        { name: 'Belize', code: 'BZ' },
        { name: 'Benin', code: 'BJ' },
        { name: 'Bermuda', code: 'BM' },
        { name: 'Bhutan', code: 'BT' },
        { name: 'Bolivia', code: 'BO' },
        { name: 'Bosnia and Herzegovina', code: 'BA' },
        { name: 'Botswana', code: 'BW' },
        { name: 'Bouvet Island', code: 'BV' },
        { name: 'Brazil', code: 'BR' },
        { name: 'British Indian Ocean Territory', code: 'IO' },
        { name: 'Brunei Darussalam', code: 'BN' },
        { name: 'Bulgaria', code: 'BG' },
        { name: 'Burkina Faso', code: 'BF' },
        { name: 'Burundi', code: 'BI' },
        { name: 'Cambodia', code: 'KH' },
        { name: 'Cameroon', code: 'CM' },
        { name: 'Canada', code: 'CA' },
        { name: 'Cape Verde', code: 'CV' },
        { name: 'Cayman Islands', code: 'KY' },
        { name: 'Central African Republic', code: 'CF' },
        { name: 'Chad', code: 'TD' },
        { name: 'Chile', code: 'CL' },
        { name: 'China', code: 'CN' },
        { name: 'Christmas Island', code: 'CX' },
        { name: 'Cocos (Keeling) Islands', code: 'CC' },
        { name: 'Colombia', code: 'CO' },
        { name: 'Comoros', code: 'KM' },
        { name: 'Congo', code: 'CG' },
        { name: 'Congo, The Democratic Republic of the', code: 'CD' },
        { name: 'Cook Islands', code: 'CK' },
        { name: 'Costa Rica', code: 'CR' },
        { name: 'Cote D\'Ivoire', code: 'CI' },
        { name: 'Croatia', code: 'HR' },
        { name: 'Cuba', code: 'CU' },
        { name: 'Cyprus', code: 'CY' },
        { name: 'Czech Republic', code: 'CZ' },
        { name: 'Denmark', code: 'DK' },
        { name: 'Djibouti', code: 'DJ' },
        { name: 'Dominica', code: 'DM' },
        { name: 'Dominican Republic', code: 'DO' },
        { name: 'Ecuador', code: 'EC' },
        { name: 'Egypt', code: 'EG' },
        { name: 'El Salvador', code: 'SV' },
        { name: 'Equatorial Guinea', code: 'GQ' },
        { name: 'Eritrea', code: 'ER' },
        { name: 'Estonia', code: 'EE' },
        { name: 'Ethiopia', code: 'ET' },
        { name: 'Falkland Islands (Malvinas)', code: 'FK' },
        { name: 'Faroe Islands', code: 'FO' },
        { name: 'Fiji', code: 'FJ' },
        { name: 'Finland', code: 'FI' },
        { name: 'France', code: 'FR' },
        { name: 'French Guiana', code: 'GF' },
        { name: 'French Polynesia', code: 'PF' },
        { name: 'French Southern Territories', code: 'TF' },
        { name: 'Gabon', code: 'GA' },
        { name: 'Gambia', code: 'GM' },
        { name: 'Georgia', code: 'GE' },
        { name: 'Germany', code: 'DE' },
        { name: 'Ghana', code: 'GH' },
        { name: 'Gibraltar', code: 'GI' },
        { name: 'Greece', code: 'GR' },
        { name: 'Greenland', code: 'GL' },
        { name: 'Grenada', code: 'GD' },
        { name: 'Guadeloupe', code: 'GP' },
        { name: 'Guam', code: 'GU' },
        { name: 'Guatemala', code: 'GT' },
        { name: 'Guernsey', code: 'GG' },
        { name: 'Guinea', code: 'GN' },
        { name: 'Guinea-Bissau', code: 'GW' },
        { name: 'Guyana', code: 'GY' },
        { name: 'Haiti', code: 'HT' },
        { name: 'Heard Island and Mcdonald Islands', code: 'HM' },
        { name: 'Holy See (Vatican City State)', code: 'VA' },
        { name: 'Honduras', code: 'HN' },
        { name: 'Hong Kong', code: 'HK' },
        { name: 'Hungary', code: 'HU' },
        { name: 'Iceland', code: 'IS' },
        { name: 'India', code: 'IN' },
        { name: 'Indonesia', code: 'ID' },
        { name: 'Iran, Islamic Republic Of', code: 'IR' },
        { name: 'Iraq', code: 'IQ' },
        { name: 'Ireland', code: 'IE' },
        { name: 'Isle of Man', code: 'IM' },
        { name: 'Israel', code: 'IL' },
        { name: 'Italy', code: 'IT' },
        { name: 'Jamaica', code: 'JM' },
        { name: 'Japan', code: 'JP' },
        { name: 'Jersey', code: 'JE' },
        { name: 'Jordan', code: 'JO' },
        { name: 'Kazakhstan', code: 'KZ' },
        { name: 'Kenya', code: 'KE' },
        { name: 'Kiribati', code: 'KI' },
        { name: 'Korea, Democratic People\'S Republic of', code: 'KP' },
        { name: 'Korea, Republic of', code: 'KR' },
        { name: 'Kuwait', code: 'KW' },
        { name: 'Kyrgyzstan', code: 'KG' },
        { name: 'Lao People\'S Democratic Republic', code: 'LA' },
        { name: 'Latvia', code: 'LV' },
        { name: 'Lebanon', code: 'LB' },
        { name: 'Lesotho', code: 'LS' },
        { name: 'Liberia', code: 'LR' },
        { name: 'Libyan Arab Jamahiriya', code: 'LY' },
        { name: 'Liechtenstein', code: 'LI' },
        { name: 'Lithuania', code: 'LT' },
        { name: 'Luxembourg', code: 'LU' },
        { name: 'Macao', code: 'MO' },
        { name: 'Macedonia, The Former Yugoslav Republic of', code: 'MK' },
        { name: 'Madagascar', code: 'MG' },
        { name: 'Malawi', code: 'MW' },
        { name: 'Malaysia', code: 'MY' },
        { name: 'Maldives', code: 'MV' },
        { name: 'Mali', code: 'ML' },
        { name: 'Malta', code: 'MT' },
        { name: 'Marshall Islands', code: 'MH' },
        { name: 'Martinique', code: 'MQ' },
        { name: 'Mauritania', code: 'MR' },
        { name: 'Mauritius', code: 'MU' },
        { name: 'Mayotte', code: 'YT' },
        { name: 'Mexico', code: 'MX' },
        { name: 'Micronesia, Federated States of', code: 'FM' },
        { name: 'Moldova, Republic of', code: 'MD' },
        { name: 'Monaco', code: 'MC' },
        { name: 'Mongolia', code: 'MN' },
        { name: 'Montserrat', code: 'MS' },
        { name: 'Morocco', code: 'MA' },
        { name: 'Mozambique', code: 'MZ' },
        { name: 'Myanmar', code: 'MM' },
        { name: 'Namibia', code: 'NA' },
        { name: 'Nauru', code: 'NR' },
        { name: 'Nepal', code: 'NP' },
        { name: 'Netherlands', code: 'NL' },
        { name: 'Netherlands Antilles', code: 'AN' },
        { name: 'New Caledonia', code: 'NC' },
        { name: 'New Zealand', code: 'NZ' },
        { name: 'Nicaragua', code: 'NI' },
        { name: 'Niger', code: 'NE' },
        { name: 'Nigeria', code: 'NG' },
        { name: 'Niue', code: 'NU' },
        { name: 'Norfolk Island', code: 'NF' },
        { name: 'Northern Mariana Islands', code: 'MP' },
        { name: 'Norway', code: 'NO' },
        { name: 'Oman', code: 'OM' },
        { name: 'Pakistan', code: 'PK' },
        { name: 'Palau', code: 'PW' },
        { name: 'Palestinian Territory, Occupied', code: 'PS' },
        { name: 'Panama', code: 'PA' },
        { name: 'Papua New Guinea', code: 'PG' },
        { name: 'Paraguay', code: 'PY' },
        { name: 'Peru', code: 'PE' },
        { name: 'Philippines', code: 'PH' },
        { name: 'Pitcairn', code: 'PN' },
        { name: 'Poland', code: 'PL' },
        { name: 'Portugal', code: 'PT' },
        { name: 'Puerto Rico', code: 'PR' },
        { name: 'Qatar', code: 'QA' },
        { name: 'Reunion', code: 'RE' },
        { name: 'Romania', code: 'RO' },
        { name: 'Russian Federation', code: 'RU' },
        { name: 'RWANDA', code: 'RW' },
        { name: 'Saint Helena', code: 'SH' },
        { name: 'Saint Kitts and Nevis', code: 'KN' },
        { name: 'Saint Lucia', code: 'LC' },
        { name: 'Saint Pierre and Miquelon', code: 'PM' },
        { name: 'Saint Vincent and the Grenadines', code: 'VC' },
        { name: 'Samoa', code: 'WS' },
        { name: 'San Marino', code: 'SM' },
        { name: 'Sao Tome and Principe', code: 'ST' },
        { name: 'Saudi Arabia', code: 'SA' },
        { name: 'Senegal', code: 'SN' },
        { name: 'Serbia and Montenegro', code: 'CS' },
        { name: 'Seychelles', code: 'SC' },
        { name: 'Sierra Leone', code: 'SL' },
        { name: 'Singapore', code: 'SG' },
        { name: 'Slovakia', code: 'SK' },
        { name: 'Slovenia', code: 'SI' },
        { name: 'Solomon Islands', code: 'SB' },
        { name: 'Somalia', code: 'SO' },
        { name: 'South Africa', code: 'ZA' },
        { name: 'South Georgia and the South Sandwich Islands', code: 'GS' },
        { name: 'Spain', code: 'ES' },
        { name: 'Sri Lanka', code: 'LK' },
        { name: 'Sudan', code: 'SD' },
        { name: 'Suriname', code: 'SR' },
        { name: 'Svalbard and Jan Mayen', code: 'SJ' },
        { name: 'Swaziland', code: 'SZ' },
        { name: 'Sweden', code: 'SE' },
        { name: 'Switzerland', code: 'CH' },
        { name: 'Syrian Arab Republic', code: 'SY' },
        { name: 'Taiwan, Province of China', code: 'TW' },
        { name: 'Tajikistan', code: 'TJ' },
        { name: 'Tanzania, United Republic of', code: 'TZ' },
        { name: 'Thailand', code: 'TH' },
        { name: 'Timor-Leste', code: 'TL' },
        { name: 'Togo', code: 'TG' },
        { name: 'Tokelau', code: 'TK' },
        { name: 'Tonga', code: 'TO' },
        { name: 'Trinidad and Tobago', code: 'TT' },
        { name: 'Tunisia', code: 'TN' },
        { name: 'Turkey', code: 'TR' },
        { name: 'Turkmenistan', code: 'TM' },
        { name: 'Turks and Caicos Islands', code: 'TC' },
        { name: 'Tuvalu', code: 'TV' },
        { name: 'Uganda', code: 'UG' },
        { name: 'Ukraine', code: 'UA' },
        { name: 'United Arab Emirates', code: 'AE' },
        { name: 'United Kingdom', code: 'GB' },
        { name: 'United States', code: 'US' },
        { name: 'United States Minor Outlying Islands', code: 'UM' },
        { name: 'Uruguay', code: 'UY' },
        { name: 'Uzbekistan', code: 'UZ' },
        { name: 'Vanuatu', code: 'VU' },
        { name: 'Venezuela', code: 'VE' },
        { name: 'Viet Nam', code: 'VN' },
        { name: 'Virgin Islands, British', code: 'VG' },
        { name: 'Virgin Islands, U.S.', code: 'VI' },
        { name: 'Wallis and Futuna', code: 'WF' },
        { name: 'Western Sahara', code: 'EH' },
        { name: 'Yemen', code: 'YE' },
        { name: 'Zambia', code: 'ZM' },
        { name: 'Zimbabwe', code: 'ZW' }
      ]
    }
    handleFileUpload () {
      this.EvidenceFile = this.$refs.file.files[0]
    },
    async OnSubmit () {
      var formData = new FormData()

      // FormData is a dictionary type -> (key , value)
      formData.append('patientStudent', JSON.stringify(this.patientStudent))
      formData.append('sickNoteData', JSON.stringify(this.SickNote))

      formData.append('sickNoteEvidence', this.EvidenceFile)

      var res = await axios.post('http://localhost:3000/ppatient', formData,
        {
          headers: {
            'Content-Type': 'multipart/form-data'
          }
        })

      const data = res.data
      console.log(data)
      alert('submitted')
    }
Omar Elkadi's avatar
Omar Elkadi committed
  }
}
</script>