Merge branch 'develop' into dev-tee
# Conflicts: # src/modules/06_retirement/components/ExitInterview/exitRegistry.vue
This commit is contained in:
commit
a03c46e35a
17 changed files with 637 additions and 265 deletions
|
|
@ -4,6 +4,11 @@ import { useQuasar } from "quasar";
|
|||
import { useRoute, useRouter } from "vue-router";
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
|
||||
import type {
|
||||
OptionQuestions,
|
||||
OptionQuestions2,
|
||||
} from "@/modules/06_retirement/interface/request/Main";
|
||||
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
import keycloak from "@/plugins/keycloak";
|
||||
|
|
@ -60,86 +65,87 @@ const score = reactive([
|
|||
const scoreTotal = ref<number|string>('');
|
||||
|
||||
const reasonWorkOther = ref("");
|
||||
const reasonWork_option = ref<any>([
|
||||
{ label: "ความมั่นคงในการทำงาน ", value: 0 },
|
||||
{ label: "สิทธิประโยชน์/สวัสดิการ", value: 1 },
|
||||
{ label: "อัตราเงินเดือน ", value: 2 },
|
||||
{ label: "ลักษณะงาน ", value: 3 },
|
||||
{ label: "วัฒนธรรมการทำงานของข้าราชการ ", value: 4 },
|
||||
{ label: "นโยบายของหน่วยงาน ", value: 5 },
|
||||
{ label: "ระบบการทำงาน", value: 6 },
|
||||
{ label: "สมดุลชีวิตการทำงาน ", value: 7 },
|
||||
{ label: "บรรยากาศในการทำงาน ", value: 8 },
|
||||
{ label: "การพัฒนาในสายอาชีพ ", value: 9 },
|
||||
{ label: "โอกาสความก้าวหน้า ", value: 10 },
|
||||
{ label: "การได้รับการยอมรับจากสังคม ", value: 11 },
|
||||
{ label: "อื่น ๆ (ระบุ) ", value: 12 },
|
||||
]);
|
||||
// const reasonWork_option = ref<any>([
|
||||
// { label: "ความมั่นคงในการทำงาน ", value: 0 },
|
||||
// { label: "สิทธิประโยชน์/สวัสดิการ", value: 1 },
|
||||
// { label: "อัตราเงินเดือน ", value: 2 },
|
||||
// { label: "ลักษณะงาน ", value: 3 },
|
||||
// { label: "วัฒนธรรมการทำงานของข้าราชการ ", value: 4 },
|
||||
// { label: "นโยบายของหน่วยงาน ", value: 5 },
|
||||
// { label: "ระบบการทำงาน", value: 6 },
|
||||
// { label: "สมดุลชีวิตการทำงาน ", value: 7 },
|
||||
// { label: "บรรยากาศในการทำงาน ", value: 8 },
|
||||
// { label: "การพัฒนาในสายอาชีพ ", value: 9 },
|
||||
// { label: "โอกาสความก้าวหน้า ", value: 10 },
|
||||
// { label: "การได้รับการยอมรับจากสังคม ", value: 11 },
|
||||
// { label: "อื่น ๆ (ระบุ) ", value: 12 },
|
||||
// ]);
|
||||
const exitFactorOther = ref("");
|
||||
const exitFactor_option = ref<any>([
|
||||
{ label: "อัตราเงินเดือน ", value: 0 },
|
||||
{ label: "สวัสดิการ", value: 1 },
|
||||
{ label: "ลักษณะงาน ", value: 2 },
|
||||
{ label: "ระบบการทำงาน ", value: 3 },
|
||||
{ label: "ระบบสนับสนุนการปฏิบัติงาน ", value: 4 },
|
||||
{ label: "การมอบหมายงานที่ชัดเจนและเหมาะสม ", value: 5 },
|
||||
{ label: "การบริหารงานของผู้บังคับบัญชา", value: 6 },
|
||||
{ label: "การทำงานเป็นทีมกับเพื่อนร่วมงาน ", value: 7 },
|
||||
{ label: "ระบบบริหารงานภายในหน่วยงาน ", value: 8 },
|
||||
{ label: "บรรยากาศในการทำงาน ", value: 9 },
|
||||
{ label: "การปฏิบัติอย่างเป็นธรรม ", value: 10 },
|
||||
{ label: "การยอมรับความแตกต่างหลากหลาย ", value: 11 },
|
||||
{ label: "การดูแลและให้ความช่วยเหลือในช่วงเริ่มต้นปฏิบัติงาน ", value: 12 },
|
||||
{ label: "การพัฒนาอย่างเป็นระบบและต่อเนื่อง ", value: 13 },
|
||||
{ label: "โอกาสความก้าวหน้า ", value: 14 },
|
||||
{ label: "อื่น ๆ (ระบุ) ", value: 15 },
|
||||
]);
|
||||
// const exitFactor_option = ref<any>([
|
||||
// { label: "อัตราเงินเดือน ", value: 0 },
|
||||
// { label: "สวัสดิการ", value: 1 },
|
||||
// { label: "ลักษณะงาน ", value: 2 },
|
||||
// { label: "ระบบการทำงาน ", value: 3 },
|
||||
// { label: "ระบบสนับสนุนการปฏิบัติงาน ", value: 4 },
|
||||
// { label: "การมอบหมายงานที่ชัดเจนและเหมาะสม ", value: 5 },
|
||||
// { label: "การบริหารงานของผู้บังคับบัญชา", value: 6 },
|
||||
// { label: "การทำงานเป็นทีมกับเพื่อนร่วมงาน ", value: 7 },
|
||||
// { label: "ระบบบริหารงานภายในหน่วยงาน ", value: 8 },
|
||||
// { label: "บรรยากาศในการทำงาน ", value: 9 },
|
||||
// { label: "การปฏิบัติอย่างเป็นธรรม ", value: 10 },
|
||||
// { label: "การยอมรับความแตกต่างหลากหลาย ", value: 11 },
|
||||
// { label: "การดูแลและให้ความช่วยเหลือในช่วงเริ่มต้นปฏิบัติงาน ", value: 12 },
|
||||
// { label: "การพัฒนาอย่างเป็นระบบและต่อเนื่อง ", value: 13 },
|
||||
// { label: "โอกาสความก้าวหน้า ", value: 14 },
|
||||
// { label: "อื่น ๆ (ระบุ) ", value: 15 },
|
||||
// ]);
|
||||
const suggestFriendsReason = ref("");
|
||||
const suggestFriends_option = ref<any>([
|
||||
{ label: "แนะนำ ", value: true },
|
||||
{ label: "ไม่แนะนำ (ระบุ)", value: false },
|
||||
]);
|
||||
const timeThink_option = ref<any>([
|
||||
{ label: "น้อยกว่า 2 สัปดาห์ ", value: 0 },
|
||||
{ label: "1 เดือน - 3 เดือน", value: 1 },
|
||||
{ label: "3 เดือน - 6 เดือน ", value: 2 },
|
||||
{ label: "6 เดือนขึ้นไป ", value: 3 },
|
||||
]);
|
||||
// const suggestFriends_option = ref<any>([
|
||||
// { label: "แนะนำ ", value: true },
|
||||
// { label: "ไม่แนะนำ (ระบุ)", value: false },
|
||||
// ]);
|
||||
// const timeThink_option = ref<any>([
|
||||
// { label: "น้อยกว่า 2 สัปดาห์ ", value: 0 },
|
||||
// { label: "1 เดือน - 3 เดือน", value: 1 },
|
||||
// { label: "3 เดือน - 6 เดือน ", value: 2 },
|
||||
// { label: "6 เดือนขึ้นไป ", value: 3 },
|
||||
// ]);
|
||||
const haveJobReason = ref<any>("");
|
||||
const haveJob_option = ref<any>([
|
||||
{ label: "มี (ระบุ) ", value: true },
|
||||
{ label: "ไม่มี", value: false },
|
||||
]);
|
||||
// const haveJob_option = ref<any>([
|
||||
// { label: "มี (ระบุ) ", value: true },
|
||||
// { label: "ไม่มี", value: false },
|
||||
// ]);
|
||||
const futureWorkReason = ref<any>("");
|
||||
const futureWork_option = ref<any>([
|
||||
{ label: "อยาก ", value: true },
|
||||
{ label: "ไม่อยาก (ระบุ)", value: false },
|
||||
]);
|
||||
// const futureWork_option = ref<any>([
|
||||
// { label: "อยาก", value: true },
|
||||
// { label: "ไม่อยาก (ระบุ)", value: false },
|
||||
// ]);
|
||||
const adjustOther = ref("");
|
||||
const adjust_option = ref<any>([
|
||||
{ label: "อัตราเงินเดือน ", value: 0 },
|
||||
{ label: "สวัสดิการ", value: 1 },
|
||||
{ label: "ลักษณะงาน ", value: 2 },
|
||||
{ label: "ระบบการทำงาน ", value: 3 },
|
||||
{ label: "ระบบสนับสนุนการปฏิบัติงาน ", value: 4 },
|
||||
{ label: "การมอบหมายงานที่ชัดเจนและเหมาะสม ", value: 5 },
|
||||
{ label: "การบริหารงานของผู้บังคับบัญชา", value: 6 },
|
||||
{ label: "การทำงานเป็นทีมกับเพื่อนร่วมงาน ", value: 7 },
|
||||
{ label: "ระบบบริหารงานภายในหน่วยงาน ", value: 8 },
|
||||
{ label: "บรรยากาศในการทำงาน ", value: 9 },
|
||||
{ label: "การปฏิบัติอย่างเป็นธรรม ", value: 10 },
|
||||
{ label: "การยอมรับความแตกต่างหลากหลาย ", value: 11 },
|
||||
{ label: "การดูแลและให้ความช่วยเหลือในช่วงเริ่มต้นปฏิบัติงาน ", value: 12 },
|
||||
{ label: "การพัฒนาอย่างเป็นระบบและต่อเนื่อง ", value: 13 },
|
||||
{ label: "โอกาสความก้าวหน้า ", value: 14 },
|
||||
{ label: "อื่น ๆ (ระบุ) ", value: 15 },
|
||||
]);
|
||||
// const adjust_option = ref<any>([
|
||||
// { label: "อัตราเงินเดือน ", value: 0 },
|
||||
// { label: "สวัสดิการ", value: 1 },
|
||||
// { label: "ลักษณะงาน ", value: 2 },
|
||||
// { label: "ระบบการทำงาน ", value: 3 },
|
||||
// { label: "ระบบสนับสนุนการปฏิบัติงาน ", value: 4 },
|
||||
// { label: "การมอบหมายงานที่ชัดเจนและเหมาะสม ", value: 5 },
|
||||
// { label: "การบริหารงานของผู้บังคับบัญชา", value: 6 },
|
||||
// { label: "การทำงานเป็นทีมกับเพื่อนร่วมงาน ", value: 7 },
|
||||
// { label: "ระบบบริหารงานภายในหน่วยงาน ", value: 8 },
|
||||
// { label: "บรรยากาศในการทำงาน ", value: 9 },
|
||||
// { label: "การปฏิบัติอย่างเป็นธรรม ", value: 10 },
|
||||
// { label: "การยอมรับความแตกต่างหลากหลาย ", value: 11 },
|
||||
// { label: "การดูแลและให้ความช่วยเหลือในช่วงเริ่มต้นปฏิบัติงาน ", value: 12 },
|
||||
// { label: "การพัฒนาอย่างเป็นระบบและต่อเนื่อง ", value: 13 },
|
||||
// { label: "โอกาสความก้าวหน้า ", value: 14 },
|
||||
// { label: "อื่น ๆ (ระบุ) ", value: 15 },
|
||||
// ]);
|
||||
|
||||
onMounted(async () => {
|
||||
if (keycloak.tokenParsed != null) {
|
||||
roleAdmin.value = await keycloak.tokenParsed.role.includes("placement1");
|
||||
}
|
||||
await getData();
|
||||
await fecthquestion();
|
||||
});
|
||||
|
||||
//นำข้อมูลมาแสดง
|
||||
|
|
@ -185,6 +191,81 @@ const getData = async () => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
// เรียกคำถามแบบสอบถาม
|
||||
const questionDesc = reactive<any>([
|
||||
{
|
||||
question1Desc: "",
|
||||
question2Desc: "",
|
||||
question3Desc: "",
|
||||
question4Desc: "",
|
||||
question5Desc: "",
|
||||
question6Desc: "",
|
||||
question7Desc: "",
|
||||
question8Desc: "",
|
||||
question9Desc: "",
|
||||
question10Desc: "",
|
||||
},
|
||||
]);
|
||||
const question1Answer = ref<OptionQuestions[]>([]);
|
||||
const question2Answer = ref<OptionQuestions[]>([]);
|
||||
const question3Answer = ref<OptionQuestions[]>([]);
|
||||
const question4Answer = ref<OptionQuestions[]>([]);
|
||||
const question7Answer = ref<OptionQuestions2[]>([]);
|
||||
const question8Answer = ref<OptionQuestions2[]>([]);
|
||||
const question9Answer = ref<OptionQuestions2[]>([]);
|
||||
async function fecthquestion() {
|
||||
await http
|
||||
.get(config.API.questionnaireList())
|
||||
.then((result) => {
|
||||
const data = result.data.result;
|
||||
console.log(data);
|
||||
// คำถามแบบสอบถามหลัก
|
||||
for (let i = 1; i <= 10; i++) {
|
||||
questionDesc[`question${i}Desc`] =
|
||||
`${i}.` + " " + data[`question${i}Desc`];
|
||||
}
|
||||
// คำถามแบบสอบถามย่อย
|
||||
question1Answer.value = data.question1Answer.map(
|
||||
(e: any, index: number) => ({
|
||||
label: e,
|
||||
value: index,
|
||||
})
|
||||
);
|
||||
question2Answer.value = data.question2Answer.map(
|
||||
(e: any, index: number) => ({
|
||||
label: e,
|
||||
value: index,
|
||||
})
|
||||
);
|
||||
question3Answer.value = data.question3Answer.map(
|
||||
(e: any, index: number) => ({
|
||||
label: e,
|
||||
value: index,
|
||||
})
|
||||
);
|
||||
question4Answer.value = data.question4Answer.map(
|
||||
(e: any, index: number) => ({
|
||||
label: e,
|
||||
value: index,
|
||||
})
|
||||
);
|
||||
question7Answer.value = data.question7Answer.map((e: any) => ({
|
||||
label: e,
|
||||
value: e == "ไม่มี" ? false : true,
|
||||
}));
|
||||
question8Answer.value = data.question8Answer.map((e: any) => ({
|
||||
label: e,
|
||||
value: e == "แนะนำ" ? true : false,
|
||||
}));
|
||||
question9Answer.value = data.question9Answer.map((e: any) => ({
|
||||
label: e,
|
||||
value: e == "อยาก" ? true : false,
|
||||
}));
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
});
|
||||
}
|
||||
|
||||
watch(score, () => {
|
||||
scoreTotal.value = score.reduce((accumulator, object) => {
|
||||
|
|
@ -311,11 +392,13 @@ const putData = () => {
|
|||
>
|
||||
แบบสอบถาม
|
||||
</div>
|
||||
|
||||
<q-separator />
|
||||
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
||||
<div class="col-10 text-top0 items-center">
|
||||
1. เหตุใดท่านจึงตัดสินใจร่วมงานกับกรุงเทพมหานคร (เลือกได้มากกว่า
|
||||
1 ข้อ)
|
||||
<!-- 1. เหตุใดท่านจึงตัดสินใจร่วมงานกับกรุงเทพมหานคร (เลือกได้มากกว่า
|
||||
1 ข้อ) -->
|
||||
{{ questionDesc.question1Desc }}
|
||||
</div>
|
||||
<div class="col-2 text-top0 items-center">
|
||||
<q-input
|
||||
|
|
@ -330,7 +413,7 @@ const putData = () => {
|
|||
</div>
|
||||
|
||||
<q-option-group
|
||||
:options="reasonWork_option"
|
||||
:options="question1Answer"
|
||||
type="checkbox"
|
||||
v-model="reasonWork"
|
||||
disable
|
||||
|
|
@ -356,8 +439,9 @@ const putData = () => {
|
|||
</q-item-label>
|
||||
</div>
|
||||
<div class="col-10 text-top0 items-center">
|
||||
2. สำหรับการลาออกในครั้งนี้
|
||||
ท่านได้คิดทบทวนอย่างจริงจังเป็นระยะเวลานานเท่าใด
|
||||
<!-- 2. สำหรับการลาออกในครั้งนี้
|
||||
ท่านได้คิดทบทวนอย่างจริงจังเป็นระยะเวลานานเท่าใด -->
|
||||
{{ questionDesc.question2Desc }}
|
||||
</div>
|
||||
<div class="col-2 text-top0 items-center">
|
||||
<q-input
|
||||
|
|
@ -373,7 +457,7 @@ const putData = () => {
|
|||
|
||||
<div class="col-12">
|
||||
<q-option-group
|
||||
:options="timeThink_option"
|
||||
:options="question2Answer"
|
||||
type="radio"
|
||||
v-model="timeThink"
|
||||
disable
|
||||
|
|
@ -381,8 +465,9 @@ const putData = () => {
|
|||
</div>
|
||||
|
||||
<div class="col-10 text-top0 items-center">
|
||||
3. ปัจจัยใดที่ทำให้ท่านตัดสินใจลาออกจากราชการ (เลือกได้มากกว่า 1
|
||||
ข้อ )
|
||||
<!-- 3. ปัจจัยใดที่ทำให้ท่านตัดสินใจลาออกจากราชการ (เลือกได้มากกว่า 1
|
||||
ข้อ ) -->
|
||||
{{ questionDesc.question3Desc }}
|
||||
</div>
|
||||
|
||||
<div class="col-2 text-top0 items-center">
|
||||
|
|
@ -398,7 +483,7 @@ const putData = () => {
|
|||
</div>
|
||||
|
||||
<q-option-group
|
||||
:options="exitFactor_option"
|
||||
:options="question3Answer"
|
||||
type="checkbox"
|
||||
v-model="exitFactor"
|
||||
disable
|
||||
|
|
@ -426,7 +511,8 @@ const putData = () => {
|
|||
</div>
|
||||
|
||||
<div class="col-10 text-top0 items-center">
|
||||
4. อะไรคือสิ่งที่ท่านเห็นว่าควรปรับปรุง (เลือกได้มากกว่า 1 ข้อ)
|
||||
<!-- 4. อะไรคือสิ่งที่ท่านเห็นว่าควรปรับปรุง (เลือกได้มากกว่า 1 ข้อ) -->
|
||||
{{ questionDesc.question4Desc }}
|
||||
</div>
|
||||
|
||||
<div class="col-2 text-top0 items-center">
|
||||
|
|
@ -443,7 +529,7 @@ const putData = () => {
|
|||
|
||||
<q-list>
|
||||
<q-option-group
|
||||
:options="adjust_option"
|
||||
:options="question4Answer"
|
||||
type="checkbox"
|
||||
v-model="adjust"
|
||||
disable
|
||||
|
|
@ -470,8 +556,9 @@ const putData = () => {
|
|||
</q-item-label>
|
||||
</div>
|
||||
<div class="col-10 text-top0 items-center">
|
||||
5. โปรดระบุสาเหตุที่แท้จริง
|
||||
ที่ทำให้ท่านตัดสินใจลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร ?
|
||||
<!-- 5. โปรดระบุสาเหตุที่แท้จริง
|
||||
ที่ทำให้ท่านตัดสินใจลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร ? -->
|
||||
{{ questionDesc.question5Desc }}
|
||||
</div>
|
||||
<div class="col-2 text-top0 items-center">
|
||||
<q-input
|
||||
|
|
@ -496,8 +583,9 @@ const putData = () => {
|
|||
/>
|
||||
|
||||
<div class="col-10 text-top0 items-center">
|
||||
6. ปัจจัยใดที่จะช่วยทำให้ท่านเปลี่ยนใจ
|
||||
ไม่อยากลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร
|
||||
<!-- 6. ปัจจัยใดที่จะช่วยทำให้ท่านเปลี่ยนใจ
|
||||
ไม่อยากลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร -->
|
||||
{{ questionDesc.question6Desc }}
|
||||
</div>
|
||||
<div class="col-2 text-top0 items-center">
|
||||
<q-input
|
||||
|
|
@ -522,10 +610,11 @@ const putData = () => {
|
|||
/>
|
||||
|
||||
<div class="col-10 text-top0 items-center">
|
||||
7. ท่านมีงานใหม่หรือไม่ ถ้ามี (โปรดระบุ
|
||||
<!-- 7. ท่านมีงานใหม่หรือไม่ ถ้ามี (โปรดระบุ
|
||||
ชื่อบริษัทเอกชน/หน่วยงานภาครัฐ)
|
||||
และอะไรคือสิ่งที่ที่ทำงานใหม่ให้กับท่าน
|
||||
ซึ่งท่านรู้สึกว่าเป็นที่น่าพอใจมากกว่าการปฏิบัติราชการกับกรุงเทพมหานคร
|
||||
ซึ่งท่านรู้สึกว่าเป็นที่น่าพอใจมากกว่าการปฏิบัติราชการกับกรุงเทพมหานคร -->
|
||||
{{ questionDesc.question7Desc }}
|
||||
</div>
|
||||
|
||||
<div class="col-2 text-top0 items-center">
|
||||
|
|
@ -541,7 +630,7 @@ const putData = () => {
|
|||
</div>
|
||||
|
||||
<q-option-group
|
||||
:options="haveJob_option"
|
||||
:options="question7Answer"
|
||||
type="radio"
|
||||
v-model="haveJob"
|
||||
disable
|
||||
|
|
@ -567,8 +656,9 @@ const putData = () => {
|
|||
</q-item-label>
|
||||
</div>
|
||||
<div class="col-10 text-top0 items-center">
|
||||
8. ท่านจะแนะนำเพื่อนให้มาร่วมงานกับกรุงเทพมหานครหรือไม่ (ถ้าไม่
|
||||
โปรดระบุเหตุผล)
|
||||
<!-- 8. ท่านจะแนะนำเพื่อนให้มาร่วมงานกับกรุงเทพมหานครหรือไม่ (ถ้าไม่
|
||||
โปรดระบุเหตุผล) -->
|
||||
{{ questionDesc.question8Desc }}
|
||||
</div>
|
||||
|
||||
<div class="col-2 text-top0 items-center">
|
||||
|
|
@ -584,7 +674,7 @@ const putData = () => {
|
|||
</div>
|
||||
|
||||
<q-option-group
|
||||
:options="suggestFriends_option"
|
||||
:options="question8Answer"
|
||||
type="radio"
|
||||
v-model="suggestFriends"
|
||||
disable
|
||||
|
|
@ -610,9 +700,10 @@ const putData = () => {
|
|||
</q-item-label>
|
||||
</div>
|
||||
<div class="col-10 text-top0 items-center">
|
||||
9. หากท่านมีโอกาสในอนาคต
|
||||
<!-- 9. หากท่านมีโอกาสในอนาคต
|
||||
ท่านอยากกลับมาร่วมงานกับกรุงเทพมหานครหรือไม่ (ถ้าไม่
|
||||
โปรดระบุเหตุผล)
|
||||
โปรดระบุเหตุผล) -->
|
||||
{{ questionDesc.question9Desc }}
|
||||
</div>
|
||||
<div class="col-2 text-top0 items-center">
|
||||
<q-input
|
||||
|
|
@ -625,9 +716,8 @@ const putData = () => {
|
|||
:rules="[(val) => val !== '' || 'กรุณากรอกคะเเนน']"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<q-option-group
|
||||
:options="futureWork_option"
|
||||
:options="question9Answer"
|
||||
type="radio"
|
||||
v-model="futureWork"
|
||||
disable
|
||||
|
|
@ -654,7 +744,8 @@ const putData = () => {
|
|||
</div>
|
||||
|
||||
<div class="col-10 text-top0 items-center">
|
||||
10. ความคิดเห็นและข้อเสนอแนะอื่น ๆ
|
||||
<!-- 10. ความคิดเห็นและข้อเสนอแนะอื่น ๆ -->
|
||||
{{ questionDesc.question10Desc }}
|
||||
</div>
|
||||
<div class="col-2 text-top0 items-center">
|
||||
<q-input
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue