Merge branch 'develop' into devTee
This commit is contained in:
commit
733f6c861f
18 changed files with 75 additions and 38 deletions
|
|
@ -26,6 +26,7 @@ export default {
|
||||||
organizationHistoryNew: `${organization}/history`,
|
organizationHistoryNew: `${organization}/history`,
|
||||||
organizationHistoryPostNew: `${organization}/history/publish`,
|
organizationHistoryPostNew: `${organization}/history/publish`,
|
||||||
orgChart: (id: string) => `${organization}/org-chart/${id}`,
|
orgChart: (id: string) => `${organization}/org-chart/${id}`,
|
||||||
|
orgIsLock: `${organization}/lock`,
|
||||||
|
|
||||||
/** position*/
|
/** position*/
|
||||||
orgPosPosition: `${orgPos}/position`,
|
orgPosPosition: `${orgPos}/position`,
|
||||||
|
|
@ -123,13 +124,14 @@ export default {
|
||||||
* รายการคำร้องขอแก้ไขทะเบียนประวัติ
|
* รายการคำร้องขอแก้ไขทะเบียนประวัติ
|
||||||
*/
|
*/
|
||||||
requestEdit: `${orgProfile}/edit/`,
|
requestEdit: `${orgProfile}/edit/`,
|
||||||
requestEditByType:(type:string)=> `${orgProfile}${type}/edit/`,
|
requestEditByType: (type: string) => `${orgProfile}${type}/edit/`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ข้อมูลการพัฒนารายบุคคล IDP
|
* ข้อมูลการพัฒนารายบุคคล IDP
|
||||||
*/
|
*/
|
||||||
requestDevelopmentEdit: `${orgProfile}/development-request/`,
|
requestDevelopmentEdit: `${orgProfile}/development-request/`,
|
||||||
requestDevelopmentEditByType:(type:string)=> `${orgProfile}${type}/development-request/`,
|
requestDevelopmentEditByType: (type: string) =>
|
||||||
|
`${orgProfile}${type}/development-request/`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* รายการเมนู
|
* รายการเมนู
|
||||||
|
|
@ -151,4 +153,6 @@ export default {
|
||||||
`${workflow}/keycloak/isofficer/${type}`,
|
`${workflow}/keycloak/isofficer/${type}`,
|
||||||
|
|
||||||
positionCondition: `${orgPos}/master/position-condition`,
|
positionCondition: `${orgPos}/master/position-condition`,
|
||||||
|
|
||||||
|
keycloakLogSSO: `${organization}/keycloak/log/sso`,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -545,7 +545,7 @@ onMounted(async () => {
|
||||||
dense
|
dense
|
||||||
:nodes="lazy"
|
:nodes="lazy"
|
||||||
node-key="orgTreeId"
|
node-key="orgTreeId"
|
||||||
label-key="orgTreeName"
|
label-key="labelName"
|
||||||
:filter="filter"
|
:filter="filter"
|
||||||
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
||||||
no-nodes-label="ไม่มีข้อมูล"
|
no-nodes-label="ไม่มีข้อมูล"
|
||||||
|
|
|
||||||
|
|
@ -520,7 +520,7 @@ onMounted(() => {
|
||||||
dense
|
dense
|
||||||
:nodes="lazy"
|
:nodes="lazy"
|
||||||
node-key="orgTreeId"
|
node-key="orgTreeId"
|
||||||
label-key="orgTreeName"
|
label-key="labelName"
|
||||||
:filter="filter"
|
:filter="filter"
|
||||||
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
||||||
no-nodes-label="ไม่มีข้อมูล"
|
no-nodes-label="ไม่มีข้อมูล"
|
||||||
|
|
@ -627,7 +627,6 @@ onMounted(() => {
|
||||||
map-options
|
map-options
|
||||||
:options="columns"
|
:options="columns"
|
||||||
option-value="name"
|
option-value="name"
|
||||||
|
|
||||||
style="min-width: 140px"
|
style="min-width: 140px"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -636,9 +635,7 @@ onMounted(() => {
|
||||||
<d-table
|
<d-table
|
||||||
ref="table"
|
ref="table"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:rows="
|
:rows="positionNo.length !== 0 ? positionNo : []"
|
||||||
positionNo.length !== 0 ? positionNo : []
|
|
||||||
"
|
|
||||||
:filter="filters"
|
:filter="filters"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
flat
|
flat
|
||||||
|
|
@ -779,7 +776,9 @@ onMounted(() => {
|
||||||
<d-table
|
<d-table
|
||||||
ref="table"
|
ref="table"
|
||||||
:columns="columnsPostition"
|
:columns="columnsPostition"
|
||||||
:rows="rowsPosition.length !== 0 ? rowsPosition:[]"
|
:rows="
|
||||||
|
rowsPosition.length !== 0 ? rowsPosition : []
|
||||||
|
"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
flat
|
flat
|
||||||
bordered
|
bordered
|
||||||
|
|
|
||||||
|
|
@ -274,7 +274,7 @@ onMounted(async () => {
|
||||||
dense
|
dense
|
||||||
:nodes="lazy"
|
:nodes="lazy"
|
||||||
node-key="orgTreeId"
|
node-key="orgTreeId"
|
||||||
label-key="orgTreeName"
|
label-key="labelName"
|
||||||
:filter="filter"
|
:filter="filter"
|
||||||
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
||||||
no-nodes-label="ไม่มีข้อมูล"
|
no-nodes-label="ไม่มีข้อมูล"
|
||||||
|
|
|
||||||
|
|
@ -528,7 +528,7 @@ onMounted(async () => {
|
||||||
dense
|
dense
|
||||||
:nodes="nodeAgency"
|
:nodes="nodeAgency"
|
||||||
node-key="orgTreeId"
|
node-key="orgTreeId"
|
||||||
label-key="orgTreeName"
|
label-key="labelName"
|
||||||
selected-color="primary"
|
selected-color="primary"
|
||||||
:filter="filterAgency"
|
:filter="filterAgency"
|
||||||
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
||||||
|
|
|
||||||
|
|
@ -455,7 +455,7 @@ onMounted(() => {
|
||||||
dense
|
dense
|
||||||
:nodes="node"
|
:nodes="node"
|
||||||
node-key="orgTreeId"
|
node-key="orgTreeId"
|
||||||
label-key="orgTreeName"
|
label-key="labelName"
|
||||||
v-model:expanded="expanded"
|
v-model:expanded="expanded"
|
||||||
:filter="filter"
|
:filter="filter"
|
||||||
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,7 @@ import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useOrganizational } from "@/modules/02_organization/store/organizational";
|
import { useOrganizational } from "@/modules/02_organization/store/organizational";
|
||||||
import { useStructStore } from "@/modules/02_organization/store/chart";
|
|
||||||
|
|
||||||
const storeOrg = useStructStore();
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
const store = useOrganizational();
|
const store = useOrganizational();
|
||||||
|
|
|
||||||
|
|
@ -384,7 +384,10 @@ watch(
|
||||||
<div class="row q-col-gutter-sm q-pl-sm">
|
<div class="row q-col-gutter-sm q-pl-sm">
|
||||||
<div class="col-2" v-if="store.typeOrganizational === 'draft'">
|
<div class="col-2" v-if="store.typeOrganizational === 'draft'">
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="checkPermission($route)?.attrOwnership == 'OWNER'"
|
v-if="
|
||||||
|
checkPermission($route)?.attrOwnership == 'OWNER' &&
|
||||||
|
!store.isLosck
|
||||||
|
"
|
||||||
dense
|
dense
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
|
|
@ -399,7 +402,8 @@ watch(
|
||||||
<div
|
<div
|
||||||
:class="
|
:class="
|
||||||
store.typeOrganizational === 'draft' &&
|
store.typeOrganizational === 'draft' &&
|
||||||
checkPermission($route)?.attrOwnership == 'OWNER'
|
checkPermission($route)?.attrOwnership == 'OWNER ' &&
|
||||||
|
!store.isLosck
|
||||||
? 'col-10'
|
? 'col-10'
|
||||||
: 'col-12'
|
: 'col-12'
|
||||||
"
|
"
|
||||||
|
|
@ -468,7 +472,7 @@ watch(
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="store.typeOrganizational === 'draft'"
|
v-if="store.typeOrganizational === 'draft' && !store.isLosck"
|
||||||
@click.stop
|
@click.stop
|
||||||
flat
|
flat
|
||||||
dense
|
dense
|
||||||
|
|
|
||||||
|
|
@ -487,7 +487,7 @@ watch(
|
||||||
<!-- TOOLBAR -->
|
<!-- TOOLBAR -->
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<q-toolbar style="padding: 0">
|
<q-toolbar style="padding: 0">
|
||||||
<div v-if="store.typeOrganizational === 'draft'">
|
<div v-if="store.typeOrganizational === 'draft'&& !store.isLosck">
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
|
|
@ -602,7 +602,7 @@ watch(
|
||||||
<q-tr :props="props">
|
<q-tr :props="props">
|
||||||
<q-td>
|
<q-td>
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="store.typeOrganizational === 'draft'"
|
v-if="store.typeOrganizational === 'draft' && !store.isLosck"
|
||||||
flat
|
flat
|
||||||
color="secondary"
|
color="secondary"
|
||||||
icon="mdi-dots-horizontal-circle-outline"
|
icon="mdi-dots-horizontal-circle-outline"
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,9 @@ export const useOrganizational = defineStore("organizationalStore", () => {
|
||||||
const typeOrganizational = ref<string>("current"); // ประเภทโครงสร้าง
|
const typeOrganizational = ref<string>("current"); // ประเภทโครงสร้าง
|
||||||
const statusView = ref<string>("list"); // การแสดงผล รายการ,map
|
const statusView = ref<string>("list"); // การแสดงผล รายการ,map
|
||||||
|
|
||||||
const rootId = ref<string>('')
|
const rootId = ref<string>("");
|
||||||
const isOfficer = ref<boolean|null>(null);
|
const isOfficer = ref<boolean | null>(null);
|
||||||
const isStaff = ref<boolean|null>(null);
|
const isStaff = ref<boolean | null>(null);
|
||||||
|
|
||||||
const dataActive = ref<DataActive>(); //ข้อมูลโครงสร้าง
|
const dataActive = ref<DataActive>(); //ข้อมูลโครงสร้าง
|
||||||
const activeId = ref<string>(); // id โครงสร้างปัจจุบัน
|
const activeId = ref<string>(); // id โครงสร้างปัจจุบัน
|
||||||
|
|
@ -24,6 +24,7 @@ export const useOrganizational = defineStore("organizationalStore", () => {
|
||||||
const treeId = ref<string>(); // id โหนด
|
const treeId = ref<string>(); // id โหนด
|
||||||
const level = ref<number>(); // ระดับโหนด
|
const level = ref<number>(); // ระดับโหนด
|
||||||
const orgPublishDate = ref<Date | null>(null); // วันเผยแพร่
|
const orgPublishDate = ref<Date | null>(null); // วันเผยแพร่
|
||||||
|
const isLosck = ref<boolean>(false);
|
||||||
const sumPosition = reactive({
|
const sumPosition = reactive({
|
||||||
total: 0,
|
total: 0,
|
||||||
use: 0,
|
use: 0,
|
||||||
|
|
@ -166,6 +167,7 @@ export const useOrganizational = defineStore("organizationalStore", () => {
|
||||||
getSumPosition,
|
getSumPosition,
|
||||||
isOfficer,
|
isOfficer,
|
||||||
isStaff,
|
isStaff,
|
||||||
rootId
|
rootId,
|
||||||
|
isLosck,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ async function fetchOrganizationActive() {
|
||||||
const data = await res.data.result;
|
const data = await res.data.result;
|
||||||
if (data) {
|
if (data) {
|
||||||
await store.fetchDataActive(data);
|
await store.fetchDataActive(data);
|
||||||
|
await fetchCheckIslock(data.draftId);
|
||||||
if (data.activeName === null && data.draftName === null) {
|
if (data.activeName === null && data.draftName === null) {
|
||||||
isStatusData.value = false;
|
isStatusData.value = false;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -146,6 +147,18 @@ async function workflowSystem() {
|
||||||
.finally(() => {});
|
.finally(() => {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function fetchCheckIslock(id: string) {
|
||||||
|
http
|
||||||
|
.get(config.API.orgIsLock + `/${id}`)
|
||||||
|
.then((res) => {
|
||||||
|
const data = res.data.result;
|
||||||
|
store.isLosck = data;
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
messageError($q, e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => store.typeOrganizational,
|
() => store.typeOrganizational,
|
||||||
() => {
|
() => {
|
||||||
|
|
@ -305,7 +318,10 @@ onMounted(async () => {
|
||||||
</q-btn-group>
|
</q-btn-group>
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="checkPermission($route)?.attrOwnership == 'OWNER'"
|
v-if="
|
||||||
|
checkPermission($route)?.attrOwnership == 'OWNER' &&
|
||||||
|
!store.isLosck
|
||||||
|
"
|
||||||
color="green-6"
|
color="green-6"
|
||||||
dense
|
dense
|
||||||
unelevated
|
unelevated
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,11 @@ const columns2 = ref<QTableProps["columns"]>([
|
||||||
headerStyle: "font-size: 14px",
|
headerStyle: "font-size: 14px",
|
||||||
style: "font-size: 14px",
|
style: "font-size: 14px",
|
||||||
format: (val: string) => {
|
format: (val: string) => {
|
||||||
return val === "SLIP" ? "เลื่อน" : val === "MOVE" ? "ย้าย" : "-";
|
return val === "SLIP"
|
||||||
|
? "ปรับระดับชั้นงาน"
|
||||||
|
: val === "MOVE"
|
||||||
|
? "ย้าย"
|
||||||
|
: "-";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -221,7 +225,7 @@ watch(
|
||||||
emit-value
|
emit-value
|
||||||
map-options
|
map-options
|
||||||
use-input
|
use-input
|
||||||
style="width: 350px; max-width: auto"
|
style="width: 380px; max-width: auto"
|
||||||
@update:model-value="filterSelectOrder"
|
@update:model-value="filterSelectOrder"
|
||||||
@filter="(inputValue:string,
|
@filter="(inputValue:string,
|
||||||
doneFn:Function) => filterSelector(inputValue, doneFn
|
doneFn:Function) => filterSelector(inputValue, doneFn
|
||||||
|
|
@ -267,7 +271,6 @@ watch(
|
||||||
map-options
|
map-options
|
||||||
:options="columns2"
|
:options="columns2"
|
||||||
option-value="name"
|
option-value="name"
|
||||||
|
|
||||||
style="min-width: 140px"
|
style="min-width: 140px"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,11 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
headerStyle: "font-size: 14px",
|
headerStyle: "font-size: 14px",
|
||||||
style: "font-size: 14px",
|
style: "font-size: 14px",
|
||||||
format: (val: string) => {
|
format: (val: string) => {
|
||||||
return val === "SLIP" ? "เลื่อน" : val === "MOVE" ? "ย้าย" : "-";
|
return val === "SLIP"
|
||||||
|
? "ปรับระดับชั้นงาน"
|
||||||
|
: val === "MOVE"
|
||||||
|
? "ย้าย"
|
||||||
|
: "-";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -342,7 +346,6 @@ onMounted(() => {
|
||||||
map-options
|
map-options
|
||||||
:options="columns"
|
:options="columns"
|
||||||
option-value="name"
|
option-value="name"
|
||||||
|
|
||||||
style="min-width: 140px"
|
style="min-width: 140px"
|
||||||
class="col-xs-12 col-sm-3 col-md-2 q-ml-sm"
|
class="col-xs-12 col-sm-3 col-md-2 q-ml-sm"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,9 @@ const stroe = useDataStore();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="toptitle text-dark col-12 row items-center">รายการลาออกลูกจ้าง</div>
|
<div class="toptitle text-dark col-12 row items-center">
|
||||||
|
รายการลาออกลูกจ้าง
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<q-card flat bordered class="col-12">
|
<q-card flat bordered class="col-12">
|
||||||
<q-tabs
|
<q-tabs
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,15 @@ export const useDataStore = defineStore("resign", () => {
|
||||||
formQurey.status = "WAITTING";
|
formQurey.status = "WAITTING";
|
||||||
});
|
});
|
||||||
watch(mainTabsEMP, (val) => {
|
watch(mainTabsEMP, (val) => {
|
||||||
formQurey.status = "WAITTING";
|
formQureyEMP.status = "WAITTING";
|
||||||
});
|
});
|
||||||
|
|
||||||
return { mainTabs, mainTabsEMP, formQurey,formQureyEMP, optionStatus, optionStatusEMP };
|
return {
|
||||||
|
mainTabs,
|
||||||
|
mainTabsEMP,
|
||||||
|
formQurey,
|
||||||
|
formQureyEMP,
|
||||||
|
optionStatus,
|
||||||
|
optionStatusEMP,
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ function fetchRoundOption() {
|
||||||
|
|
||||||
roundOp.value = list;
|
roundOp.value = list;
|
||||||
store.formQuery.round = list[0].id;
|
store.formQuery.round = list[0].id;
|
||||||
await fetchList();
|
await changRound();
|
||||||
} else {
|
} else {
|
||||||
roundOp.value = [];
|
roundOp.value = [];
|
||||||
store.formQuery.round = "";
|
store.formQuery.round = "";
|
||||||
|
|
@ -152,7 +152,7 @@ async function fetchList() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function changRound() {
|
async function changRound() {
|
||||||
formQuery.page = 1;
|
formQuery.page = 1;
|
||||||
fetchList();
|
fetchList();
|
||||||
}
|
}
|
||||||
|
|
@ -170,7 +170,7 @@ function clearYear() {
|
||||||
year.value = null;
|
year.value = null;
|
||||||
store.formQuery.round = "";
|
store.formQuery.round = "";
|
||||||
roundOp.value = [];
|
roundOp.value = [];
|
||||||
fetchList();
|
changRound();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -318,7 +318,6 @@ onMounted(async () => {
|
||||||
map-options
|
map-options
|
||||||
:options="columns"
|
:options="columns"
|
||||||
option-value="name"
|
option-value="name"
|
||||||
|
|
||||||
style="min-width: 140px"
|
style="min-width: 140px"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -418,7 +418,8 @@ const doLogout = () => {
|
||||||
dialogConfirm(
|
dialogConfirm(
|
||||||
$q,
|
$q,
|
||||||
async () => {
|
async () => {
|
||||||
logout();
|
await http.post(config.API.keycloakLogSSO, { text: "ออกจากระบบ" });
|
||||||
|
await logout();
|
||||||
},
|
},
|
||||||
"ยืนยันการออกจากระบบ",
|
"ยืนยันการออกจากระบบ",
|
||||||
"ต้องการออกจากระบบใช่หรือไม่?"
|
"ต้องการออกจากระบบใช่หรือไม่?"
|
||||||
|
|
|
||||||
|
|
@ -27,5 +27,4 @@ export default defineConfig({
|
||||||
server: {
|
server: {
|
||||||
port: 3006,
|
port: 3006,
|
||||||
},
|
},
|
||||||
base: "./",
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue