This commit is contained in:
darenhsu
2022-07-17 13:16:16 +08:00
parent 84759556ff
commit befd344ab0
28070 changed files with 4008428 additions and 1 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
# line_push # liff-push_2series_paied
+7
View File
@@ -0,0 +1,7 @@
# ASSETS
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains your un-compiled assets such as LESS, SASS, or JavaScript.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#webpacked).
View File
+1
View File
@@ -0,0 +1 @@
12
+1
View File
@@ -0,0 +1 @@
9
+1
View File
@@ -0,0 +1 @@
1
+1
View File
@@ -0,0 +1 @@
25
+1
View File
@@ -0,0 +1 @@
14
+1
View File
@@ -0,0 +1 @@
44
+1
View File
@@ -0,0 +1 @@
226
+3
View File
@@ -0,0 +1,3 @@
一日遊 7歲以上 91位
一日遊 3-6歲 16位
一日遊 2歲以下 6位
+1
View File
@@ -0,0 +1 @@
10
+1
View File
@@ -0,0 +1 @@
9
+144
View File
@@ -0,0 +1,144 @@
#!/bin/bash
cd /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage
touch RoomTotal
touch changepage_flag
touch HALLROOM2_flag
touch HOTELROOM4_flag
touch HOTELROOM2_flag
echo 0 > changepage_flag
rm -f /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/users
wget https://json_2series.digitalent.tw/users
HOTELROOM2=0
jq . users|grep HOTELROOM2 | awk -F "\"" '{ print $4 }'| while read line
do
HOTELROOM2=$(($HOTELROOM2 + $line))
touch /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/HOTELROOM2
echo $HOTELROOM2 >HOTELROOM2
done
echo ==========HOTELROOM2===============
cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/HOTELROOM2
HOTELROOM2=`cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/HOTELROOM2`
if [ $HOTELROOM2 -ge "9" ]
then
echo "目前飯店二人房已定${HOTELROOM2}間,已額滿" > RoomTotal
echo "$HOTELROOM2超過了"
cat /root/TS832xu/Deverloper/liff-push_2series/pages/index.vue |grep -n 訂飯店二人房\(一大床\)
HOTELROOM2_status=$?
if [ $HOTELROOM2_status -eq 0 ]
then
echo 1 > changepage_flag
echo "我近來飯店二人房了"
echo 1 > HOTELROOM2_flag
HOTELROOM2_line=`cat /root/TS832xu/Deverloper/liff-push_2series/pages/index.vue |grep -n 訂飯店二人房\(一大床\) | awk -F ":" '{ print $1 }'`
sed -i '/訂飯店二人房/d' /root/TS832xu/Deverloper/liff-push_2series/pages/index.vue
echo "------------------------" > RoomTotal
echo "目前飯店二人房已定${HOTELROOM2}間,已額滿" >> RoomTotal
fi
else
echo "目前飯店二人房已定${HOTELROOM2}間,還剩$[ 9-$HOTELROOM2 ]" > RoomTotal
echo "目前飯店二人房已定${HOTELROOM2}間,還剩$[ 9-$HOTELROOM2 ]"
fi
HOTELROOM4=0
jq . users|grep HOTELROOM4 | awk -F "\"" '{ print $4 }'| while read line
do
HOTELROOM4=$(($HOTELROOM4+$line))
touch /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/HOTELROOM4
echo $HOTELROOM4 > HOTELROOM4
done
echo ==========HOTELROOM4===============
cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/HOTELROOM4
HOTELROOM4=`cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/HOTELROOM4`
if [ $HOTELROOM4 -ge "48" ]
then
echo "$HOTELROOM4超過了"
cat /root/TS832xu/Deverloper/liff-push_2series/pages/index.vue |grep -n 訂飯店四人房\(二大床\)
HOTELROOM4_status=$?
if [ $HOTELROOM4_status -eq 0 ]
then
echo 1 > changepage_flag
echo "我近來四人房了"i
echo 1 > HOTELROOM4_flag
HOTELROOM4_line=`cat /root/TS832xu/Deverloper/liff-push_2series/pages/index.vue |grep -n 訂飯店四人房\(二大床\) | awk -F ":" '{ print $1 }'`
sed -i '/訂飯店四人房/d' /root/TS832xu/Deverloper/liff-push_2series/pages/index.vue
echo "目前飯店四人房已定${HOTELROOM4}間,已額滿" >> RoomTotal
fi
else
echo "目前飯店四人房已定${HOTELROOM4}間,還剩$[ 48-$HOTELROOM4 ]">>RoomTotal
echo "目前飯店四人房已定${HOTELROOM4}間,還剩$[ 48-$HOTELROOM4 ]"
fi
HALLROOM2=0
jq . users|grep HALLROOM2 | awk -F "\"" '{ print $4 }'| while read line
do
HALLROOM2=$(($HALLROOM2+$line))
touch /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/HALLROOM2
echo $HALLROOM2 > HALLROOM2
done
echo ==========HALLROOM2===============
cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/HALLROOM2
HALLROOM2=`cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/HALLROOM2`
if [ $HALLROOM2 -ge "15" ]
then
echo "$HALLROOM2超過了"
cat /root/TS832xu/Deverloper/liff-push_2series/pages/index.vue |grep -n 訂會館二人房\(二小床\)
HALLROOM2_status=$?
if [ $HALLROOM2_status -eq 0 ]
then
echo 1 > changepage_flag
echo "我近來二人房了"
echo 1 > HALLROOM2_flag
HOTELROOM2_line=`cat /root/TS832xu/Deverloper/liff-push_2series/pages/index.vue |grep -n 訂會館二人房\(二小床\) | awk -F ":" '{ print $1 }'`
sed -i '/訂會館二人房/d' /root/TS832xu/Deverloper/liff-push_2series/pages/index.vue
echo "目前會館二人房已定${HALLROOM2}間,已額滿">>RoomTotal
fi
else
echo "目前會館二人房已定${HALLROOM2}間,還剩$[ 15-$HALLROOM2 ]">>RoomTotal
echo "目前會館二人房已定${HALLROOM2}間,還剩$[ 15-$HALLROOM2 ]"
fi
changepage_flag=`cat changepage_flag`
if [ "$HALLROOM2_flag" == "1" ]
then
echo "有變動,重啟server"
cd /root/TS832xu/Deverloper/liff-push_2series/
/root/TS832xu/Deverloper/liff-push_2series/start.sh
else
echo "沒變動,不用重啟"
fi
cd /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage
HALLROOM2_flag=`cat HALLROOM2_flag`
HOTELROOM2_flag=`cat HOTELROOM2_flag`
HOTELROOM4_flag=`cat HOTELROOM4_flag`
if [ "$HALLROOM2_flag" == "1" ] && [ "$HOTELROOM2_flag" == "1" ] && [ "$HOTELROOM4_flag" == "1" ];
then
echo "賣光光"
echo "通通賣光光拉!!!">>RoomTotal
else
echo "還沒賣完"
fi
jq . users|grep NumberOfPeople | awk -F "\"" '{ print $4 }'| while read line
do
NumberOfPeople=$(($NumberOfPeople+$line))
touch /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfPeople
echo $NumberOfPeople >NumberOfPeople
done
jq . users|grep NumberOfChild | awk -F "\"" '{ print $4 }'| while read line
do
NumberOfChild=$(($NumberOfChild+$line))
touch /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfChild
echo $NumberOfChild >NumberOfChild
done
jq . users|grep NumberOfBaby | awk -F "\"" '{ print $4 }'| while read line
do
NumberOfBaby=$(($NumberOfBaby+$line))
touch /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfBaby
echo $NumberOfBaby >NumberOfBaby
done
echo "7歲以上`cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfPeople`位" >>RoomTotal
echo "3~7歲`cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfChild`位" >>RoomTotal
echo "2歲以下`cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfBaby`位" >>RoomTotal
+6
View File
@@ -0,0 +1,6 @@
目前飯店二人房已定9間,已額滿
目前飯店四人房已定25間,還剩23
目前會館二人房已定12間,還剩3
7歲以上226位
3~7歲44位
2歲以下14位
+3
View File
@@ -0,0 +1,3 @@
二日遊 7歲以上 121位
二日遊 3-6歲 28位
二日遊 2歲以下 8位
+1
View File
@@ -0,0 +1 @@
0
+1
View File
@@ -0,0 +1 @@
+41
View File
@@ -0,0 +1,41 @@
ID_COUNT=`jq . users|grep id| tail -n1 |awk -F " " '{ print $2 }'`
echo $ID_COUNT
touch OnedayTRIP
touch TwodayTRIP
for ((i=1;i<=$ID_COUNT;i++))
do
echo $i
curl -s https://json_2series.digitalent.tw/users?id=$i |grep -q 一日遊
daytrip_status=$?
echo $daytrip_status
if [ $daytrip_status -eq 0 ]
then
NumberOfPeople=`curl -s https://json_2series.digitalent.tw/users?id=$i |grep NumberOfPeople | awk -F "\"" '{ print $4 }'`
NumberOfChild=`curl -s https://json_2series.digitalent.tw/users?id=$i |grep NumberOfChild | awk -F "\"" '{ print $4 }'`
NumberOfBaby=`curl -s https://json_2series.digitalent.tw/users?id=$i |grep NumberOfBaby | awk -F "\"" '{ print $4 }'`
OneDAYTotalPeople=$((OneDAYTotalPeople+$NumberOfPeople))
OneDAYTotalChild=$((OneDAYTotalChild+$NumberOfChild))
OneDAYTotalBaby=$((OneDAYTotalBaby+$NumberOfBaby))
echo "一日遊 7歲以上 ${OneDAYTotalPeople}" >OnedayTRIP
echo "一日遊 3-6歲 ${OneDAYTotalChild}">>OnedayTRIP
echo "一日遊 2歲以下 ${OneDAYTotalBaby}">>OnedayTRIP
fi
curl -s https://json_2series.digitalent.tw/users?id=$i |grep -q 二日遊
daytrip_status=$?
echo $daytrip_status
if [ $daytrip_status -eq 0 ]
then
NumberOfPeople=`curl -s https://json_2series.digitalent.tw/users?id=$i |grep NumberOfPeople | awk -F "\"" '{ print $4 }'`
NumberOfChild=`curl -s https://json_2series.digitalent.tw/users?id=$i |grep NumberOfChild | awk -F "\"" '{ print $4 }'`
NumberOfBaby=`curl -s https://json_2series.digitalent.tw/users?id=$i |grep NumberOfBaby | awk -F "\"" '{ print $4 }'`
TwoDAYTotalPeople=$((TwoDAYTotalPeople+$NumberOfPeople))
TwoDAYTotalChild=$((TwoDAYTotalChild+$NumberOfChild))
TwoDAYTotalBaby=$((TwoDAYTotalBaby+$NumberOfBaby))
echo "二日遊 7歲以上 ${TwoDAYTotalPeople}">TwodayTRIP
echo "二日遊 3-6歲 ${TwoDAYTotalChild}">>TwodayTRIP
echo "二日遊 2歲以下 ${TwoDAYTotalBaby}">>TwodayTRIP
fi
done
+8
View File
@@ -0,0 +1,8 @@
wget https://json_2series.digitalent.tw/logs
i=0
jq . logs |grep follow | while read line
do
i=$(($i+1))
echo $1
done
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+23
View File
@@ -0,0 +1,23 @@
jq . users|grep NumberOfPeople | awk -F "\"" '{ print $4 }'| while read line
do
NumberOfPeople=$(($NumberOfPeople+$line))
touch /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfPeople
echo $NumberOfPeople >NumberOfPeople
done
jq . users|grep NumberOfChild | awk -F "\"" '{ print $4 }'| while read line
do
NumberOfChild=$(($NumberOfChild+$line))
touch /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfChild
echo $NumberOfChild >NumberOfChild
done
jq . users|grep NumberOfBaby | awk -F "\"" '{ print $4 }'| while read line
do
NumberOfBaby=$(($NumberOfBaby+$line))
touch /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfBaby
echo $NumberOfBaby >NumberOfBaby
done
echo "7歲以上`cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfPeople`位"
echo "3~7歲`cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfChild`位"
echo "2歲以下`cat /root/TS832xu/Deverloper/liff-push_2series/changepage/changepage/NumberOfBaby`位"
File diff suppressed because it is too large Load Diff
+195
View File
@@ -0,0 +1,195 @@
<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>
+195
View File
@@ -0,0 +1,195 @@
<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>
+7
View File
@@ -0,0 +1,7 @@
# COMPONENTS
**This directory is not required, you can delete it if you don't want to use it.**
The components directory contains your Vue.js Components.
_Nuxt.js doesn't supercharge these components._
+12
View File
@@ -0,0 +1,12 @@
version: '3.2'
services:
web:
image: node:14
command: ./start.sh
environment:
SUBMIT_ENDPOINT: 'https://json_2series.digitalent.tw/users'
RMLINK_ENDPOINT: ''
working_dir: /home/node/nuxt
volumes:
- ./:/home/node/nuxt
network_mode: host
+12
View File
@@ -0,0 +1,12 @@
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"~/*": ["./*"],
"@/*": ["./*"],
"~~/*": ["./*"],
"@@/*": ["./*"]
}
},
"exclude": ["node_modules", ".nuxt", "dist"]
}
+7
View File
@@ -0,0 +1,7 @@
# LAYOUTS
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains your Application Layouts.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/views#layouts).
+16
View File
@@ -0,0 +1,16 @@
<template lang="pug">
v-app
v-main
v-container
nuxt
v-footer(
:absolute="true"
app
)
span 亣白鯊 &amp; 徐忠豪 &amp; 都是同一人 &copy; {{ new Date().getFullYear() }}
</template>
<script>
export default {
}
</script>
+44
View File
@@ -0,0 +1,44 @@
<template>
<v-app dark>
<h1 v-if="error.statusCode === 404">
{{ pageNotFound }}
</h1>
<h1 v-else>
{{ otherError }}
</h1>
<NuxtLink to="/">
Home page
</NuxtLink>
</v-app>
</template>
<script>
export default {
layout: 'empty',
props: {
error: {
type: Object,
default: null
}
},
data () {
return {
pageNotFound: '404 Not Found',
otherError: 'An error occurred'
}
},
head () {
const title =
this.error.statusCode === 404 ? this.pageNotFound : this.otherError
return {
title
}
}
}
</script>
<style scoped>
h1 {
font-size: 20px;
}
</style>
+8
View File
@@ -0,0 +1,8 @@
# MIDDLEWARE
**This directory is not required, you can delete it if you don't want to use it.**
This directory contains your application middleware.
Middleware let you define custom functions that can be run before rendering either a page or a group of pages.
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware).
+16
View File
@@ -0,0 +1,16 @@
export interface IForm {
NAME: string,
FBNAME: string,
CARNUM: string,
yesorno: string,
CARCOLOR: string,
Phone: string,
LINEUserID: string,
NumberOfPeople: string,
NumberOfChild: string,
NumberOfBaby: string,
DAYS: string,
ROOM2: string,
ROOM4: string,
BANKACCOUNT: string
}
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../acorn/bin/acorn
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../ansi-html/bin/ansi-html
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../atob/bin/atob.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../autoprefixer/bin/autoprefixer
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../browserslist/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../css-blank-pseudo/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../css-has-pseudo/cli.js
+1
View File
@@ -0,0 +1 @@
../css-prefers-color-scheme/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../cssesc/bin/cssesc
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../detect-libc/bin/detect-libc.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../errno/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../eslint/bin/eslint.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../esprima/bin/esparse.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../esprima/bin/esvalidate.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../flat/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../he/bin/he
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../html-minifier/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../html-minifier-terser/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../js-yaml/bin/js-yaml.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../jsesc/bin/jsesc
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../json5/lib/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../loose-envify/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../miller-rabin/bin/miller-rabin
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../mime/cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../mkdirp/bin/cmd.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../mustache/bin/mustache
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../nanoid/bin/nanoid.cjs
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../which/bin/node-which
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../nuxt/bin/nuxt.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../@nuxt/cli/bin/nuxt-cli.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../@nuxt/telemetry/bin/nuxt-telemetry.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../@nuxt/typescript-runtime/bin/nuxt-ts.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../@nuxt/typescript-runtime/bin/nuxt-ts.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../@nuxt/opencollective/bin/opencollective.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../opener/bin/opener-bin.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../@babel/parser/bin/babel-parser.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../prettier/bin-prettier.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../regexp-tree/bin/regexp-tree
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../regjsparser/bin/parser
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../rimraf/bin.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../sass/sass.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../semver/bin/semver.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../sha.js/bin.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../svgo/bin/svgo
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../terser/bin/terser
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../ts-node/dist/bin.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../ts-node/dist/bin-script.js
+1
View File
@@ -0,0 +1 @@
../ts-node/dist/bin-transpile.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../ts-node/dist/bin-script-deprecated.js
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../typescript/bin/tsc
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../typescript/bin/tsserver
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../uglify-js/bin/uglifyjs
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../uuid/bin/uuid
Generated Vendored Symlink
+1
View File
@@ -0,0 +1 @@
../webpack/bin/webpack.js
+1
View File
@@ -0,0 +1 @@
../webpack-bundle-analyzer/lib/bin/analyzer.js
+22
View File
@@ -0,0 +1,22 @@
MIT License
Copyright (c) 2014-present Sebastian McKenzie and other contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+19
View File
@@ -0,0 +1,19 @@
# @babel/code-frame
> Generate errors that contain a code frame that point to source locations.
See our website [@babel/code-frame](https://babeljs.io/docs/en/next/babel-code-frame.html) for more information.
## Install
Using npm:
```sh
npm install --save-dev @babel/code-frame
```
or using yarn:
```sh
yarn add @babel/code-frame --dev
```
+167
View File
@@ -0,0 +1,167 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.codeFrameColumns = codeFrameColumns;
exports.default = _default;
var _highlight = _interopRequireWildcard(require("@babel/highlight"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
let deprecationWarningShown = false;
function getDefs(chalk) {
return {
gutter: chalk.grey,
marker: chalk.red.bold,
message: chalk.red.bold
};
}
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
function getMarkerLines(loc, source, opts) {
const startLoc = Object.assign({
column: 0,
line: -1
}, loc.start);
const endLoc = Object.assign({}, startLoc, loc.end);
const {
linesAbove = 2,
linesBelow = 3
} = opts || {};
const startLine = startLoc.line;
const startColumn = startLoc.column;
const endLine = endLoc.line;
const endColumn = endLoc.column;
let start = Math.max(startLine - (linesAbove + 1), 0);
let end = Math.min(source.length, endLine + linesBelow);
if (startLine === -1) {
start = 0;
}
if (endLine === -1) {
end = source.length;
}
const lineDiff = endLine - startLine;
const markerLines = {};
if (lineDiff) {
for (let i = 0; i <= lineDiff; i++) {
const lineNumber = i + startLine;
if (!startColumn) {
markerLines[lineNumber] = true;
} else if (i === 0) {
const sourceLength = source[lineNumber - 1].length;
markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
} else if (i === lineDiff) {
markerLines[lineNumber] = [0, endColumn];
} else {
const sourceLength = source[lineNumber - i].length;
markerLines[lineNumber] = [0, sourceLength];
}
}
} else {
if (startColumn === endColumn) {
if (startColumn) {
markerLines[startLine] = [startColumn, 0];
} else {
markerLines[startLine] = true;
}
} else {
markerLines[startLine] = [startColumn, endColumn - startColumn];
}
}
return {
start,
end,
markerLines
};
}
function codeFrameColumns(rawLines, loc, opts = {}) {
const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts);
const chalk = (0, _highlight.getChalk)(opts);
const defs = getDefs(chalk);
const maybeHighlight = (chalkFn, string) => {
return highlighted ? chalkFn(string) : string;
};
const lines = rawLines.split(NEWLINE);
const {
start,
end,
markerLines
} = getMarkerLines(loc, lines, opts);
const hasColumns = loc.start && typeof loc.start.column === "number";
const numberMaxWidth = String(end).length;
const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines;
let frame = highlightedLines.split(NEWLINE).slice(start, end).map((line, index) => {
const number = start + 1 + index;
const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
const gutter = ` ${paddedNumber} | `;
const hasMarker = markerLines[number];
const lastMarkerLine = !markerLines[number + 1];
if (hasMarker) {
let markerLine = "";
if (Array.isArray(hasMarker)) {
const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
const numberOfMarkers = hasMarker[1] || 1;
markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join("");
if (lastMarkerLine && opts.message) {
markerLine += " " + maybeHighlight(defs.message, opts.message);
}
}
return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line, markerLine].join("");
} else {
return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
}
}).join("\n");
if (opts.message && !hasColumns) {
frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
}
if (highlighted) {
return chalk.reset(frame);
} else {
return frame;
}
}
function _default(rawLines, lineNumber, colNumber, opts = {}) {
if (!deprecationWarningShown) {
deprecationWarningShown = true;
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
if (process.emitWarning) {
process.emitWarning(message, "DeprecationWarning");
} else {
const deprecationError = new Error(message);
deprecationError.name = "DeprecationWarning";
console.warn(new Error(message));
}
}
colNumber = Math.max(colNumber, 0);
const location = {
start: {
column: colNumber,
line: lineNumber
}
};
return codeFrameColumns(rawLines, location, opts);
}
+66
View File
@@ -0,0 +1,66 @@
{
"_args": [
[
"@babel/code-frame@7.10.4",
"/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series"
]
],
"_from": "@babel/code-frame@7.10.4",
"_id": "@babel/code-frame@7.10.4",
"_inBundle": false,
"_integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"_location": "/@babel/code-frame",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "@babel/code-frame@7.10.4",
"name": "@babel/code-frame",
"escapedName": "@babel%2fcode-frame",
"scope": "@babel",
"rawSpec": "7.10.4",
"saveSpec": null,
"fetchSpec": "7.10.4"
},
"_requiredBy": [
"/@babel/core",
"/@babel/template",
"/@babel/traverse",
"/babel-eslint",
"/eslint",
"/eslint-plugin-unicorn/parse-json",
"/fork-ts-checker-webpack-plugin"
],
"_resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
"_spec": "7.10.4",
"_where": "/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
},
"bugs": {
"url": "https://github.com/babel/babel/issues"
},
"dependencies": {
"@babel/highlight": "^7.10.4"
},
"description": "Generate errors that contain a code frame that point to source locations.",
"devDependencies": {
"chalk": "^2.0.0",
"strip-ansi": "^4.0.0"
},
"gitHead": "7fd40d86a0d03ff0e9c3ea16b29689945433d4df",
"homepage": "https://babeljs.io/",
"license": "MIT",
"main": "lib/index.js",
"name": "@babel/code-frame",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git+https://github.com/babel/babel.git",
"directory": "packages/babel-code-frame"
},
"version": "7.10.4"
}
+22
View File
@@ -0,0 +1,22 @@
MIT License
Copyright (c) 2014-present Sebastian McKenzie and other contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+4
View File
@@ -0,0 +1,4 @@
// Node < 13.3 doesn't support export maps in package.json.
// Use this proxy file as a fallback.
module.exports = require("./data/corejs2-built-ins.json");
+4
View File
@@ -0,0 +1,4 @@
// Node < 13.3 doesn't support export maps in package.json.
// Use this proxy file as a fallback.
module.exports = require("./data/corejs3-shipped-proposals.json");
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More