ออกคำสั่งเลื่อนเงินเดือน/ค่าจ้าง
This commit is contained in:
parent
5febe188a2
commit
23be6c5fb8
5 changed files with 699 additions and 557 deletions
|
|
@ -32,7 +32,7 @@ const $q = useQuasar(); //ใช้ noti quasar
|
|||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
const orderId = route.params.orderid;
|
||||
const orderId = route.params.id;
|
||||
const orderId_paramsName = route.name;
|
||||
|
||||
const props = defineProps({
|
||||
|
|
@ -50,8 +50,11 @@ const next = () => props.next();
|
|||
const myForm = ref<QForm>();
|
||||
//option
|
||||
const typeOrderOption = ref<DataOption1[]>([]);
|
||||
const byOrderOptionMain = ref<DataOption1[]>([]);
|
||||
const byOrderOption = ref<DataOption1[]>([]);
|
||||
const CommandOption = ref<DataOption1[]>([]);
|
||||
const salaryRoundOptionMain = ref<DataOption1[]>([]);
|
||||
const salaryRoundOption = ref<DataOption1[]>([]);
|
||||
|
||||
//Main
|
||||
const typeOrder = ref<any>([]);
|
||||
|
|
@ -62,6 +65,8 @@ const dateCommand = ref<Date>(new Date());
|
|||
const byOrder = ref<string>("");
|
||||
const nameCommand = ref<any>([]);
|
||||
const positionCommand = ref<string>("");
|
||||
const year = ref<number>(0);
|
||||
const SalaryRound = ref<string>("");
|
||||
|
||||
// 33-34-35
|
||||
const input33 = ref<string>("");
|
||||
|
|
@ -78,6 +83,9 @@ onMounted(async () => {
|
|||
} else {
|
||||
await fecthTypeOption("noData");
|
||||
}
|
||||
if (year.value !== 0) {
|
||||
fetchSalaryRound();
|
||||
}
|
||||
});
|
||||
// เลือกคำสั่งโดย
|
||||
watch(byOrder, async () => {
|
||||
|
|
@ -97,9 +105,17 @@ watch(nameCommand, async () => {
|
|||
}
|
||||
});
|
||||
|
||||
const commandCodes = ref<string[]>(["C-PM-33", "C-PM-34", "C-PM-35","C-PM-36","C-PM-37"]);
|
||||
const commandCodes = ref<string[]>([
|
||||
"C-PM-33",
|
||||
"C-PM-34",
|
||||
"C-PM-35",
|
||||
"C-PM-36",
|
||||
"C-PM-37",
|
||||
]);
|
||||
// เรียกคำสั่ง
|
||||
const fecthTypeOption = async (actions: string) => {
|
||||
console.log(actions);
|
||||
|
||||
showLoader();
|
||||
await http
|
||||
.get(config.API.typeOrder())
|
||||
|
|
@ -149,6 +165,8 @@ const fetchdetailOrder = async () => {
|
|||
.then(async (res: any) => {
|
||||
const data = res.data.result;
|
||||
|
||||
console.log(data);
|
||||
|
||||
const orderTypeCode = await data.orderTypeCode.toUpperCase();
|
||||
|
||||
typeOrder.value = typeOrderOption.value.find(
|
||||
|
|
@ -175,6 +193,7 @@ const fecthCommand = async () => {
|
|||
await http
|
||||
.get(config.API.organizationsOrder())
|
||||
.then((res) => {
|
||||
byOrderOptionMain.value = res.data.result;
|
||||
byOrderOption.value = res.data.result;
|
||||
})
|
||||
.catch((e) => {
|
||||
|
|
@ -182,30 +201,32 @@ const fecthCommand = async () => {
|
|||
});
|
||||
};
|
||||
|
||||
function casePm(val: string){
|
||||
switch (val) {
|
||||
case "C-PM-33":
|
||||
return "เลื่อนเงินเดือนและให้ข้าราชการกรุงเทพมหานครสามัญ ได้รับเงินเดือนสูงกว่าขั้นสูงของตำแหน่งที่ได้รับแต่งตั้ง";
|
||||
case "C-PM-34":
|
||||
return "ให้ข้าราชการกรุงเทพมหานครสามัญได้รับค่าตอบแทนพิเศษ";
|
||||
case "C-PM-35":
|
||||
return `เลื่อนเงินเดือนและให้ข้าราชการกรุงเทพมหานครสามัญที่เกษียณอายุราชการ ในสิ้นปีงบประมาณ พ.ศ. ${new Date().getFullYear()+543} ได้รับเงินเดือนสูงกว่าชั้นสูงของตำแหน่งที่ได้รับแต่งตั้ง`;
|
||||
case "C-PM-36":
|
||||
return "เลื่อนขั้นค่าจ้างและให้ลูกจ้างประจำกรุงเทพมหานครได้รับอัตราค่าจ้าง สูงกว่าอัตราค่าจ้างขั้นสูงของตำแหน่งที่ได้รับแต่งตั้งในแต่ละระดับ";
|
||||
case "C-PM-37":
|
||||
return "ให้ลูกจ้างประจำกรุงเทพมหานครได้รับค่าตอบแทนพิเศษ";
|
||||
default:
|
||||
return null;
|
||||
}}
|
||||
function casePm(val: string) {
|
||||
switch (val) {
|
||||
case "C-PM-33":
|
||||
return "เลื่อนเงินเดือนและให้ข้าราชการกรุงเทพมหานครสามัญ ได้รับเงินเดือนสูงกว่าขั้นสูงของตำแหน่งที่ได้รับแต่งตั้ง";
|
||||
case "C-PM-34":
|
||||
return "ให้ข้าราชการกรุงเทพมหานครสามัญได้รับค่าตอบแทนพิเศษ";
|
||||
case "C-PM-35":
|
||||
return `เลื่อนเงินเดือนและให้ข้าราชการกรุงเทพมหานครสามัญที่เกษียณอายุราชการ ในสิ้นปีงบประมาณ พ.ศ. ${
|
||||
new Date().getFullYear() + 543
|
||||
} ได้รับเงินเดือนสูงกว่าชั้นสูงของตำแหน่งที่ได้รับแต่งตั้ง`;
|
||||
case "C-PM-36":
|
||||
return "เลื่อนขั้นค่าจ้างและให้ลูกจ้างประจำกรุงเทพมหานครได้รับอัตราค่าจ้าง สูงกว่าอัตราค่าจ้างขั้นสูงของตำแหน่งที่ได้รับแต่งตั้งในแต่ละระดับ";
|
||||
case "C-PM-37":
|
||||
return "ให้ลูกจ้างประจำกรุงเทพมหานครได้รับค่าตอบแทนพิเศษ";
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async function selectCMP(selectOrder: OrederResult) {
|
||||
if (selectOrder != null) {
|
||||
const orderTypeCode = await selectOrder.commandCode.toUpperCase();
|
||||
nameOrder.value = casePm(orderTypeCode)
|
||||
nameOrder.value = casePm(orderTypeCode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// บันทึกข้อมูล
|
||||
const submit = async () => {
|
||||
let signBy = null;
|
||||
|
|
@ -237,6 +258,8 @@ const submit = async () => {
|
|||
registerPosition: "",
|
||||
signatoryBy: signBy === "" ? nameCommand.value : signBy,
|
||||
signatoryPosition: positionCommand.value,
|
||||
year: year.value,
|
||||
period: SalaryRound.value,
|
||||
};
|
||||
if (
|
||||
typeOrder.value.commandCode == "C-PM-33" ||
|
||||
|
|
@ -307,11 +330,33 @@ const updateOrder = async (formData: Object, orderId: string, type: string) => {
|
|||
};
|
||||
|
||||
function filterSelector(val: any, update: Function, fullname: any) {
|
||||
update(() => {
|
||||
typeOrderOption.value = typeOrderFilter.value.filter(
|
||||
(v: any) => v.fullname.toLowerCase().indexOf(val.toLowerCase()) > -1
|
||||
);
|
||||
});
|
||||
switch (fullname) {
|
||||
case "typeOrderOption":
|
||||
update(() => {
|
||||
typeOrderOption.value = typeOrderFilter.value.filter(
|
||||
(v: any) => v.fullname.toLowerCase().indexOf(val.toLowerCase()) > -1
|
||||
);
|
||||
});
|
||||
break;
|
||||
case "byOrderOption":
|
||||
update(() => {
|
||||
byOrderOption.value = byOrderOptionMain.value.filter(
|
||||
(v: any) => v.name.toLowerCase().indexOf(val.toLowerCase()) > -1
|
||||
);
|
||||
});
|
||||
break;
|
||||
|
||||
case "SalaryRound":
|
||||
update(() => {
|
||||
salaryRoundOption.value = salaryRoundOptionMain.value.filter(
|
||||
(v: any) => v.name.toLowerCase().indexOf(val.toLowerCase()) > -1
|
||||
);
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -324,6 +369,40 @@ function getClass(val: boolean) {
|
|||
"full-width cursor-pointer": !val,
|
||||
};
|
||||
}
|
||||
|
||||
function updateYear() {}
|
||||
|
||||
/** ดึงข้อมูลเริ่มต้น */
|
||||
function fetchSalaryRound() {
|
||||
showLoader();
|
||||
http
|
||||
.get(
|
||||
config.API.salaryPeriod() +
|
||||
`?page=${1}&pageSise=${10}&keyword=${""}&year=${year.value}`
|
||||
)
|
||||
.then((res) => {
|
||||
const data = res.data.result.data;
|
||||
const list = data.map((e: any) => ({
|
||||
id: e.id,
|
||||
name:
|
||||
e.period === "SPECIAL"
|
||||
? "รอบพิเศษ"
|
||||
: e.period === "APR"
|
||||
? "รอบเมษายน"
|
||||
: e.period === "OCT"
|
||||
? "รอบตุลาคม"
|
||||
: "-",
|
||||
}));
|
||||
salaryRoundOptionMain.value = list;
|
||||
// salaryRoundOption.value = list;
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
<div style="max-height: 68vh; overflow-y: scroll">
|
||||
|
|
@ -391,6 +470,7 @@ function getClass(val: boolean) {
|
|||
}}</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
class="inputgreen"
|
||||
:model-value="dateYear + 543"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก พ.ศ.'}`]"
|
||||
:label="`${'พ.ศ.'}`"
|
||||
|
|
@ -422,7 +502,7 @@ function getClass(val: boolean) {
|
|||
<q-input
|
||||
outlined
|
||||
dense
|
||||
class="full-width datepicker"
|
||||
class="inputgreen"
|
||||
:model-value="
|
||||
dateCommand != null ? date2Thai(dateCommand) : null
|
||||
"
|
||||
|
|
@ -458,6 +538,9 @@ function getClass(val: boolean) {
|
|||
use-input
|
||||
input-debounce="0"
|
||||
@update:model-value="(nameCommand = ''), (positionCommand = '')"
|
||||
@filter="(inputValue:any,
|
||||
doneFn:Function) => filterSelector(inputValue, doneFn,'byOrderOption'
|
||||
) "
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
|
|
@ -531,6 +614,63 @@ function getClass(val: boolean) {
|
|||
hide-bottom-space
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-2">
|
||||
<datepicker
|
||||
menu-class-name="modalfix"
|
||||
v-model="year"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
year-picker
|
||||
:enableTimePicker="false"
|
||||
@update:model-value="fetchSalaryRound(), (SalaryRound = '')"
|
||||
>
|
||||
<template #year="{ year }">{{ year + 543 }}</template>
|
||||
<template #year-overlay-value="{ value }">{{
|
||||
parseInt(value + 543)
|
||||
}}</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
dense
|
||||
lazy-rules
|
||||
outlined
|
||||
:model-value="year === 0 ? null : Number(year) + 543"
|
||||
:label="`${'ปีงบประมาณ'}`"
|
||||
class="inputgreen"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
style="color: var(--q-primary)"
|
||||
>
|
||||
</q-icon>
|
||||
</template>
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<q-select
|
||||
class="inputgreen"
|
||||
outlined
|
||||
dense
|
||||
v-model="SalaryRound"
|
||||
:rules="[(val: string) => !!val || `${'กรุณาเลือกรอบการขึ้นเงินเดือน'}`]"
|
||||
hide-bottom-space
|
||||
:label="`${'รอบการขึ้นเงินเดือน'}`"
|
||||
map-options
|
||||
option-label="name"
|
||||
:options="salaryRoundOption"
|
||||
option-value="id"
|
||||
use-input
|
||||
input-debounce="0"
|
||||
map-value
|
||||
@filter="(inputValue:any,
|
||||
doneFn:Function) => filterSelector(inputValue, doneFn,'SalaryRound'
|
||||
) "
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</q-form>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -103,8 +103,8 @@ onMounted(async () => {
|
|||
});
|
||||
|
||||
const conditionData = async () => {
|
||||
const id = route.params.orderid
|
||||
? route.params.orderid.toString()
|
||||
const id = route.params.id
|
||||
? route.params.id.toString()
|
||||
: localStorage.getItem("orderId")
|
||||
? localStorage.getItem("orderId")
|
||||
: null;
|
||||
|
|
@ -336,8 +336,8 @@ const putSalary = async (salary: any) => {
|
|||
const modalAddChange = async () => {
|
||||
modalAdd.value = !modalAdd.value;
|
||||
if (modalAdd.value == true) {
|
||||
const id = route.params.orderid
|
||||
? route.params.orderid.toString()
|
||||
const id = route.params.id
|
||||
? route.params.id.toString()
|
||||
: localStorage.getItem("orderId")
|
||||
? localStorage.getItem("orderId")
|
||||
: null;
|
||||
|
|
@ -394,8 +394,8 @@ const saveModalAdd = () => {
|
|||
};
|
||||
// เพิ่มรายชื่อ API
|
||||
const addlist = async (data: Object) => {
|
||||
const id = route.params.orderid
|
||||
? route.params.orderid.toString()
|
||||
const id = route.params.id
|
||||
? route.params.id.toString()
|
||||
: localStorage.getItem("orderId")
|
||||
? localStorage.getItem("orderId")
|
||||
: null;
|
||||
|
|
|
|||
|
|
@ -190,8 +190,8 @@ const listModal = async (id: string) => {
|
|||
};
|
||||
// เช็คค่า orderid
|
||||
const conditionId = async () => {
|
||||
const id = route.params.orderid
|
||||
? route.params.orderid.toString()
|
||||
const id = route.params.id
|
||||
? route.params.id.toString()
|
||||
: localStorage.getItem("orderId")
|
||||
? localStorage.getItem("orderId")
|
||||
: null;
|
||||
|
|
@ -245,8 +245,8 @@ const getData = async (id: string) => {
|
|||
};
|
||||
// เลือกรายชื่อจากหน่วยงาน
|
||||
const saveData = async () => {
|
||||
const id = route.params.orderid
|
||||
? route.params.orderid.toString()
|
||||
const id = route.params.id
|
||||
? route.params.id.toString()
|
||||
: localStorage.getItem("orderId")
|
||||
? localStorage.getItem("orderId")
|
||||
: null;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -18,7 +18,7 @@ import { useOrderStore } from "@/modules/11_discipline/store/OrderStore";
|
|||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import { useOrderPlacementDataStore } from "@/modules/10_order/store";
|
||||
|
||||
const rows = ref<any>([])
|
||||
const rows = ref<any>([]);
|
||||
const $q = useQuasar(); //ใช้ noti quasar
|
||||
const mixin = useCounterMixin();
|
||||
const DataStore = useOrderPlacementDataStore();
|
||||
|
|
@ -31,7 +31,13 @@ const pagination = ref({
|
|||
rowsPerPage: 10,
|
||||
});
|
||||
|
||||
const commandCodes = ref<string[]>(["C-PM-33", "C-PM-34", "C-PM-35", "C-PM-36", "C-PM-37"]);
|
||||
const commandCodes = ref<string[]>([
|
||||
"C-PM-33",
|
||||
"C-PM-34",
|
||||
"C-PM-35",
|
||||
"C-PM-36",
|
||||
"C-PM-37",
|
||||
]);
|
||||
|
||||
/** ข้อมูลที่เเสดงใน คอลัม */
|
||||
const columns = ref<QTableProps["columns"]>([
|
||||
|
|
@ -153,6 +159,8 @@ async function fetchOrderlist() {
|
|||
);
|
||||
|
||||
stroe.fetchOrder(filterListOrder);
|
||||
|
||||
rows.value = stroe.mainData;
|
||||
})
|
||||
.catch((e: any) => {
|
||||
messageError($q, e);
|
||||
|
|
@ -217,7 +225,7 @@ async function OrderTypeFilter() {
|
|||
await http
|
||||
.get(config.API.typeOrder())
|
||||
.then((res) => {
|
||||
console.log(res)
|
||||
console.log(res);
|
||||
const response = res.data.result;
|
||||
const filterRes = response.filter((e: any) =>
|
||||
commandCodes.value.includes(e.commandCode)
|
||||
|
|
@ -294,7 +302,7 @@ function filterSelector(val: any, update: Function, refData: string) {
|
|||
}
|
||||
}
|
||||
|
||||
function redirectToPage(id:string,status:string){
|
||||
function redirectToPage(id: string, status: string) {
|
||||
let step = 1;
|
||||
switch (status) {
|
||||
case "จัดทำร่างคำสั่ง":
|
||||
|
|
@ -500,9 +508,7 @@ function redirectToPage(id:string,status:string){
|
|||
v-for="col in props.cols"
|
||||
:key="col.name"
|
||||
:props="props"
|
||||
@click="
|
||||
redirectToPage(props.row.id, props.row.status)
|
||||
"
|
||||
@click="redirectToPage(props.row.orderId, props.row.status)"
|
||||
>
|
||||
<div v-if="col.name === 'no'">
|
||||
{{ props.rowIndex + 1 }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue