no message

This commit is contained in:
setthawutttty 2024-02-21 11:28:54 +07:00
parent c23af7ec9b
commit 3375421ef5
4 changed files with 171 additions and 15 deletions

View file

@ -13,6 +13,7 @@ import type {
import type { QTableProps } from "quasar";
import DialogAddPosition from "@/modules/01_metadataNew/components/position/DialogAddPosition.vue";
const editPosition = ref<boolean>(false)
const modalAddPosition = ref<boolean>(false);
const levelOpsMain = ref<DataOption[]>([]);
const dataLevel = ref<any>();
@ -173,6 +174,23 @@ function copyDetiail(data: RowDetailPositions) {
formPositionSelect.positionArea = data.positionArea;
modalAddPosition.value = true;
}
/**
* แกไขขอม
* @param data อมลตำแหน
*/
function editDetiail(data: RowDetailPositions) {
formPositionSelect.positionId = data.id;
formPositionSelect.posTypeId = data.posTypeId;
formPositionSelect.positionName = data.positionName;
formPositionSelect.positionField = data.positionField;
formPositionSelect.positionType = data.posTypeId;
formPositionSelect.positionLevel = data.posLevelId;
formPositionSelect.positionExecutive = data.posExecutiveId;
formPositionSelect.positionExecutiveField = data.positionExecutiveField;
formPositionSelect.positionArea = data.positionArea;
modalAddPosition.value = true;
editPosition.value = true
}
/**
* งค css ออกไปตามเงอนไข
@ -376,6 +394,19 @@ onMounted(() => {
>
<q-tooltip>ดลอกขอม</q-tooltip>
</q-btn>
<q-btn
color="edit"
flat
dense
round
size="12px"
icon="mdi-pencil"
clickable
@click.stop="editDetiail(props.row)"
v-close-popup
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
<q-btn
color="red"
flat
@ -397,5 +428,7 @@ onMounted(() => {
<DialogAddPosition
v-model:add-position="modalAddPosition"
v-model:form-data="formPositionSelect"
v-model:edit-check="editPosition"
:get-data="searchInput"
/>
</template>

View file

@ -1,5 +1,5 @@
<script setup lang="ts">
import { ref, reactive, watch } from "vue";
import { ref, reactive, watch,defineProps } from "vue";
import { useQuasar } from "quasar";
import http from "@/plugins/http";
import config from "@/app.config";
@ -33,12 +33,16 @@ const formPositionSelect = reactive<FormPositionSelectDialog>({
});
const $q = useQuasar();
const props = defineProps({
getData:Function
})
const { dialogConfirm, showLoader, success, hideLoader, messageError } =
useCounterMixin();
const isReadonly = ref<boolean>(false); //
const modal = defineModel<boolean>("addPosition", { required: true });
const formData = defineModel<any>("formData", { required: true });
const editCheck = defineModel<boolean>("editCheck", { required: true });
const positionNameRef = ref<Object | null>(null);
const positionFieldRef = ref<Object | null>(null);
@ -71,10 +75,54 @@ function validateFormPositionEdit() {
}
}
if (hasError.every((result) => result === true)) {
onSubmitSelectEdit();
if (editCheck.value == true) {
saveSelectEdit();
} else {
onSubmitSelectEdit();
}
}
}
/** ฟังชั่น บันทึก */
function saveSelectEdit() {
console.log(formPositionSelect.positionExecutive)
console.log(formPositionSelect.positionArea)
dialogConfirm(
$q,
async () => {
showLoader();
const body = {
posDictName: formPositionSelect.positionName,
posDictField: formPositionSelect.positionField, //
posTypeId: formPositionSelect.positionType, //*
posLevelId: formPositionSelect.positionLevel, //*
posExecutiveId:
formPositionSelect.positionExecutive == null
? ''
: formPositionSelect.positionExecutive, //
posDictExecutiveField: formPositionSelect.positionExecutiveField!==null?formPositionSelect.positionExecutiveField:'', //
posDictArea: formPositionSelect.positionArea !== null ? formPositionSelect.positionArea:'', ///
};
await http
.put(config.API.orgPosPositionById(formPositionSelect.positionId), body)
.then(() => {
success($q, "เพิ่มข้อมูลสำเร็จ");
clearFormPositionSelect();
modal.value = false;
editCheck.value = false;
props.getData?.()
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
},
"ยืนยันการเพิ่มตำแหน่ง",
"ต้องการยืนยันการเพิ่มตำแหน่งนี้ใช่หรือไม่?"
);
}
/** ฟังชั่น บันทึก */
function onSubmitSelectEdit() {
dialogConfirm(
@ -86,7 +134,10 @@ function onSubmitSelectEdit() {
posDictField: formPositionSelect.positionField, //
posTypeId: formPositionSelect.positionType, //*
posLevelId: formPositionSelect.positionLevel, //*
posExecutiveId: formPositionSelect.positionExecutive == '' ? null:formPositionSelect.positionExecutive, //
posExecutiveId:
formPositionSelect.positionExecutive == ""
? null
: formPositionSelect.positionExecutive, //
posDictExecutiveField: formPositionSelect.positionExecutiveField, //
posDictArea: formPositionSelect.positionArea, ///
};
@ -96,6 +147,7 @@ function onSubmitSelectEdit() {
success($q, "เพิ่มข้อมูลสำเร็จ");
clearFormPositionSelect();
modal.value = false;
editCheck.value = false;
})
.catch((err) => {
messageError($q, err);
@ -206,6 +258,11 @@ function updateSelectType(val: string) {
}));
levelOps.value = levelOpsMain.value;
}
function close() {
modal.value = false;
editCheck.value = false;
}
</script>
<template>
@ -213,8 +270,8 @@ function updateSelectType(val: string) {
<q-card style="min-width: 50vw">
<form @submit.prevent="validateFormPositionEdit">
<DialogHeader
:tittle="`เพิ่มข้อมูลตำแหน่ง`"
:close="() => (modal = false)"
:tittle="`${editCheck ? 'แก้ไขข้อมูลตำแหน่ง' : 'เพิ่มข้อมูลตำแหน่ง'}`"
:close="close"
/>
<q-separator />

View file

@ -26,10 +26,12 @@ import type {
const isSpecial = ref<boolean>(false)
const props = defineProps({
emitSearch: Function,
getData: Function,
data: Object,
levelOp: Object,
});
const modal = defineModel<boolean>("modalAdd", { required: true });
const isEditCheck = defineModel<boolean>("isEdit", { required: true });
const dataLevel = ref<any>();
const $q = useQuasar();
const mixin = useCounterMixin();
@ -94,12 +96,16 @@ function validateFormPositionEdit() {
}
}
if (hasError.every((result) => result === true)) {
onSubmitSelectEdit();
if(isEditCheck.value == true){
saveSelectEdit();
}else{
onSubmitSelectEdit();
}
}
}
/** ฟังชั่น บันทึก */
function onSubmitSelectEdit() {
function saveSelectEdit(){
console.log(formPositionSelect.positionExecutive)
dialogConfirm(
$q,
async () => {
@ -110,11 +116,50 @@ function onSubmitSelectEdit() {
posTypeId: formPositionSelect.positionType, //*
posLevelId: formPositionSelect.positionLevel, //*
posExecutiveId:
formPositionSelect.positionExecutive !== ""
formPositionSelect.positionExecutive !== null
? formPositionSelect.positionExecutive
: null, //
posDictExecutiveField: formPositionSelect.positionExecutiveField, //
posDictArea: formPositionSelect.positionArea, ///
: '', //
posDictExecutiveField: formPositionSelect.positionExecutiveField !== null ? formPositionSelect.positionExecutiveField :'', //
posDictArea: formPositionSelect.positionArea !== null ? formPositionSelect.positionArea :'', ///
isSpecial:isSpecial.value
};
await http
.put(config.API.orgPosPositionById(formPositionSelect.positionId), body)
.then(() => {
success($q, "เพิ่มข้อมูลสำเร็จ");
props.getData?.()
close();
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
},
"ยืนยันการแก้ไขตำแหน่ง",
"ต้องการยืนยันแก้ไขตำแหน่งนี้ใช่หรือไม่?"
);
}
/** ฟังชั่น บันทึก */
function onSubmitSelectEdit() {
console.log(formPositionSelect.positionExecutive)
dialogConfirm(
$q,
async () => {
showLoader();
const body = {
posDictName: formPositionSelect.positionName,
posDictField: formPositionSelect.positionField, //
posTypeId: formPositionSelect.positionType, //*
posLevelId: formPositionSelect.positionLevel, //*
posExecutiveId:
formPositionSelect.positionExecutive !== null
? formPositionSelect.positionExecutive
: '', //
posDictExecutiveField: formPositionSelect.positionExecutiveField !== null ? formPositionSelect.positionExecutiveField :'', //
posDictArea: formPositionSelect.positionArea !== null ? formPositionSelect.positionArea :'', ///
isSpecial:isSpecial.value
};
await http
@ -138,6 +183,7 @@ function onSubmitSelectEdit() {
}
async function clearFormPositionSelect() {
isEditCheck.value = false
isDisValidate.value = await true;
formPositionSelect.positionId = "";
formPositionSelect.positionName = "";
@ -238,6 +284,7 @@ watch(
formPositionSelect.positionExecutiveField =
dataList.positionExecutiveField;
formPositionSelect.positionArea = dataList.positionArea;
isSpecial.value = dataList.isSpecial
}
}
}
@ -246,7 +293,7 @@ watch(
<template>
<q-dialog v-model="modal" persistent>
<q-card style="min-width: 50vw">
<DialogHeader :tittle="'เพิ่มข้อมูลตำแหน่ง'" :close="close" />
<DialogHeader :tittle="`${isEditCheck ? `แก้ไขข้อมูลตำแหน่ง`:`เพิ่มข้อมูลตำแหน่ง`}`" :close="close" />
<q-separator />
<q-card-section class="q-pa-none">
@ -383,7 +430,7 @@ watch(
</div>
<q-separator />
<q-card-actions align="right" class="bg-white text-teal q-pa-sm">
<q-btn type="submit" label="เพิ่มตำแหน่ง" color="public" />
<q-btn type="submit" :label="`${isEditCheck ? 'แก้ไขตำแหน่ง':'เพิ่มตำแหน่ง'}`" color="public" />
</q-card-actions>
</form>
</q-card-section>

View file

@ -37,6 +37,7 @@ const props = defineProps({
shortName: { type: String, required: true },
});
const isEdit = ref<boolean>(false)
const modalAdd = ref<boolean>(false);
const reqMaster = defineModel<FilterMaster>("reqMaster", { required: true });
const isReadonly = ref<boolean>(false); //
@ -82,6 +83,12 @@ const listMenu = ref<ListMenu[]>([
type: "copy",
color: "blue-6",
},
{
label: "แก้ไข",
icon: "mdi-pencil",
type: "edit",
color: "edit",
},
{
label: "ลบ",
icon: "delete",
@ -486,6 +493,16 @@ function copyDetiail(data: RowDetailPositions) {
modalAdd.value = true;
dataCopy.value = data;
}
/**
* แกไขขอม
* @param data อมลตำแหน
*/
function editDetiail(data: RowDetailPositions) {
isEdit.value = true;
modalAdd.value = true;
dataCopy.value = data;
console.log(isEdit.value)
}
/**
* งค css ออกไปตามเงอนไข
@ -908,7 +925,7 @@ async function emitSearch(keyword: string, typeSelect: string) {
@click="
item.type === 'copy'
? copyDetiail(props.row)
: deletePos(props.row.id)
: item.type === 'edit' ? editDetiail(props.row) : deletePos(props.row.id)
"
>
<q-item-section avatar>
@ -946,6 +963,8 @@ async function emitSearch(keyword: string, typeSelect: string) {
v-model:modalAdd="modalAdd"
:emitSearch="emitSearch"
:data="dataCopy"
v-model:is-edit="isEdit"
:get-data="searchInput"
/>
</template>