ทะเบียนประวัติ > ประวัติถือครองตำแหน่ง

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-05-21 10:45:38 +07:00
parent 8bfd894d8f
commit 8b12e131bc
5 changed files with 35 additions and 58 deletions

View file

@ -2,7 +2,6 @@ import env from "../index";
const registryNew = `${env.API_URI}/org/profile`; const registryNew = `${env.API_URI}/org/profile`;
const metadata = `${env.API_URI}/org/metadata/`; const metadata = `${env.API_URI}/org/metadata/`;
const salaryNew = `${env.API_URI}/org/profile/salary`;
export default { export default {
registryNew: (type: string) => `${registryNew}${type}`, registryNew: (type: string) => `${registryNew}${type}`,

View file

@ -99,6 +99,7 @@ function fecthPositionOfficer() {
messageError($q, err); messageError($q, err);
}); });
} }
function fetchPositionPerm() { function fetchPositionPerm() {
http http
.get(config.API.listPositionEmployeePositionHistory) .get(config.API.listPositionEmployeePositionHistory)
@ -141,11 +142,12 @@ function clickSearch(type: string) {
}); });
} else if (typeKeyword.value === "position") { } else if (typeKeyword.value === "position") {
Object.assign(body, { Object.assign(body, {
positionId: positionKeyword.value, position: positionKeyword.value,
}); });
} }
const empType = type === "officer" ? "" : "-employee";
http http
.post(config.API.profileHistory(type), body) .post(config.API.registryNew(empType) + `/search/history/oc`, body)
.then((res) => { .then((res) => {
let data = res.data.result; let data = res.data.result;
if (data.length !== 0) { if (data.length !== 0) {
@ -206,9 +208,11 @@ const paginationLabel = (start: number, end: number, total: number) => {
<template> <template>
<q-dialog v-model="modal"> <q-dialog v-model="modal">
<q-card style="width: 850px; max-width: 80vw"> <q-card style="width: 850px; max-width: 80vw">
<q-toolbar> <q-toolbar>
<q-toolbar-title class="text-subtitle2 text-bold">ประวอครองตำแหน</q-toolbar-title> <q-toolbar-title class="text-subtitle2 text-bold"
>ประวอครองตำแหน</q-toolbar-title
>
<q-btn <q-btn
icon="close" icon="close"
unelevated unelevated
@ -218,12 +222,12 @@ const paginationLabel = (start: number, end: number, total: number) => {
style="color: #ff8080; background-color: #ffdede" style="color: #ff8080; background-color: #ffdede"
/> />
</q-toolbar> </q-toolbar>
<q-separator/> <q-separator />
<div class="dialog-card-contain"> <div class="dialog-card-contain">
<q-card-section class="q-pa-sm"> <q-card-section class="q-pa-sm">
<q-form ref="myForm"> <q-form ref="myForm">
<div class=" col-12 bg-grey-2 q-pa-sm"> <div class="col-12 bg-grey-2 q-pa-sm">
<div class="q-col-gutter-xs row no-wrap"> <div class="q-col-gutter-xs row no-wrap">
<q-select <q-select
hide-bottom-space hide-bottom-space
@ -313,8 +317,7 @@ const paginationLabel = (start: number, end: number, total: number) => {
</q-card-section> </q-card-section>
</div> </div>
<div class="col-12 q-px-sm q-pb-sm">
<div class="col-12 q-px-sm q-pb-sm">
<q-table <q-table
flat flat
dense dense

View file

@ -3,18 +3,22 @@ import { onMounted, reactive, ref, watch } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
import http from "@/plugins/http";
import config from "@/app.config";
import keycloak from "@/plugins/keycloak";
/** /**import type*/
* import type
*/
import type { import type {
OptionQuestions, OptionQuestions,
OptionQuestions2, OptionQuestions2,
} from "@/modules/06_retirement/interface/request/Main"; } from "@/modules/06_retirement/interface/request/Main";
import type { QForm } from "quasar"; import type { QForm } from "quasar";
import http from "@/plugins/http";
import config from "@/app.config"; import type { DataProfile } from "@/modules/05_placement/interface/index/Main";
import keycloak from "@/plugins/keycloak";
/** importComponents*/
import CardProfile from "@/components/CardProfile.vue";
/** use */ /** use */
const $q = useQuasar(); const $q = useQuasar();
const route = useRoute(); const route = useRoute();
@ -34,6 +38,7 @@ const {
* วแปร * วแปร
*/ */
const myForm = ref<QForm | null>(null); const myForm = ref<QForm | null>(null);
const dataProfile = ref<DataProfile>();
const roleAdmin = ref<boolean>(false); const roleAdmin = ref<boolean>(false);
const Org = ref<string>(""); const Org = ref<string>("");
const PositionLevel = ref<string>(""); const PositionLevel = ref<string>("");
@ -88,6 +93,7 @@ const getData = async () => {
.get(config.API.ExitInterviewByid(dataId)) .get(config.API.ExitInterviewByid(dataId))
.then((res: any) => { .then((res: any) => {
const data = res.data.result; const data = res.data.result;
dataProfile.value = data as DataProfile;
avata.value = data.avatar ?? ""; avata.value = data.avatar ?? "";
Position.value = data.position ?? ""; Position.value = data.position ?? "";
PositionLevel.value = data.positionLevel ?? ""; PositionLevel.value = data.positionLevel ?? "";
@ -290,47 +296,7 @@ const putData = () => {
/> />
รายละเอยด Exit interview ของ {{ prefix }} {{ fullname }} รายละเอยด Exit interview ของ {{ prefix }} {{ fullname }}
</div> </div>
<q-card bordered class="row col-12 text-dark"> <CardProfile :data="dataProfile as DataProfile" />
<div class="bg-grey-1 q-pa-sm col-12 row items-center text-primary">
<div class="q-pl-sm text-weight-bold text-subtitle2">
{{ fullname }}
</div>
<q-space />
</div>
<div class="col-12"><q-separator /></div>
<div class="row col-12 q-pa-md">
<div class="col-12 row bg-white q-col-gutter-md">
<div class="col-xs-3 col-sm-2 col-md-1 row">
<q-img :src="avata" v-if="avata !== ''" />
<q-img src="@/assets/avatar_user.jpg" v-else />
</div>
<div class="col-xs-6 col-sm-3 row items-center">
<div class="col-12 q-pl-md">
<div class="col-12 text-top">ตำแหนงในสายงาน</div>
<div class="col-12 text-detail">
{{ Position }}
</div>
</div>
</div>
<div class="col-xs-6 col-sm-3 row items-center">
<div class="col-12">
<div class="col-12 text-top">ระด</div>
<div class="col-12 text-detail">
{{ PositionLevel }}
</div>
</div>
</div>
<div class="col-xs-6 col-sm-3 row items-center">
<div class="col-12">
<div class="col-12 text-top">งก</div>
<div class="col-12 text-detail">
{{ Org }}
</div>
</div>
</div>
</div>
</div>
</q-card>
<q-card bordered class="row col-12 text-dark q-mt-sm"> <q-card bordered class="row col-12 text-dark q-mt-sm">
<div class="bg-grey-1 q-pa-sm col-12 row items-center text-primary"> <div class="bg-grey-1 q-pa-sm col-12 row items-center text-primary">

View file

@ -338,7 +338,13 @@ function getQuota() {
.finally(() => {}); .finally(() => {});
} }
function filterSelector(val: any, update: Function, refData: string) { /**
* functioon นหาขอมลรายการหนวยงาน
* @param val คำคนหา
* @param update function
* @param refData typeSelector
*/
function filterSelector(val: string, update: Function, refData: string) {
switch (refData) { switch (refData) {
case "agencyFilter": case "agencyFilter":
update(() => { update(() => {

View file

@ -109,9 +109,13 @@ function fetchRoundOption() {
? "รอบเมษายน" ? "รอบเมษายน"
: "", : "",
})); }));
roundOp.value = list; roundOp.value = list;
store.formQuery.round = list[0].id; store.formQuery.round = list[0].id;
fetchList(); fetchList();
} else {
roundOp.value = [];
store.formQuery.round = "";
} }
}) })
.catch((err) => { .catch((err) => {
@ -221,7 +225,6 @@ onMounted(async () => {
<q-input <q-input
dense dense
outlined outlined
class="inputgreen"
hide-bottom-space hide-bottom-space
:model-value="!!year ? year + 543 : null" :model-value="!!year ? year + 543 : null"
:label="`${'ปีงบประมาณ'}`" :label="`${'ปีงบประมาณ'}`"