Merge branch 'develop' into devTee

This commit is contained in:
setthawutttty 2023-12-22 10:05:34 +07:00
commit be098be411
10 changed files with 119 additions and 71 deletions

View file

@ -147,6 +147,22 @@ export const useOrderPlacementDataStore = defineStore("placementOrder", () => {
return "อนุญาตให้ลูกจ้างประจำลาออกจากราชการ";
case "C-PM-24":
return "แต่งตั้งลูกจ้างประจำ";
case "C-PM-25":
return "พักจากราชการ";
case "C-PM-26":
return "ให้ออกจากราชการไว้ก่อน";
case "C-PM-27":
return "ลงโทษภาคทัณฑ์ข้าราชการ";
case "C-PM-28":
return "ลงโทษตัดเงินเดือนข้าราชการ";
case "C-PM-29":
return "ลงโทษลดขั้นเงินเดือนข้าราชการ";
case "C-PM-30":
return "งดโทษ/ลดโทษ/เพิ่มโทษ/ยกโทษ";
case "C-PM-31":
return "งดโทษข้าราชการ";
case "C-PM-32":
return "ยุติเรื่องข้าราชการ";
default:
return "";
}

View file

@ -398,7 +398,7 @@ watch(
:modal="modalPopup"
:close="closePopup"
title="ส่งไปสอบสวน"
:rows="mainStore.rowsAdd"
:rows="mainStore.rowsAdd.filter((item:any)=> item.isSend === false )"
:columns="mainStore.columnsDirector"
:visibleColumns="mainStore.visibleColumnsDirector"
@return-person="emitPerson"

View file

@ -19,9 +19,7 @@ import type {
MyObjectInvestigateRef,
} from "@/modules/11_discipline/interface/request/investigateFact";
import type {
ArrayPersonAdd
} from '@/modules/11_discipline/interface/response/investigate'
import type { ArrayPersonAdd } from "@/modules/11_discipline/interface/response/investigate";
import config from "@/app.config";
import http from "@/plugins/http";
@ -275,8 +273,10 @@ watch(props.data, async () => {
formData.investigationExtendHistory = props.data.investigationExtendHistory;
mainStore.rowsAdd = props.data.persons;
mainStore.rowsCheck = mainStore.rowsAdd.filter((item:any)=> item.isSend === false )
console.log(mainStore.rowsCheck)
mainStore.rowsCheck = mainStore.rowsAdd.filter(
(item: any) => item.isSend === false
);
const dataMap = props.data.directors.map((item: any) => ({
id: item.id,
name: `${item.prefix}${item.firstName} ${item.lastName}`,
@ -518,16 +518,21 @@ function inputEditExtend(val: boolean) {
}
}
function openModal(){
modalPopup.value = true
function openModal() {
modalPopup.value = true;
}
function closePopup() {
modalPopup.value = false;
}
function fetchData() {
setTimeout(() => {
props.getData();
}, 500);
}
function emitPerson(data: FormData[]) {
const dataMapId = data.map((item: FormData) => item.id);
console.log(dataMapId);
showLoader();
http
.post(config.API.investigateReport(), {
@ -1514,6 +1519,7 @@ onMounted(async () => {
:visibleColumns="mainStore.visibleColumnsDirector"
@return-person="emitPerson"
:checked-val="false"
:fetch-data="fetchData"
/>
</template>

View file

@ -251,7 +251,7 @@ async function onSubmit(id: string) {
/** ยืนยัน ส่งไปออกคำสั่ง */
async function sentIssue() {
respondentRows.value = await store.rowSent.filter((x) => x.report === false); //x.report === false
respondentRows.value = await store.rowSent.filter((x) => x.report === false && x.isSend === false); //x.report === false
modalPopup.value = true;
}
@ -341,13 +341,13 @@ function emitPerson(data: PersonsArray[]) {
persons: dataMapId,
})
.then((res) => {
success($q, "ส่งไปพักราชการสำเร็จ");
// router.push(`/discipline/investigatefacts`);
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
success($q, "ส่งไปพักราชการสำเร็จ");
hideLoader();
fetchDetailDisciplinary();
});

View file

@ -13,7 +13,7 @@ import type {
FormData,
DisciplinaryRef,
Director,
PersonsArray
PersonsArray,
} from "@/modules/11_discipline/interface/request/disciplinary";
import type {
DataOption,
@ -302,7 +302,9 @@ async function fetchDatadetail() {
formData.disciplinaryExtendHistory = props.data.disciplinaryExtendHistory;
mainStore.rowsAdd = props.data.persons;
mainStore.rowsCheck = mainStore.rowsAdd.filter((item:any)=> item.isSend === false )
mainStore.rowsCheck = mainStore.rowsAdd.filter(
(item: any) => item.isSend === false
);
/** MAP รายชื่อกรรมการ หน้าหลัก */
const dataMap = props.data.director.map((item: any) => ({
id: item.directorId,
@ -491,13 +493,19 @@ function inputEditExtend(val: boolean) {
}
}
function openModal(){
modalPopup.value = true
function openModal() {
modalPopup.value = true;
}
function closePopup() {
modalPopup.value = false;
}
function fetchDataList() {
setTimeout(() => {
props.fetchData();
}, 500);
}
function emitPerson(data: PersonsArray[]) {
const dataMapId = data.map((item: PersonsArray) => item.id);
showLoader();
@ -545,7 +553,7 @@ onMounted(async () => {
<div class="row col-12 q-col-gutter-x-md">
<div class="col-xs-12 col-sm-3">
<q-select
:class="inputEdit(isReadonly)"
:class="inputEdit(isReadonly)"
:readonly="isReadonly"
for="SelectrespondentType"
v-model="formData.respondentType"
@ -579,7 +587,7 @@ onMounted(async () => {
</template>
</q-select>
</div>
<div
class="col-xs-12 col-sm-3"
v-if="formData.respondentType === 'ORGANIZATION'"
@ -915,13 +923,12 @@ onMounted(async () => {
</div>
<div class="col-12"><q-separator /></div>
<div class="q-pa-sm">
<div class="q-col-gutter-sm row col-12">
<div class="col-12">
<div class="row q-col-gutter-sm">
<div v-if="extendStatus" class="col-3">
<q-select
:class="inputEdit(isReadonly)"
:class="inputEdit(isReadonly)"
:readonly="isReadonly"
for="#daysExtend"
outlined
@ -1409,7 +1416,7 @@ onMounted(async () => {
@update:model-value="changeFormData()"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-input
:readonly="isReadonly"
@ -1464,7 +1471,7 @@ onMounted(async () => {
<div class="row col-12 q-col-gutter-md">
<div class="col-3">
<q-select
:class="inputEdit(isReadonly)"
:class="inputEdit(isReadonly)"
for="#fault"
outlined
dense
@ -1503,7 +1510,7 @@ onMounted(async () => {
class="col-3"
>
<q-select
:class="inputEdit(isReadonly)"
:class="inputEdit(isReadonly)"
:readonly="isReadonly"
for="#fault"
outlined
@ -1535,7 +1542,7 @@ onMounted(async () => {
<div class="row col-12">
<q-input
:class="inputEdit(isReadonly)"
:class="inputEdit(isReadonly)"
:readonly="isReadonly"
class="full-width cursor-pointer"
outlined
@ -1668,8 +1675,8 @@ onMounted(async () => {
:visibleColumns="mainStore.visibleColumnsDirector"
@return-person="emitPerson"
:checked-val="false"
:fetch-data="fetchDataList"
/>
</template>
<style scoped>

View file

@ -8,12 +8,15 @@ import DialogAddPersonal from "@/components/Dialogs/AddPersonal.vue";
import { useCounterMixin } from "@/stores/mixin";
import { useAppealComplainStore } from "@/modules/11_discipline/store/AppealComplainStore";
import { useDisciplineMainStore } from "@/modules/11_discipline/store/main";
import DialogHistory from '@/modules/11_discipline/components/8_AppealComplain/dialog/DialogEditStatus.vue'
import DialogHistory from "@/modules/11_discipline/components/8_AppealComplain/dialog/DialogEditStatus.vue";
import config from "@/app.config";
import http from "@/plugins/http";
import type { MyObjectAppealRef,HistoryStatusType } from "@/modules/11_discipline/interface/response/appealComplain";
import type {
MyObjectAppealRef,
HistoryStatusType,
} from "@/modules/11_discipline/interface/response/appealComplain";
const isReadonly = ref<boolean>(false); //
const mainStore = useDisciplineMainStore();
const router = useRouter();
@ -35,7 +38,7 @@ const props = defineProps({
});
const $q = useQuasar();
const modalHistory = ref<boolean>(false)
const modalHistory = ref<boolean>(false);
const statusCheck = ref<string>("");
const modalPerson = ref<boolean>(false);
const mixin = useCounterMixin();
@ -52,11 +55,13 @@ const dataStore = useAppealComplainStore();
const modalEdit = ref<boolean>(false);
const historyStatusOb = reactive<HistoryStatusType[]>([{
status: "",
createdFullName: "",
createdAt: new Date(),
}]);
const historyStatusOb = reactive<HistoryStatusType[]>([
{
status: "",
createdFullName: "",
createdAt: new Date(),
},
]);
const formData = reactive<any>({
profileId: "xx",
@ -87,10 +92,15 @@ const objectAppeal: MyObjectAppealRef = {
};
/** หัวข้อที่เเสดงในตารางผู้ถูกร้องเรียน */
const visibleColumns = ref<string[]>(["no", "citizenId", "fullname","oc",'position']);
const visibleColumns = ref<string[]>([
"no",
"citizenId",
"fullname",
"oc",
"position",
]);
/** หัวตารางผู้ถูกร้องเรียน */
const columns = ref<QTableProps["columns"]>([
{
name: "no",
align: "left",
@ -191,7 +201,6 @@ function inputEdit(val: boolean) {
"full-width cursor-pointer inputgreen ": val,
"full-width cursor-pointer inputgreen": !val,
};
}
function uploadFile() {
@ -279,8 +288,8 @@ function close() {
modalHistory.value = false;
}
function historyStatus(){
modalHistory.value = true
function historyStatus() {
modalHistory.value = true;
}
function onSubmit() {
@ -322,7 +331,6 @@ onMounted(() => {
<div class="q-pa-md">
<div class="q-gutter-y-sm">
<div class="row q-gutter-x-sm">
<div class="col-3">
<q-select
ref="typeRef"
@ -385,7 +393,7 @@ onMounted(() => {
>
นอทธณ/องทกข
<q-btn
v-if="!isReadonly"
v-if="!isReadonly"
size="12px"
flat
round
@ -562,8 +570,9 @@ onMounted(() => {
</q-card>
</form>
</div>
<!-- พโหลดไฟล -->
<div class="col-sm-12 col-md-3">
<div v-if="isReadonly" class="col-sm-12 col-md-3">
<q-card bordered class="row col-12" style="border: 1px solid #d6dee1">
<div class="col-12 text-weight-medium bg-grey-1 q-py-sm q-px-md">
ปโหลดไฟลเอกสารหลกฐาน
@ -660,9 +669,9 @@ onMounted(() => {
/>
<DialogHistory
:modal="modalHistory"
:close="close"
:data="formData.historyStatus"
:modal="modalHistory"
:close="close"
:data="formData.historyStatus"
/>
</template>

View file

@ -235,19 +235,21 @@ const redirectToPage = (id?: string, status?: string) => {
</q-tr>
</template>
<template v-slot:body="props">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="redirectToPage(props.row.orderId, props.row.OrderStatus)"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}
</div>
<div>
{{ col.value }}
</div>
</q-td>
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="redirectToPage(props.row.orderId, props.row.OrderStatus)"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}
</div>
<div>
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
</d-table>
</template>

View file

@ -27,6 +27,10 @@ const props = defineProps({
type: Function,
default: () => "",
},
fetchData: {
type: Function,
default: () => console.log("function fetchData"),
},
rows: {
type: Array,
default: [],
@ -66,7 +70,8 @@ function onclickSend() {
$q,
async () => {
// success($q, `${props.title}`);
emit("returnPerson", selected.value);
await emit("returnPerson", selected.value);
props.fetchData();
props.close?.();
},
`ยืนยันการ${props.title}`,

View file

@ -113,8 +113,9 @@ function downloadFile(link: string) {
</div>
<div class="col-12"><q-separator /></div>
<div v-if="!isReadonly" class="row">
<div class="col-11 q-pa-sm">
<div class="col-12 q-pa-sm row">
<q-file
class="col-11"
outlined
dense
ref="fileRef"
@ -129,19 +130,20 @@ function downloadFile(link: string) {
<q-icon name="attach_file" />
</template>
</q-file>
</div>
<div class="col-1 self-center text-center">
<q-btn
v-if="file"
size="14px"
flat
round
dense
color="add"
icon="mdi-upload"
@click="uploadFile()"
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
>
<div class="col-1 self-center">
<q-btn
v-if="file"
size="14px"
flat
round
dense
color="add"
icon="mdi-upload"
@click="uploadFile()"
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
>
</div>
</div>
</div>

View file

@ -11,6 +11,7 @@ interface Persons {
organization: string; //สังกัด
name: string;
report?: boolean;
isSend?: boolean;
}
interface PersonsArray {
id: string; //id อ้างอิง profile