ปรับ Eva

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2025-04-23 10:29:50 +07:00
parent c3d24fdc33
commit f8cd032c0b
11 changed files with 1254 additions and 798 deletions

View file

@ -34,36 +34,25 @@ const fileEvaluation1 = ref<any>();
const formCommand = reactive<FormCommand>({
commanderFullname: "",
commanderPosition: "",
commanderPositionOld: "",
commanderOrg: "",
commanderOrgOld: "",
commanderAboveFullname: "",
commanderAbovePosition: "",
commanderAbovePositionOld: "",
commanderAboveOrgOld: "",
commanderAboveOrg: "",
author: "",
subject: "",
subject: [""],
assignedPosition: "",
});
/** ref input*/
const commanderFullnameRef = ref<object | null>(null);
const commanderPositionRef = ref<object | null>(null);
const commanderAboveFullnameRef = ref<object | null>(null);
const commanderAbovePositionRef = ref<object | null>(null);
const fileEvaluation1Ref = ref<object | null>(null);
const performanceRef = ref<object | null>(null);
const performanceOwnerRef = ref<object | null>(null);
const assignedPositionRef = ref<object | null>(null);
const modalView = ref<boolean>(false);
/** function อัปเดท ผลงาน,ผู้เซ็นเอกสาร*/
function updateInput(value: any) {
const ref = {
commanderFullnameRef: commanderFullnameRef.value,
commanderPositionRef: commanderPositionRef.value,
commanderAboveFullnameRef: commanderAboveFullnameRef.value,
commanderAbovePositionRef: commanderAbovePositionRef.value,
fileEvaluation1Ref: fileEvaluation1Ref.value,
downloadFile: [downloadUrl.value],
performance: performanceRef.value,
performanceOwner: performanceOwnerRef.value,
assignedPosition: assignedPositionRef.value,
};
emit("update:form", value, ref);
}
@ -146,17 +135,25 @@ async function fetcheSigner(id: string) {
const data = res.data.result;
formCommand.commanderFullname = data.commanderFullnameDoc2;
formCommand.commanderPosition = data.commanderPositionDoc2;
formCommand.commanderPositionOld = data.commanderPositionOldDoc2;
formCommand.commanderOrg = data.commanderOrgDoc2;
formCommand.commanderOrgOld = data.commanderOrgOldDoc2;
formCommand.commanderAboveFullname = data.commanderAboveFullnameDoc2;
formCommand.commanderAbovePosition = data.commanderAbovePositionDoc2;
formCommand.commanderAbovePositionOld =
data.commanderAbovePositionOldDoc2;
formCommand.commanderAboveOrgOld = data.commanderAboveOrgOldDoc2;
formCommand.commanderAboveOrg = data.commanderAboveOrgDoc2;
formCommand.author = data.authorDoc2;
formCommand.subject = data.subjectDoc2;
formCommand.assignedPosition = data.assignedPosition;
store.statusUpload6 = data.commanderFullnameDoc2 === null ? false : true;
store.statusUpload6 = data.isUpdated;
})
.catch(() => {
store.statusUpload6 = false;
getCommander();
.catch((err) => {
messageError($q, err);
// store.statusUpload6 = false;
// getCommander();
})
.finally(() => {
hideLoader();
@ -181,28 +178,17 @@ async function fetchCheckDate() {
const downloadUrl = ref<string>("");
/** function เช็คไฟล์อัปโหลด*/
function checkDoc() {
// showLoader();
http
async function checkDoc() {
await http
.get(
config.API.loadFileDocument("เล่ม 2", evaluateId.value, "1-เอกสารเล่ม 2")
)
.then((res: any) => {
downloadUrl.value = res.data.downloadUrl;
})
.catch(() => {})
.finally(() => {
// hideLoader();
const ref = {
commanderFullnameRef: commanderFullnameRef.value,
commanderPositionRef: commanderPositionRef.value,
commanderAboveFullnameRef: commanderAboveFullnameRef.value,
commanderAbovePositionRef: commanderAbovePositionRef.value,
fileEvaluation1Ref: fileEvaluation1Ref.value,
downloadFile: [downloadUrl.value],
performance: performanceRef.value,
performanceOwner: performanceOwnerRef.value,
assignedPosition: assignedPositionRef.value,
};
emit("update:form", formCommand, ref);
@ -221,8 +207,15 @@ function getCommander() {
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {});
});
}
function onAddSubject() {
formCommand.subject.push("");
}
function onDeleteSubject(index: number) {
formCommand.subject.splice(index, 1);
}
watch(
@ -273,27 +266,12 @@ onMounted(async () => {
<q-card bordered class="shadow-0" style="border: 1px solid #d6dee1">
<div class="text-weight-medium bg-grey-1 q-py-sm q-px-md">ผลงาน</div>
<div class="col-12"><q-separator /></div>
<div class="col-12">
<div class="row q-col-gutter-sm col-12">
<div class="col-xs-12 col-sm-12 row">
<div class="row col-12 q-col-gutter-sm q-pa-sm">
<div class="col-12 q-pa-sm">
<div class="row q-col-gutter-sm">
<div class="col-12 row q-col-gutter-sm">
<div class="col-6">
<q-input
:readonly="store.currentStep != 6"
ref="performanceRef"
dense
class="col-xs-12 col-sm-6"
outlined
label="ชื่อผลงาน"
v-model="formCommand.subject"
@update:model-value="updateInput(formCommand)"
:rules="[(val:string) => !!val || `${'กรุณากรอกชื่อผลงาน'}`]"
hide-bottom-space
lazy-rules
/>
<q-input
:readonly="store.currentStep != 6"
ref="performanceOwnerRef"
class="col-xs-12 col-sm-6"
:readonly="store.currentStep != 6 || store.statusUpload6"
dense
outlined
v-model="formCommand.author"
@ -303,9 +281,10 @@ onMounted(async () => {
:rules="[(val:string) => !!val || `${'กรุณากรอกเจ้าของผลงาน'}`]"
lazy-rules
/>
</div>
<div class="col-6">
<q-input
:readonly="store.currentStep != 6"
ref="assignedPositionRef"
:readonly="store.currentStep != 6 || store.statusUpload6"
class="col-xs-12 col-sm-6"
dense
outlined
@ -314,12 +293,62 @@ onMounted(async () => {
label="ตำแหน่งที่ได้รับ"
hide-bottom-space
:rules="[
(val:string) => !!val || `${'กรุณากรอกตำแหน่งที่ได้รับ'}`,
]"
(val:string) => !!val || `${'กรุณากรอกตำแหน่งที่ได้รับ'}`,
]"
lazy-rules
/>
</div>
</div>
<div
class="col-12"
v-if="store.currentStep === 6 && !store.statusUpload6"
>
<q-btn
flat
round
color="primary"
icon="add"
@click="onAddSubject"
>
<q-tooltip>เพมชอผลงาน</q-tooltip>
</q-btn>
</div>
<div
class="row col-12 q-col-gutter-sm"
v-for="(item, index) in formCommand.subject"
:key="index"
>
<div class="col-11">
<q-input
:readonly="store.currentStep != 6 || store.statusUpload6"
dense
outlined
label="ชื่อผลงาน"
v-model="formCommand.subject[index]"
@update:model-value="updateInput(formCommand)"
:rules="[(val:string) => !!val || `${'กรุณากรอกชื่อผลงาน'}`]"
hide-bottom-space
lazy-rules
/>
</div>
<div
class="row col-1 items-centet justify-center"
v-if="index !== 0"
>
<q-btn
v-if="store.currentStep === 6 && !store.statusUpload6"
flat
round
color="red"
icon="delete"
@click="onDeleteSubject(index)"
>
<q-tooltip>ลบ</q-tooltip>
</q-btn>
</div>
</div>
</div>
</div>
</q-card>
@ -340,8 +369,7 @@ onMounted(async () => {
</div>
<div class="row col-12 q-col-gutter-sm q-pa-sm">
<q-input
:readonly="store.currentStep != 6"
ref="commanderFullnameRef"
:readonly="store.currentStep != 6 || store.statusUpload6"
dense
class="col-xs-12 col-sm-6"
outlined
@ -352,19 +380,68 @@ onMounted(async () => {
lazy-rules
hide-bottom-space
/>
<q-input
:readonly="store.currentStep != 6"
ref="commanderPositionRef"
class="col-xs-12 col-sm-6"
dense
outlined
v-model="formCommand.commanderPosition"
@update:model-value="updateInput(formCommand)"
label="ตำแหน่ง"
:rules="[(val:string) => !!val || `${'กรุณากรอกตำแหน่ง'}`]"
lazy-rules
hide-bottom-space
/>
<div class="col-12">
<div class="row col-12 q-col-gutter-sm">
<q-input
:readonly="
store.currentStep != 6 || store.statusUpload6
"
class="col-xs-6 col-sm-3"
dense
outlined
v-model="formCommand.commanderPosition"
@update:model-value="updateInput(formCommand)"
label="ตำแหน่ง"
:rules="[(val:string) => !!val || `${'กรุณากรอกตำแหน่ง'}`]"
lazy-rules
hide-bottom-space
/>
<q-input
:readonly="
store.currentStep != 6 || store.statusUpload6
"
class="col-xs-6 col-sm-3"
dense
outlined
v-model="formCommand.commanderPositionOld"
@update:model-value="updateInput(formCommand)"
label="ตำแหน่งเดิม"
:rules="[(val:string) => !!val || `${'กรุณากรอกตำแหน่งเดิม'}`]"
lazy-rules
hide-bottom-space
/>
<q-input
:readonly="
store.currentStep != 6 || store.statusUpload6
"
class="col-xs-6 col-sm-3"
dense
outlined
v-model="formCommand.commanderOrg"
@update:model-value="updateInput(formCommand)"
label="สังกัด"
:rules="[(val:string) => !!val || `${'กรุณากรอกสังกัด'}`]"
lazy-rules
hide-bottom-space
/>
<q-input
:readonly="
store.currentStep != 6 || store.statusUpload6
"
class="col-xs-6 col-sm-3"
dense
outlined
v-model="formCommand.commanderOrgOld"
@update:model-value="updateInput(formCommand)"
label="สังกัดเดิม"
:rules="[(val:string) => !!val || `${'กรุณากรอกสังกัดเดิม'}`]"
lazy-rules
hide-bottom-space
/>
</div>
</div>
</div>
</div>
</div>
@ -376,8 +453,7 @@ onMounted(async () => {
</div>
<div class="row col-12 q-col-gutter-sm q-pa-sm">
<q-input
:readonly="store.currentStep != 6"
ref="commanderAboveFullnameRef"
:readonly="store.currentStep != 6 || store.statusUpload6"
dense
class="col-xs-12 col-sm-6"
outlined
@ -388,19 +464,67 @@ onMounted(async () => {
@update:model-value="updateInput(formCommand)"
hide-bottom-space
/>
<q-input
:readonly="store.currentStep != 6"
ref="commanderAbovePositionRef"
class="col-xs-12 col-sm-6"
dense
outlined
v-model="formCommand.commanderAbovePosition"
label="ตำแหน่ง"
:rules="[(val:string) => !!val || `${'กรุณากรอกตำแหน่ง'}`]"
lazy-rules
@update:model-value="updateInput(formCommand)"
hide-bottom-space
/>
<div class="col-12">
<div class="row col-12 q-col-gutter-sm">
<q-input
:readonly="
store.currentStep != 6 || store.statusUpload6
"
class="col-xs-6 col-sm-3"
dense
outlined
v-model="formCommand.commanderAbovePosition"
label="ตำแหน่ง"
:rules="[(val:string) => !!val || `${'กรุณากรอกตำแหน่ง'}`]"
lazy-rules
@update:model-value="updateInput(formCommand)"
hide-bottom-space
/>
<q-input
:readonly="
store.currentStep != 6 || store.statusUpload6
"
class="col-xs-6 col-sm-3"
dense
outlined
v-model="formCommand.commanderAbovePositionOld"
label="ตำแหน่งเดิม"
:rules="[(val:string) => !!val || `${'กรุณากรอกตำแหน่งเดิม'}`]"
lazy-rules
hide-bottom-space
@update:model-value="updateInput(formCommand)"
/>
<q-input
:readonly="
store.currentStep != 6 || store.statusUpload6
"
class="col-xs-6 col-sm-3"
dense
outlined
v-model="formCommand.commanderAboveOrg"
label="สังกัด"
:rules="[(val:string) => !!val || `${'กรุณากรอกสังกัด'}`]"
lazy-rules
hide-bottom-space
@update:model-value="updateInput(formCommand)"
/>
<q-input
:readonly="
store.currentStep != 6 || store.statusUpload6
"
class="col-xs-6 col-sm-3"
dense
outlined
v-model="formCommand.commanderAboveOrgOld"
label="สังกัดเดิม"
:rules="[(val:string) => !!val || `${'กรุณากรอกสังกัดเดิม'}`]"
lazy-rules
hide-bottom-space
@update:model-value="updateInput(formCommand)"
/>
</div>
</div>
</div>
</div>
</div>
@ -434,7 +558,6 @@ onMounted(async () => {
<div class="col-12">
<q-file
:disable="!store.statusUpload6"
ref="fileEvaluation1Ref"
v-model="fileEvaluation1"
class="col-12"
outlined