เพิ่มเกณฑ์การประเมินความคาดหวัง,ปรับcss คำสั่ง

This commit is contained in:
Tanyalak 2023-09-13 16:16:01 +07:00
parent 4936c51a31
commit da45e0301e
11 changed files with 297 additions and 201 deletions

View file

@ -0,0 +1,61 @@
<template>
<div class="col-12 row q-pb-sm">
<div class="col-12 text-top0 items-center q-pa-md">
เกณฑการประเมนความคาดหว
</div>
<div class="q-gutter-sm row">
<div class="col-12 row">
<div class="col-2 row justify-center">
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-light-blue-3" aria-hidden="true" role="presentation">grade</i>
</div>
<div class="q-pl-md col-3">ำกวาความคาดหวงมาก</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 1</div>
</div>
<div class="col-12 row">
<div class="col-2 row justify-center">
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-light-blue-3" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-light-blue-6" aria-hidden="true" role="presentation">grade</i>
</div>
<div class="q-pl-md col-3">ำกวาความคาดหวงคอนขางมาก</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 2</div>
</div>
<div class="col-12 row">
<div class="col-2 row justify-center">
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-light-blue-3" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-light-blue-6" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-blue" aria-hidden="true" role="presentation">grade</i>
</div>
<div class="q-pl-md col-3">เปนไปตามความคาดหว</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 3</div>
</div>
<div class="col-12 row">
<div class="col-2 row justify-center">
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-light-blue-3" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-light-blue-6" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-blue" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-blue-9" aria-hidden="true" role="presentation">grade</i>
</div>
<div class="q-pl-md col-3">งวาความคาดหวงคอนขางมาก</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 4</div>
</div>
<div class="col-12 row">
<div class="col-2 row justify-center">
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-light-blue-3" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-light-blue-6" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-blue" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-blue-9" aria-hidden="true" role="presentation">grade</i>
<i class="q-icon notranslate material-icons q-rating__icon q-rating__icon--active text-blue-10" aria-hidden="true" role="presentation">grade</i>
</div>
<div class="q-pl-md col-3">งกวาความคาดหวงมาก</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 5</div>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.text-top0 {
font-weight: 600;
padding-bottom: 8px;
color: rgb(70, 68, 68);
}
</style>

View file

