Merge branch 'develop' into devTee

This commit is contained in:
setthawutttty 2024-11-05 09:22:12 +07:00
commit c29eede844
24 changed files with 171 additions and 129 deletions

View file

@ -584,17 +584,19 @@ onMounted(async () => {
<q-card-section>
<!-- Components รายการขอมลทะเบยนประว -->
<TableView
v-model:mode="mode"
v-model:form-filter="store.formFilter"
v-model:max-page="maxPage"
:rows="dataPersonMain"
:fetch-data="fetchDataPerson"
:fetch-type="fetchType"
:total="total"
:is-filter="isShowBtnFilter"
:emp-type="empType"
/>
<!-- v-model:mode="mode" -->
<div>
<TableView
v-model:form-filter="store.formFilter"
v-model:max-page="maxPage"
:rows="dataPersonMain"
:fetch-data="fetchDataPerson"
:fetch-type="fetchType"
:total="total"
:is-filter="isShowBtnFilter"
:emp-type="empType"
/>
</div>
</q-card-section>
</q-card>

View file

@ -274,7 +274,7 @@ onMounted(() => {
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -290,7 +290,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -306,7 +306,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -322,7 +322,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<!-- <div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<q-input
v-model="salary"
@ -339,7 +339,7 @@ onMounted(() => {
:class="getClass(edit)"
/>
</div>
</div>
</div> -->
<div class="col-12"><q-separator /></div>
<div class="col-xs-6 col-sm-6 row items-center">
<div class="col-12">

View file

@ -258,7 +258,7 @@ onMounted(() => {
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -274,7 +274,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -290,7 +290,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -306,7 +306,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<!-- <div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<q-input
v-model="salary"
@ -323,7 +323,7 @@ onMounted(() => {
:class="getClass(edit)"
/>
</div>
</div>
</div> -->
<div class="col-12"><q-separator /></div>
<div class="col-xs-6 col-sm-6 row items-center">
<div class="col-12">

View file

@ -261,7 +261,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -277,7 +277,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -293,7 +293,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -309,7 +309,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<!-- <div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<q-input
v-model="salary"
@ -326,7 +326,7 @@ onMounted(async () => {
reverse-fill-mask
/>
</div>
</div>
</div> -->
<div class="col-12"><q-separator /></div>
<div class="col-xs-6 col-sm-4 row items-center">
<div class="col-12">

View file

@ -930,7 +930,7 @@ onMounted(async () => {
type="textarea"
/>
</div>
<div class="col-xs-6 col-sm-3">
<div class="col-xs-6 col-sm-4">
<q-input
:class="getClass(edit)"
:outlined="edit"
@ -944,7 +944,7 @@ onMounted(async () => {
:label="`${'ประเภทตำแหน่ง'}`"
/>
</div>
<div class="col-xs-6 col-sm-3">
<div class="col-xs-6 col-sm-4">
<q-input
:class="getClass(edit)"
:outlined="edit"
@ -958,7 +958,7 @@ onMounted(async () => {
:label="`${'ระดับตำแหน่ง'}`"
/>
</div>
<div class="col-xs-6 col-sm-3">
<div class="col-xs-6 col-sm-4">
<q-input
:class="getClass(edit)"
:outlined="edit"
@ -972,7 +972,7 @@ onMounted(async () => {
:label="`${'เลขที่'}`"
/>
</div>
<div class="col-xs-6 col-sm-3">
<!-- <div class="col-xs-6 col-sm-3">
<q-input
:class="getClass(edit)"
v-model="salary"
@ -987,7 +987,7 @@ onMounted(async () => {
mask="###,###,###,###"
reverse-fill-mask
/>
</div>
</div> -->
<div class="col-xs-12">
<q-input
:class="getClass(edit)"

View file

@ -234,7 +234,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -250,7 +250,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -266,7 +266,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -282,7 +282,7 @@ onMounted(() => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<!-- <div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<q-input
v-model="salary"
@ -299,7 +299,7 @@ onMounted(() => {
reverse-fill-mask
/>
</div>
</div>
</div> -->
<div class="col-12"><q-separator /></div>
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">

View file

@ -547,7 +547,7 @@ onMounted(async () => {
</div>
<div class="col-12">
<div class="row q-col-gutter-x-xs">
<div class="col-xs-6 col-sm-3">
<div class="col-xs-6 col-sm-4">
<q-input
:class="getClass(edit)"
:outlined="edit"
@ -561,7 +561,7 @@ onMounted(async () => {
:label="`${'ประเภทตำแหน่ง'}`"
/>
</div>
<div class="col-xs-6 col-sm-3">
<div class="col-xs-6 col-sm-4">
<q-input
:class="getClass(edit)"
:outlined="edit"
@ -575,7 +575,7 @@ onMounted(async () => {
:label="`${'ระดับตำแหน่ง'}`"
/>
</div>
<div class="col-xs-6 col-sm-3">
<div class="col-xs-6 col-sm-4">
<q-input
:class="getClass(edit)"
:outlined="edit"
@ -589,7 +589,7 @@ onMounted(async () => {
:label="`${'เลขที่'}`"
/>
</div>
<div class="col-xs-6 col-sm-3">
<!-- <div class="col-xs-6 col-sm-3">
<q-input
:class="getClass(edit)"
:outlined="edit"
@ -604,7 +604,7 @@ onMounted(async () => {
mask="###,###,###,###"
reverse-fill-mask
/>
</div>
</div> -->
</div>
</div>

View file

@ -150,7 +150,6 @@ function openModalOrder() {
r.positionTypeOld &&
r.positionLevelOld &&
r.positionNumberOld &&
r.salary !== null &&
r.organization &&
r.date
);

View file

@ -288,8 +288,7 @@ function openModalOrder() {
r.organizationPositionOld &&
r.positionTypeOld &&
r.positionLevelOld &&
r.positionNumberOld &&
r.amountOld !== null
r.positionNumberOld
);
rows2.value = row;

View file

@ -204,7 +204,6 @@ function openModalOrder() {
item.positionTypeOld &&
item.positionLevelOld &&
item.positionNumberOld &&
item.salary !== null &&
item.organization &&
item.date &&
item.dateRepatriation

View file

@ -178,7 +178,6 @@ async function fecthlistappointment() {
e.positionTypeOld &&
e.positionLevelOld &&
e.positionNumberOld &&
e.salary !== null &&
e.positionDate
);
})

View file

@ -176,7 +176,6 @@ async function fecthlistappointment() {
e.positionTypeOld &&
e.positionLevelOld &&
e.positionNumberOld &&
e.salary !== null &&
e.positionDate
);
})

View file

@ -148,7 +148,6 @@ async function fecthlistOthet() {
e.positionTypeOld &&
e.positionLevelOld &&
e.positionNumberOld &&
e.amountOld !== null &&
e.positionDate &&
e.leaveDate !== null
);

View file

@ -379,14 +379,14 @@ onMounted(async () => {
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<CurrencyInput
<!-- <CurrencyInput
v-model="salary"
:edit="edit"
:options="{
currency: 'THB',
}"
:label="`${'เงินเดือน'}`"
/>
/> -->
</div>
</div>
<div class="col-12"><q-separator /></div>

View file

@ -140,7 +140,6 @@ function openModalOrder() {
r.positionTypeOld &&
r.positionLevelOld &&
r.positionNumberOld &&
r.salary &&
r.organization &&
r.date
);

View file

@ -118,15 +118,15 @@ async function onSubmit() {
showLoader();
await http
.put(config.API.outByid(dataId), body)
.then(() => {
.then(async () => {
await getData();
success($q, "แก้ไขข้อมูลเพื่อลงบัญชีแนบท้ายสำเร็จ");
edit.value = false;
})
.catch((e) => {
messageError($q, e);
})
.finally(async () => {
await getData();
.finally(() => {
hideLoader();
});
},
@ -247,7 +247,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -263,7 +263,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -279,7 +279,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -295,7 +295,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<!-- <div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<q-input
v-model="salary"
@ -312,7 +312,7 @@ onMounted(async () => {
:class="getClass(edit)"
/>
</div>
</div>
</div> -->
<div class="col-12"><q-separator /></div>
<div class="col-xs-6 col-sm-6 row">
<div class="col-12">

View file

@ -381,14 +381,14 @@ onMounted(async () => {
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<CurrencyInput
<!-- <CurrencyInput
v-model="salary"
:edit="edit"
:options="{
currency: 'THB',
}"
:label="`${'เงินเดือน'}`"
/>
/> -->
</div>
</div>
<div class="col-12"><q-separator /></div>

View file

@ -1162,7 +1162,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -1178,7 +1178,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -1194,7 +1194,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -1210,7 +1210,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<!-- <div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<q-input
v-model="salary"
@ -1227,7 +1227,7 @@ onMounted(async () => {
reverse-fill-mask
/>
</div>
</div>
</div> -->
<div class="col-12"><q-separator /></div>
<div class="col-xs-4 row">
<div class="col-12">

View file

@ -583,7 +583,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -599,7 +599,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -615,7 +615,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -631,7 +631,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<!-- <div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<q-input
v-model="salary"
@ -648,7 +648,7 @@ onMounted(async () => {
reverse-fill-mask
/>
</div>
</div>
</div> -->
<div class="col-12"><q-separator /></div>
<div class="col-xs-4 row">
<div class="col-12">

View file

@ -165,7 +165,6 @@ async function openModalOrder() {
r.positionTypeOld &&
r.positionLevelOld &&
r.positionNumberOld &&
r.salary &&
r.location &&
r.sendDate
);

View file

@ -11,7 +11,7 @@ import { useDisciplineSuspendStore } from "@/modules/11_discipline/store/Suspend
/**Import type */
import type { QForm } from "quasar";
import type { dataDetail } from "@/modules/11_discipline/interface/response/suspend";
import type { DataDetail } from "@/modules/11_discipline/interface/response/suspend";
import type { DataProfile } from "@/modules/05_placement/interface/index/Main";
import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
@ -46,7 +46,7 @@ const roleAdmin = ref<boolean>(false);
const edit = ref<boolean>(false);
const dataProfile = ref<DataProfile>();
const data = reactive<dataDetail>({
const data = reactive<DataDetail>({
id: "",
personId: "",
citizenId: "",
@ -311,7 +311,7 @@ onMounted(async () => {
<div class="row col-12 q-pa-md">
<div class="col-12 row bg-white q-col-gutter-md">
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -327,7 +327,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -343,7 +343,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<div class="col-xs-6 col-sm-4 row">
<div class="col-12">
<q-input
:class="getClass(edit)"
@ -359,7 +359,7 @@ onMounted(async () => {
/>
</div>
</div>
<div class="col-xs-6 col-sm-3 row">
<!-- <div class="col-xs-6 col-sm-3 row">
<div class="col-12">
<q-input
v-model="data.salary"
@ -376,7 +376,7 @@ onMounted(async () => {
class="inputgreen"
/>
</div>
</div>
</div> -->
<div class="col-12"><q-separator /></div>
<div class="col-xs-6 col-sm-6 row">
<div class="col-12">

View file

@ -46,7 +46,7 @@ interface dataType {
disciplinaryCaseFault: string;
}
interface dataDetail {
interface DataDetail {
id: string;
personId: string;
citizenId: string;
@ -91,4 +91,4 @@ interface DataOption {
id: string;
name: string;
}
export type { listData, dataType, dataDetail, DataOption };
export type { listData, dataType, DataDetail, DataOption };

View file

@ -464,5 +464,7 @@ onMounted(async () => {
:get-data="getPersonList"
:select-person-data="selectPersonData"
:type="formCommandList.commandTypeName"
:command-code="formCommandList.commandCode"
:command-sys-id="formCommandList.commandSysId"
/>
</template>

View file

@ -1,5 +1,5 @@
<script setup lang="ts">
import { reactive, watch } from "vue";
import { ref, reactive, watch, computed } from "vue";
import { useQuasar } from "quasar";
import http from "@/plugins/http";
@ -21,6 +21,8 @@ const props = defineProps({
type: String,
required: true,
},
commandCode: { type: String, required: true },
commandSysId: { type: String, required: true },
});
const modal = defineModel<boolean>("modal", { required: true });
const titleName = defineModel<string>("titleName", { required: true });
@ -36,6 +38,29 @@ const formData = reactive<any>({
remarkHorizontal: null,
});
const readonly = ref<boolean>(false);
function checkCommandSysId() {
if (props.commandSysId === "SALARY") {
readonly.value = true;
}
}
const chechCommandCode = computed(() => {
const listCommandCode = [
"C-PM-01",
"C-PM-02",
"C-PM-03",
"C-PM-04",
"C-PM-29",
];
if (listCommandCode.includes(props.commandCode)) {
return true;
} else {
return false;
}
});
function onSubmit() {
dialogConfirm($q, () => {
showLoader();
@ -79,11 +104,23 @@ function onClose() {
formData.remarkHorizontal = null;
}
/**
* class ดรปแบบแสดงระหวางขอมลทแกไขหรอแสดงเฉยๆ
* @param val อม input สำหรบแกไขหรอไม
*/
const getClass = (val: boolean) => {
return {
"full-width inputgreen cursor-pointer": val,
"full-width cursor-pointer": !val,
};
};
watch(
() => modal.value,
() => {
if (modal.value) {
if (props.selectPersonData) {
checkCommandSysId();
const list = props.selectPersonData;
formData.amount = list.amount;
formData.positionSalaryAmount = list.positionSalaryAmount;
@ -105,56 +142,65 @@ watch(
<q-card-section>
<div class="row col-12 q-col-gutter-sm">
<div
v-if="store.isShowSalary(type)"
class="col-xs-6 col-sm-6 col-md-6"
class="row col-12 q-col-gutter-sm"
v-if="chechCommandCode || readonly"
>
<q-input
dense
outlined
lazy-rules
hide-bottom-space
v-model="formData.amount"
class="inputgreen"
mask="###,###,###,###,###,###"
reverse-fill-mask
:label="`${'เงินเดือน'}`"
:rules="[(val: any) => !!val || `${'กรุณากรอกเงินเดือน'}`]"
/>
<div
v-if="store.isShowSalary(type)"
class="col-xs-6 col-sm-6 col-md-6"
>
<q-input
dense
outlined
lazy-rules
hide-bottom-space
v-model="formData.amount"
:class="getClass(!readonly)"
mask="###,###,###,###,###,###"
reverse-fill-mask
:readonly="readonly"
:label="`${'เงินเดือน'}`"
:rules="[(val: any) => !!val || `${'กรุณากรอกเงินเดือน'}`]"
/>
</div>
<div
v-if="store.isShowSalary(type)"
class="col-xs-6 col-sm-6 col-md-6"
>
<q-input
dense
outlined
lazy-rules
hide-bottom-space
v-model="formData.positionSalaryAmount"
:class="getClass(!readonly)"
:readonly="readonly"
mask="###,###,###,###,###,###"
reverse-fill-mask
:label="`${'เงินประจำตำแหน่ง'}`"
/>
</div>
<div
v-if="store.isShowSalary(type)"
class="col-xs-6 col-sm-6 col-md-6"
>
<q-input
dense
outlined
lazy-rules
hide-bottom-space
v-model="formData.monthSalaryAmount"
:class="getClass(!readonly)"
:readonly="readonly"
mask="###,###,###,###,###,###"
reverse-fill-mask
:label="`${'เงินค่าตอบแทนรายเดือน'}`"
/>
</div>
</div>
<div
v-if="store.isShowSalary(type)"
class="col-xs-6 col-sm-6 col-md-6"
>
<q-input
dense
outlined
lazy-rules
hide-bottom-space
v-model="formData.positionSalaryAmount"
class="inputgreen"
mask="###,###,###,###,###,###"
reverse-fill-mask
:label="`${'เงินประจำตำแหน่ง'}`"
/>
</div>
<div
v-if="store.isShowSalary(type)"
class="col-xs-6 col-sm-6 col-md-6"
>
<q-input
dense
outlined
lazy-rules
hide-bottom-space
v-model="formData.monthSalaryAmount"
class="inputgreen"
mask="###,###,###,###,###,###"
reverse-fill-mask
:label="`${'เงินค่าตอบแทนรายเดือน'}`"
/>
</div>
<div class="col-xs-6 col-sm-6 col-md-12">
<q-input
dense