ข้อมูลการประเมิณ => ปรับ form Dialog
This commit is contained in:
parent
6f9a82faa3
commit
dafe59cf27
8 changed files with 619 additions and 633 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
divdivdivdivdivdivdiv
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, onMounted } from "vue";
|
import { ref, reactive, onMounted } from "vue";
|
||||||
import { QForm, useQuasar } from "quasar";
|
import { QForm, useQuasar } from "quasar";
|
||||||
|
|
@ -264,407 +265,411 @@ onMounted(() => {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
<q-card>
|
||||||
<div>
|
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
||||||
<div class="row q-col-gutter-md q-pa-md">
|
<q-card-section>
|
||||||
<div class="col-2" v-if="editCheck">
|
<div class="row q-col-gutter-md q-pa-md">
|
||||||
<q-input
|
<div class="col-2" v-if="editCheck">
|
||||||
outlined
|
<q-input
|
||||||
v-model="planData.including"
|
outlined
|
||||||
label="ลำดับ/รหัสตัวชี้วัด"
|
v-model="planData.including"
|
||||||
bg-color="white"
|
label="ลำดับ/รหัสตัวชี้วัด"
|
||||||
readonly
|
bg-color="white"
|
||||||
dense
|
readonly
|
||||||
class="inputgreen"
|
dense
|
||||||
/>
|
class="inputgreen"
|
||||||
</div>
|
/>
|
||||||
<div :class="`${editCheck ? 'col-6' : 'col-8'}`">
|
</div>
|
||||||
<q-input
|
<div :class="`${editCheck ? 'col-6' : 'col-8'}`">
|
||||||
outlined
|
<q-input
|
||||||
v-model="planData.includingName"
|
outlined
|
||||||
label="ชื่อตัวชี้วัด"
|
v-model="planData.includingName"
|
||||||
bg-color="white"
|
label="ชื่อตัวชี้วัด"
|
||||||
dense
|
bg-color="white"
|
||||||
class="inputgreen"
|
dense
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกชิ่อตัวชี้วัด'}`]"
|
class="inputgreen"
|
||||||
hide-bottom-space
|
:rules="[(val) => !!val || `${'กรุณากรอกชิ่อตัวชี้วัด'}`]"
|
||||||
/>
|
hide-bottom-space
|
||||||
</div>
|
/>
|
||||||
<div class="col-2">
|
</div>
|
||||||
<datepicker
|
<div class="col-2">
|
||||||
menu-class-name="modalfix"
|
<datepicker
|
||||||
v-model="year"
|
menu-class-name="modalfix"
|
||||||
:locale="'th'"
|
v-model="year"
|
||||||
autoApply
|
:locale="'th'"
|
||||||
year-picker
|
autoApply
|
||||||
:enableTimePicker="false"
|
year-picker
|
||||||
>
|
:enableTimePicker="false"
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
>
|
||||||
<template #year-overlay-value="{ value }">{{
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
parseInt(value + 543)
|
<template #year-overlay-value="{ value }">{{
|
||||||
}}</template>
|
parseInt(value + 543)
|
||||||
<template #trigger>
|
}}</template>
|
||||||
<q-input
|
<template #trigger>
|
||||||
dense
|
<q-input
|
||||||
outlined
|
dense
|
||||||
class="inputgreen"
|
outlined
|
||||||
hide-bottom-space
|
class="inputgreen"
|
||||||
:model-value="!!year ? year + 543 : null"
|
hide-bottom-space
|
||||||
:label="`${'ปีงบประมาณ'}`"
|
:model-value="!!year ? year + 543 : null"
|
||||||
>
|
:label="`${'ปีงบประมาณ'}`"
|
||||||
<template v-slot:prepend>
|
>
|
||||||
<q-icon
|
<template v-slot:prepend>
|
||||||
name="event"
|
<q-icon
|
||||||
class="cursor-pointer"
|
name="event"
|
||||||
style="color: var(--q-primary)"
|
class="cursor-pointer"
|
||||||
>
|
style="color: var(--q-primary)"
|
||||||
</q-icon>
|
>
|
||||||
</template>
|
</q-icon>
|
||||||
<template v-slot:append>
|
</template>
|
||||||
<q-icon
|
<template v-slot:append>
|
||||||
v-if="year"
|
<q-icon
|
||||||
name="cancel"
|
v-if="year"
|
||||||
class="cursor-pointer"
|
name="cancel"
|
||||||
@click.stop.prevent="year = 0"
|
class="cursor-pointer"
|
||||||
/>
|
@click.stop.prevent="year = 0"
|
||||||
</template>
|
/>
|
||||||
</q-input>
|
</template>
|
||||||
</template>
|
</q-input>
|
||||||
</datepicker>
|
</template>
|
||||||
</div>
|
</datepicker>
|
||||||
<div class="col-2">
|
</div>
|
||||||
<q-select
|
<div class="col-2">
|
||||||
ref="inputRef"
|
<q-select
|
||||||
dense
|
ref="inputRef"
|
||||||
outlined
|
dense
|
||||||
v-model="planData.period"
|
outlined
|
||||||
:options="roundOp"
|
v-model="planData.period"
|
||||||
label="รอบการประเมิน"
|
:options="roundOp"
|
||||||
option-label="name"
|
label="รอบการประเมิน"
|
||||||
option-value="id"
|
option-label="name"
|
||||||
map-options
|
option-value="id"
|
||||||
emit-value
|
map-options
|
||||||
class="inputgreen"
|
emit-value
|
||||||
/>
|
class="inputgreen"
|
||||||
</div>
|
/>
|
||||||
<div class="col-4">
|
</div>
|
||||||
<q-input
|
<div class="col-4">
|
||||||
outlined
|
<q-input
|
||||||
v-model="planData.target"
|
outlined
|
||||||
label="ค่าเป้าหมาย"
|
v-model="planData.target"
|
||||||
bg-color="white"
|
label="ค่าเป้าหมาย"
|
||||||
dense
|
bg-color="white"
|
||||||
class="inputgreen"
|
dense
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกค่าเป้าหมาย'}`]"
|
class="inputgreen"
|
||||||
hide-bottom-space
|
:rules="[(val) => !!val || `${'กรุณากรอกค่าเป้าหมาย'}`]"
|
||||||
/>
|
hide-bottom-space
|
||||||
</div>
|
/>
|
||||||
<div class="col-4">
|
</div>
|
||||||
<q-input
|
<div class="col-4">
|
||||||
outlined
|
<q-input
|
||||||
v-model="planData.unit"
|
outlined
|
||||||
label="หน่วยนับ"
|
v-model="planData.unit"
|
||||||
bg-color="white"
|
label="หน่วยนับ"
|
||||||
dense
|
bg-color="white"
|
||||||
lazy-rules
|
dense
|
||||||
class="inputgreen"
|
lazy-rules
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกหน่วยนับ'}`]"
|
class="inputgreen"
|
||||||
hide-bottom-space
|
:rules="[(val) => !!val || `${'กรุณากรอกหน่วยนับ'}`]"
|
||||||
/>
|
hide-bottom-space
|
||||||
</div>
|
/>
|
||||||
<div class="col-4">
|
</div>
|
||||||
<q-input
|
<div class="col-4">
|
||||||
outlined
|
<q-input
|
||||||
v-model="planData.weight"
|
outlined
|
||||||
label="น้ำหนัก"
|
v-model="planData.weight"
|
||||||
type="number"
|
label="น้ำหนัก"
|
||||||
bg-color="white"
|
type="number"
|
||||||
dense
|
bg-color="white"
|
||||||
class="inputgreen"
|
dense
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกน้ำหนัก'}`]"
|
class="inputgreen"
|
||||||
hide-bottom-space
|
:rules="[(val) => !!val || `${'กรุณากรอกน้ำหนัก'}`]"
|
||||||
/>
|
hide-bottom-space
|
||||||
</div>
|
/>
|
||||||
<div class="col-12 row">
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-12 row">
|
||||||
<q-card flat bordered>
|
<div class="col-6">
|
||||||
<q-card bordered>
|
<q-card flat bordered>
|
||||||
<q-card-actions class="bg-grey-3 row">
|
<q-card bordered>
|
||||||
|
<q-card-actions class="bg-grey-3 row">
|
||||||
|
<div class="col-4 flex justify-center items-center">
|
||||||
|
<div>ระดับคะแนน</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-8 q-px-xl">ผลสำเร็จของงาน</div>
|
||||||
|
</q-card-actions>
|
||||||
|
</q-card>
|
||||||
|
<div class="row">
|
||||||
<div class="col-4 flex justify-center items-center">
|
<div class="col-4 flex justify-center items-center">
|
||||||
<div>ระดับคะแนน</div>
|
<div>5</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-8 q-px-xl">ผลสำเร็จของงาน</div>
|
<div class="col-8 q-pa-sm">
|
||||||
</q-card-actions>
|
<q-input
|
||||||
|
outlined
|
||||||
|
v-model="planData.achievement5"
|
||||||
|
label="กรอกผลสำเร็จของงาน"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
class="inputgreen"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||||
|
]"
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4 flex justify-center items-center">
|
||||||
|
<div>4</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-8 q-pa-sm">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
v-model="planData.achievement4"
|
||||||
|
label="กรอกผลสำเร็จของงาน"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
class="inputgreen"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||||
|
]"
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4 flex justify-center items-center">
|
||||||
|
<div>3</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-8 q-pa-sm">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
v-model="planData.achievement3"
|
||||||
|
label="กรอกผลสำเร็จของงาน"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
class="inputgreen"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||||
|
]"
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4 flex justify-center items-center">
|
||||||
|
<div>2</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-8 q-pa-sm">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
v-model="planData.achievement2"
|
||||||
|
label="กรอกผลสำเร็จของงาน"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
class="inputgreen"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||||
|
]"
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4 flex justify-center items-center">
|
||||||
|
<div>1</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-8 q-pa-sm">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
v-model="planData.achievement1"
|
||||||
|
label="กรอกผลสำเร็จของงาน"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
class="inputgreen"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||||
|
]"
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</q-card>
|
</q-card>
|
||||||
<div class="row">
|
</div>
|
||||||
<div class="col-4 flex justify-center items-center">
|
</div>
|
||||||
<div>5</div>
|
<div class="col-12">
|
||||||
</div>
|
<q-input
|
||||||
<div class="col-8 q-pa-sm">
|
outlined
|
||||||
<q-input
|
v-model="planData.meaning"
|
||||||
outlined
|
label="นิยามหรือความหมาย"
|
||||||
v-model="planData.achievement5"
|
type="textarea"
|
||||||
label="กรอกผลสำเร็จของงาน"
|
bg-color="white"
|
||||||
bg-color="white"
|
dense
|
||||||
dense
|
class="inputgreen"
|
||||||
class="inputgreen"
|
:rules="[(val) => !!val || `${'กรุณากรอกนิยามหรือความหมาย'}`]"
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`]"
|
hide-bottom-space
|
||||||
hide-bottom-space
|
/>
|
||||||
/>
|
</div>
|
||||||
</div>
|
<div class="col-12">
|
||||||
</div>
|
<q-input
|
||||||
<div class="row">
|
outlined
|
||||||
<div class="col-4 flex justify-center items-center">
|
v-model="planData.formula"
|
||||||
<div>4</div>
|
label="สูตรคำนวณ"
|
||||||
</div>
|
bg-color="white"
|
||||||
<div class="col-8 q-pa-sm">
|
type="textarea"
|
||||||
<q-input
|
dense
|
||||||
outlined
|
class="inputgreen"
|
||||||
v-model="planData.achievement4"
|
:rules="[(val) => !!val || `${'กรุณากรอกสูตรคำนวณ'}`]"
|
||||||
label="กรอกผลสำเร็จของงาน"
|
hide-bottom-space
|
||||||
bg-color="white"
|
/>
|
||||||
dense
|
</div>
|
||||||
class="inputgreen"
|
<div class="col-6">
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`]"
|
<q-card bordered class="col-12">
|
||||||
hide-bottom-space
|
<div
|
||||||
/>
|
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"
|
||||||
</div>
|
>
|
||||||
</div>
|
หน่วยงาน/ส่วนราชการ
|
||||||
<div class="row">
|
|
||||||
<div class="col-4 flex justify-center items-center">
|
|
||||||
<div>3</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-8 q-pa-sm">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
v-model="planData.achievement3"
|
|
||||||
label="กรอกผลสำเร็จของงาน"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
class="inputgreen"
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`]"
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-4 flex justify-center items-center">
|
|
||||||
<div>2</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-8 q-pa-sm">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
v-model="planData.achievement2"
|
|
||||||
label="กรอกผลสำเร็จของงาน"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
class="inputgreen"
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`]"
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-4 flex justify-center items-center">
|
|
||||||
<div>1</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-8 q-pa-sm">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
v-model="planData.achievement1"
|
|
||||||
label="กรอกผลสำเร็จของงาน"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
class="inputgreen"
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`]"
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<q-separator />
|
||||||
|
|
||||||
|
<q-card-section class="q-pa-sm">
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
v-model="filterAgency"
|
||||||
|
label="ค้นหา"
|
||||||
|
class="inputgreen"
|
||||||
|
>
|
||||||
|
<template v-slot:append>
|
||||||
|
<q-icon
|
||||||
|
v-if="filterAgency !== ''"
|
||||||
|
name="clear"
|
||||||
|
class="cursor-pointer"
|
||||||
|
@click="filterAgency = ''"
|
||||||
|
/>
|
||||||
|
<q-icon v-else name="search" color="grey-5" />
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
<q-tree
|
||||||
|
style="height: 350px; overflow: scroll"
|
||||||
|
dense
|
||||||
|
:nodes="nodeAgency"
|
||||||
|
node-key="orgTreeId"
|
||||||
|
label-key="orgTreeName"
|
||||||
|
selected-color="primary"
|
||||||
|
:filter="filterAgency"
|
||||||
|
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
||||||
|
no-nodes-label="ไม่มีข้อมูล"
|
||||||
|
v-model:expanded="expandedAgency"
|
||||||
|
v-model:selected="planData.nodeId"
|
||||||
|
>
|
||||||
|
<template v-slot:default-header="prop">
|
||||||
|
<q-item
|
||||||
|
clickable
|
||||||
|
@click.stop="updateSelectedAgency(prop.node)"
|
||||||
|
:active="planData.nodeId == prop.node.orgTreeId"
|
||||||
|
active-class="my-list-link text-primary text-weight-medium"
|
||||||
|
class="row col-12 items-center text-dark q-py-xs q-pl-sm rounded-borders my-list"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<div class="text-weight-medium">
|
||||||
|
{{ prop.node.orgTreeName }}
|
||||||
|
</div>
|
||||||
|
<div class="text-weight-light text-grey-8">
|
||||||
|
{{
|
||||||
|
prop.node.orgCode == null ? null : prop.node.orgCode
|
||||||
|
}}
|
||||||
|
{{
|
||||||
|
prop.node.orgTreeShortName == null
|
||||||
|
? null
|
||||||
|
: prop.node.orgTreeShortName
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-item>
|
||||||
|
</template>
|
||||||
|
</q-tree>
|
||||||
|
</q-card-section>
|
||||||
</q-card>
|
</q-card>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col-6">
|
||||||
<div class="col-12">
|
<q-card bordered class="col-12">
|
||||||
<q-input
|
<div
|
||||||
outlined
|
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"
|
||||||
v-model="planData.meaning"
|
>
|
||||||
label="นิยามหรือความหมาย"
|
ยุทธศาสตร์ / แผน
|
||||||
type="textarea"
|
</div>
|
||||||
bg-color="white"
|
<q-separator />
|
||||||
dense
|
|
||||||
class="inputgreen"
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกนิยามหรือความหมาย'}`]"
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-12">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
v-model="planData.formula"
|
|
||||||
label="สูตรคำนวณ"
|
|
||||||
bg-color="white"
|
|
||||||
type="textarea"
|
|
||||||
dense
|
|
||||||
class="inputgreen"
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกสูตรคำนวณ'}`]"
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<q-card bordered class="col-12">
|
|
||||||
<div
|
|
||||||
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"
|
|
||||||
>
|
|
||||||
หน่วยงาน/ส่วนราชการ
|
|
||||||
</div>
|
|
||||||
<q-separator />
|
|
||||||
|
|
||||||
<q-card-section class="q-pa-sm">
|
<q-card-section class="q-pa-sm">
|
||||||
<q-input
|
<q-input
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
v-model="filterAgency"
|
v-model="filter"
|
||||||
label="ค้นหา"
|
label="ค้นหา"
|
||||||
class="inputgreen"
|
class="inputgreen"
|
||||||
>
|
>
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
<q-icon
|
<q-icon
|
||||||
v-if="filterAgency !== ''"
|
v-if="filter !== ''"
|
||||||
name="clear"
|
name="clear"
|
||||||
class="cursor-pointer"
|
class="cursor-pointer"
|
||||||
@click="filterAgency = ''"
|
@click="filter = ''"
|
||||||
/>
|
/>
|
||||||
<q-icon v-else name="search" color="grey-5" />
|
<q-icon v-else name="search" color="grey-5" />
|
||||||
</template>
|
</template>
|
||||||
</q-input>
|
</q-input>
|
||||||
<q-tree
|
<q-tree
|
||||||
style="height: 350px; overflow: scroll"
|
style="height: 350px; overflow: scroll"
|
||||||
dense
|
dense
|
||||||
:nodes="nodeAgency"
|
:nodes="nodeplan"
|
||||||
node-key="orgTreeId"
|
selected-color="primary"
|
||||||
label-key="orgTreeName"
|
node-key="id"
|
||||||
selected-color="primary"
|
label-key="name"
|
||||||
:filter="filterAgency"
|
:filter="filter"
|
||||||
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
||||||
no-nodes-label="ไม่มีข้อมูล"
|
no-nodes-label="ไม่มีข้อมูล"
|
||||||
v-model:expanded="expandedAgency"
|
v-model:expanded="expandedPlan"
|
||||||
v-model:selected="planData.nodeId"
|
v-model:selected="planData.strategyId"
|
||||||
>
|
>
|
||||||
<template v-slot:default-header="prop">
|
<template v-slot:default-header="prop">
|
||||||
<q-item
|
<q-item
|
||||||
clickable
|
clickable
|
||||||
@click.stop="updateSelectedAgency(prop.node)"
|
@click.stop="updateSelected(prop.node)"
|
||||||
:active="planData.nodeId == prop.node.orgTreeId"
|
:active="planData.strategyId == prop.node.id"
|
||||||
active-class="my-list-link text-primary text-weight-medium"
|
active-class="my-list-link text-primary text-weight-medium"
|
||||||
class="row col-12 items-center text-dark q-py-xs q-pl-sm rounded-borders my-list"
|
class="row col-12 items-center text-dark q-py-xs q-pl-sm rounded-borders my-list"
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<div class="text-weight-medium">
|
<div class="text-weight-medium">
|
||||||
{{ prop.node.orgTreeName }}
|
{{ prop.node.name }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-weight-light text-grey-8">
|
</q-item>
|
||||||
{{
|
</template>
|
||||||
prop.node.orgCode == null ? null : prop.node.orgCode
|
</q-tree>
|
||||||
}}
|
</q-card-section>
|
||||||
{{
|
</q-card>
|
||||||
prop.node.orgTreeShortName == null
|
</div>
|
||||||
? null
|
<div class="col-12">
|
||||||
: prop.node.orgTreeShortName
|
<q-input
|
||||||
}}
|
class="inputgreen"
|
||||||
</div>
|
v-model="planData.documentInfoEvidence"
|
||||||
</div>
|
label="ข้อมูลเอกสารหลักฐาน"
|
||||||
</q-item>
|
outlined
|
||||||
</template>
|
dense
|
||||||
</q-tree>
|
type="textarea"
|
||||||
</q-card-section>
|
></q-input>
|
||||||
</q-card>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
</q-card-section>
|
||||||
<q-card bordered class="col-12">
|
|
||||||
<div
|
|
||||||
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"
|
|
||||||
>
|
|
||||||
ยุทธศาสตร์ / แผน
|
|
||||||
</div>
|
|
||||||
<q-separator />
|
|
||||||
|
|
||||||
<q-card-section class="q-pa-sm">
|
|
||||||
<q-input
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
v-model="filter"
|
|
||||||
label="ค้นหา"
|
|
||||||
class="inputgreen"
|
|
||||||
>
|
|
||||||
<template v-slot:append>
|
|
||||||
<q-icon
|
|
||||||
v-if="filter !== ''"
|
|
||||||
name="clear"
|
|
||||||
class="cursor-pointer"
|
|
||||||
@click="filter = ''"
|
|
||||||
/>
|
|
||||||
<q-icon v-else name="search" color="grey-5" />
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
<q-tree
|
|
||||||
style="height: 350px; overflow: scroll"
|
|
||||||
dense
|
|
||||||
:nodes="nodeplan"
|
|
||||||
selected-color="primary"
|
|
||||||
node-key="id"
|
|
||||||
label-key="name"
|
|
||||||
:filter="filter"
|
|
||||||
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
|
||||||
no-nodes-label="ไม่มีข้อมูล"
|
|
||||||
v-model:expanded="expandedPlan"
|
|
||||||
v-model:selected="planData.strategyId"
|
|
||||||
>
|
|
||||||
<template v-slot:default-header="prop">
|
|
||||||
<q-item
|
|
||||||
clickable
|
|
||||||
@click.stop="updateSelected(prop.node)"
|
|
||||||
:active="planData.strategyId == prop.node.id"
|
|
||||||
active-class="my-list-link text-primary text-weight-medium"
|
|
||||||
class="row col-12 items-center text-dark q-py-xs q-pl-sm rounded-borders my-list"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<div class="text-weight-medium">
|
|
||||||
{{ prop.node.name }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-item>
|
|
||||||
</template>
|
|
||||||
</q-tree>
|
|
||||||
</q-card-section>
|
|
||||||
</q-card>
|
|
||||||
</div>
|
|
||||||
<div class="col-12">
|
|
||||||
<q-input
|
|
||||||
class="inputgreen"
|
|
||||||
v-model="planData.documentInfoEvidence"
|
|
||||||
label="ข้อมูลเอกสารหลักฐาน"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
type="textarea"
|
|
||||||
></q-input>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<q-separator color="grey-4" />
|
<q-separator color="grey-4" />
|
||||||
</div>
|
<q-card-actions align="right">
|
||||||
<q-toolbar class="fit row wrap justify-end items-start content-start">
|
<q-btn label="บันทึก" id="onSubmit" type="submit" color="public">
|
||||||
<q-btn
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
dense
|
</q-btn>
|
||||||
unelevated
|
</q-card-actions>
|
||||||
label="บันทึก"
|
</q-form>
|
||||||
id="onSubmit"
|
</q-card>
|
||||||
type="submit"
|
|
||||||
color="public"
|
|
||||||
class="q-px-md"
|
|
||||||
>
|
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
|
||||||
</q-btn>
|
|
||||||
</q-toolbar>
|
|
||||||
</q-form>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
||||||
|
|
@ -337,12 +337,10 @@ onMounted(async () => {
|
||||||
/>
|
/>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-card-actions align="right" class="bg-white text-teal">
|
<q-card-actions align="right">
|
||||||
<q-btn
|
<q-btn
|
||||||
type="submit"
|
type="submit"
|
||||||
for="#submitForm"
|
for="#submitForm"
|
||||||
unelevated
|
|
||||||
dense
|
|
||||||
class="q-px-md items-center"
|
class="q-px-md items-center"
|
||||||
color="public"
|
color="public"
|
||||||
label="บันทึก"
|
label="บันทึก"
|
||||||
|
|
|
||||||
|
|
@ -571,12 +571,10 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-card-actions align="right" class="bg-white text-teal">
|
<q-card-actions align="right">
|
||||||
<q-btn
|
<q-btn
|
||||||
type="submit"
|
type="submit"
|
||||||
for="#submitForm"
|
for="#submitForm"
|
||||||
unelevated
|
|
||||||
dense
|
|
||||||
class="q-px-md items-center"
|
class="q-px-md items-center"
|
||||||
color="public"
|
color="public"
|
||||||
label="บันทึก"
|
label="บันทึก"
|
||||||
|
|
|
||||||
|
|
@ -67,83 +67,90 @@ onMounted(() => {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-card flat bordered>
|
<q-card>
|
||||||
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||||
<q-card-section class="bg-grey-3 q-pa-sm">
|
<q-card-section>
|
||||||
<div class="row text-dark text-body2 text-weight-medium">
|
<q-card flat bordered>
|
||||||
<div class="text-center col-8">เกณฑ์การประเมิน</div>
|
<q-card-section class="bg-grey-3">
|
||||||
<div class="text-center col-4">ระดับคะแนน</div>
|
<div class="row text-dark text-body2 text-weight-medium">
|
||||||
</div>
|
<div class="text-center col-8">เกณฑ์การประเมิน</div>
|
||||||
</q-card-section>
|
<div class="text-center col-4">ระดับคะแนน</div>
|
||||||
<q-card-section class="q-pa-none">
|
</div>
|
||||||
<div v-for="(field, index) in dataLevel" :key="field.id">
|
</q-card-section>
|
||||||
<div class="row q-pa-sm">
|
<q-card-section class="q-pa-none">
|
||||||
<div class="col-8 text-left">
|
<div v-for="(field, index) in dataLevel" :key="field.id">
|
||||||
<q-field
|
<div class="row q-pa-sm">
|
||||||
class="q_field_p_none"
|
<div class="col-8 text-left">
|
||||||
ref="fieldRef"
|
<q-field
|
||||||
v-model="field.description"
|
class="q_field_p_none"
|
||||||
label-slot
|
ref="fieldRef"
|
||||||
borderless
|
|
||||||
:rules="[(val) => !!val || 'กรุณากรอกมาตรฐานพฤติกรรม']"
|
|
||||||
hide-bottom-space
|
|
||||||
>
|
|
||||||
<template #control>
|
|
||||||
<q-editor
|
|
||||||
class="full-width"
|
|
||||||
v-model="field.description"
|
v-model="field.description"
|
||||||
:dense="$q.screen.lt.md"
|
label-slot
|
||||||
min-height="5rem"
|
borderless
|
||||||
:toolbar="[
|
:rules="[(val) => !!val || 'กรุณากรอกมาตรฐานพฤติกรรม']"
|
||||||
[
|
hide-bottom-space
|
||||||
'bold',
|
>
|
||||||
'italic',
|
<template #control>
|
||||||
'strike',
|
<q-editor
|
||||||
'underline',
|
class="full-width"
|
||||||
'subscript',
|
v-model="field.description"
|
||||||
'superscript',
|
:dense="$q.screen.lt.md"
|
||||||
],
|
min-height="5rem"
|
||||||
|
:toolbar="[
|
||||||
|
[
|
||||||
|
'bold',
|
||||||
|
'italic',
|
||||||
|
'strike',
|
||||||
|
'underline',
|
||||||
|
'subscript',
|
||||||
|
'superscript',
|
||||||
|
],
|
||||||
|
|
||||||
['unordered', 'ordered'],
|
['unordered', 'ordered'],
|
||||||
]"
|
]"
|
||||||
:fonts="{
|
:fonts="{
|
||||||
arial: 'Arial',
|
arial: 'Arial',
|
||||||
arial_black: 'Arial Black',
|
arial_black: 'Arial Black',
|
||||||
comic_sans: 'Comic Sans MS',
|
comic_sans: 'Comic Sans MS',
|
||||||
courier_new: 'Courier New',
|
courier_new: 'Courier New',
|
||||||
impact: 'Impact',
|
impact: 'Impact',
|
||||||
lucida_grande: 'Lucida Grande',
|
lucida_grande: 'Lucida Grande',
|
||||||
times_new_roman: 'Times New Roman',
|
times_new_roman: 'Times New Roman',
|
||||||
verdana: 'Verdana',
|
verdana: 'Verdana',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</q-field>
|
</q-field>
|
||||||
<!-- <q-input
|
<!-- <q-input
|
||||||
v-model="formScore[field]"
|
v-model="formScore[field]"
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
class="inputgreen"
|
class="inputgreen"
|
||||||
label="กรอกข้อความเพื่อไว้ใช้อ้างอิงเท่านั้น"
|
label="กรอกข้อความเพื่อไว้ใช้อ้างอิงเท่านั้น"
|
||||||
:rules="[(val:string) => !!val || `${'กรุณากรอกข้อความเพื่อไว้ใช้อ้างอิงเท่านั้น'}`,]"
|
:rules="[(val:string) => !!val || `${'กรุณากรอกข้อความเพื่อไว้ใช้อ้างอิงเท่านั้น'}`,]"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
/> -->
|
/> -->
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="col-4 text-center text-body1 text-weight-bold self-center"
|
||||||
|
>
|
||||||
|
{{ field.level }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="col-12"
|
||||||
|
v-if="index !== Object.keys(fieldLabels).length - 1"
|
||||||
|
>
|
||||||
|
<q-separator />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
</q-card-section>
|
||||||
class="col-4 text-center text-body1 text-weight-bold self-center"
|
</q-card>
|
||||||
>
|
|
||||||
{{ field.level }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="col-12"
|
|
||||||
v-if="index !== Object.keys(fieldLabels).length - 1"
|
|
||||||
>
|
|
||||||
<q-separator />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="right" class="bg-white text-teal">
|
|
||||||
|
<q-separator />
|
||||||
|
|
||||||
|
<q-card-actions align="right">
|
||||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,7 @@ import { ref, reactive } from "vue";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
|
||||||
import Main from "@/modules/01_metadataNew/components/competency/Forms/Main.vue";
|
import Main from "@/modules/01_metadataNew/components/competency/Forms/Main.vue";
|
||||||
// import FormMain from "@/modules/14_KPI/components/competency/Forms/01_FormMain.vue";
|
|
||||||
// import FormGroup from "@/modules/14_KPI/components/competency/Forms/02_FormGroup.vue";
|
|
||||||
// import FormExecutive from "@/modules/14_KPI/components/competency/Forms/03_FormExecutive.vue";
|
|
||||||
// import FormExecutivePosition from "@/modules/14_KPI/components/competency/Forms/04_FormExecutivePosition.vue";
|
|
||||||
// import FormExecutiveLevel from "@/modules/14_KPI/components/competency/Forms/05_FormExecutiveLevel.vue";
|
|
||||||
import { useKPIDataStore } from "@/modules/01_metadataNew/stores/KPIStore";
|
import { useKPIDataStore } from "@/modules/01_metadataNew/stores/KPIStore";
|
||||||
|
|
||||||
import type { DataOption } from "@/modules/01_metadataNew/interface/index/Main";
|
import type { DataOption } from "@/modules/01_metadataNew/interface/index/Main";
|
||||||
|
|
@ -88,11 +84,9 @@ function onSubmit() {
|
||||||
/>
|
/>
|
||||||
<span class="toptitle text-dark">เพิ่ม/แก้ไขสมรรถนะ</span>
|
<span class="toptitle text-dark">เพิ่ม/แก้ไขสมรรถนะ</span>
|
||||||
</div>
|
</div>
|
||||||
<q-card flat bordered>
|
<q-card>
|
||||||
<!-- @submit.prevent @validation-success="onSubmit" -->
|
|
||||||
<!-- <q-form greedy> -->
|
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<div class="row q-col-gutter-sm">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<q-select
|
<q-select
|
||||||
v-model="store.competencyTypeVal"
|
v-model="store.competencyTypeVal"
|
||||||
|
|
@ -106,16 +100,11 @@ function onSubmit() {
|
||||||
map-options
|
map-options
|
||||||
:rules="[(val:string) => !!val || `${'กรุณาเลือกประเภทสมรรถนะ'}`,]"
|
:rules="[(val:string) => !!val || `${'กรุณาเลือกประเภทสมรรถนะ'}`,]"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
|
class="inputgreen"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Main />
|
|
||||||
<!-- <FormMain v-if="store.competencyType === 'ID1'" />
|
|
||||||
<FormGroup v-else-if="store.competencyType === 'ID2'" />
|
|
||||||
<FormExecutive v-else-if="store.competencyType === 'ID3'" />
|
|
||||||
<FormExecutivePosition v-else-if="store.competencyType === 'ID4'" />
|
|
||||||
<FormExecutiveLevel v-else-if="store.competencyType === 'ID5'" /> -->
|
|
||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
|
<Main />
|
||||||
</q-card>
|
</q-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
div
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, onMounted } from "vue";
|
import { ref, reactive, onMounted } from "vue";
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
|
|
@ -107,19 +106,21 @@ onMounted(() => {
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-form greedy @submit.prevent @validation-success="onSubmit" class="col-12">
|
<q-form greedy @submit.prevent @validation-success="onSubmit" class="col-12">
|
||||||
<div class="row">
|
<q-card-section class="q-pt-none">
|
||||||
<div class="col-12">
|
<div class="row q-col-gutter-sm">
|
||||||
<q-input
|
<div class="col-12">
|
||||||
v-model="formData.competencyName"
|
<q-input
|
||||||
dense
|
v-model="formData.competencyName"
|
||||||
outlined
|
dense
|
||||||
label="ชื่อสมรรถนะ"
|
outlined
|
||||||
:rules="[(val:string) => !!val || `${'กรุณากรอกชื่อสมรรถนะ'}`,]"
|
label="ชื่อสมรรถนะ"
|
||||||
hide-bottom-space
|
:rules="[(val:string) => !!val || `${'กรุณากรอกชื่อสมรรถนะ'}`,]"
|
||||||
/>
|
hide-bottom-space
|
||||||
</div>
|
class="inputgreen"
|
||||||
<q-card-section class="col-12 q-px-none">
|
/>
|
||||||
<div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
<q-field
|
<q-field
|
||||||
class="q_field_p_none"
|
class="q_field_p_none"
|
||||||
ref="fieldRef"
|
ref="fieldRef"
|
||||||
|
|
@ -162,133 +163,129 @@ onMounted(() => {
|
||||||
</template>
|
</template>
|
||||||
</q-field>
|
</q-field>
|
||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
|
||||||
<div class="col-12">
|
|
||||||
<q-card flat bordered>
|
|
||||||
<q-card-section class="bg-grey-4">
|
|
||||||
<div
|
|
||||||
class="row items-center text-dark text-body2 text-weight-medium"
|
|
||||||
>
|
|
||||||
<div class="col-3">
|
|
||||||
<div class="row items-center">
|
|
||||||
<div class="col-1">
|
|
||||||
<q-btn
|
|
||||||
dense
|
|
||||||
flat
|
|
||||||
round
|
|
||||||
color="primary"
|
|
||||||
icon="add"
|
|
||||||
@click="onClickAddLevels"
|
|
||||||
>
|
|
||||||
<q-tooltip>เพิ่ม</q-tooltip></q-btn
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<div class="col-11 text-center">
|
|
||||||
<span>ระดับสมรรถนะ</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-4">
|
|
||||||
<span>พฤติกรรมที่คาดหวัง/พฤติกรรมย่อย</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card-section>
|
|
||||||
<q-card-section>
|
|
||||||
<div
|
|
||||||
class="row q-pa-sm"
|
|
||||||
v-for="(items, index) in formData.levels"
|
|
||||||
key="index"
|
|
||||||
>
|
|
||||||
<div class="col-3 align-center q-pr-lg">
|
|
||||||
<q-input
|
|
||||||
:readonly="
|
|
||||||
store.competencyTypeVal === 'HEAD' ||
|
|
||||||
store.competencyTypeVal === 'GROUP'
|
|
||||||
"
|
|
||||||
v-model="formData.levels[index].level"
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
:rules="[(val:string) => !!val || `${'กรุณากรอกระดับสมรรถนะ'}`,]"
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-9">
|
|
||||||
<div class="row q-col-gutter-md">
|
|
||||||
<div class="col-11">
|
|
||||||
<q-field
|
|
||||||
class="q_field_p_none"
|
|
||||||
ref="fieldRef"
|
|
||||||
v-model="formData.levels[index].description"
|
|
||||||
label-slot
|
|
||||||
borderless
|
|
||||||
:rules="[
|
|
||||||
(val) =>
|
|
||||||
!!val || 'กรุณากรอกพฤติกรรมที่คาดหวัง/พฤติกรรมย่อย',
|
|
||||||
]"
|
|
||||||
hide-bottom-space
|
|
||||||
>
|
|
||||||
<template #control>
|
|
||||||
<q-editor
|
|
||||||
class="full-width"
|
|
||||||
v-model="formData.levels[index].description"
|
|
||||||
:dense="$q.screen.lt.md"
|
|
||||||
min-height="5rem"
|
|
||||||
:toolbar="[
|
|
||||||
[
|
|
||||||
'bold',
|
|
||||||
'italic',
|
|
||||||
'strike',
|
|
||||||
'underline',
|
|
||||||
'subscript',
|
|
||||||
'superscript',
|
|
||||||
],
|
|
||||||
|
|
||||||
['unordered', 'ordered'],
|
<div class="col-12">
|
||||||
]"
|
<q-card flat bordered>
|
||||||
/>
|
<q-card-section class="bg-grey-4">
|
||||||
</template>
|
<div
|
||||||
</q-field>
|
class="row items-center text-dark text-body2 text-weight-medium"
|
||||||
|
>
|
||||||
|
<div class="col-3">
|
||||||
|
<div class="row items-center">
|
||||||
|
<div class="col-1">
|
||||||
|
<q-btn
|
||||||
|
dense
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
color="primary"
|
||||||
|
icon="add"
|
||||||
|
@click="onClickAddLevels"
|
||||||
|
>
|
||||||
|
<q-tooltip>เพิ่ม</q-tooltip></q-btn
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="col-11 text-center">
|
||||||
|
<span>ระดับสมรรถนะ</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-1 text-center">
|
</div>
|
||||||
<q-btn
|
<div class="col-4">
|
||||||
dense
|
<span>พฤติกรรมที่คาดหวัง/พฤติกรรมย่อย</span>
|
||||||
flat
|
</div>
|
||||||
round
|
</div>
|
||||||
color="red"
|
</q-card-section>
|
||||||
icon="delete"
|
<q-card-section>
|
||||||
@click="onDeleteLevels(index)"
|
<div
|
||||||
v-if="
|
class="row q-pa-sm"
|
||||||
(store.competencyTypeVal === 'HEAD' && index > 4) ||
|
v-for="(items, index) in formData.levels"
|
||||||
(store.competencyTypeVal === 'GROUP' && index > 4) ||
|
key="index"
|
||||||
((store.competencyTypeVal === 'EXECUTIVE' ||
|
>
|
||||||
store.competencyTypeVal === 'DIRECTOR' ||
|
<div class="col-3 align-center q-pr-lg">
|
||||||
store.competencyTypeVal === 'INSPECTOR') &&
|
<q-input
|
||||||
index > 0)
|
:readonly="
|
||||||
"
|
store.competencyTypeVal === 'HEAD' ||
|
||||||
>
|
store.competencyTypeVal === 'GROUP'
|
||||||
<q-tooltip>ลบ</q-tooltip></q-btn
|
"
|
||||||
>
|
v-model="formData.levels[index].level"
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
:rules="[(val:string) => !!val || `${'กรุณากรอกระดับสมรรถนะ'}`,]"
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-9">
|
||||||
|
<div class="row q-col-gutter-md">
|
||||||
|
<div class="col-11">
|
||||||
|
<q-field
|
||||||
|
class="q_field_p_none"
|
||||||
|
ref="fieldRef"
|
||||||
|
v-model="formData.levels[index].description"
|
||||||
|
label-slot
|
||||||
|
borderless
|
||||||
|
:rules="[
|
||||||
|
(val) =>
|
||||||
|
!!val || 'กรุณากรอกพฤติกรรมที่คาดหวัง/พฤติกรรมย่อย',
|
||||||
|
]"
|
||||||
|
hide-bottom-space
|
||||||
|
>
|
||||||
|
<template #control>
|
||||||
|
<q-editor
|
||||||
|
class="full-width"
|
||||||
|
v-model="formData.levels[index].description"
|
||||||
|
:dense="$q.screen.lt.md"
|
||||||
|
min-height="5rem"
|
||||||
|
:toolbar="[
|
||||||
|
[
|
||||||
|
'bold',
|
||||||
|
'italic',
|
||||||
|
'strike',
|
||||||
|
'underline',
|
||||||
|
'subscript',
|
||||||
|
'superscript',
|
||||||
|
],
|
||||||
|
|
||||||
|
['unordered', 'ordered'],
|
||||||
|
]"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</q-field>
|
||||||
|
</div>
|
||||||
|
<div class="col-1 text-center">
|
||||||
|
<q-btn
|
||||||
|
dense
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
color="red"
|
||||||
|
icon="delete"
|
||||||
|
@click="onDeleteLevels(index)"
|
||||||
|
v-if="
|
||||||
|
(store.competencyTypeVal === 'HEAD' && index > 4) ||
|
||||||
|
(store.competencyTypeVal === 'GROUP' && index > 4) ||
|
||||||
|
((store.competencyTypeVal === 'EXECUTIVE' ||
|
||||||
|
store.competencyTypeVal === 'DIRECTOR' ||
|
||||||
|
store.competencyTypeVal === 'INSPECTOR') &&
|
||||||
|
index > 0)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<q-tooltip>ลบ</q-tooltip></q-btn
|
||||||
|
>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</q-card-section>
|
||||||
</q-card-section>
|
</q-card>
|
||||||
</q-card>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 q-my-sm"><q-separator /></div>
|
</q-card-section>
|
||||||
<div class="col-12 row justify-end">
|
|
||||||
<q-btn
|
<div class="col-12"><q-separator /></div>
|
||||||
dense
|
|
||||||
unelevated
|
<q-card-actions align="right">
|
||||||
label="บันทึก"
|
<q-btn label="บันทึก" color="public" class="q-px-md" type="submit">
|
||||||
color="public"
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
class="q-px-md"
|
</q-btn>
|
||||||
type="submit"
|
</q-card-actions>
|
||||||
>
|
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
|
||||||
</q-btn>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-form>
|
</q-form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ interface FormDataRole {
|
||||||
includingName: string;
|
includingName: string;
|
||||||
target: string;
|
target: string;
|
||||||
unit: string;
|
unit: string;
|
||||||
weight: string;
|
weight: string | null;
|
||||||
meaning: string;
|
meaning: string;
|
||||||
formula: string;
|
formula: string;
|
||||||
documentInfoEvidence: string;
|
documentInfoEvidence: string;
|
||||||
|
|
|
||||||
|
|
@ -328,8 +328,8 @@ onMounted(() => {
|
||||||
/>
|
/>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
|
|
||||||
<q-card-section class="q-pt-none">
|
<q-card-section>
|
||||||
<div class="row q-pa-md">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<q-input
|
<q-input
|
||||||
dense
|
dense
|
||||||
|
|
@ -349,16 +349,8 @@ onMounted(() => {
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
|
|
||||||
<q-card-actions align="right" class="bg-white text-teal">
|
<q-card-actions align="right">
|
||||||
<q-btn
|
<q-btn label="บันทึก" id="onSubmit" type="submit" color="public">
|
||||||
dense
|
|
||||||
unelevated
|
|
||||||
label="บันทึก"
|
|
||||||
id="onSubmit"
|
|
||||||
type="submit"
|
|
||||||
color="public"
|
|
||||||
class="q-px-md"
|
|
||||||
>
|
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue