Merge branch 'develop' into nice_dev

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-01-09 17:47:46 +07:00
commit bd831dfc0e
9 changed files with 157 additions and 50 deletions

View file

@ -177,12 +177,28 @@ watch(modal, (newValue) => {
}
});
</script>
<template>
<q-dialog v-model="modal" position="right">
<q-card style="width: 420px">
<q-card-section>
<div class="text-h6 text-center">รายละเอยดแบบยอย</div>
</q-card-section>
<q-dialog v-model="modal" position="right" :maximized="true">
<q-card style="width: 420px; overflow: visible;">
<q-toolbar>
<q-toolbar-title class="text-subtitle1 text-bold"
>ทะเบยนประว</q-toolbar-title
>
<q-btn
icon="close"
unelevated
round
dense
@click="emit('update:modal', false)"
style="color: red; background-color: #ffdede"
/>
</q-toolbar>
<!-- <q-card-section>
<div class="text-bold text-h6 text-center">อมลทะเบยนประว</div>
<q-space />
</q-card-section> -->
<q-card-section class="col q-pt-none bg-grey-12">
<div class="q-gutter-md">
@ -204,12 +220,15 @@ watch(modal, (newValue) => {
</q-avatar>
</div>
<div
class="q-mt-md text-weight-bolder text-center"
class="q-mt-md text-subtitle2 text-bold"
style="font-size: 18px"
>
{{ avatar.fullname }}
</div>
<div class="q-mb-xs text-center text-grey">
<div
v-if="avatar.position != '-'"
class="q-mb-xs text-center text-grey"
>
{{ avatar.position }}
</div>
<div class="q-mt-md">
@ -224,7 +243,7 @@ watch(modal, (newValue) => {
</div>
</q-card>
<q-scroll-area style="height: 500px; max-width: 100%">
<q-scroll-area style="height: 65vh; max-width: 100%">
<div class="q-gutter-md q-pa-sm">
<q-card bordered style="border: 1px solid #d6dee1">
<div class="q-pa-md">

View file

@ -51,7 +51,7 @@ interface FremData {
leaveTotal: number; //จำนวนวันที่ลา(Auto)
leavebirthDate: Date | null; //วันเดือนปีเกิด(Auto)
leavegovernmentDate: Date | null; //วันที่เข้ารับราชการ(Auto)
leaveSalary: string; //เงินเดือนปัจจุบัน(Auto)
leaveSalary: number; //เงินเดือนปัจจุบัน(Auto)
leaveSalaryText: String; //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน)
leaveTypeDay: string; //ประเภทการลาในวันนั้นเช่น
wifeDayName: String; //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร)

View file

@ -45,6 +45,7 @@ const orderAttachmentPdf = ref<string>("");
const statusOrder = ref<string>();
const orderName = ref<string>("");
const orderStatusName = ref<string>("");
const dataGen = ref<any>();
const orderId = ref<string>(orderId_params.toString());
onMounted(async () => {
@ -135,6 +136,8 @@ const downloadCover = async (type: string) => {
.finally(() => {
hideLoader();
});
} else if (type === "docx") {
genReport(dataGen.value, `คำสั่ง ${orderName.value}`, "docx");
} else {
const link = document.createElement("a");
var fileName = `คำสั่ง ${orderName.value}.${
@ -148,6 +151,7 @@ const downloadCover = async (type: string) => {
hideLoader();
}
};
//
const downloadAttachment = async (type: string) => {
showLoader();
@ -186,6 +190,7 @@ const fetchReportCover = async (type: string, orderId: string) => {
}
} else {
// report template
dataGen.value = res.data.result;
await axios
.post(`${config.API.reportTemplate}/docx`, res.data.result, {
headers: {

View file

@ -15,6 +15,7 @@ import { useDisciplineMainStore } from "@/modules/11_discipline/store/main";
import config from "@/app.config";
import http from "@/plugins/http";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
import DialogAddPersonal from "@/components/Dialogs/AddPersonal.vue";
const $q = useQuasar();
@ -24,6 +25,8 @@ const channelOptions = ref<DataOption[]>([]);
const mixin = useCounterMixin();
const mainStore = useDisciplineMainStore();
const complainstStore = useComplainstDataStore();
const modalPersonal = ref<boolean>(false);
const personId = ref<string>("");
/**ชั่งฟังเพิ่มข้อมูล ลง ตาราง */
const modal = ref<boolean>(false);
@ -159,7 +162,7 @@ function validateForm() {
}
}
if (hasError.every((result) => result === true)) {
countNum.value = 1
countNum.value = 1;
onSubmit();
} else {
console.log("ไม่ผ่าน ");
@ -247,7 +250,7 @@ watch(props.data, async () => {
formData.status = props.data.status;
formData.result = props.data.result;
formData.persons = mainStore.rowsAdd;
}else if (countNum.value === 2){
} else if (countNum.value === 2) {
fileList.value = props.data.disciplineComplaintDocs;
}
}
@ -273,7 +276,7 @@ function upLoadFileDoc() {
.put(config.API.complaintFileUpload(formData.id), Data)
.then((res) => {
success($q, "อัพโหลดไฟล์สำเร็จ");
countNum.value = 2
countNum.value = 2;
props.getData();
})
.catch((e) => {
@ -339,6 +342,15 @@ function inputEdit(val: boolean) {
};
}
function onclickViewinfo(id: string) {
modalPersonal.value = true;
personId.value = id;
}
function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal;
}
onMounted(() => {
mainStore.rowsAdd = [];
getListChannel();
@ -521,15 +533,16 @@ onMounted(() => {
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<td>
<router-link
target="_blank"
:to="`/registry/${props.row.personId}`"
><q-icon name="info" color="info" size="sm"
><q-tooltip
>อมลในทะเบยนประว</q-tooltip
>
</q-icon></router-link
<q-btn
dense
flat
round
color="info"
icon="info"
@click="onclickViewinfo(props.row.personId)"
>
<q-tooltip>อมลในทะเบยนประว</q-tooltip>
</q-btn>
</td>
<q-td
v-for="col in props.cols"
@ -979,6 +992,12 @@ onMounted(() => {
:selected-data="mainStore.rowsAdd"
@returnData="handleSave"
/>
<PopupPersonal
:modal="modalPersonal"
:id="personId"
@update:modal="updatemodalPersonal"
/>
</template>
<style scoped>

View file

@ -14,6 +14,7 @@ import { useDisciplineMainStore } from "@/modules/11_discipline/store/main";
import CalandarDialog from "@/modules/11_discipline/components/2_InvestigateFacts/CalandarDialog.vue";
import DialogDuty from "@/modules/11_discipline/components/DialogDuty.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
import type {
FormData,
@ -24,6 +25,9 @@ import type { ArrayPersonAdd } from "@/modules/11_discipline/interface/response/
import config from "@/app.config";
import http from "@/plugins/http";
const modalPersonal = ref<boolean>(false);
const personId = ref<string>("");
const $q = useQuasar();
const route = useRoute();
const router = useRouter();
@ -617,6 +621,15 @@ async function saveDuty(id: string, duty: string, resolution: string) {
});
}
function onclickViewinfo(id: string) {
modalPersonal.value = true;
personId.value = id;
}
function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal;
}
onMounted(async () => {
mainStore.rowsAdd = [];
getOc();
@ -771,15 +784,16 @@ onMounted(async () => {
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<td>
<router-link
target="_blank"
:to="`/registry/${props.row.personId}`"
><q-icon name="info" color="info" size="sm"
><q-tooltip
>อมลในทะเบยนประว</q-tooltip
>
</q-icon></router-link
>
<q-btn
dense
flat
round
color="info"
icon="info"
@click="onclickViewinfo(props.row.personId)"
>
<q-tooltip>อมลในทะเบยนประว</q-tooltip>
</q-btn>
</td>
<q-td
v-for="col in props.cols"
@ -1564,6 +1578,13 @@ onMounted(async () => {
:checked-val="false"
:fetch-data="fetchData"
/>
<PopupPersonal
:modal="modalPersonal"
:id="personId"
@update:modal="updatemodalPersonal"
/>
</template>
<style scope>

View file

@ -35,6 +35,10 @@ import { useComplainstDataStore } from "@/modules/11_discipline/store/Complaints
import { useInvestigateDisStore } from "@/modules/11_discipline/store/InvestigateDisStore";
import { useDisciplineMainStore } from "@/modules/11_discipline/store/main";
import DialogDuty from "@/modules/11_discipline/components/DialogDuty.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
const modalPersonal = ref<boolean>(false);
const personId = ref<string>("");
const calendarModal = ref<boolean>(false);
const calendarModalclose = () => (calendarModal.value = !calendarModal.value);
@ -613,6 +617,15 @@ async function saveDuty(id: string, duty: string, resolution: string) {
});
}
function onclickViewinfo(id: string) {
modalPersonal.value = true;
personId.value = id;
}
function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal;
}
/** Hook */
onMounted(async () => {
mainStore.rowsAdd = [];
@ -808,15 +821,16 @@ onMounted(async () => {
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<td>
<router-link
target="_blank"
:to="`/registry/${props.row.personId}`"
><q-icon name="info" color="info" size="sm"
><q-tooltip
>อมลในทะเบยนประว</q-tooltip
>
</q-icon></router-link
>
<q-btn
dense
flat
round
color="info"
icon="info"
@click="onclickViewinfo(props.row.personId)"
>
<q-tooltip>อมลในทะเบยนประว</q-tooltip>
</q-btn>
</td>
<q-td
v-for="col in props.cols"
@ -1811,6 +1825,12 @@ onMounted(async () => {
:checked-val="false"
:fetch-data="fetchDataList"
/>
<PopupPersonal
:modal="modalPersonal"
:id="personId"
@update:modal="updatemodalPersonal"
/>
</template>
<style scoped>

View file

@ -9,6 +9,7 @@ import { useInvestigateDisStore } from "@/modules/11_discipline/store/Investigat
import { useDisciplineResultStore } from "@/modules/11_discipline/store/ResultStore";
import { useDisciplineMainStore } from "@/modules/11_discipline/store/main";
import DialogHistory from "@/modules/11_discipline/components/4_Result/DialogHistory.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
import type {
FormData,
@ -19,6 +20,9 @@ import type {
} from "@/modules/11_discipline/interface/request/result";
import DialogHeader from "@/components/DialogHeader.vue";
const modalPersonal = ref<boolean>(false);
const personId = ref<string>("");
const countNum = ref<number>(1);
const mainStore = useDisciplineMainStore();
const modalPerson = ref<boolean>(false);
@ -250,6 +254,16 @@ function closeDetail() {
modalHistory.value = false;
personalId.value = "";
}
function onclickViewinfo(id: string) {
modalPersonal.value = true;
personId.value = id;
}
function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal;
}
</script>
<template>
<div class="row q-col-gutter-sm">
@ -363,13 +377,16 @@ function closeDetail() {
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<td>
<router-link
target="_blank"
:to="`/registry/${props.row.personId}`"
><q-icon name="info" color="info" size="sm"
><q-tooltip>อมลในทะเบยนประว</q-tooltip>
</q-icon></router-link
>
<q-btn
dense
flat
round
color="info"
icon="info"
@click="onclickViewinfo(props.row.personId)"
>
<q-tooltip>อมลในทะเบยนประว</q-tooltip>
</q-btn>
</td>
<q-td
v-for="col in props.cols"
@ -586,6 +603,12 @@ function closeDetail() {
</div>
</div>
<PopupPersonal
:modal="modalPersonal"
:id="personId"
@update:modal="updatemodalPersonal"
/>
<DialogHistory
:modal="modalHistory"
:close="closeDetail"

View file

@ -9,7 +9,7 @@ interface DataResult {
resultDisciplineType: string; //สถานะ
resultTitleType: string; //สถานะ
resultOc: string; //สถานะ
fiscalYear: string; //สถานะ
resultYear: string; //สถานะ
createdAt: Date | null; //วันที่ส่งเรื่องสอบสวน
}
interface DataResultList {

View file

@ -50,7 +50,7 @@ export const useDisciplineResultStore = defineStore(
"resultDisciplineType",
"resultTitleType",
"resultOc",
"fiscalYear",
"resultYear",
"status",
]);
@ -154,11 +154,11 @@ export const useDisciplineResultStore = defineStore(
style: "font-size: 14px",
},
{
name: "fiscalYear",
name: "resultYear",
align: "left",
label: "ปีงบประมาณ",
sortable: true,
field: "fiscalYear",
field: "resultYear",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
@ -281,7 +281,7 @@ export const useDisciplineResultStore = defineStore(
resultDisciplineType: e.resultDisciplineType ? e.resultDisciplineType : '-',
resultTitleType: e.resultTitleType ? e.resultTitleType : '-',
resultOc: e.resultOc ? e.resultOc : '-',
fiscalYear: e.fiscalYear ? e.fiscalYear + 543 : '-',
resultYear: e.resultYear ? e.resultYear + 543 : '-',
}));
rows.value = datalist;
}