@ -7,6 +7,7 @@ import { useCounterMixin } from "@/stores/mixin";
import { useRouter, useRoute } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
const router = useRouter();
const routeName = router.currentRoute.value.name;
@ -386,6 +387,10 @@ const save = () => {
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
<criterion />
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top0 items-center">

View file

@ -6,6 +6,7 @@ import { useCounterMixin } from "@/stores/mixin";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
const $q = useQuasar();
const probationStore = useProbationDataStore();
@ -369,6 +370,10 @@ const getBordered = (i: boolean) => {
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
<criterion />
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
</div>
<div class="col-12 row">

View file

@ -7,6 +7,7 @@ import { useCounterMixin } from "@/stores/mixin";
import { useRouter, useRoute } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
const router = useRouter();
const routeName = router.currentRoute.value.name;
@ -504,6 +505,10 @@ const putformData = () => {
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
<criterion />
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
</div>
<div class="col-12 row">

View file

@ -6,6 +6,7 @@ import { useCounterMixin } from "@/stores/mixin";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
const $q = useQuasar();
const probationStore = useProbationDataStore();
@ -481,6 +482,10 @@ watch(lengthdiscipline_level, (newLength) => {
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
<criterion />
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
</div>
<div class="col-12 row">

View file

@ -9,6 +9,9 @@ import { useCounterMixin } from "@/stores/mixin";
import { useRouter, useRoute } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
const router = useRouter();
const routeName = router.currentRoute.value.name;
const $q = useQuasar();
@ -478,6 +481,10 @@ const editData = async (data: any) => {
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
<criterion />
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
</div>
<div class="col-12 row">

View file

@ -9,6 +9,8 @@ import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
const $q = useQuasar();
const route = useRoute();
const router = useRouter();
@ -468,6 +470,10 @@ const getBordered = (i: boolean) => {
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
<criterion />
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
</div>
</div>
<div class="col-12 row">

View file

@ -6,6 +6,7 @@ import { useRoute, useRouter } from "vue-router";
import { useProbationDataStore } from "@/modules/05_placement/store";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
const probationStore = useProbationDataStore();
const { ratingColors } = probationStore;
const $q = useQuasar();
@ -175,9 +176,10 @@ watch(answer3, () => {
</template>
</q-rating>
</div>
<div class="col-12 q-my-md">
<div class="col-12 q-mt-md">
<q-separator size="3px" color="grey-2" />
</div>
<criterion />
</q-form>
<!-- <Footer /> -->
<div class="row col-12">

View file

@ -733,225 +733,226 @@ const getClass = (val: boolean) => {
<div style="max-height: 68vh; overflow-y: scroll">
<!-- Main -->
<q-form ref="myForm" class="q-pa-md">
<div class="row col-12 q-col-gutter-x-lg q-col-gutter-y-md">
<div class="col-xs-12 col-md-6">
<q-select
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="typeOrder"
:rules="[(val: string) => !!val || `${'กรุณาเลือกประเภทคำสั่ง'}`]"
hide-bottom-space
:label="`${'ประเภทคำสั่ง'}`"
map-options
option-label="fullname"
:options="typeOrderOption"
option-value="id"
use-input
input-debounce="0"
@update:model-value="selectCMP(typeOrder)"
/>
</div>
<div class="col-xs-12 col-md-6">
<q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="nameOrder"
:rules="[(val) => !!val || `${'กรุณากรอกคำสั่งเรื่อง'}`]"
:label="`${'คำสั่งเรื่อง'}`"
hide-bottom-space
/>
</div>
<div class="row col-xs-7 col-md-3 q-col-gutter-x-xs">
<div class="col-6">
<div class="row col-12 q-col-gutter-x-lg q-col-gutter-y-md">
<div class="col-xs-12 col-md-6">
<q-select
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="typeOrder"
:rules="[(val: string) => !!val || `${'กรุณาเลือกประเภทคำสั่ง'}`]"
hide-bottom-space
:label="`${'ประเภทคำสั่ง'}`"
map-options
option-label="fullname"
:options="typeOrderOption"
option-value="id"
use-input
input-debounce="0"
@update:model-value="selectCMP(typeOrder)"
/>
</div>
<div class="col-xs-12 col-md-6">
<q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="command"
v-model="nameOrder"
:rules="[(val) => !!val || `${'กรุณากรอกคำสั่งเรื่อง'}`]"
:label="`${'คำสั่งเรื่อง'}`"
hide-bottom-space
:label="`${'คำสั่งเลขที่'}`"
/>
</div>
<label class="col-1 flex justify-center items-center text-bold"
>/</label
>
<div class="col-5">
<div class="row col-xs-7 col-md-3 q-col-gutter-x-xs">
<div class="col-6">
<q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="command"
hide-bottom-space
:label="`${'คำสั่งเลขที่'}`"
/>
</div>
<label class="col-1 flex justify-center items-center text-bold"
>/</label
>
<div class="col-5">
<datepicker
v-model="dateYear"
:locale="'th'"
autoApply
year-picker
:enableTimePicker="false"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
:model-value="dateYear + 543"
:rules="[(val) => !!val || `${'กรุณากรอก พ.ศ.'}`]"
:label="`${'พ.ศ.'}`"
dense
outlined
>
</q-input>
</template>
</datepicker>
</div>
</div>
<div class="col-xs-5 col-md-3">
<datepicker
v-model="dateYear"
menu-class-name="modalfix"
v-model="dateCommand"
:locale="'th'"
autoApply
year-picker
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
:model-value="dateYear + 543"
:rules="[(val) => !!val || `${'กรุณากรอก พ.ศ.'}`]"
:label="`${'พ.ศ.'}`"
dense
outlined
dense
class="full-width datepicker"
:model-value="
dateCommand != null ? date2Thai(dateCommand) : null
"
:label="`${'วันที่คำสั่งมีผล'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่คำสั่งมีผล'}`]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
</div>
<div class="col-xs-5 col-md-3">
<datepicker
menu-class-name="modalfix"
v-model="dateCommand"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
<div class="col-xs-12 col-md-6">
<selector
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="byOrder"
:rules="[(val: string) => !!val || `${'กรุณาเลือกคำสั่งโดย'}`]"
emit-value
hide-bottom-space
:label="`${'คำสั่งโดย'}`"
map-options
option-label="name"
:options="byOrderOption"
option-value="id"
use-input
input-debounce="0"
@update:model-value="(nameCommand = ''), (positionCommand = '')"
/>
</div>
<div
class="col-xs-12 col-md-6"
v-if="byOrder !== '00000000-0000-0000-0000-000000000000'"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker"
:model-value="
dateCommand != null ? date2Thai(dateCommand) : null
"
:label="`${'วันที่คำสั่งมีผล'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่คำสั่งมีผล'}`]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
<div class="col-xs-12 col-md-6">
<selector
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="byOrder"
:rules="[(val: string) => !!val || `${'กรุณาเลือกคำสั่งโดย'}`]"
emit-value
hide-bottom-space
:label="`${'คำสั่งโดย'}`"
map-options
option-label="name"
:options="byOrderOption"
option-value="id"
use-input
input-debounce="0"
@update:model-value="(nameCommand = ''), (positionCommand = '')"
/>
</div>
<div
class="col-xs-12 col-md-6"
v-if="byOrder !== '00000000-0000-0000-0000-000000000000'"
>
<selector
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="nameCommand"
:rules="[(val: string) => !!val || `${'กรุณาเลือกผู้มีอำนาจลงนาม'}`]"
hide-bottom-space
:label="`${'ผู้มีอำนาจลงนาม'}`"
map-options
option-label="name"
:options="CommandOption"
option-value="id"
use-input
input-debounce="0"
>
<template v-if="CommandOption.length === 0" v-slot:no-option>
<q-item>
<q-item-section class="text-primary">
กรณาเลอกคำสงโดยกอน
</q-item-section>
</q-item>
</template>
</selector>
<selector
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="nameCommand"
:rules="[(val: string) => !!val || `${'กรุณาเลือกผู้มีอำนาจลงนาม'}`]"
hide-bottom-space
:label="`${'ผู้มีอำนาจลงนาม'}`"
map-options
option-label="name"
:options="CommandOption"
option-value="id"
use-input
input-debounce="0"
>
<template v-if="CommandOption.length === 0" v-slot:no-option>
<q-item>
<q-item-section class="text-primary">
กรณาเลอกคำสงโดยกอน
</q-item-section>
</q-item>
</template>
</selector>
<!-- <q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="nameCommand"
:rules="[(val) => !!val || `${'กรุณากรอกผู้มีอำนาจลงนาม'}`]"
:label="`${'ผู้มีอำนาจลงนาม'}`"
hide-bottom-space
/> -->
</div>
<div
class="col-xs-12 col-md-6"
v-if="byOrder !== '00000000-0000-0000-0000-000000000000'"
>
<q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="positionCommand"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งผู้มีอำนาจลงนาม'}`]"
:label="`${'ตำแหน่งผู้มีอำนาจลงนาม'}`"
hide-bottom-space
disable
/>
</div>
<div
class="col-xs-12 col-md-6"
v-if="byOrder == '00000000-0000-0000-0000-000000000000'"
>
<q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="nameCommand"
:rules="[(val) => !!val || `${'กรุณากรอกผู้มีอำนาจลงนาม'}`]"
:label="`${'ผู้มีอำนาจลงนาม'}`"
hide-bottom-space
/>
</div>
<div
class="col-xs-12 col-md-6"
v-if="byOrder == '00000000-0000-0000-0000-000000000000'"
>
<q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="positionCommand"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งผู้มีอำนาจลงนาม'}`]"
:label="`${'ตำแหน่งผู้มีอำนาจลงนาม'}`"
hide-bottom-space
/>
</div>
<div class="col-12">
<q-separator v-if="typeOrder.commandCode" />
<!-- <q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="nameCommand"
:rules="[(val) => !!val || `${'กรุณากรอกผู้มีอำนาจลงนาม'}`]"
:label="`${'ผู้มีอำนาจลงนาม'}`"
hide-bottom-space
/> -->
</div>
<div
class="col-xs-12 col-md-6"
v-if="byOrder !== '00000000-0000-0000-0000-000000000000'"
>
<q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="positionCommand"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งผู้มีอำนาจลงนาม'}`]"
:label="`${'ตำแหน่งผู้มีอำนาจลงนาม'}`"
hide-bottom-space
disable
/>
</div>
<div
class="col-xs-12 col-md-6"
v-if="byOrder == '00000000-0000-0000-0000-000000000000'"
>
<q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="nameCommand"
:rules="[(val) => !!val || `${'กรุณากรอกผู้มีอำนาจลงนาม'}`]"
:label="`${'ผู้มีอำนาจลงนาม'}`"
hide-bottom-space
/>
</div>
<div
class="col-xs-12 col-md-6"
v-if="byOrder == '00000000-0000-0000-0000-000000000000'"
>
<q-input
:class="getClass(true)"
outlined
dense
lazy-rules
v-model="positionCommand"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งผู้มีอำนาจลงนาม'}`]"
:label="`${'ตำแหน่งผู้มีอำนาจลงนาม'}`"
hide-bottom-space
/>
</div>
<div class="col-12 q-mb-md" v-if="typeOrder.commandCode">
<q-separator color="grey-3" />
</div>
</div>
<!-- C-PM-01-04 -->
@ -2317,7 +2318,7 @@ const getClass = (val: boolean) => {
:rules="[
(val) => !!val || `${'กรุณากรอกรายละเอียดการกระทำความผิด'}`,
]"
:label="`${'ละเอียดการกระทำความผิด'}`"
:label="`${'รายละเอียดการกระทำความผิด'}`"
hide-bottom-space
/>
</div>
@ -2411,7 +2412,6 @@ const getClass = (val: boolean) => {
/>
</div>
</div>
</div>
</q-form>
</div>

View file

@ -443,7 +443,7 @@ const getClass = (val: boolean) => {
<template>
<div>
<div class="q-py-md q-pl-md" style="height: 68vh; overflow-y: scroll">
<div class="q-py-md q-pl-md" style="max-height: 68vh; overflow-y: scroll">
<div class="col-12 row q-pb-sm items-center">
<q-btn flat round color="primary" @click="refresh" icon="mdi-plus">
<q-tooltip>เพมขอม</q-tooltip>

View file

@ -387,7 +387,7 @@ const updateData = (row: DataCopyOrder) => {
<template>
<div>
<div class="q-py-md q-pl-md" style="height: 68vh; overflow-y: scroll">
<div class="q-py-md q-pl-md" style="max-height: 68vh; overflow-y: scroll">
<div class="col-12 row q-py-sm items-center">
<q-btn flat round color="primary" @click="clickAdd" icon="mdi-plus">
<q-tooltip>เพมขอม</q-tooltip>