line_push/changepage/index.vue
2022-07-17 13:16:16 +08:00

196 lines
6.6 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template lang="pug">
v-container(fluid)
v-card.elevation-0
v-card-title 您好! 歡迎您來參加11/14 西湖渡假村秋季也有趣
v-card-text
p 這次我們活動採用line的報名機制
br
|*報名費用含活動費+晚餐合菜
br
|一日遊
br
|7歲以上--950/
br
|3-6----400/
br
|2歲以下--免費
br
|二日遊
br
|7歲以上--700/
br
|3-6----400/
br
|2歲以下--免費
br
|*住宿費用(含隔日早餐/門票)
br
|2人房:3100
br
|4人房:4200
br
|加床600元(含隔日早餐/門票)
br
|:
br
|7歲以上:102年11月14日前出生
br
|3-6:102年11月13日~106年11月14日出生
br
|2歲以下:106年11月13日後出生
br
| 報名後您能憑此LINE在現場參加遊戲
| 若因故須取消已報名之活動為便於作業流程之順暢請於一個月前提出異動於活動日一個月前提出可全額退費之後提出者概不退還費用煩請自行找其他車友替補有任何困難之處可向管理群尋求協助
v-form(@submit.prevent="submit" v-model="isValid")
v-select( v-model="form.yesorno" :items="yesorno" label="社團活動報名表單的退費機制同意與否" :rules="[requireInput]")
v-text-field(v-model="form.FBNAME" label="FB名稱" :rules="[requireInput]")
v-text-field(v-model="form.NAME" label="姓名" :rules="[requireInput]")
v-text-field(v-model="form.Phone" label="連絡電話" :rules="[requireInput, isPhone]" validate-on-blur type="tel")
v-text-field(v-model="form.CARNUM" label="車號(ABC-1234)" :rules="[requireInput]")
v-select( v-model="form.cartype" :items="cartype" label="車型" :rules="[requireInput]")
v-select( v-model="form.CARCOLOR" :items="CARCOLOR" label="車色" :rules="[requireInput]")
v-select( v-model="form.NumberOfPeople" :items="NumberOfPeople" label="7歲(含)以上至成人" :rules="[requireInput]")
p.grey--text 7歲以上 一日遊950元/ 二日遊700元/
v-select( v-model="form.NumberOfChild" :items="NumberOfChild" label="3-6歲" :rules="[requireInput]")
p.grey--text 3-6----400/
v-select( v-model="form.NumberOfBaby" :items="NumberOfBaby" label="0~2歲" :rules="[requireInput]")
p.grey--text 2歲以下--免費
v-select( v-model="form.DAYS" :items="DAYS" label="一日遊or二日遊" :rules="[requireInput]")
v-select( v-model="form.HOTELROOM2" :items="HOTELROOM2" label="訂飯店二人房(一大床)3100元/晚" :rules="[requireInput]")
v-select( v-model="form.HOTELROOM4" :items="HOTELROOM4" label="訂飯店四人房(二大床)4200元/晚," :rules="[requireInput]")
v-select( v-model="form.HALLROOM2" :items="HALLROOM2" label="訂會館二人房(二小床)3100元/晚" :rules="[requireInput]")
v-select( v-model="form.AddBED" :items="AddBED" label="加床600元 \n" :rules="[requireInput]")
v-text-field(v-model="form.Charge" label="報名費總金額" :rules="[requireInput]")
p.grey--text 註1: 計算方式: (報名人數*費用)+(房價*間數))
v-text-field(v-model="form.BANKACCOUNT" label="匯款帳號後五碼" :rules="[requireInput]")
p.grey--text 註2: 只是先填寫.不用急著匯款,請耐心等待通知~確定有報到名後再進行匯款動作即可
v-btn.airplug(type="submit" dark block depressed large :disabled="!isValid") {{ isValid ? '填好送出完成報到' : '您還沒填好喔' }}
</template>
<script lang="ts">
import { Vue, Component } from "nuxt-property-decorator";
import querystring from "querystring";
import { initLIFF } from "~/plugins/liff";
import { IForm } from "~/models/submit";
@Component
export default class Home extends Vue {
isValid = true;
NumberOfPeople = [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"再多...請聯絡管理員"
];
NumberOfChild = [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"再多就變安親班了...請聯絡管理員"
];
NumberOfBaby = [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"再多變成幼稚園...請聯絡管理員"
];
yesorno = ["同意", "不同意"];
cartype = ["AT", "GT", "其他"];
CARCOLOR = ["300標準白", "668標準黑","A89帝王藍","C09地中海藍","B39礦物灰","A96珍珠白","A83冰川銀","B53深棕","C08香檳金","C10寶藍","C06紅","B45M款藍","其他"];
DAYS = ["一日遊", "二日遊"];
AddBED = ["0", "1", "2", "3", "4", "5"];
HOTELROOM2 = ["0", "1", "2", "3", "4", "5"];
HOTELROOM4 = ["0", "1", "2", "3", "4", "5"];
HALLROOM2 = ["0", "1", "2", "3", "4", "5"];
form = {
NAME: "",
FBNAME: "",
CARNUM: "",
yesorno: "",
CARCOLOR: "",
Phone: "",
LINEUserID: "",
NumberOfPeople: "",
NumberOfChild: "",
NumberOfBaby: "",
DAYS: "",
HOTELROOM2: "",
HOTELROOM4: "",
HALLROOM2: "",
AddBED: "",
BANKACCOUNT: ""
};
liff: any;
async mounted() {
const liffId = "1654797836-k7jJLNP4";
const liff = (this.liff = await initLIFF(liffId));
if (!liff.isLoggedIn()) {
liff.login();
} else {
const profile = await liff.getProfile();
this.form.LINEUserID = profile.userId;
console.log(this.form);
}
}
async submit() {
try {
await this.$axios.$post(`//${window.location.host}/submit`, this.form);
this.liff.closeWindow();
} catch (error) {
alert("送出失敗");
}
}
requireInput(value) {
value = value || '';
return !!value.trim() ? true : "這個欄位也要填喔";
}
isEmail(value) {
return !!value.match(/.+@.+[.].+/g) ? true : "email 格式不正確";
}
isPhone(value) {
return value.replace(/[^0-9]/g, "").length >= 9
? true
: "電話號碼不正確, 市話記得加區碼喔";
}
}
</script>
<style scoped>
button.airplug.theme--dark.v-btn:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined) {
background-color: #44d62c !important;
color: white !important;
}
button.airplug.theme--dark.v-btn.v-btn--disabled:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined) {
opacity: 0.3;
}
</style>