|
@@ -1,14 +1,12 @@
|
|
|
<script setup>
|
|
|
import { ref, reactive, watch, computed, onMounted } from "vue";
|
|
|
import { useMainStore } from "@/stores/store";
|
|
|
-// import { Loader } from "@googlemaps/js-api-loader";
|
|
|
-// import VueDatePicker from "@vuepic/vue-datepicker";
|
|
|
+import { useI18n } from "vue-i18n";
|
|
|
import "@vuepic/vue-datepicker/dist/main.css";
|
|
|
import axios from "axios";
|
|
|
-import moment from "moment";
|
|
|
import Navbar from "@/components/Navbar.vue";
|
|
|
-// import { LatLngBounds } from "leaflet";
|
|
|
|
|
|
+const { t } = useI18n();
|
|
|
const store = useMainStore();
|
|
|
const token = store.token;
|
|
|
console.log("token", token);
|
|
@@ -21,21 +19,19 @@ let loading = ref(false);
|
|
|
const computedTitle = computed(() => {
|
|
|
switch (step.value) {
|
|
|
case 1:
|
|
|
- stepTitle.value = "Step1 填寫基本資料";
|
|
|
- stepDescription.value = "創建課程之前,請先新增您的據點(上課地址)";
|
|
|
+ stepTitle.value = "enter_basic_info";
|
|
|
+ stepDescription.value = "before_create_course";
|
|
|
break;
|
|
|
case 2:
|
|
|
- stepTitle.value = "Step2 指派工藝教育者";
|
|
|
- stepDescription.value =
|
|
|
- "開始打造屬於您的工藝履歷,讓學徒對你印象深刻吧!";
|
|
|
+ stepTitle.value = "assign_instructor";
|
|
|
+ stepDescription.value = "craft_resume_intro";
|
|
|
break;
|
|
|
case 3:
|
|
|
- stepTitle.value = "Step3 規劃開課內容";
|
|
|
- stepDescription.value =
|
|
|
- "完整且清楚的課程建立,是連接工藝老師與學徒的重要橋梁!";
|
|
|
+ stepTitle.value = "plan_course_content";
|
|
|
+ stepDescription.value = "course_creation_bridge";
|
|
|
break;
|
|
|
case 4:
|
|
|
- stepTitle.value = "恭喜您完成課程提案!";
|
|
|
+ stepTitle.value = "congratulations_course_proposal";
|
|
|
stepDescription.value = "";
|
|
|
break;
|
|
|
}
|
|
@@ -44,17 +40,17 @@ const computedTitle = computed(() => {
|
|
|
|
|
|
const breadcrumbs = reactive([
|
|
|
{
|
|
|
- title: "首頁",
|
|
|
+ title: "home.title",
|
|
|
disabled: false,
|
|
|
href: "/",
|
|
|
},
|
|
|
{
|
|
|
- title: "我要開課",
|
|
|
+ title: "navbar.create_course",
|
|
|
disabled: false,
|
|
|
href: "/setup-courses",
|
|
|
},
|
|
|
{
|
|
|
- title: "工藝教育者提案",
|
|
|
+ title: "proposal",
|
|
|
disabled: true,
|
|
|
},
|
|
|
]);
|
|
@@ -130,7 +126,7 @@ let locationId = ref("");
|
|
|
|
|
|
// 新增履歷
|
|
|
let resume = reactive({
|
|
|
- teacher_name: "", // 老師姓名
|
|
|
+ teacher_name: "", // 工藝教育者姓名
|
|
|
work_type: "", // 工作性質
|
|
|
experience: "", // 教學經驗
|
|
|
expertise: "", // 專長工藝技能
|
|
@@ -593,16 +589,16 @@ function removeTeacher(index) {
|
|
|
<Navbar />
|
|
|
|
|
|
<v-container class="mb-16 pb-16 proposal-container">
|
|
|
- <v-breadcrumbs
|
|
|
- :items="breadcrumbs"
|
|
|
- divider="/"
|
|
|
- class="py-10"
|
|
|
- ></v-breadcrumbs>
|
|
|
+ <v-breadcrumbs :items="breadcrumbs" divider="/" class="py-10">
|
|
|
+ <template v-slot:title="{ item }">
|
|
|
+ {{ t(item.title) }}
|
|
|
+ </template>
|
|
|
+ </v-breadcrumbs>
|
|
|
|
|
|
<v-card class="mx-auto pa-5 pa-sm-10">
|
|
|
<v-card-title class="step-title">
|
|
|
- <h5>{{ computedTitle.stepTitle }}</h5>
|
|
|
- <p class="mt-5">{{ computedTitle.stepDescription }}</p>
|
|
|
+ <h5>Step{{ step }} {{ t(computedTitle.stepTitle) }}</h5>
|
|
|
+ <p class="mt-5">{{ t(computedTitle.stepDescription) }}</p>
|
|
|
</v-card-title>
|
|
|
|
|
|
<v-window v-model="step">
|
|
@@ -629,13 +625,13 @@ function removeTeacher(index) {
|
|
|
<v-col cols="12" md="6">
|
|
|
<v-label class="d-block mb-5">
|
|
|
<p class="d-flex mb-5">
|
|
|
- 工坊名稱<span class="mark">*</span>
|
|
|
+ {{ t("form.location_name") }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-text-field
|
|
|
v-model="location.location_name"
|
|
|
:rules="[requiredRule]"
|
|
|
title="工坊名稱"
|
|
|
- placeholder="可以是您的工作室或品牌名稱/教學單位/您的姓名"
|
|
|
+ :placeholder="t('form.provide_name')"
|
|
|
density="compact"
|
|
|
variant="outlined"
|
|
|
counter
|
|
@@ -645,21 +641,22 @@ function removeTeacher(index) {
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
<p class="d-flex mb-5">
|
|
|
- 工坊地址<span class="mark">*</span>
|
|
|
+ {{ t("form.location_address")
|
|
|
+ }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-text-field
|
|
|
v-model="location.address"
|
|
|
:rules="[requiredRule]"
|
|
|
- title="工坊地址"
|
|
|
+ :title="t('form.location_address')"
|
|
|
density="compact"
|
|
|
variant="outlined"
|
|
|
- placeholder="需在安全且便於學徒到達之地點開課"
|
|
|
+ :placeholder="t('form.safe_accessible_location')"
|
|
|
></v-text-field>
|
|
|
</v-label>
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
<p class="d-flex mb-5">
|
|
|
- 工坊 Email<span class="mark">*</span>
|
|
|
+ {{ t("form.location_email") }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-text-field
|
|
|
v-model="location.email"
|
|
@@ -687,10 +684,11 @@ function removeTeacher(index) {
|
|
|
<v-label class="d-block mb-5">
|
|
|
<div class="d-flex">
|
|
|
<p class="d-flex mb-5">
|
|
|
- 公開電話<span class="mark">*</span>
|
|
|
+ {{ t("form.location_phone") }}
|
|
|
+ <span class="mark">*</span>
|
|
|
</p>
|
|
|
- <span class="d-block ms-3 hint"
|
|
|
- >會顯示於課程介紹中,想了解課程資訊者聯繫用途
|
|
|
+ <span class="d-block ms-3 hint">
|
|
|
+ {{ t("form.display_on_course_intro") }}
|
|
|
</span>
|
|
|
</div>
|
|
|
|
|
@@ -699,13 +697,14 @@ function removeTeacher(index) {
|
|
|
:rules="[requiredRule]"
|
|
|
density="compact"
|
|
|
variant="outlined"
|
|
|
- placeholder="請輸入電話號碼包含區碼 (e.g., 02-23887066)"
|
|
|
+ :placeholder="t('form.enter_telephone_number')"
|
|
|
></v-text-field>
|
|
|
</v-label>
|
|
|
|
|
|
<v-label class="d-block">
|
|
|
<p class="d-flex mb-5">
|
|
|
- 工坊簡介<span class="mark">*</span>
|
|
|
+ {{ t("form.location_introduction") }}
|
|
|
+ <span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-textarea
|
|
|
v-model="location.school_introduction"
|
|
@@ -725,85 +724,6 @@ function removeTeacher(index) {
|
|
|
</v-col>
|
|
|
|
|
|
<v-col cols="12" md="6"> </v-col>
|
|
|
-
|
|
|
- <!-- <v-col cols="12" md="6" class="px-0">
|
|
|
- <v-label class="d-block">
|
|
|
- <p class="d-flex mb-5">負責人<span class="mark">*</span></p>
|
|
|
- <v-text-field
|
|
|
- :rules="[requiredRule]"
|
|
|
- title="負責人"
|
|
|
- density="compact"
|
|
|
- variant="outlined"
|
|
|
- counter
|
|
|
- maxlength="60"
|
|
|
- ></v-text-field>
|
|
|
- </v-label>
|
|
|
- </v-col>
|
|
|
-
|
|
|
- <v-col cols="12" md="11" class="px-4">
|
|
|
- <v-label class="d-block">
|
|
|
- <p class="d-flex mb-5">
|
|
|
- 工坊地址<span class="mark">*</span>
|
|
|
- </p>
|
|
|
- <v-text-field
|
|
|
- v-model="location.address"
|
|
|
- :rules="[requiredRule]"
|
|
|
- title="工坊地址"
|
|
|
- density="compact"
|
|
|
- variant="outlined"
|
|
|
- placeholder="需在安全且便於學徒到達之地點開課"
|
|
|
- ></v-text-field>
|
|
|
- </v-label>
|
|
|
- </v-col>
|
|
|
-
|
|
|
- <v-col cols="12" md="5" class="px-0">
|
|
|
- <v-label class="d-block">
|
|
|
- <p class="d-flex mb-5">
|
|
|
- 據點 Email<span class="mark">*</span>
|
|
|
- </p>
|
|
|
- <v-text-field
|
|
|
- v-model="location.email"
|
|
|
- :rules="[requiredRule]"
|
|
|
- density="compact"
|
|
|
- variant="outlined"
|
|
|
- placeholder="請填寫 Email"
|
|
|
- ></v-text-field>
|
|
|
- </v-label>
|
|
|
- </v-col>
|
|
|
-
|
|
|
- <v-col cols="12" md="5" class="px-0">
|
|
|
- <v-label class="d-block">
|
|
|
- <div class="d-flex">
|
|
|
- <p class="d-flex mb-5">
|
|
|
- 公開電話<span class="mark">*</span>
|
|
|
- </p>
|
|
|
- <span class="d-block ms-3 hint"
|
|
|
- >會顯示於課程介紹中,想了解課程資訊者聯繫用途
|
|
|
- </span>
|
|
|
- </div>
|
|
|
-
|
|
|
- <v-text-field
|
|
|
- v-model="location.phone"
|
|
|
- :rules="[requiredRule]"
|
|
|
- density="compact"
|
|
|
- variant="outlined"
|
|
|
- ></v-text-field>
|
|
|
- </v-label>
|
|
|
- </v-col>
|
|
|
-
|
|
|
- <v-col cols="12" md="11">
|
|
|
- <v-label class="d-block">
|
|
|
- <p class="d-flex mb-5">
|
|
|
- 據點簡介<span class="mark">*</span>
|
|
|
- </p>
|
|
|
- <v-textarea
|
|
|
- v-model="location.school_introduction"
|
|
|
- :rules="[requiredRule]"
|
|
|
- rows="5"
|
|
|
- variant="outlined"
|
|
|
- ></v-textarea>
|
|
|
- </v-label>
|
|
|
- </v-col> -->
|
|
|
</v-row>
|
|
|
|
|
|
<!-- <div class="d-flex flex-column justify-end ms-md-16 ps-md-5">
|
|
@@ -854,19 +774,20 @@ function removeTeacher(index) {
|
|
|
<button class="resume-btn">
|
|
|
<p class="d-flex flex-column align-center">
|
|
|
<v-icon icon="mdi-plus" size="x-large"></v-icon>
|
|
|
- 新增工藝教育者
|
|
|
+ {{ t("create_course_instructor") }}
|
|
|
</p>
|
|
|
|
|
|
<v-dialog v-model="resumeDialog" activator="parent" width="700">
|
|
|
<v-card class="pa-5">
|
|
|
- <v-card-title>工藝教育者履歷</v-card-title>
|
|
|
+ <v-card-title>{{ t("instructor_resume") }}</v-card-title>
|
|
|
<v-card-text>
|
|
|
<v-form ref="resumeForm" lazy-validation @submit.prevent>
|
|
|
<v-row>
|
|
|
<v-col cols="12">
|
|
|
<v-label class="d-flex align-center">
|
|
|
<p class="pb-5 pe-3">
|
|
|
- 老師姓名<span class="mark">*</span>
|
|
|
+ {{ t("form.instructor_name")
|
|
|
+ }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-text-field
|
|
|
v-model="resume.teacher_name"
|
|
@@ -882,12 +803,16 @@ function removeTeacher(index) {
|
|
|
<v-col cols="12">
|
|
|
<v-label class="d-block">
|
|
|
<p class="pb-5 pe-3">
|
|
|
- 工作性質<span class="mark">*</span>
|
|
|
+ {{ t("form.job_nature")
|
|
|
+ }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-radio-group v-model="resume.work_type" inline>
|
|
|
- <v-radio label="全職" value="全職"></v-radio>
|
|
|
<v-radio
|
|
|
- label="兼職"
|
|
|
+ :label="t('form.full_time')"
|
|
|
+ value="全職"
|
|
|
+ ></v-radio>
|
|
|
+ <v-radio
|
|
|
+ :label="t('form.part_time')"
|
|
|
value="兼職"
|
|
|
class="ps-3"
|
|
|
></v-radio>
|
|
@@ -897,7 +822,9 @@ function removeTeacher(index) {
|
|
|
|
|
|
<v-col cols="12" class="py-0">
|
|
|
<v-label class="d-block">
|
|
|
- <p class="pb-5 pe-3">教學經驗</p>
|
|
|
+ <p class="pb-5 pe-3">
|
|
|
+ {{ t("form.teaching_experience") }}
|
|
|
+ </p>
|
|
|
<v-radio-group v-model="resume.experience" inline>
|
|
|
<v-radio label="0-5 年" value="0-5 年"></v-radio>
|
|
|
<v-radio
|
|
@@ -922,7 +849,8 @@ function removeTeacher(index) {
|
|
|
<v-col cols="12">
|
|
|
<v-label class="d-block pb-3">
|
|
|
<p class="pb-5 pe-3">
|
|
|
- 專長工藝技能<span class="mark">*</span>
|
|
|
+ {{ t("form.craft_skills")
|
|
|
+ }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-text-field
|
|
|
v-model="resume.expertise"
|
|
@@ -934,7 +862,8 @@ function removeTeacher(index) {
|
|
|
|
|
|
<v-label class="d-block pb-3">
|
|
|
<p class="pb-5 pe-3">
|
|
|
- 工藝相關證照<span class="mark">*</span>
|
|
|
+ {{ t("form.related_certifications")
|
|
|
+ }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-text-field
|
|
|
v-model="resume.license"
|
|
@@ -946,7 +875,7 @@ function removeTeacher(index) {
|
|
|
</v-label>
|
|
|
|
|
|
<v-label class="d-block">
|
|
|
- <p class="d-flex">社群媒體</p>
|
|
|
+ <p class="d-flex">{{ t("form.social_media") }}</p>
|
|
|
<span class="d-block py-3 hint"
|
|
|
>工藝老師經營之網站或社群媒體,可貼網址</span
|
|
|
>
|
|
@@ -968,7 +897,7 @@ function removeTeacher(index) {
|
|
|
ref="portfolioImgRef"
|
|
|
label="File input"
|
|
|
variant="outlined"
|
|
|
- placeholder="選擇相片上傳"
|
|
|
+ :placeholder="t('form.choose_image')"
|
|
|
@change="handlePortfolioImg"
|
|
|
style="display: none"
|
|
|
></v-file-input>
|
|
@@ -1005,7 +934,8 @@ function removeTeacher(index) {
|
|
|
<v-col cols="12">
|
|
|
<v-label class="d-block">
|
|
|
<p class="d-flex mb-5">
|
|
|
- 工藝教育者介紹<span class="mark">*</span>
|
|
|
+ {{ t("form.instructor_intro")
|
|
|
+ }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-textarea
|
|
|
v-model="resume.introduction"
|
|
@@ -1029,32 +959,38 @@ function removeTeacher(index) {
|
|
|
<v-card-actions class="justify-center">
|
|
|
<v-spacer></v-spacer>
|
|
|
|
|
|
- <v-btn text="取消" @click="resumeDialog = false"></v-btn>
|
|
|
+ <v-btn
|
|
|
+ :text="t('form.cancel')"
|
|
|
+ @click="resumeDialog = false"
|
|
|
+ ></v-btn>
|
|
|
|
|
|
<v-btn
|
|
|
@click="insertResume()"
|
|
|
color="purple"
|
|
|
variant="flat"
|
|
|
>
|
|
|
- 新增
|
|
|
+ {{ t("form.create") }}
|
|
|
</v-btn>
|
|
|
</v-card-actions>
|
|
|
</v-card>
|
|
|
</v-dialog>
|
|
|
</button>
|
|
|
- <h6 data-v-bbf03f1f="" class="mt-10 table-title">工藝教育者履歷</h6>
|
|
|
+ <h6 data-v-bbf03f1f="" class="mt-10 table-title">
|
|
|
+ {{ t("instructor_resume") }}
|
|
|
+ </h6>
|
|
|
<div class="main-table">
|
|
|
- <!-- <h6 data-v-bbf03f1f="" class="table-title">工藝教育者履歷</h6> -->
|
|
|
<table>
|
|
|
<thead>
|
|
|
<tr>
|
|
|
- <th>姓名</th>
|
|
|
- <th>工作性質</th>
|
|
|
- <th>教學經驗</th>
|
|
|
- <th>專長工藝技能</th>
|
|
|
- <th>工藝相關證照</th>
|
|
|
- <th>社群媒體</th>
|
|
|
- <th style="width: 30%">老師介紹</th>
|
|
|
+ <th>{{ t("form.name") }}</th>
|
|
|
+ <th>{{ t("form.job_nature") }}</th>
|
|
|
+ <th>{{ t("form.teaching_experience") }}</th>
|
|
|
+ <th>{{ t("form.craft_skills") }}</th>
|
|
|
+ <th>{{ t("form.related_certifications") }}</th>
|
|
|
+ <th>{{ t("form.social_media") }}</th>
|
|
|
+ <th style="width: 30%">
|
|
|
+ {{ t("form.instructor_intro") }}
|
|
|
+ </th>
|
|
|
<th></th>
|
|
|
<!-- <th width="15%">繳款資訊</th> -->
|
|
|
</tr>
|
|
@@ -1077,7 +1013,7 @@ function removeTeacher(index) {
|
|
|
<template v-slot:activator="{ props }">
|
|
|
<v-btn
|
|
|
v-bind="props"
|
|
|
- text="查看"
|
|
|
+ :text="t('form.check')"
|
|
|
variant="tonal"
|
|
|
color="purple"
|
|
|
rounded="xl"
|
|
@@ -1097,7 +1033,7 @@ function removeTeacher(index) {
|
|
|
<v-spacer></v-spacer>
|
|
|
|
|
|
<v-btn
|
|
|
- text="關閉"
|
|
|
+ :text="t('form.close')"
|
|
|
@click="isActive.value = false"
|
|
|
></v-btn>
|
|
|
</v-card-actions>
|
|
@@ -1115,27 +1051,6 @@ function removeTeacher(index) {
|
|
|
></v-btn>
|
|
|
<!-- <v-icon icon="mdi-close" color="red"></v-icon> -->
|
|
|
</td>
|
|
|
-
|
|
|
- <!-- <td>{{ item.class_name }}</td>
|
|
|
- <td>
|
|
|
- {{ moment(`${item.create_time}`).format("YYYY/MM/DD") }}
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- {{ moment(`${item.start_time}`).format("YYYY/MM/DD H:mm") }}
|
|
|
- <br />
|
|
|
- ~ <br />
|
|
|
- {{ moment(`${item.end_time}`).format("YYYY/MM/DD H:mm") }}
|
|
|
- </td>
|
|
|
- <td>{{ item.hours }} 小時</td>
|
|
|
- <td>
|
|
|
- <span class="finish-icon" v-if="item.reg_confirm">
|
|
|
- <v-icon icon="mdi-check" class="pb-1"></v-icon>
|
|
|
- </span>
|
|
|
-
|
|
|
- <span v-else class="d-flex align-center">
|
|
|
- <p style="width: 55px" class="text-grey-lighten-1">審核中</p>
|
|
|
- </span>
|
|
|
- </td> -->
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
@@ -1145,7 +1060,7 @@ function removeTeacher(index) {
|
|
|
<v-row>
|
|
|
<v-col cols="12" sm="6">
|
|
|
<v-label class="d-flex align-center pb-3">
|
|
|
- <p class="pb-5 pe-3">老師姓名<span class="mark">*</span></p>
|
|
|
+ <p class="pb-5 pe-3">工藝教育者姓名<span class="mark">*</span></p>
|
|
|
<v-text-field
|
|
|
v-model="resume.teacher_name"
|
|
|
:rules="[requiredRule]"
|
|
@@ -1236,7 +1151,7 @@ function removeTeacher(index) {
|
|
|
ref="portfolioImgRef"
|
|
|
label="File input"
|
|
|
variant="outlined"
|
|
|
- placeholder="選擇相片上傳"
|
|
|
+ :placeholder="t('form.choose_image')"
|
|
|
@change="handlePortfolioImg"
|
|
|
style="display: none"
|
|
|
></v-file-input>
|
|
@@ -1284,7 +1199,9 @@ function removeTeacher(index) {
|
|
|
<v-row class="justify-space-evenly">
|
|
|
<v-col cols="12" md="7">
|
|
|
<v-label class="d-block mb-5">
|
|
|
- <p class="pb-5 pe-3">課程名稱<span class="mark">*</span></p>
|
|
|
+ <p class="pb-5 pe-3">
|
|
|
+ {{ t("form.course_name") }}<span class="mark">*</span>
|
|
|
+ </p>
|
|
|
<v-text-field
|
|
|
v-model="proposal.class_name"
|
|
|
:rules="[requiredRule]"
|
|
@@ -1294,7 +1211,9 @@ function removeTeacher(index) {
|
|
|
</v-label>
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
- <p class="pb-5 pe-3">工藝類別<span class="mark">*</span></p>
|
|
|
+ <p class="pb-5 pe-3">
|
|
|
+ {{ t("form.craft_category") }}<span class="mark">*</span>
|
|
|
+ </p>
|
|
|
<v-select
|
|
|
v-model="proposal.category"
|
|
|
placeholder="請選擇類別"
|
|
@@ -1321,10 +1240,10 @@ function removeTeacher(index) {
|
|
|
</v-label>
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
- <p class="pb-5 pe-3">上課地點</p>
|
|
|
+ <p class="pb-5 pe-3">{{ t("form.course_location") }}</p>
|
|
|
<v-text-field
|
|
|
v-model="location.address"
|
|
|
- label="自動帶入據點地址"
|
|
|
+ :label="t('form.auto_fill_location_address')"
|
|
|
density="compact"
|
|
|
variant="outlined"
|
|
|
disabled
|
|
@@ -1332,10 +1251,10 @@ function removeTeacher(index) {
|
|
|
</v-label>
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
- <p class="pb-5 pe-3">主辦單位</p>
|
|
|
+ <p class="pb-5 pe-3">{{ t("form.organizer") }}</p>
|
|
|
<v-text-field
|
|
|
v-model="location.location_name"
|
|
|
- label="自動帶入據點名稱"
|
|
|
+ :label="t('form.auto_fill_location_name')"
|
|
|
density="compact"
|
|
|
variant="outlined"
|
|
|
disabled
|
|
@@ -1343,10 +1262,12 @@ function removeTeacher(index) {
|
|
|
</v-label>
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
- <p class="d-flex">課程簡介<span class="mark">*</span></p>
|
|
|
- <small class="my-2 hint"
|
|
|
- >內容不得少於 100 個字元,且不得含有工藝無關之資訊</small
|
|
|
- >
|
|
|
+ <p class="d-flex">
|
|
|
+ {{ t("form.course_intro") }}<span class="mark">*</span>
|
|
|
+ </p>
|
|
|
+ <small class="my-2 hint">{{
|
|
|
+ t("form.content_requirements")
|
|
|
+ }}</small>
|
|
|
<v-textarea
|
|
|
v-model="proposal.introduction"
|
|
|
rows="5"
|
|
@@ -1368,7 +1289,9 @@ function removeTeacher(index) {
|
|
|
</v-label> -->
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
- <p class="pb-5 pe-3">課程價位<span class="mark">*</span></p>
|
|
|
+ <p class="pb-5 pe-3">
|
|
|
+ {{ t("form.course_price") }}<span class="mark">*</span>
|
|
|
+ </p>
|
|
|
<v-text-field
|
|
|
v-model="proposal.fee_method"
|
|
|
type="number"
|
|
@@ -1378,7 +1301,9 @@ function removeTeacher(index) {
|
|
|
</v-label>
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
- <p class="pb-5 pe-3">課程名額<span class="mark">*</span></p>
|
|
|
+ <p class="pb-5 pe-3">
|
|
|
+ {{ t("form.course_quota") }}<span class="mark">*</span>
|
|
|
+ </p>
|
|
|
<v-text-field
|
|
|
v-model="proposal.number_limit"
|
|
|
density="compact"
|
|
@@ -1389,23 +1314,26 @@ function removeTeacher(index) {
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
<p class="pb-5 pe-3">
|
|
|
- 最低開課人數<span class="mark">*</span>
|
|
|
+ {{ t("form.minimum_enrollment")
|
|
|
+ }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
<v-text-field
|
|
|
v-model="proposal.number_minimum"
|
|
|
density="compact"
|
|
|
variant="outlined"
|
|
|
- placeholder="請輸入開課門檻人數"
|
|
|
+ :placeholder="t('form.enter_minimum_enrollment')"
|
|
|
></v-text-field>
|
|
|
</v-label>
|
|
|
|
|
|
<v-label class="d-block mb-5">
|
|
|
- <p class="pb-5 pe-3">適合對象<span class="mark">*</span></p>
|
|
|
+ <p class="pb-5 pe-3">
|
|
|
+ {{ t("form.target_audience") }}<span class="mark">*</span>
|
|
|
+ </p>
|
|
|
<v-textarea
|
|
|
v-model="proposal.people"
|
|
|
rows="2"
|
|
|
variant="outlined"
|
|
|
- placeholder="ex. 不拘、18-65 歲、大專院校工藝、美術、設計科系學生、從事木作相關之業者或個人工作室"
|
|
|
+ :placeholder="t('form.target_placeholder')"
|
|
|
:rules="[requiredRule]"
|
|
|
></v-textarea>
|
|
|
</v-label>
|
|
@@ -1427,7 +1355,8 @@ function removeTeacher(index) {
|
|
|
|
|
|
<v-label class="d-block">
|
|
|
<p class="d-flex">
|
|
|
- 上傳課程封面<span class="mark">*</span>
|
|
|
+ {{ t("form.upload_course_cover_image")
|
|
|
+ }}<span class="mark">*</span>
|
|
|
</p>
|
|
|
|
|
|
<v-file-input
|
|
@@ -1436,7 +1365,7 @@ function removeTeacher(index) {
|
|
|
ref="coverImgRef"
|
|
|
label="File input"
|
|
|
variant="outlined"
|
|
|
- placeholder="選擇相片上傳"
|
|
|
+ :placeholder="t('form.choose_image')"
|
|
|
@change="handleCoverImg"
|
|
|
style="display: none"
|
|
|
></v-file-input>
|
|
@@ -1446,8 +1375,9 @@ function removeTeacher(index) {
|
|
|
@click="fileInputClick('cover')"
|
|
|
color="purple"
|
|
|
class="my-5"
|
|
|
- >選擇相片上傳</v-btn
|
|
|
>
|
|
|
+ {{ t("form.choose_image") }}
|
|
|
+ </v-btn>
|
|
|
|
|
|
<div class="step-01 image-preview">
|
|
|
<img
|
|
@@ -1460,7 +1390,7 @@ function removeTeacher(index) {
|
|
|
|
|
|
<v-col cols="12" md="5">
|
|
|
<div class="notes-block">
|
|
|
- <p class="mb-5">課程審核標準:</p>
|
|
|
+ <p class="mb-5">{{ t("course_review_criteria") }}:</p>
|
|
|
<ul>
|
|
|
<li>
|
|
|
◆
|
|
@@ -1495,7 +1425,7 @@ function removeTeacher(index) {
|
|
|
@click="step--"
|
|
|
class="px-7 me-2"
|
|
|
>
|
|
|
- 上一步
|
|
|
+ {{ t("back") }}
|
|
|
</v-btn>
|
|
|
<v-spacer></v-spacer>
|
|
|
|
|
@@ -1506,7 +1436,7 @@ function removeTeacher(index) {
|
|
|
@click="checkField(step)"
|
|
|
class="px-7 ms-2"
|
|
|
>
|
|
|
- 下一步
|
|
|
+ {{ t("next") }}
|
|
|
</v-btn>
|
|
|
<!-- <div
|
|
|
v-if="errorField"
|
|
@@ -1548,12 +1478,14 @@ function removeTeacher(index) {
|
|
|
variant="outlined"
|
|
|
class="mb-5 mb-sm-0 me-sm-3"
|
|
|
>
|
|
|
- <router-link to="/" class="px-7">回到首頁</router-link>
|
|
|
+ <router-link to="/" class="px-7">{{
|
|
|
+ t("return_to_home")
|
|
|
+ }}</router-link>
|
|
|
</v-btn>
|
|
|
<v-btn v-if="step === 4" color="purple" variant="flat">
|
|
|
- <router-link to="/user/courses" class="px-7"
|
|
|
- >前往開課專區</router-link
|
|
|
- >
|
|
|
+ <router-link to="/user/courses" class="px-7">{{
|
|
|
+ t("go_to_course_area")
|
|
|
+ }}</router-link>
|
|
|
</v-btn>
|
|
|
</v-card-actions>
|
|
|
</v-card>
|
|
@@ -1629,6 +1561,7 @@ function removeTeacher(index) {
|
|
|
.v-label {
|
|
|
p {
|
|
|
width: 5.9375em;
|
|
|
+ display: flex;
|
|
|
text-align: end;
|
|
|
line-height: 1.375em;
|
|
|
@media (max-width: 600px) {
|