fixing column บรรจุ แต่งตั้ง ย้าย

This commit is contained in:
Warunee Tamkoo 2024-05-24 14:58:40 +07:00
parent bb2d03e499
commit 9cde68ab4f
74 changed files with 620 additions and 626 deletions

View file

@ -62,7 +62,7 @@ export default {
listPositionSidePublishedHistory: `${positionSide}history/published-history`, listPositionSidePublishedHistory: `${positionSide}history/published-history`,
/** /**
* api * api
*/ */
positionType, positionType,
listPositionTypeHistory: `${positionType}history`, listPositionTypeHistory: `${positionType}history`,

View file

@ -10,7 +10,7 @@
* - offcier : เป็น Array Object * - offcier : เป็น Array Object
* - children : เป็น Array Root children Object * - children : เป็น Array Root children Object
* - Object * - Object
* - positionID : Unique ID deptID * - positionID : Unique ID deptID
* - positionName : ชื่อตำแหน่ง * - positionName : ชื่อตำแหน่ง
* - positionNum : เลขที่ประจำตำแหน่ง . * - positionNum : เลขที่ประจำตำแหน่ง .
* - totalPositionCount : จำนวนตำแหน่งทั้งหมด * - totalPositionCount : จำนวนตำแหน่งทั้งหมด
@ -25,7 +25,7 @@ const chartData = {
heads: [ heads: [
// Array ของผู้บริหารในหน่วยงานนั้น ๆ (ผู้อำนวยการ/หัวหน้า) // Array ของผู้บริหารในหน่วยงานนั้น ๆ (ผู้อำนวยการ/หัวหน้า)
{ {
positionID: 2, // Unique ID ของตำแหน่งประเภทนั้น (ถ้ามี?) positionID: 2, // Unique ID ของประเภทตำแหน่งนั้น (ถ้ามี?)
positionName: "ผู้อำนวยการสูง", // ชื่อตำแหน่ง positionName: "ผู้อำนวยการสูง", // ชื่อตำแหน่ง
positionNum: "(หัวหน้าสำนักงาน)", // เลขที่ประจำตำแหน่ง (ถ้ามี) เช่นพวก กทข. positionNum: "(หัวหน้าสำนักงาน)", // เลขที่ประจำตำแหน่ง (ถ้ามี) เช่นพวก กทข.
totalPositionCount: 1, // จำนวนตำแหน่งทั้งหมด totalPositionCount: 1, // จำนวนตำแหน่งทั้งหมด

View file

@ -16,7 +16,7 @@ import { useCounterMixin } from "@/stores/mixin";
/** use*/ /** use*/
const $q = useQuasar(); const $q = useQuasar();
const { messageError, findOrgName } = useCounterMixin(); const { messageError, findOrgNameOld, findOrgName } = useCounterMixin();
/** propsDataProfile*/ /** propsDataProfile*/
const props = defineProps({ const props = defineProps({
@ -44,16 +44,32 @@ function fetchDataProfile(data: DataProfile) {
profile.fullName = `${data.prefix ?? ""}${data.firstName ?? ""} ${ profile.fullName = `${data.prefix ?? ""}${data.firstName ?? ""} ${
data.lastName ?? "" data.lastName ?? ""
} `; } `;
profile.position =
data.position == "" || data.position === null ? "-" : data.position; if (data["posTypeNameOld"] !== undefined) {
if (data.posTypeName && data.posLevelName) { profile.position =
profile.positionLevel = `${data.posTypeName} (${data.posLevelName})`; data.positionOld == "" || data.positionOld == null
} else if (data.posTypeName) { ? "-"
profile.positionLevel = `${data.posTypeName}`; : data.positionOld;
} else if (data.posLevelName) { if (data.posTypeNameOld && data.posLevelNameOld) {
profile.positionLevel = `(${data.posLevelName})`; profile.positionLevel = `${data.posTypeNameOld} (${data.posLevelNameOld})`;
} else profile.positionLevel = "-"; } else if (data.posTypeNameOld) {
profile.organization = findOrgName(data); profile.positionLevel = `${data.posTypeNameOld}`;
} else if (data.posLevelNameOld) {
profile.positionLevel = `(${data.posLevelNameOld})`;
} else profile.positionLevel = "-";
profile.organization = findOrgNameOld(data);
} else {
profile.position =
data.position == "" || data.position == null ? "-" : data.position;
if (data.posTypeName && data.posLevelName) {
profile.positionLevel = `${data.posTypeName} (${data.posLevelName})`;
} else if (data.posTypeName) {
profile.positionLevel = `${data.posTypeName}`;
} else if (data.posLevelName) {
profile.positionLevel = `(${data.posLevelName})`;
} else profile.positionLevel = "-";
profile.organization = findOrgName(data);
}
} }
function fetchProfile(id: string) { function fetchProfile(id: string) {
@ -113,7 +129,9 @@ watch(
</div> </div>
<div class="col-xs-6 col-sm-3 row items-center"> <div class="col-xs-6 col-sm-3 row items-center">
<div class="col-12 q-pl-md"> <div class="col-12 q-pl-md">
<div class="col-12 text-top">{{ props.type == 'employee' ? 'ตำแหน่ง':'ตำแหน่งในสายงาน'}}</div> <div class="col-12 text-top">
{{ props.type == "employee" ? "ตำแหน่ง" : "ตำแหน่งในสายงาน" }}
</div>
<div class="col-12 text-detail"> <div class="col-12 text-detail">
{{ profile.position }} {{ profile.position }}
</div> </div>
@ -121,7 +139,9 @@ watch(
</div> </div>
<div class="col-xs-6 col-sm-3 row items-center"> <div class="col-xs-6 col-sm-3 row items-center">
<div class="col-12"> <div class="col-12">
<div class="col-12 text-top">{{ props.type == 'employee' ? 'กลุ่มงาน':'ประเภทตำแหน่ง'}}</div> <div class="col-12 text-top">
{{ props.type == "employee" ? "กลุ่มงาน" : "ประเภทตำแหน่ง" }}
</div>
<div class="col-12 text-detail"> <div class="col-12 text-detail">
{{ profile.positionLevel }} {{ profile.positionLevel }}
</div> </div>

View file

@ -227,9 +227,9 @@ async function getDataTable(id: string, level: number = 0) {
const body = { const body = {
node: level, node: level,
nodeId: id, nodeId: id,
position: posType.value ? posType.value : "", position: position.value ? position.value : "",
posLevel: posLevel.value ? posLevel.value : "", posLevel: posLevel.value ? posLevel.value : "",
posType: position.value ? position.value : "", posType: posType.value ? posType.value : "",
isAll: isAll.value, isAll: isAll.value,
isBlank: isBlank.value, isBlank: isBlank.value,
typeCommand: type.value, typeCommand: type.value,

View file

@ -326,7 +326,6 @@ watch(modal, (newValue) => {
:model-value="goverment.oc === '' ? '-' : goverment.oc" :model-value="goverment.oc === '' ? '-' : goverment.oc"
label="สังกัด" label="สังกัด"
autogrow autogrow
></q-input> ></q-input>
</div> </div>
<div class="col-xs-6 col-md-6"> <div class="col-xs-6 col-md-6">
@ -366,7 +365,7 @@ watch(modal, (newValue) => {
borderless borderless
readonly readonly
:model-value="goverment.positionType" :model-value="goverment.positionType"
label="ประเภท" label="ประเภทตำแหน่ง"
/> />
</div> </div>
<div class="col-xs-6 col-md-6"> <div class="col-xs-6 col-md-6">
@ -374,7 +373,7 @@ watch(modal, (newValue) => {
borderless borderless
readonly readonly
:model-value="goverment.positionLevel" :model-value="goverment.positionLevel"
label="ระดับ" label="ระดับตำแหน่ง"
/> />
</div> </div>
<div class="col-xs-6 col-md-6"> <div class="col-xs-6 col-md-6">

View file

@ -3,7 +3,7 @@ import { ref, reactive, watch, onMounted } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
import { useRouter,useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
/** importType*/ /** importType*/
import type { PersonalImformation } from "@/components/information/interface/response/Information"; import type { PersonalImformation } from "@/components/information/interface/response/Information";
@ -14,7 +14,7 @@ import type { Avatar } from "@/components/information/interface/response/avatar"
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
/** use*/ /** use*/
const route = useRoute() const route = useRoute();
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const router = useRouter(); const router = useRouter();
const $q = useQuasar(); const $q = useQuasar();
@ -104,7 +104,7 @@ function calculateAge(birthDate: Date | null) {
async function fetchInformation(id: string) { async function fetchInformation(id: string) {
showLoader(); showLoader();
await http await http
.get(config.API.orgProfileById(id,empType.value)) .get(config.API.orgProfileById(id, empType.value))
.then((res) => { .then((res) => {
const data = res.data.result; const data = res.data.result;
imformation.prefix = data.prefix ? data.prefix : "-"; imformation.prefix = data.prefix ? data.prefix : "-";
@ -118,9 +118,9 @@ async function fetchInformation(id: string) {
avatar.fullname = `${data.prefix}${data.firstName} ${data.lastName}`; avatar.fullname = `${data.prefix}${data.firstName} ${data.lastName}`;
avatar.position = data.position ? data.position : "-"; avatar.position = data.position ? data.position : "-";
if(data.avatarName){ if (data.avatarName) {
fetchProfile(data.id as string) fetchProfile(data.id as string);
}else{ } else {
statusLoad.value.val = true; statusLoad.value.val = true;
} }
}) })
@ -394,7 +394,7 @@ async function fetchProfile(id: string) {
borderless borderless
readonly readonly
:model-value="goverment.positionType" :model-value="goverment.positionType"
label="ประเภท" label="ประเภทตำแหน่ง"
/> />
</div> </div>
<div class="col-xs-6 col-md-6"> <div class="col-xs-6 col-md-6">
@ -402,7 +402,7 @@ async function fetchProfile(id: string) {
borderless borderless
readonly readonly
:model-value="goverment.positionLevel" :model-value="goverment.positionLevel"
label="ระดับ" label="ระดับตำแหน่ง"
/> />
</div> </div>
<div <div

View file

@ -433,7 +433,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -444,7 +444,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "positionLevel", name: "positionLevel",
align: "left", align: "left",
label: "ระดับ", label: "ระดับตำแหน่ง",
sortable: true, sortable: true,
field: "positionLevel", field: "positionLevel",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",

View file

@ -143,7 +143,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[
@ -257,9 +256,9 @@
:borderless="!edit" :borderless="!edit"
v-model="positionTypeId" v-model="positionTypeId"
:rules="[ :rules="[
(val:string) => !!val || `${'กรุณาเลือกตำแหน่งประเภท'}`, (val:string) => !!val || `${'กรุณาเลือกประเภทตำแหน่ง'}`,
]" ]"
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
@update:modelValue="clickEditRow" @update:modelValue="clickEditRow"
emit-value emit-value
map-options map-options
@ -650,7 +649,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -786,7 +785,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -1047,7 +1046,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1058,7 +1057,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionLevel", name: "positionLevel",
align: "left", align: "left",
label: "ระดับ", label: "ระดับตำแหน่ง",
sortable: true, sortable: true,
field: "positionLevel", field: "positionLevel",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1225,7 +1224,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1236,7 +1235,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "positionLevel", name: "positionLevel",
align: "left", align: "left",
label: "ระดับ", label: "ระดับตำแหน่ง",
sortable: true, sortable: true,
field: "positionLevel", field: "positionLevel",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1737,7 +1736,7 @@ const templateDetail = async () => {
); );
if (positionTypeF.length > 0) { if (positionTypeF.length > 0) {
salaryClass.value = salaryClass.value =
salaryClass.value + `ตำแหน่งประเภท${positionTypeF[0].name} `; salaryClass.value + `ประเภทตำแหน่ง${positionTypeF[0].name} `;
} }
const positionLevelF = positionLevelOptions.value.filter( const positionLevelF = positionLevelOptions.value.filter(

View file

@ -142,7 +142,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[
@ -655,7 +654,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -791,7 +790,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -1038,7 +1037,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionEmployeeLevel", name: "positionEmployeeLevel",
align: "left", align: "left",
label: "ระดับ", label: "ระดับตำแหน่ง",
sortable: true, sortable: true,
field: "positionEmployeeLevel", field: "positionEmployeeLevel",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1183,7 +1182,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "positionEmployeeLevel", name: "positionEmployeeLevel",
align: "left", align: "left",
label: "ระดับ", label: "ระดับตำแหน่ง",
sortable: true, sortable: true,
field: "positionEmployeeLevel", field: "positionEmployeeLevel",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1662,7 +1661,7 @@ const templateDetail = async () => {
// ); // );
// if (positionTypeF.length > 0) { // if (positionTypeF.length > 0) {
// salaryClass.value = // salaryClass.value =
// salaryClass.value + `${positionTypeF[0].name} `; // salaryClass.value + `${positionTypeF[0].name} `;
// } // }
// const positionLevelF = positionLevelOptions.value.filter( // const positionLevelF = positionLevelOptions.value.filter(
// (r: DataOption) => r.id == positionLevelId.value // (r: DataOption) => r.id == positionLevelId.value

View file

@ -142,7 +142,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[
@ -631,7 +630,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -767,7 +766,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -1692,7 +1691,7 @@ const templateDetail = async () => {
// ); // );
// if (positionTypeF.length > 0) { // if (positionTypeF.length > 0) {
// salaryClass.value = // salaryClass.value =
// salaryClass.value + `${positionTypeF[0].name} `; // salaryClass.value + `${positionTypeF[0].name} `;
// } // }
// const positionLevelF = positionLevelOptions.value.filter( // const positionLevelF = positionLevelOptions.value.filter(
// (r: DataOption) => r.id == positionLevelId.value // (r: DataOption) => r.id == positionLevelId.value

View file

@ -251,7 +251,7 @@
lazy-rules lazy-rules
:model-value="positionLevel" :model-value="positionLevel"
hide-bottom-space hide-bottom-space
label="ระดับ" label="ระดับตำแหน่ง"
@update:model-value="updatePositionLevel" @update:model-value="updatePositionLevel"
class="col-3" class="col-3"
/> />

View file

@ -1,4 +1,4 @@
<!-- tab ตำแหนประเภท หนาจดการขอมลหล/อมลตำแหนงของขาราชการกรงเทพมหานคร --> <!-- tab ประเภทตำแหน หนาจดการขอมลหล/อมลตำแหนงของขาราชการกรงเทพมหานคร -->
<template> <template>
<div> <div>
<q-form ref="myForm"> <q-form ref="myForm">
@ -207,7 +207,7 @@ const { manageData, changeManageColumns, getPositionType, dataPositionType } =
const rows = ref<RequestItemsHistoryObject[]>([]); //list data table const rows = ref<RequestItemsHistoryObject[]>([]); //list data table
const rowsHistory = ref<RequestItemsHistoryObject[]>([]); //select data history const rowsHistory = ref<RequestItemsHistoryObject[]>([]); //select data history
const rawHistory = ref<RequestItemsHistoryObject[]>([]); //raw data history const rawHistory = ref<RequestItemsHistoryObject[]>([]); //raw data history
const tittleHistory = ref<string>("ประวัติแก้ไขตำแหน่งประเภท"); // const tittleHistory = ref<string>("ประวัติแก้ไขประเภทตำแหน่ง"); //
const myForm = ref<any>(null); //ref const myForm = ref<any>(null); //ref
const filter = ref<string>(""); //search data table const filter = ref<string>(""); //search data table
const filterHistory = ref<string>(""); //search data table history const filterHistory = ref<string>(""); //search data table history
@ -223,7 +223,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "name", name: "name",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "name", field: "name",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -292,7 +292,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "name", name: "name",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "name", field: "name",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",

View file

@ -491,7 +491,7 @@ const tabsOrganization = [
{ label: "หมายเลขโทรสาร", value: "organization_fax" }, { label: "หมายเลขโทรสาร", value: "organization_fax" },
]; ];
const tabsPosition = [ const tabsPosition = [
{ label: "ตำแหน่งประเภท", value: "position_type" }, { label: "ประเภทตำแหน่ง", value: "position_type" },
{ label: "ชื่อสายงาน", value: "position_line" }, { label: "ชื่อสายงาน", value: "position_line" },
{ label: "ชื่อตำแหน่งสายงาน", value: "position_path" }, { label: "ชื่อตำแหน่งสายงาน", value: "position_path" },
{ label: "ด้าน/สาขา ของสายงาน", value: "position_pathSide" }, { label: "ด้าน/สาขา ของสายงาน", value: "position_pathSide" },

View file

@ -329,12 +329,12 @@ async function onSubmit() {
ref="posTypeRankRef" ref="posTypeRankRef"
outlined outlined
v-model="posTypeRank" v-model="posTypeRank"
label="ระดับ" label="ระดับตำแหน่ง"
dense dense
lazy-rules lazy-rules
borderless borderless
min="1" min="1"
:rules="[(val) => val != undefined || 'กรุณากรอกระดับ']" :rules="[(val) => val != undefined || 'กรุณากรอกระดับตำแหน่ง']"
hide-bottom-space hide-bottom-space
mask="############" mask="############"
/> />

View file

@ -1,5 +1,5 @@
<!-- =============================== --> <!-- =============================== -->
<!-- หนตำแหนประเภท สายงาน --> <!-- หนประเภทตำแหน สายงาน -->
<!-- component เพมตำแหนงในดรอบดาวน ของ โครงสรางอตรากำล --> <!-- component เพมตำแหนงในดรอบดาวน ของ โครงสรางอตรากำล -->
<!-- เพอใหมาเลอกในหน Mapping --> <!-- เพอใหมาเลอกในหน Mapping -->
<template> <template>
@ -118,8 +118,8 @@
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeId" v-model="positionTypeId"
:rules="[(val:any) => !!val || `${'กรุณาเลือกตำแหน่งประเภท'}`]" :rules="[(val:any) => !!val || `${'กรุณาเลือกประเภทตำแหน่ง'}`]"
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
@update:modelValue="clickEditRow" @update:modelValue="clickEditRow"
emit-value emit-value
map-options map-options
@ -537,7 +537,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -672,7 +672,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1043,7 +1043,7 @@ const fetchPosition = async () => {
}; };
/** /**
* filter select ตำแหนประเภท * filter select ประเภทตำแหน
* @param val text filter * @param val text filter
* @param update * @param update
* @param abort * @param abort

View file

@ -83,7 +83,7 @@
<div class="text-weight-medium q-pt-md row items-center"> <div class="text-weight-medium q-pt-md row items-center">
<q-icon size="10px" color="grey-4" name="mdi-circle" /> <q-icon size="10px" color="grey-4" name="mdi-circle" />
<div class="q-pl-sm">ตำแหนประเภท</div> <div class="q-pl-sm">ประเภทตำแหน</div>
</div> </div>
<div class="text-grey-7 q-pl-lg"> <div class="text-grey-7 q-pl-lg">
{{ personDetail ? personDetail.positionType : "" }} {{ personDetail ? personDetail.positionType : "" }}

View file

@ -431,8 +431,8 @@
dense dense
lazy-rules lazy-rules
v-model="positionTypeId" v-model="positionTypeId"
:rules="[(val:any) => !!val || `${'กรุณาเลือกตำแหน่งประเภท'}`]" :rules="[(val:any) => !!val || `${'กรุณาเลือกประเภทตำแหน่ง'}`]"
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
emit-value emit-value
map-options map-options
option-label="name" option-label="name"

View file

@ -14,7 +14,7 @@
@click="clickBack" @click="clickBack"
/> />
<label <label
>ญชดขาราชการกรงเทพมหานครสามญเขตำแหนประเภท สายงาน >ญชดขาราชการกรงเทพมหานครสามญเขประเภทตำแหน สายงาน
และระดบตำแหน</label และระดบตำแหน</label
> >
</div> </div>
@ -154,7 +154,7 @@
<q-select <q-select
class="col-xs-12 col-sm-6" class="col-xs-12 col-sm-6"
v-model="myData.category" v-model="myData.category"
label="ตำแหน่งประเภท" label="ประเภทตำแหน่ง"
dense dense
emit-value emit-value
map-options map-options
@ -384,7 +384,7 @@
dense dense
:options="categoryOP" :options="categoryOP"
v-model="myData.category2" v-model="myData.category2"
label="ตำแหน่งประเภท" label="ประเภทตำแหน่ง"
emit-value emit-value
map-options map-options
option-label="name" option-label="name"
@ -938,7 +938,7 @@ const fetchPositionNum = async () => {
}); });
}; };
// //
const fetchCategory = async () => { const fetchCategory = async () => {
// showLoader(); // showLoader();
await http await http
@ -1083,7 +1083,7 @@ const filterSelector = (val: any, update: Function, filtername: string) => {
}); });
break; break;
case "4": case "4":
// //
update(() => { update(() => {
categoryOP.value = categoryOPfilter.value.filter( categoryOP.value = categoryOPfilter.value.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.indexOf(val) > -1

View file

@ -11,7 +11,7 @@
@click="clickBack" @click="clickBack"
/> />
<label <label
>ประวญชดขาราชการกรงเทพมหานครสามญเขตำแหนประเภท สายงาน >ประวญชดขาราชการกรงเทพมหานครสามญเขประเภทตำแหน สายงาน
และระดบตำแหน</label และระดบตำแหน</label
> >
<q-card flat bordered class="col-12 q-my-sm q-pt-sm"> <q-card flat bordered class="col-12 q-my-sm q-pt-sm">
@ -147,7 +147,7 @@
/> />
<q-input <q-input
v-model="items.oldPositionType" v-model="items.oldPositionType"
label="ตำแหน่งประเภท" label="ประเภทตำแหน่ง"
class="col-xs-12 col-sm-6" class="col-xs-12 col-sm-6"
hide-bottom-space hide-bottom-space
:outlined="false" :outlined="false"
@ -259,7 +259,7 @@
/> />
<q-input <q-input
v-model="items.newPositionType" v-model="items.newPositionType"
label="ตำแหน่งประเภท" label="ประเภทตำแหน่ง"
class="col-xs-12 col-sm-6" class="col-xs-12 col-sm-6"
hide-bottom-space hide-bottom-space
:outlined="false" :outlined="false"

View file

@ -33,7 +33,7 @@ const prosp = defineProps({
/** formData*/ /** formData*/
const formData = reactive<FormDetailPosition>({ const formData = reactive<FormDetailPosition>({
positionNo: "", //* positionNo: "", //*
positionType: "", //* positionType: "", //*
positionPathSide: "", //* positionPathSide: "", //*
positionLine: "", //* positionLine: "", //*
positionSide: "", //*/ positionSide: "", //*/
@ -137,15 +137,22 @@ watch(
: store.typeOrganizational === "draft" : store.typeOrganizational === "draft"
? "แบบร่าง" ? "แบบร่าง"
: "ยุบเลิก"; : "ยุบเลิก";
formData.positionType = prosp.dataDetailPos.posTypeName formData.positionType = prosp.dataDetailPos.posTypeName;
formData.positionPathSide = prosp.dataDetailPos.positionName formData.positionPathSide = prosp.dataDetailPos.positionName;
formData.positionLine = prosp.dataDetailPos.positionField formData.positionLine = prosp.dataDetailPos.positionField;
formData.positionSide = prosp.dataDetailPos.positionArea ? prosp.dataDetailPos.positionArea : "-" formData.positionSide = prosp.dataDetailPos.positionArea
formData.positionLevel = prosp.dataDetailPos.posLevelName ? prosp.dataDetailPos.positionArea
formData.positionExecutive = prosp.dataDetailPos.posExecutiveName ? prosp.dataDetailPos.posExecutiveName : "-" : "-";
formData.positionExecutiveSide = prosp.dataDetailPos.positionExecutiveField ? prosp.dataDetailPos.positionExecutiveField : "-" formData.positionLevel = prosp.dataDetailPos.posLevelName;
formData.positionExecutive = prosp.dataDetailPos.posExecutiveName
? prosp.dataDetailPos.posExecutiveName
: "-";
formData.positionExecutiveSide = prosp.dataDetailPos
.positionExecutiveField
? prosp.dataDetailPos.positionExecutiveField
: "-";
// row.value = prosp.dataDetailPos.positions.map((e: Position) => ({ // row.value = prosp.dataDetailPos.positions.map((e: Position) => ({
// ...e, // ...e,
// positionName: e.positionName ? e.positionName : "-", // positionName: e.positionName ? e.positionName : "-",
// positionField: e.positionField ? e.positionField : "-", // positionField: e.positionField ? e.positionField : "-",
@ -183,7 +190,7 @@ watch(
<div class="row q-col-gutter-sm q-mb-xs"> <div class="row q-col-gutter-sm q-mb-xs">
<div class="col-4 text-bold"> <div class="col-4 text-bold">
<div> <div>
<p>ตำแหนประเภท</p> <p>ประเภทตำแหน</p>
</div> </div>
</div> </div>
<div class="col-8 text-grey-8"> <div class="col-8 text-grey-8">
@ -191,7 +198,7 @@ watch(
</div> </div>
</div> </div>
<div class="row q-col-gutter-sm q-mb-xs"> <div class="row q-col-gutter-sm q-mb-xs">
<div class="col-4 text-bold"> <div class="col-4 text-bold">
<div> <div>
<p>ตำแหนงในสายงาน</p> <p>ตำแหนงในสายงาน</p>
@ -202,7 +209,7 @@ watch(
</div> </div>
</div> </div>
<div class="row q-col-gutter-sm q-mb-xs"> <div class="row q-col-gutter-sm q-mb-xs">
<div class="col-4 text-bold"> <div class="col-4 text-bold">
<div> <div>
<p>สายงาน</p> <p>สายงาน</p>
@ -235,7 +242,7 @@ watch(
</div> </div>
</div> </div>
<div class="row q-col-gutter-sm q-mb-xs"> <div class="row q-col-gutter-sm q-mb-xs">
<div class="col-4 text-bold"> <div class="col-4 text-bold">
<div> <div>
<p>ตำแหนงทางการบรหาร</p> <p>ตำแหนงทางการบรหาร</p>

View file

@ -250,7 +250,7 @@
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="formDataSalary.typePosition" v-model="formDataSalary.typePosition"
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
emit-value emit-value
map-options map-options
option-label="name" option-label="name"
@ -550,7 +550,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -686,7 +686,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -947,7 +947,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "postionTypeName", name: "postionTypeName",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "postionTypeName", field: "postionTypeName",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1125,7 +1125,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1290,7 +1290,7 @@ function inputPositionLevelBlur() {
if ( if (
!optionStore.optipnLevel.some( !optionStore.optipnLevel.some(
(v:any) => v.name === tempPositionLevelInput.value (v: any) => v.name === tempPositionLevelInput.value
) )
) { ) {
createValue(tempPositionLevelInput.value); createValue(tempPositionLevelInput.value);

View file

@ -142,7 +142,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[
@ -670,7 +669,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -806,7 +805,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -1417,7 +1416,7 @@ const nodeTree = async () => {
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {
store.isLoad++ store.isLoad++;
}); });
}; };
@ -1541,7 +1540,7 @@ const fetchData = async () => {
// refCommandDate: new Date(e.refCommandDate), // refCommandDate: new Date(e.refCommandDate),
createdFullName: e.createdFullName, createdFullName: e.createdFullName,
createdAt: new Date(e.createdAt), createdAt: new Date(e.createdAt),
salaryStatus: null salaryStatus: null,
}); });
}); });
}) })
@ -1549,7 +1548,7 @@ const fetchData = async () => {
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {
store.isLoad++ store.isLoad++;
}); });
} }
}; };
@ -1698,7 +1697,7 @@ const templateDetail = async () => {
// ); // );
// if (positionTypeF.length > 0) { // if (positionTypeF.length > 0) {
// salaryClass.value = // salaryClass.value =
// salaryClass.value + `${positionTypeF[0].name} `; // salaryClass.value + `${positionTypeF[0].name} `;
// } // }
// const positionLevelF = positionLevelOptions.value.filter( // const positionLevelF = positionLevelOptions.value.filter(
// (r: DataOption) => r.id == positionLevelId.value // (r: DataOption) => r.id == positionLevelId.value
@ -2022,7 +2021,7 @@ const clickHistory = async (row: RequestItemsEmployee) => {
refCommandNo: e.refCommandNo, refCommandNo: e.refCommandNo,
createdFullName: e.createdFullName, createdFullName: e.createdFullName,
createdAt: new Date(e.createdAt), createdAt: new Date(e.createdAt),
salaryStatus: null salaryStatus: null,
}); });
}); });
}) })

View file

@ -142,7 +142,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[
@ -645,7 +644,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -781,7 +780,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -1726,7 +1725,7 @@ const templateDetail = async () => {
// ); // );
// if (positionTypeF.length > 0) { // if (positionTypeF.length > 0) {
// salaryClass.value = // salaryClass.value =
// salaryClass.value + `${positionTypeF[0].name} `; // salaryClass.value + `${positionTypeF[0].name} `;
// } // }
// const positionLevelF = positionLevelOptions.value.filter( // const positionLevelF = positionLevelOptions.value.filter(
// (r: DataOption) => r.id == positionLevelId.value // (r: DataOption) => r.id == positionLevelId.value

View file

@ -324,9 +324,9 @@
:borderless="!edit" :borderless="!edit"
v-model="positionTypeId" v-model="positionTypeId"
:rules="[ :rules="[
(val: string) => !!val || `${'กรุณาเลือกตำแหน่งประเภท'}`, (val: string) => !!val || `${'กรุณาเลือกประเภทตำแหน่ง'}`,
]" ]"
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
@update:modelValue="updateSelectType" @update:modelValue="updateSelectType"
emit-value emit-value
map-options map-options
@ -824,7 +824,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -960,7 +960,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -1221,7 +1221,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1399,7 +1399,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1928,7 +1928,7 @@ const clickAdd = async () => {
// ); // );
// if (positionTypeF.length > 0) { // if (positionTypeF.length > 0) {
// salaryClass.value = // salaryClass.value =
// salaryClass.value + `${positionTypeF[0].name} `; // salaryClass.value + `${positionTypeF[0].name} `;
// } // }
// const positionLevelF = positionLevelOptions.value.filter( // const positionLevelF = positionLevelOptions.value.filter(

View file

@ -142,7 +142,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[
@ -670,7 +669,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -806,7 +805,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -1417,7 +1416,7 @@ const nodeTree = async () => {
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {
store.isLoad++ store.isLoad++;
}); });
}; };
@ -1541,7 +1540,7 @@ const fetchData = async () => {
// refCommandDate: new Date(e.refCommandDate), // refCommandDate: new Date(e.refCommandDate),
createdFullName: e.createdFullName, createdFullName: e.createdFullName,
createdAt: new Date(e.createdAt), createdAt: new Date(e.createdAt),
salaryStatus: null salaryStatus: null,
}); });
}); });
}) })
@ -1549,7 +1548,7 @@ const fetchData = async () => {
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {
store.isLoad++ store.isLoad++;
}); });
} }
}; };
@ -1698,7 +1697,7 @@ const templateDetail = async () => {
// ); // );
// if (positionTypeF.length > 0) { // if (positionTypeF.length > 0) {
// salaryClass.value = // salaryClass.value =
// salaryClass.value + `${positionTypeF[0].name} `; // salaryClass.value + `${positionTypeF[0].name} `;
// } // }
// const positionLevelF = positionLevelOptions.value.filter( // const positionLevelF = positionLevelOptions.value.filter(
// (r: DataOption) => r.id == positionLevelId.value // (r: DataOption) => r.id == positionLevelId.value
@ -2022,7 +2021,7 @@ const clickHistory = async (row: RequestItemsEmployee) => {
refCommandNo: e.refCommandNo, refCommandNo: e.refCommandNo,
createdFullName: e.createdFullName, createdFullName: e.createdFullName,
createdAt: new Date(e.createdAt), createdAt: new Date(e.createdAt),
salaryStatus: null salaryStatus: null,
}); });
}); });
}) })

View file

@ -644,7 +644,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -780,7 +780,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -1725,7 +1725,7 @@ const templateDetail = async () => {
// ); // );
// if (positionTypeF.length > 0) { // if (positionTypeF.length > 0) {
// salaryClass.value = // salaryClass.value =
// salaryClass.value + `${positionTypeF[0].name} `; // salaryClass.value + `${positionTypeF[0].name} `;
// } // }
// const positionLevelF = positionLevelOptions.value.filter( // const positionLevelF = positionLevelOptions.value.filter(
// (r: DataOption) => r.id == positionLevelId.value // (r: DataOption) => r.id == positionLevelId.value

View file

@ -92,7 +92,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -772,7 +772,7 @@ onMounted(() => {
lazy-rules lazy-rules
borderless borderless
v-model="formDataSalary.positionType" v-model="formDataSalary.positionType"
:label="empType == '' ? 'ตำแหน่งประเภท' : 'กลุ่มงาน'" :label="empType == '' ? 'ประเภทตำแหน่ง' : 'กลุ่มงาน'"
emit-value emit-value
map-options map-options
option-label="name" option-label="name"
@ -782,7 +782,7 @@ onMounted(() => {
use-input use-input
input-debounce="0" input-debounce="0"
@update:model-value="updateSelectType" @update:model-value="updateSelectType"
:rules="empType == '' ? [(val: string) => !!val || 'กรุณาเลือกตำแหน่งประเภท' ]:[(val: string) => !!val || 'กรุณาเลือกกลุ่มงาน' ]" :rules="empType == '' ? [(val: string) => !!val || 'กรุณาเลือกประเภทตำแหน่ง' ]:[(val: string) => !!val || 'กรุณาเลือกกลุ่มงาน' ]"
@filter="(inputValue: any, @filter="(inputValue: any,
doneFn: Function) => filterSelector(inputValue, doneFn, 'posType' doneFn: Function) => filterSelector(inputValue, doneFn, 'posType'
)" )"

View file

@ -118,7 +118,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",

View file

@ -7,7 +7,7 @@ import type { ResponseTitle } from "@/modules/05_placement/interface/response/Re
import type { import type {
appointmentData, appointmentData,
ResponseData, ResponseData,
DataProfile DataProfile,
} from "@/modules/05_placement/interface/response/AppointMent"; } from "@/modules/05_placement/interface/response/AppointMent";
import type { QForm } from "quasar"; import type { QForm } from "quasar";
import http from "@/plugins/http"; import http from "@/plugins/http";
@ -182,10 +182,7 @@ onMounted(async () => {
รายละเอยดการปรบระดบชนงานลกจาง {{ title.fullname }} รายละเอยดการปรบระดบชนงานลกจาง {{ title.fullname }}
</div> </div>
<CardProfile <CardProfile :data="dataProfile as DataProfile" :type="'employee'" />
:data="dataProfile as DataProfile"
:type="'employee'"
/>
<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">
@ -284,9 +281,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>
@ -300,9 +297,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionLevelOld" v-model="positionLevelOld"
:rules="[(val) => !!val || `${'กรุณากรอกระดับ'}`]" :rules="[(val) => !!val || `${'กรุณากรอกระดับตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ระดับ'}`" :label="`${'ระดับตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -15,7 +15,14 @@ const storeFn = useTransferDataStore();
const { statusText } = storeFn; const { statusText } = storeFn;
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { showLoader, success, messageError, dialogConfirm, hideLoader ,date2Thai} = mixin; const {
showLoader,
success,
messageError,
dialogConfirm,
hideLoader,
date2Thai,
} = mixin;
const $q = useQuasar(); const $q = useQuasar();
const selected = ref<[]>([]); const selected = ref<[]>([]);
@ -73,7 +80,7 @@ const columns2 = ref<QTableProps["columns"]>([
{ {
name: "organizationName", name: "organizationName",
align: "left", align: "left",
label: "หน่วยงานที่รับการแต่งตั้ง-เลื่อน-ย้าย", label: "หน่วยงานที่รับปรับระดับชั้นงาน-ย้าย",
sortable: true, sortable: true,
field: "organizationName", field: "organizationName",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -241,11 +248,7 @@ watchEffect(() => {
v-model="props.selected" v-model="props.selected"
/> />
</q-td> </q-td>
<q-td <q-td v-for="col in props.cols" :key="col.name" :props="props">
v-for="col in props.cols"
:key="col.name"
:props="props"
>
<div v-if="col.name == 'no'"> <div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }} {{ props.rowIndex + 1 }}
</div> </div>

View file

@ -213,7 +213,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "organizationName", name: "organizationName",
align: "left", align: "left",
label: "หน่วยงานที่รับการแต่งตั้ง-เลื่อน-ย้าย", label: "หน่วยงานที่รับปรับระดับชั้นงาน-ย้าย",
sortable: true, sortable: true,
field: "organizationName", field: "organizationName",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -260,7 +260,7 @@ const fecthlistappointment = async () => {
.then((res) => { .then((res) => {
let response = res.data.result; let response = res.data.result;
listRecevice.value = response; listRecevice.value = response;
rows.value = response rows.value = response;
// rows.value = response.map((e: resData) => ({ // rows.value = response.map((e: resData) => ({
// personalId: e.id, // personalId: e.id,
// citizenId: e.citizenId, // citizenId: e.citizenId,
@ -485,17 +485,14 @@ const savePosition = async () => {
// } // }
// }; // };
function openModalTree(data: any, type: string) {
modalTree.value = true;
function openModalTree(data:any,type:string){
modalTree.value = true
typeModal.value = type; typeModal.value = type;
personalId.value = data.id; personalId.value = data.id;
dataRows.value = data; dataRows.value = data;
posType.value = data.posTypeId; posType.value = data.posTypeNameOld;
posLevel.value = data.posLevelId; posLevel.value = data.posLevelNameOld;
position.value = data.positionName; position.value = data.positionOld;
} }
function onSave(data: any) { function onSave(data: any) {
@ -532,7 +529,6 @@ function onSave(data: any) {
hideLoader(); hideLoader();
}); });
} }
</script> </script>
<template> <template>
<div class="toptitle text-dark col-12 row items-center"> <div class="toptitle text-dark col-12 row items-center">
@ -711,7 +707,7 @@ function onSave(data: any) {
<q-item <q-item
clickable clickable
v-close-popup v-close-popup
@click="openModalTree(props.row,'SLIP')" @click="openModalTree(props.row, 'SLIP')"
> >
<q-item-section <q-item-section
style="min-width: 0px" style="min-width: 0px"
@ -724,12 +720,14 @@ function onSave(data: any) {
name="mdi-bookmark-outline" name="mdi-bookmark-outline"
/> />
</q-item-section> </q-item-section>
<q-item-section>เลอกหนวยงานทบปรบระดบชนงาน</q-item-section> <q-item-section
>เลอกหนวยงานทบปรบระดบชนงาน</q-item-section
>
</q-item> </q-item>
<q-item <q-item
clickable clickable
v-close-popup v-close-popup
@click="openModalTree(props.row,'MOVE')" @click="openModalTree(props.row, 'MOVE')"
> >
<q-item-section <q-item-section
style="min-width: 0px" style="min-width: 0px"
@ -742,7 +740,9 @@ function onSave(data: any) {
name="mdi-bookmark-outline" name="mdi-bookmark-outline"
/> />
</q-item-section> </q-item-section>
<q-item-section>เลอกหนวยงานทบยาย</q-item-section> <q-item-section
>เลอกหนวยงานทบยาย</q-item-section
>
</q-item> </q-item>
<q-item <q-item
clickable clickable
@ -877,6 +877,5 @@ function onSave(data: any) {
:dataRows="dataRows" :dataRows="dataRows"
:onSubmit="onSave" :onSubmit="onSave"
/> />
</template> </template>
<style scoped lang="scss"></style> <style scoped lang="scss"></style>

View file

@ -228,7 +228,7 @@ const positionPathSideOptions = ref<Object[]>([
value: "", value: "",
}, },
]); ]);
// //
const positionTypeOptions = ref<Object[]>([ const positionTypeOptions = ref<Object[]>([
{ {
label: "", label: "",

View file

@ -47,7 +47,6 @@ let dataForm = reactive({
positionTypeId: "", positionTypeId: "",
}); });
const fetchPublishFile = async () => { const fetchPublishFile = async () => {
await http await http
.get(config.API.getPublishFileHistory) .get(config.API.getPublishFileHistory)
@ -237,7 +236,7 @@ const positionPathSideOptions = ref<Object[]>([
value: "", value: "",
}, },
]); ]);
// //
const positionTypeOptions = ref<Object[]>([ const positionTypeOptions = ref<Object[]>([
{ {
label: "", label: "",
@ -673,9 +672,9 @@ onMounted(async () => {
lazy-rules lazy-rules
:options="positionLevelOptions" :options="positionLevelOptions"
v-model="dataForm.positionLevelId" v-model="dataForm.positionLevelId"
:label="`${'ระดับ'}`" :label="`${'ระดับตำแหน่ง'}`"
hide-bottom-space hide-bottom-space
:rules="[(val: string) => !!val || `${'กรุณาเลือกระดับ'}`]" :rules="[(val: string) => !!val || `${'กรุณาเลือกระดับตำแหน่ง'}`]"
emit-value emit-value
map-options map-options
/> />

View file

@ -279,9 +279,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionLevelOld" v-model="positionLevelOld"
:rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]" :rules="[(val) => !!val || `${'กรุณากรอกระดับตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ประเภทตำแหน่ง'}`" :label="`${'ระดับตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -6,11 +6,10 @@ import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
import { useTransferDataStore } from "@/modules/05_placement/store"; import { useTransferDataStore } from "@/modules/05_placement/store";
import Dialogbody from "@/modules/05_placement/components/AppointMent/Dialogbody.vue"; import Dialogbody from "@/modules/05_placement/components/AppointMent/Dialogbody.vue";
import DialogOrgTree from "@/modules/05_placement/components/AppointMent/AppointmentModal.vue";
import type { import type {
listAppointType, listAppointType,
resData, resData,
orgFilter,
} from "@/modules/05_placement/interface/response/AppointMent"; } from "@/modules/05_placement/interface/response/AppointMent";
import type { OpType } from "@/modules/05_placement/interface/response/Main"; import type { OpType } from "@/modules/05_placement/interface/response/Main";
import http from "@/plugins/http"; import http from "@/plugins/http";
@ -255,9 +254,9 @@ const openModalTree = (data: any, type: string) => {
modalTree.value = true; modalTree.value = true;
typeModal.value = type; typeModal.value = type;
dataRows.value = data; dataRows.value = data;
posType.value = data.posTypeId; posType.value = data.posTypeNameOld;
posLevel.value = data.posLevelId; posLevel.value = data.positionLevelOld;
position.value = data.positionName; position.value = data.positionOld;
}; };
// //
const clickDelete = (id: string) => { const clickDelete = (id: string) => {

View file

@ -258,9 +258,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>
@ -274,9 +274,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionLevelOld" v-model="positionLevelOld"
:rules="[(val) => !!val || `${'กรุณากรอกระดับ'}`]" :rules="[(val) => !!val || `${'กรุณากรอกระดับตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ระดับ'}`" :label="`${'ระดับตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -43,9 +43,8 @@ const props = defineProps({
const visibleColumns2 = ref<string[]>([ const visibleColumns2 = ref<string[]>([
"no", "no",
"fullname", "fullname",
"position",
"positionLevel", "positionLevel",
"affiliation", "organizationPositionOld",
"createdAt", "createdAt",
"status", "status",
]); ]);
@ -71,15 +70,6 @@ const columns2 = ref<QTableProps["columns"]>([
return `${row.prefix}${row.firstName} ${row.lastName}`; return `${row.prefix}${row.firstName} ${row.lastName}`;
}, },
}, },
{
name: "position",
align: "left",
label: "ตำแหน่งในสายงาน",
sortable: true,
field: "position",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{ {
name: "positionLevel", name: "positionLevel",
align: "left", align: "left",
@ -90,27 +80,24 @@ const columns2 = ref<QTableProps["columns"]>([
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
let name = ""; let name = "";
if (row.posTypeName && row.posLevelName) { if (row.positionTypeOld && row.positionLevelOld) {
name = `${row.posTypeName} (${row.posLevelName})`; name = `${row.positionTypeOld} (${row.positionLevelOld})`;
} else if (row.posTypeName) { } else if (row.positionTypeOld) {
name = `${row.posTypeName}`; name = `${row.positionTypeOld}`;
} else if (row.posLevelName) { } else if (row.positionLevelOld) {
name = `(${row.posLevelName})`; name = `(${row.positionLevelOld})`;
} else name = "-"; } else name = "-";
return name; return name;
}, },
}, },
{ {
name: "affiliation", name: "organizationPositionOld",
align: "left", align: "left",
label: "สังกัด", label: "ตำแหน่งและหน่วยงานเดิม",
sortable: true, sortable: true,
field: "affiliation", field: "organizationPositionOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) {
return findOrgName(row);
},
}, },
{ {
name: "createdAt", name: "createdAt",

View file

@ -47,9 +47,8 @@ const filterRef = ref<any>(null);
const visibleColumns = ref<string[]>([ const visibleColumns = ref<string[]>([
"no", "no",
"fullname", "fullname",
"position",
"positionLevel", "positionLevel",
"affiliation", "organizationPositionOld",
"createdAt", "createdAt",
"status", "status",
]); ]);
@ -75,15 +74,6 @@ const columns = ref<QTableProps["columns"]>([
return `${row.prefix}${row.firstName} ${row.lastName}`; return `${row.prefix}${row.firstName} ${row.lastName}`;
}, },
}, },
{
name: "position",
align: "left",
label: "ตำแหน่งในสายงาน",
sortable: true,
field: "position",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{ {
name: "positionLevel", name: "positionLevel",
align: "left", align: "left",
@ -94,27 +84,24 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
let name = ""; let name = "";
if (row.posTypeName && row.posLevelName) { if (row.positionTypeOld && row.positionLevelOld) {
name = `${row.posTypeName} (${row.posLevelName})`; name = `${row.positionTypeOld} (${row.positionLevelOld})`;
} else if (row.posTypeName) { } else if (row.positionTypeOld) {
name = `${row.posTypeName}`; name = `${row.positionTypeOld}`;
} else if (row.posLevelName) { } else if (row.positionLevelOld) {
name = `(${row.posLevelName})`; name = `(${row.positionLevelOld})`;
} else name = "-"; } else name = "-";
return name; return name;
}, },
}, },
{ {
name: "affiliation", name: "organizationPositionOld",
align: "left", align: "left",
label: "สังกัด", label: "ตำแหน่งและหน่วยงานเดิม",
sortable: true, sortable: true,
field: "affiliation", field: "organizationPositionOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) {
return findOrgName(row);
},
}, },
{ {
name: "createdAt", name: "createdAt",

View file

@ -253,7 +253,7 @@ const positionPathSideOptions = ref<Object[]>([
value: "", value: "",
}, },
]); ]);
// //
const positionTypeOptions = ref<Object[]>([ const positionTypeOptions = ref<Object[]>([
{ {
label: "", label: "",

View file

@ -145,8 +145,12 @@ async function fetchDataTable(id: string, level: number = 0) {
nodeId: id, nodeId: id,
position: props?.dataRow?.positionCandidate, position: props?.dataRow?.positionCandidate,
typeCommand: props.typeCommand, typeCommand: props.typeCommand,
posLevel: props.dataRow?.posLevelCandidateId, posLevel: props.dataRow?.posLevelCandidateId
posType: props.dataRow?.posTypeCandidateId, ? props.dataRow?.posLevelCandidateId
: "",
posType: props.dataRow?.posTypeCandidateId
? props.dataRow?.posTypeCandidateId
: "",
isAll: isAll.value, isAll: isAll.value,
isBlank: isBlank.value, isBlank: isBlank.value,
}; };

View file

@ -41,7 +41,7 @@ const posNoOptions = ref<Object[]>([{ label: "", value: "" }]);
const positionOptions = ref<Object[]>([{ label: "", value: "" }]); const positionOptions = ref<Object[]>([{ label: "", value: "" }]);
// / // /
const positionPathSideOptions = ref<Object[]>([{ label: "", value: "" }]); const positionPathSideOptions = ref<Object[]>([{ label: "", value: "" }]);
// //
const positionTypeOptions = ref<Object[]>([{ label: "", value: "" }]); const positionTypeOptions = ref<Object[]>([{ label: "", value: "" }]);
// //
const positionLineOptions = ref<Object[]>([{ label: "", value: "" }]); const positionLineOptions = ref<Object[]>([{ label: "", value: "" }]);

View file

@ -385,8 +385,8 @@ function insertAvatar(items: any) {
config.API.fileByFile( config.API.fileByFile(
"ทะเบียนประวัติ", "ทะเบียนประวัติ",
"โปรไฟล์", "โปรไฟล์",
x.id, x.personalId,
"profile-" + x.id "profile-" + x.personalId
) )
) )
.then((img) => { .then((img) => {

View file

@ -43,8 +43,6 @@ const columns2 = ref<QTableProps["columns"]>([
field: "no", field: "no",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "citizenId", name: "citizenId",

View file

@ -889,9 +889,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
@ -903,9 +903,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionLevelOld" v-model="positionLevelOld"
:rules="[(val) => !!val || `${'กรุณากรอกระดับ'}`]" :rules="[(val) => !!val || `${'กรุณากรอกระดับตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ระดับ'}`" :label="`${'ระดับตำแหน่ง'}`"
/> />
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">

View file

@ -273,10 +273,11 @@ const openModalTree = (id: string, data: any) => {
modalTree.value = true; modalTree.value = true;
type.value = null; type.value = null;
dataRows.value = data; dataRows.value = data;
// console.log("data===>", data);
posType.value = data.posTypeId; posType.value = data.posTypeOldId;
posLevel.value = data.posLevelId; posLevel.value = data.posLevelOldId;
position.value = data.positionName; position.value = data.positionOld;
}; };
// //
const openUpload = (id: string) => { const openUpload = (id: string) => {

View file

@ -84,7 +84,7 @@ const positionOptions = ref<Object[]>([{ label: "", value: "" }]);
// / // /
const positionPathSideOptions = ref<Object[]>([{ label: "", value: "" }]); const positionPathSideOptions = ref<Object[]>([{ label: "", value: "" }]);
// //
const positionTypeOptions = ref<Object[]>([{ label: "", value: "" }]); const positionTypeOptions = ref<Object[]>([{ label: "", value: "" }]);
// //

View file

@ -259,7 +259,7 @@ const positionPathSideOptions = ref<Object[]>([
value: "", value: "",
}, },
]); ]);
// //
const positionTypeOptions = ref<Object[]>([ const positionTypeOptions = ref<Object[]>([
{ {
label: "", label: "",

View file

@ -350,7 +350,7 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="educationOld" v-model="educationOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'วุฒิ/สาขา'}`" :label="`${'วุฒิ/สาขา'}`"
/> />
@ -390,9 +390,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -23,8 +23,7 @@ const {
messageError, messageError,
dialogConfirm, dialogConfirm,
hideLoader, hideLoader,
findOrgName, findPosMasterNoOld,
findPosMasterNo,
date2Thai, date2Thai,
} = mixin; } = mixin;
@ -51,26 +50,17 @@ const columns2 = ref<QTableProps["columns"]>([
}, },
}, },
{ {
name: "posNo", name: "posMasterNoOld",
align: "left", align: "left",
label: "เลขที่ตำแหน่ง", label: "เลขที่ตำแหน่ง",
sortable: true, sortable: true,
field: "posNo", field: "posMasterNoOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
return findPosMasterNo(row); return findPosMasterNoOld(row);
}, },
}, },
{
name: "position",
align: "left",
label: "ตำแหน่งในสายงาน",
sortable: true,
field: "position",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{ {
name: "positionLevel", name: "positionLevel",
align: "left", align: "left",
@ -80,20 +70,25 @@ const columns2 = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
return `${row.posTypeName} (${row.posLevelName})`; let name = "";
if (row.positionTypeOld && row.positionLevelOld) {
name = `${row.positionTypeOld} (${row.positionLevelOld})`;
} else if (row.positionTypeOld) {
name = `${row.positionTypeOld}`;
} else if (row.positionLevelOld) {
name = `(${row.positionLevelOld})`;
} else name = "-";
return name;
}, },
}, },
{ {
name: "organizationPositionOld", name: "organizationPositionOld",
align: "left", align: "left",
label: "สังกัด", label: "ตำแหน่งและหน่วยงานเดิม",
sortable: true, sortable: true,
field: "organizationPositionOld", field: "organizationPositionOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) {
return findOrgName(row);
},
}, },
{ {
name: "organization", name: "organization",
@ -128,8 +123,7 @@ const columns2 = ref<QTableProps["columns"]>([
const visibleColumns2 = ref<string[]>([ const visibleColumns2 = ref<string[]>([
"no", "no",
"name", "name",
"posNo", "posMasterNoOld",
"position",
"positionLevel", "positionLevel",
"organizationPositionOld", "organizationPositionOld",
"organization", "organization",

View file

@ -30,8 +30,7 @@ const {
hideLoader, hideLoader,
success, success,
dialogRemove, dialogRemove,
findOrgName, findPosMasterNoOld,
findPosMasterNo,
} = mixin; } = mixin;
// //
@ -58,26 +57,17 @@ const columns = ref<QTableProps["columns"]>([
}, },
}, },
{ {
name: "posNo", name: "posMasterNoOld",
align: "left", align: "left",
label: "เลขที่ตำแหน่ง", label: "เลขที่ตำแหน่ง",
sortable: true, sortable: true,
field: "posNo", field: "posMasterNoOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
return findPosMasterNo(row); return findPosMasterNoOld(row);
}, },
}, },
{
name: "position",
align: "left",
label: "ตำแหน่งในสายงาน",
sortable: true,
field: "position",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{ {
name: "positionLevel", name: "positionLevel",
align: "left", align: "left",
@ -88,12 +78,12 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
let name = ""; let name = "";
if (row.posTypeName && row.posLevelName) { if (row.positionTypeOld && row.positionLevelOld) {
name = `${row.posTypeName} (${row.posLevelName})`; name = `${row.positionTypeOld} (${row.positionLevelOld})`;
} else if (row.posTypeName) { } else if (row.positionTypeOld) {
name = `${row.posTypeName}`; name = `${row.positionTypeOld}`;
} else if (row.posLevelName) { } else if (row.positionLevelOld) {
name = `(${row.posLevelName})`; name = `(${row.positionLevelOld})`;
} else name = "-"; } else name = "-";
return name; return name;
}, },
@ -101,14 +91,11 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "organizationPositionOld", name: "organizationPositionOld",
align: "left", align: "left",
label: "สังกัด", label: "ตำแหน่งและหน่วยงานเดิม",
sortable: true, sortable: true,
field: "organizationPositionOld", field: "organizationPositionOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) {
return findOrgName(row);
},
}, },
{ {
name: "organization", name: "organization",
@ -143,8 +130,7 @@ const columns = ref<QTableProps["columns"]>([
const visibleColumns = ref<string[]>([ const visibleColumns = ref<string[]>([
"no", "no",
"name", "name",
"posNo", "posMasterNoOld",
"position",
"positionLevel", "positionLevel",
"organizationPositionOld", "organizationPositionOld",
"organization", "organization",
@ -324,7 +310,7 @@ onMounted(async () => {
: '' : ''
" "
> >
{{ col.value ? col.value : "-" }} {{ col.value == null ? "" : col.value }}
</div> </div>
</q-td> </q-td>
<q-td auto-width> <q-td auto-width>

View file

@ -231,9 +231,9 @@ onMounted(() => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>
@ -247,9 +247,9 @@ onMounted(() => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionLevelOld" v-model="positionLevelOld"
:rules="[(val) => !!val || `${'กรุณากรอกระดับ'}`]" :rules="[(val) => !!val || `${'กรุณากรอกระดับตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ระดับ'}`" :label="`${'ระดับตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -2,6 +2,7 @@
import { ref, computed, watchEffect } from "vue"; import { ref, computed, watchEffect } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
import { useTransferDataStore } from "@/modules/05_placement/store";
import type { QTableProps } from "quasar"; import type { QTableProps } from "quasar";
import type { ResponseData } from "@/modules/05_placement/interface/response/Transfer"; import type { ResponseData } from "@/modules/05_placement/interface/response/Transfer";
@ -9,21 +10,30 @@ import DialogHeader from "@/modules/05_placement/components/PersonalList/DialogH
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
const transferStore = useTransferDataStore();
const { statusText } = transferStore;
const $q = useQuasar(); const $q = useQuasar();
const selected = ref<ResponseData[]>([]); const selected = ref<ResponseData[]>([]);
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { showLoader, success, messageError, dialogConfirm,hideLoader } = mixin; const {
showLoader,
success,
messageError,
dialogConfirm,
hideLoader,
date2Thai,
} = mixin;
// //
const visibleColumns2 = ref<string[]>([ const visibleColumns2 = ref<string[]>([
"no", "no",
"fullname", "fullname",
"position", "posType",
"positionLevel",
"organizationPositionOld", "organizationPositionOld",
"organization", "organization",
"statustext", "status",
"dateText", "createdAt",
]); ]);
const columns2 = ref<QTableProps["columns"]>([ const columns2 = ref<QTableProps["columns"]>([
{ {
@ -34,8 +44,6 @@ const columns2 = ref<QTableProps["columns"]>([
field: "no", field: "no",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "fullname", name: "fullname",
@ -47,33 +55,26 @@ const columns2 = ref<QTableProps["columns"]>([
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) => sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
format(val, row) {
return `${row.prefix}${row.firstName} ${row.lastName}`;
},
}, },
{ {
name: "position", name: "posType",
align: "left", align: "left",
label: "ตำแหน่งในสายงาน", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "position", field: "posType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) => format(val, row) {
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), return row.positionTypeOld + " (" + row.positionLevelOld + ")";
}, },
{
name: "positionLevel",
align: "left",
label: "ระดับ",
sortable: true,
field: "positionLevel",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "organizationPositionOld", name: "organizationPositionOld",
align: "left", align: "left",
label: "สังกัด", label: "ตำแหน่งและหน่วยงานเดิม",
sortable: true, sortable: true,
field: "organizationPositionOld", field: "organizationPositionOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -93,27 +94,28 @@ const columns2 = ref<QTableProps["columns"]>([
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "dateText", name: "createdAt",
align: "left", align: "left",
label: "วันที่ดำเนินการ", label: "วันที่ดำเนินการ",
sortable: true, sortable: true,
field: "dateText", field: "createdAt",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) => sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
sortOrder: "da", format(val) {
return date2Thai(val);
},
}, },
{ {
name: "statustext", name: "status",
align: "left", align: "left",
label: "สถานะ", label: "สถานะ",
sortable: true, sortable: true,
field: "statustext", field: "status",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) => format: (val) => statusText(val),
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
]); ]);
@ -122,11 +124,9 @@ const props = defineProps({
closeModal: Function, closeModal: Function,
getData: Function, getData: Function,
rows2: Array, rows2: Array,
filterKeyword2:String, filterKeyword2: String,
}); });
const checkSelected = computed(() => { const checkSelected = computed(() => {
if (selected.value.length === 0) { if (selected.value.length === 0) {
return true; return true;
@ -135,8 +135,13 @@ const checkSelected = computed(() => {
//popup //popup
const saveOrder = () => { const saveOrder = () => {
dialogConfirm($q,() => Ordersave(),"ยืนยันส่งไปออกคำสั่ง","ต้องการยืนยันส่งไปออกคำสั่งใช่หรือไม่?" ) dialogConfirm(
} $q,
() => Ordersave(),
"ยืนยันส่งไปออกคำสั่ง",
"ต้องการยืนยันส่งไปออกคำสั่งใช่หรือไม่?"
);
};
// //
const Ordersave = async () => { const Ordersave = async () => {
const id = selected.value.map((r) => r.id); const id = selected.value.map((r) => r.id);
@ -160,17 +165,13 @@ const Ordersave = async () => {
}); });
}; };
const emit = defineEmits([ const emit = defineEmits(["update:filterKeyword2", "update:selected"]);
"update:filterKeyword2",
"update:selected",
]);
const updateInput = (value: any) => { const updateInput = (value: any) => {
emit("update:filterKeyword2", value); emit("update:filterKeyword2", value);
}; };
// //
const Reset = () => { const Reset = () => {
emit("update:filterKeyword2", ""); emit("update:filterKeyword2", "");
}; };
watchEffect(() => { watchEffect(() => {
if (props.Modal === true) { if (props.Modal === true) {
@ -254,34 +255,23 @@ watchEffect(() => {
v-model="props.selected" v-model="props.selected"
/> />
</q-td> </q-td>
<q-td key="no" :props="props"> <q-td v-for="col in props.cols" :key="col.id">
{{ props.rowIndex + 1 }} <div v-if="col.name === 'no'">
</q-td> {{ props.rowIndex + 1 }}
<q-td key="fullname" :props="props">
{{ props.row.fullname }}
</q-td>
<q-td key="position" :props="props">
{{ props.row.position }}
</q-td>
<q-td key="positionLevel" :props="props">
{{ props.row.positionLevel }}
</q-td>
<q-td key="organizationPositionOld" :props="props">
<div class="table_ellipsis">
{{ props.row.organizationPositionOld }}
</div> </div>
</q-td>
<q-td key="organization" :props="props"> <div
<div class="table_ellipsis"> v-else
{{ props.row.organization }} :class="
col.name === 'organizationPositionOld' ||
col.name === 'organization'
? 'table_ellipsis'
: ''
"
>
{{ col.value ? col.value : "-" }}
</div> </div>
</q-td> </q-td>
<q-td key="dateText" :props="props">
{{ props.row.dateText }}
</q-td>
<q-td key="statustext" :props="props">
{{ props.row.statustext }}
</q-td>
</q-tr> </q-tr>
</template> </template>
</d-table> </d-table>

View file

@ -15,9 +15,10 @@ const router = useRouter();
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const transferStore = useTransferDataStore(); const transferStore = useTransferDataStore();
const { date2Thai, messageError, showLoader, hideLoader, success } = mixin;
const { statusText } = transferStore; const { statusText } = transferStore;
const { date2Thai, messageError, showLoader, hideLoader } = mixin;
const modal = ref<boolean>(false); const modal = ref<boolean>(false);
const filterKeyword = ref<string>(""); const filterKeyword = ref<string>("");
const filterKeyword2 = ref<string>(""); const filterKeyword2 = ref<string>("");
@ -30,12 +31,11 @@ const filters = ref<ResponseData[]>([]);
const visibleColumns = ref<string[]>([ const visibleColumns = ref<string[]>([
"no", "no",
"fullname", "fullname",
"position", "posType",
"positionLevel",
"organizationPositionOld", "organizationPositionOld",
"organization", "organization",
"statustext", "status",
"dateText", "createdAt",
]); ]);
const resetFilter = () => { const resetFilter = () => {
@ -65,33 +65,26 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) => sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
format(val, row) {
return `${row.prefix}${row.firstName} ${row.lastName}`;
},
}, },
{ {
name: "position", name: "posType",
align: "left", align: "left",
label: "ตำแหน่งในสายงาน", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "position", field: "posType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) => format(val, row) {
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), return row.positionTypeOld + " (" + row.positionLevelOld + ")";
}, },
{
name: "positionLevel",
align: "left",
label: "ระดับ",
sortable: true,
field: "positionLevel",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "organizationPositionOld", name: "organizationPositionOld",
align: "left", align: "left",
label: "สังกัด", label: "ตำแหน่งและหน่วยงานเดิม",
sortable: true, sortable: true,
field: "organizationPositionOld", field: "organizationPositionOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -111,27 +104,28 @@ const columns = ref<QTableProps["columns"]>([
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "dateText", name: "createdAt",
align: "left", align: "left",
label: "วันที่ดำเนินการ", label: "วันที่ดำเนินการ",
sortable: true, sortable: true,
field: "dateText", field: "createdAt",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) => sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
sortOrder: "da", format(val) {
return date2Thai(val);
},
}, },
{ {
name: "statustext", name: "status",
align: "left", align: "left",
label: "สถานะ", label: "สถานะ",
sortable: true, sortable: true,
field: "statustext", field: "status",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) => format: (val) => statusText(val),
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
]); ]);
@ -144,10 +138,9 @@ const closeModal = () => {
// //
const openModalOrder = () => { const openModalOrder = () => {
openModal(); openModal();
console.log("filters===>",filters.value)
const row = filters.value.filter( const row = filters.value.filter(
(r: ResponseData) => (r: ResponseData) =>
(r.status == "APPROVE") && r.status == "APPROVE" &&
r.organizationPositionOld && r.organizationPositionOld &&
r.positionTypeOld && r.positionTypeOld &&
r.positionLevelOld && r.positionLevelOld &&
@ -164,38 +157,8 @@ const getData = async () => {
await http await http
.get(config.API.transfer) .get(config.API.transfer)
.then((res: any) => { .then((res: any) => {
const data = res.data.result; rows.value = res.data.result;
let list: ResponseData[] = []; filters.value = rows.value;
data.map((r: ResponseData) => {
list.push({
dateText:
r.createdAt !== null ? date2Thai(new Date(r.createdAt)) : "-",
createdAt: r.createdAt !== null ? new Date(r.createdAt) : null,
date: r.date,
firstName: r.firstName ?? "",
id: r.id ?? "",
isActive: r.isActive ? r.isActive : false,
lastName: r.lastName ?? "",
organization: r.organization ?? "",
organizationPositionOld: r.organizationPositionOld ?? "",
posNo: r.posNo ?? "",
position: r.position ?? "",
positionLevel: r.positionLevel ?? "",
positionLevelOld: r.positionLevelOld ?? "",
positionNumberOld: r.positionNumberOld ?? "",
positionTypeOld: r.positionTypeOld ?? "",
prefix: r.prefix ?? "",
reason: r.reason ?? "",
salary: r.salary ? r.salary : 0,
status: r.status ?? "",
statustext: statusText(r.status ?? ""),
fullname: `${r.prefix ?? ""} ${r.firstName ?? ""} ${
r.lastName ?? ""
}`,
});
});
rows.value = list;
filters.value = list;
}) })
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
@ -282,39 +245,23 @@ onMounted(async () => {
</q-tr> </q-tr>
</template> </template>
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr <q-tr :props="props" class="cursor-pointer">
:props="props" <q-td
class="cursor-pointer" v-for="col in props.cols"
@click="router.push(`/transfer/${props.row.id}`)" :key="col.id"
> class="cursor-pointer"
<q-td key="no" :props="props"> @click="router.push(`/transfer/${props.row.id}`)"
{{ props.rowIndex + 1 }} >
</q-td> <div v-if="col.name === 'no'">
<q-td key="fullname" :props="props"> {{ props.rowIndex + 1 }}
{{ props.row.fullname }}
</q-td>
<q-td key="position" :props="props">
{{ props.row.position }}
</q-td>
<q-td key="positionLevel" :props="props">
{{ props.row.positionLevel }}
</q-td>
<q-td key="organizationPositionOld" :props="props">
<div class="table_ellipsis">
{{ props.row.organizationPositionOld }}
</div> </div>
</q-td>
<q-td key="organization" :props="props"> <div v-else>
<div class="table_ellipsis"> {{
{{ props.row.organization }} col.value == null ? "" : col.value == "" ? "-" : col.value
}}
</div> </div>
</q-td> </q-td>
<q-td key="dateText" :props="props">
{{ props.row.dateText }}
</q-td>
<q-td key="statustext" :props="props">
{{ props.row.statustext }}
</q-td>
</q-tr> </q-tr>
</template> </template>
</d-table> </d-table>

View file

@ -360,7 +360,7 @@ onMounted(async () => {
</div> </div>
<div class="col-xs-6 col-sm-3 row items-center"> <div class="col-xs-6 col-sm-3 row items-center">
<div class="col-12"> <div class="col-12">
<div class="col-12 text-top">ระด</div> <div class="col-12 text-top">ระดตำแหน</div>
<div class="col-12 text-detail"> <div class="col-12 text-detail">
{{ responseData.positionLevelOld }} {{ responseData.positionLevelOld }}
</div> </div>
@ -584,9 +584,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
@ -598,9 +598,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionLevelOld" v-model="positionLevelOld"
:rules="[(val) => !!val || `${'กรุณากรอกระดับ'}`]" :rules="[(val) => !!val || `${'กรุณากรอกระดับตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ระดับ'}`" :label="`${'ระดับตำแหน่ง'}`"
/> />
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">

View file

@ -22,8 +22,8 @@ const {
messageError, messageError,
dialogConfirm, dialogConfirm,
hideLoader, hideLoader,
findOrgName, findOrgNameOld,
findPosMasterNo, findPosMasterNoOld,
date2Thai, date2Thai,
} = mixin; } = mixin;
@ -51,23 +51,23 @@ const columns2 = ref<QTableProps["columns"]>([
}, },
}, },
{ {
name: "posNo", name: "posMasterNoOld",
align: "left", align: "left",
label: "เลขที่ตำแหน่ง", label: "เลขที่ตำแหน่ง",
sortable: true, sortable: true,
field: "posNo", field: "posMasterNoOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
return findPosMasterNo(row); return findPosMasterNoOld(row);
}, },
}, },
{ {
name: "position", name: "positionOld",
align: "left", align: "left",
label: "ตำแหน่งในสายงาน", label: "ตำแหน่งในสายงาน",
sortable: true, sortable: true,
field: "position", field: "positionOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
}, },
@ -80,7 +80,15 @@ const columns2 = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
return `${row.posTypeName} (${row.posLevelName})`; let name = "";
if (row.posTypeNameOld && row.posLevelNameOld) {
name = `${row.posTypeNameOld} (${row.posLevelNameOld})`;
} else if (row.posTypeNameOld) {
name = `${row.posTypeNameOld}`;
} else if (row.posLevelNameOld) {
name = `(${row.posLevelNameOld})`;
} else name = "-";
return name;
}, },
}, },
{ {
@ -88,13 +96,10 @@ const columns2 = ref<QTableProps["columns"]>([
align: "left", align: "left",
label: "สังกัด", label: "สังกัด",
sortable: true, sortable: true,
field: "organizationPositionOld", field: "organization",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
classes: "table_ellipsis", format: (val, row) => findOrgNameOld(row),
format(val, row) {
return findOrgName(row);
},
}, },
{ {
name: "organization", name: "organization",
@ -104,7 +109,6 @@ const columns2 = ref<QTableProps["columns"]>([
field: "organization", field: "organization",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
classes: "table_ellipsis",
}, },
{ {
name: "dateStart", name: "dateStart",
@ -150,8 +154,8 @@ const columns2 = ref<QTableProps["columns"]>([
const visibleColumns2 = ref<string[]>([ const visibleColumns2 = ref<string[]>([
"no", "no",
"name", "name",
"posNo", "posMasterNoOld",
"position", "positionOld",
"positionLevel", "positionLevel",
"organizationPositionOld", "organizationPositionOld",
"organization", "organization",
@ -301,13 +305,18 @@ watchEffect(() => {
{{ props.rowIndex + 1 }} {{ props.rowIndex + 1 }}
</div> </div>
<div v-else :class=" <div
col.name === 'organizationPositionOld' || v-else
col.name === 'organization' :class="
? 'table_ellipsis' col.name === 'organizationPositionOld' ||
: '' col.name === 'organization'
"> ? 'table_ellipsis'
{{ col.value ? col.value : "-" }} : ''
"
>
{{
col.value == null ? "" : col.value == "" ? "-" : col.value
}}
</div> </div>
</q-td> </q-td>
</q-tr> </q-tr>

View file

@ -31,8 +31,8 @@ const {
hideLoader, hideLoader,
success, success,
dialogRemove, dialogRemove,
findOrgName, findOrgNameOld,
findPosMasterNo, findPosMasterNoOld,
} = mixin; } = mixin;
// //
@ -59,23 +59,23 @@ const columns = ref<QTableProps["columns"]>([
}, },
}, },
{ {
name: "posNo", name: "posMasterNoOld",
align: "left", align: "left",
label: "เลขที่ตำแหน่ง", label: "เลขที่ตำแหน่ง",
sortable: true, sortable: true,
field: "posNo", field: "posMasterNoOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
return findPosMasterNo(row); return findPosMasterNoOld(row);
}, },
}, },
{ {
name: "position", name: "positionOld",
align: "left", align: "left",
label: "ตำแหน่งในสายงาน", label: "ตำแหน่งในสายงาน",
sortable: true, sortable: true,
field: "position", field: "positionOld",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
}, },
@ -89,12 +89,12 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format(val, row) {
let name = ""; let name = "";
if (row.posTypeName && row.posLevelName) { if (row.posTypeNameOld && row.posLevelNameOld) {
name = `${row.posTypeName} (${row.posLevelName})`; name = `${row.posTypeNameOld} (${row.posLevelNameOld})`;
} else if (row.posTypeName) { } else if (row.posTypeNameOld) {
name = `${row.posTypeName}`; name = `${row.posTypeNameOld}`;
} else if (row.posLevelName) { } else if (row.posLevelNameOld) {
name = `(${row.posLevelName})`; name = `(${row.posLevelNameOld})`;
} else name = "-"; } else name = "-";
return name; return name;
}, },
@ -104,12 +104,10 @@ const columns = ref<QTableProps["columns"]>([
align: "left", align: "left",
label: "สังกัด", label: "สังกัด",
sortable: true, sortable: true,
field: "organizationPositionOld", field: "organization",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
format(val, row) { format: (val, row) => findOrgNameOld(row),
return findOrgName(row);
},
}, },
{ {
name: "organization", name: "organization",
@ -164,8 +162,8 @@ const columns = ref<QTableProps["columns"]>([
const visibleColumns = ref<string[]>([ const visibleColumns = ref<string[]>([
"no", "no",
"name", "name",
"posNo", "posMasterNoOld",
"position", "positionOld",
"positionLevel", "positionLevel",
"organizationPositionOld", "organizationPositionOld",
"organization", "organization",
@ -334,7 +332,9 @@ onMounted(async () => {
: '' : ''
" "
> >
{{ col.value ? col.value : "-" }} {{
col.value == null ? "" : col.value == "" ? "-" : col.value
}}
</div> </div>
</q-td> </q-td>
<q-td auto-width> <q-td auto-width>

View file

@ -221,6 +221,16 @@ interface DataProfile {
child3ShortName: string | null; child3ShortName: string | null;
child4: string | null; child4: string | null;
child4ShortName: string | null; child4ShortName: string | null;
child1Old?: string | null;
child1ShortNameOld?: string | null;
child2Old?: string | null;
child2ShortNameOld?: string | null;
child3Old?: string | null;
child3ShortNameOld?: string | null;
child4Old?: string | null;
child4ShortNameOld?: string | null;
createdAt: string | Date; createdAt: string | Date;
dateEnd: string | Date; dateEnd: string | Date;
dateStart: string | Date; dateStart: string | Date;
@ -231,14 +241,19 @@ interface DataProfile {
organization: string; organization: string;
organizationPositionOld: string; organizationPositionOld: string;
posLevelName: string; posLevelName: string;
posLevelNameOld?: string;
posMasterNo: number | null; posMasterNo: number | null;
posTypeName: string; posTypeName: string;
posTypeNameOld?: string;
position: string; position: string;
positionOld?: string;
prefix: string; prefix: string;
profileId: string; profileId: string;
reason: string; reason: string;
root: string; root: string;
rootShortName: string | null; rootShortName: string | null;
rootOld?: string;
rootShortNameOld?: string | null;
status: string; status: string;
} }
export type { export type {

View file

@ -10,7 +10,7 @@ interface ResponseData {
organizationPositionOld: string; organizationPositionOld: string;
posNo: string; posNo: string;
position: string; position: string;
positionLevel: string; positionLevel?: string;
positionLevelOld: string; positionLevelOld: string;
positionNumberOld: string; positionNumberOld: string;
positionTypeOld: string; positionTypeOld: string;
@ -20,6 +20,9 @@ interface ResponseData {
status: string; status: string;
fullname: string; fullname: string;
statustext: string; statustext: string;
positionOld?: string;
posTypeNameOld?: string;
posLevelNameOld?: string;
} }
interface TypeFile { interface TypeFile {
@ -44,9 +47,8 @@ interface ResponseDataDetail {
fullname: string; fullname: string;
} }
interface rowFile { interface rowFile {
no: number no: number;
fileName: string fileName: string;
pathName: string pathName: string;
} }
export type { ResponseData, ResponseDataDetail, TypeFile ,rowFile}; export type { ResponseData, ResponseDataDetail, TypeFile, rowFile };

View file

@ -335,9 +335,9 @@ function updatemodalPersonal(modal: boolean) {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -250,9 +250,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -335,9 +335,9 @@ function updatemodalPersonal(modal: boolean) {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -1139,9 +1139,9 @@ function removeFile(fileName: string) {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="positionTypeOld" v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -89,7 +89,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",

View file

@ -92,7 +92,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -228,7 +228,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} เงินเดือน {เงินเดือน} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -489,7 +489,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -667,7 +667,7 @@ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -1180,7 +1180,7 @@ const templateDetail = async () => {
); );
if (positionTypeF.length > 0) { if (positionTypeF.length > 0) {
salaryClass.value = salaryClass.value =
salaryClass.value + `ตำแหน่งประเภท${positionTypeF[0].name} `; salaryClass.value + `ประเภทตำแหน่ง${positionTypeF[0].name} `;
} }
const positionLevelF = positionLevelOptions.value.filter( const positionLevelF = positionLevelOptions.value.filter(
@ -1792,9 +1792,9 @@ const resetFilter = () => {};
:borderless="!edit" :borderless="!edit"
v-model="positionTypeId" v-model="positionTypeId"
:rules="[ :rules="[
(val:string) => !!val || `${'กรุณาเลือกตำแหน่งประเภท'}`, (val:string) => !!val || `${'กรุณาเลือกประเภทตำแหน่ง'}`,
]" ]"
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
@update:modelValue="clickEditRow" @update:modelValue="clickEditRow"
emit-value emit-value
map-options map-options

View file

@ -100,7 +100,7 @@ const refOptions = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "21", id: "21",
@ -236,7 +236,7 @@ const refOptionsFilter = ref<DataOption[]>([
}, },
{ {
id: "20", id: "20",
name: "รับโอน {ตำแหน่งประเภท} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}", name: "รับโอน {ประเภทตำแหน่ง} จากตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} เป็นตำแหน่ง {ตำแหน่ง} ระดับ {ระดับ} สังกัด {สังกัด} ตำแหน่งเลขที่ {ตำแหน่งเลขที่} ค่าจ้าง {ค่าจ้าง} คำสั่ง กทม.ที่ {ที่}/{พ.ศ} ลงวันที่ {วัน} {เดือน} {พ.ศ.}",
}, },
{ {
id: "0", id: "0",
@ -1111,7 +1111,7 @@ const templateDetail = async () => {
// ); // );
// if (positionTypeF.length > 0) { // if (positionTypeF.length > 0) {
// salaryClass.value = // salaryClass.value =
// salaryClass.value + `${positionTypeF[0].name} `; // salaryClass.value + `${positionTypeF[0].name} `;
// } // }
// const positionLevelF = positionLevelOptions.value.filter( // const positionLevelF = positionLevelOptions.value.filter(
// (r: DataOption) => r.id == positionLevelId.value // (r: DataOption) => r.id == positionLevelId.value

View file

@ -349,9 +349,9 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="data.position" v-model="data.position"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" :rules="[(val) => !!val || `${'กรุณากรอกประเภทตำแหน่ง'}`]"
hide-bottom-space hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`" :label="`${'ประเภทตำแหน่ง'}`"
/> />
</div> </div>
</div> </div>

View file

@ -82,7 +82,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "positionLevel", name: "positionLevel",
align: "left", align: "left",
label: "ระดับ", label: "ระดับตำแหน่ง",
sortable: true, sortable: true,
field: "positionLevel", field: "positionLevel",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",

View file

@ -218,10 +218,10 @@ export const useDisciplineMainStore = defineStore("disciplineMainStore", () => {
]); ]);
/** /**
* option * option
* @param val API * @param val API
* @returns name id * @returns name id
*/ */
function convertComplaintType(val: string) { function convertComplaintType(val: string) {
const result = complainantoptionsMain.value.find( const result = complainantoptionsMain.value.find(
(x: any) => x.id == val (x: any) => x.id == val
@ -248,10 +248,10 @@ export const useDisciplineMainStore = defineStore("disciplineMainStore", () => {
} }
/** /**
* status text * status text
* @param val status * @param val status
* @returns text * @returns text
*/ */
function convertStatus(val: string) { function convertStatus(val: string) {
switch (val) { switch (val) {
case "NEW": case "NEW":
@ -266,10 +266,10 @@ export const useDisciplineMainStore = defineStore("disciplineMainStore", () => {
} }
/** /**
* option * option
* @param val API * @param val API
* @returns name id * @returns name id
*/ */
function convertOffenseDetailst(val: string) { function convertOffenseDetailst(val: string) {
return ( return (
offenseDetailstOptions.value.find((x: any) => x.id == val)?.name ?? "-" offenseDetailstOptions.value.find((x: any) => x.id == val)?.name ?? "-"
@ -277,10 +277,10 @@ export const useDisciplineMainStore = defineStore("disciplineMainStore", () => {
} }
/** /**
* option * option
* @param val API * @param val API
* @returns name id * @returns name id
*/ */
function convertStatusResult(val: string) { function convertStatusResult(val: string) {
const result = statusResultOptions.value.find( const result = statusResultOptions.value.find(
(x: any) => x.id == val (x: any) => x.id == val
@ -293,26 +293,23 @@ export const useDisciplineMainStore = defineStore("disciplineMainStore", () => {
* @param data * @param data
*/ */
function fetchData(data: ArrayPersonAdd[]) { function fetchData(data: ArrayPersonAdd[]) {
const dataList:any = data.map((item: any) => ( const dataList: any = data.map((item: any) => ({
{ id: item.id,
id: item.id, idcard: item.idcard,
idcard: item.idcard, name: item.name,
name: item.name, prefix: item.prefix,
prefix: item.prefix, firstName: item.firstName,
firstName: item.firstName, lastName: item.lastName,
lastName: item.lastName, position: item.position,
position: item.position, positionLevel: item.positionLevel,
positionLevel: item.positionLevel, salary: item.salary === null ? "-" : item.salary,
salary: item.salary === null ? '-':item.salary, personId: item.personId,
personId: item.personId, posNo: item.posNo === null ? "-" : item.posNo,
posNo: item.posNo === null ? '-':item.posNo, organization: item.organization,
organization: item.organization, }));
}
))
rowsAdd.value = dataList; rowsAdd.value = dataList;
} }
return { return {
complainantoptionsMain, complainantoptionsMain,
convertFault, convertFault,
@ -330,6 +327,6 @@ export const useDisciplineMainStore = defineStore("disciplineMainStore", () => {
statusResultOptions, statusResultOptions,
convertStatusResult, convertStatusResult,
rowsCheck, rowsCheck,
causeTextOptions causeTextOptions,
}; };
}); });

View file

@ -101,8 +101,8 @@ async function onClickDowloadFile(
tp === "EV1_005" || tp === "EV1_007" tp === "EV1_005" || tp === "EV1_007"
? { organizationName: "หน่วยงาน" } ? { organizationName: "หน่วยงาน" }
: null, : null,
tp === "EV1_007" ? { positionName: "ตำแหน่ง" } : null, tp === "EV1_007" ? { positionName: "ประเภทตำแหน่ง" } : null,
tp === "EV1_007" ? { positionLeaveName: "ระดับ" } : null tp === "EV1_007" ? { positionLeaveName: "ระดับตำแหน่ง" } : null
); );
const body = { const body = {
template: tp, template: tp,
@ -401,7 +401,9 @@ onMounted(async () => {
bordered bordered
> >
<q-item clickable v-ripple> <q-item clickable v-ripple>
<q-item-section class="text-grey-9">{{ file.fileName }}</q-item-section> <q-item-section class="text-grey-9">{{
file.fileName
}}</q-item-section>
<q-item-section avatar> <q-item-section avatar>
<div class="row"> <div class="row">
<div> <div>
@ -427,10 +429,12 @@ onMounted(async () => {
<!-- ประกาศผลการคดเลอกบคคล (เอกสารหมายเลข 10) --> <!-- ประกาศผลการคดเลอกบคคล (เอกสารหมายเลข 10) -->
<div class="col-12"> <div class="col-12">
<q-card bordered style="border: 1px solid #d6dee1"> <q-card bordered style="border: 1px solid #d6dee1">
<div class="text-weight-medium row col-12 bg-grey-1 q-py-sm q-px-md items-center"> <div
class="text-weight-medium row col-12 bg-grey-1 q-py-sm q-px-md items-center"
>
<div>ประกาศผลการคดเลอกบคคล (เอกสารหมายเลข 10)</div> <div>ประกาศผลการคดเลอกบคคล (เอกสารหมายเลข 10)</div>
<q-space/> <q-space />
<div v-if="store.currentStep == 4" > <div v-if="store.currentStep == 4">
<q-btn <q-btn
icon="download" icon="download"
color="indigo" color="indigo"
@ -448,7 +452,7 @@ onMounted(async () => {
<q-tooltip> ดาวนโหลดตนแบบ </q-tooltip></q-btn <q-tooltip> ดาวนโหลดตนแบบ </q-tooltip></q-btn
> >
</div> </div>
<div > <div>
<q-btn <q-btn
v-if="download10Url != ''" v-if="download10Url != ''"
:href="download10Url" :href="download10Url"
@ -464,39 +468,37 @@ onMounted(async () => {
> >
</div> </div>
</div> </div>
<div class="col-12" v-if="store.currentStep == 4"><q-separator /></div> <div class="col-12" v-if="store.currentStep == 4"><q-separator /></div>
<div class="row"> <div class="row">
<div class="col-12 q-pa-sm" v-if="store.currentStep == 4"> <div class="col-12 q-pa-sm" v-if="store.currentStep == 4">
<q-file <q-file
ref="fileEvaluationUploadRef" ref="fileEvaluationUploadRef"
v-model="fileEvaluationUpload" v-model="fileEvaluationUpload"
class="col-12" class="col-12"
outlined outlined
dense dense
hide-bottom-space hide-bottom-space
lazy-rules lazy-rules
accept=".pdf" accept=".pdf"
:rules=" :rules="
download10Url === '' download10Url === '' ? [(val) => !!val || 'กรุณาเลือกไฟล์'] : []
? [(val) => !!val || 'กรุณาเลือกไฟล์'] "
: [] >
" <template v-slot:prepend>
> <q-icon name="attach_file" />
<template v-slot:prepend> </template>
<q-icon name="attach_file" /> <template v-slot:after>
</template> <q-btn
<template v-slot:after> flat
<q-btn round
flat dense
round color="primary"
dense icon="mdi-upload "
color="primary" @click="upLoadFile(fileEvaluationUpload)"
icon="mdi-upload " ><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
@click="upLoadFile(fileEvaluationUpload)" >
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn </template>
> </q-file>
</template>
</q-file>
</div> </div>
</div> </div>
</q-card> </q-card>

View file

@ -134,7 +134,7 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => {
{ {
name: "positionType", name: "positionType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "positionType", field: "positionType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -143,7 +143,7 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => {
{ {
name: "level", name: "level",
align: "left", align: "left",
label: "ระดับ", label: "ระดับตำแหน่ง",
sortable: true, sortable: true,
field: "level", field: "level",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",

View file

@ -79,7 +79,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "posType", name: "posType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: false, sortable: false,
field: "posType", field: "posType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",

View file

@ -65,7 +65,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "posType", name: "posType",
align: "left", align: "left",
label: "ตำแหน่งประเภท", label: "ประเภทตำแหน่ง",
sortable: true, sortable: true,
field: "posType", field: "posType",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",

View file

@ -920,7 +920,7 @@ onMounted(() => {
emit-value emit-value
map-options map-options
input-class="text-red" input-class="text-red"
label="ระดับ" label="ระดับตำแหน่ง"
:rules="[ :rules="[
(val:string) => (val:string) =>
!!val || `${'กรุณาเลือกระดับ'}`, !!val || `${'กรุณาเลือกระดับ'}`,
@ -1153,7 +1153,7 @@ onMounted(() => {
emit-value emit-value
map-options map-options
input-class="text-red" input-class="text-red"
label="ระดับ" label="ระดับตำแหน่ง"
:rules="[ :rules="[
(val:string) => (val:string) =>
!!val || `${'กรุณาเลือกระดับ'}`, !!val || `${'กรุณาเลือกระดับ'}`,

View file

@ -958,6 +958,42 @@ export const useCounterMixin = defineStore("mixin", () => {
} }
} }
function findOrgNameOld(obj: any) {
if (obj) {
let name =
obj.child4Old != null && obj.child3Old != null
? obj.child4Old + "/"
: obj.child4Old != null
? obj.child4Old
: "";
name +=
obj.child3Old != null && obj.child2Old != null
? obj.child3Old + "/"
: obj.child3Old !== null
? obj.child3Old
: "";
name +=
obj.child2Old != null && obj.child1Old != null
? obj.child2Old + "/"
: obj.child2Old != null
? obj.child2Old
: "";
name +=
obj.child1Old != null && obj.rootOld != null
? obj.child1Old + "/"
: obj.child1Old != null
? obj.child1Old
: "";
name += obj.rootOld != null ? obj.rootOld : "";
return name == "" ? "-" : name;
} else {
return "";
}
}
function findPosMasterNo(obj: any) { function findPosMasterNo(obj: any) {
if (obj) { if (obj) {
let shortName = let shortName =
@ -978,6 +1014,26 @@ export const useCounterMixin = defineStore("mixin", () => {
} }
} }
function findPosMasterNoOld(obj: any) {
if (obj) {
let shortName =
(obj.child4ShortNameOld != null
? obj.child4ShortNameOld
: obj.child3ShortNameOld != null
? obj.child3ShortNameOld
: obj.child2ShortNameOld != null
? obj.child2ShortNameOld
: obj.child1ShortNameOld != null
? obj.child1ShortNameOld
: obj.rootShortNameOld != null
? obj.rootShortNameOld
: "") + (obj.posMasterNoOld != null ? obj.posMasterNoOld : "");
return shortName == "" ? "-" : shortName;
} else {
return "";
}
}
return { return {
calAge, calAge,
date2Thai, date2Thai,
@ -1016,6 +1072,8 @@ export const useCounterMixin = defineStore("mixin", () => {
convertDateDisplay, convertDateDisplay,
diffDay, diffDay,
findOrgName, findOrgName,
findOrgNameOld,
findPosMasterNo, findPosMasterNo,
findPosMasterNoOld,
}; };
}); });