เรื่องร้องเรียน อัปโหลด ลบ ไฟล์

This commit is contained in:
setthawutttty 2023-11-23 15:41:05 +07:00
parent 7e88b119cf
commit e5291cfe34
4 changed files with 99 additions and 85 deletions

View file

@ -17,5 +17,6 @@ export default {
complaintAdd:() => `${discipline}/complaint`,
complaintbyId:(id:string) => `${discipline}/complaint/${id}`,
complaintList:(page:number,pageSize:number,keyword:string) => `${discipline}/complaint?page=${page}&pageSize=${pageSize}&keyword=${keyword}`,
complaintFileUpload:(id:string) => `${discipline}/complaint/file/${id}`,
complaintFileDelete:(id:string,docId:string) => `${discipline}/complaint/file/${id}/${docId}`
};

View file

@ -46,6 +46,7 @@ const fileListOj = reactive<ArrayFileList>({
});
const data = reactive<FormData>({
id:'',
respondentType: "",
organizationId: "",
consideredAgency: "",
@ -132,6 +133,7 @@ async function getData() {
.get(config.API.complaintbyId(id.value))
.then((res) => {
const dataList = res.data.result;
data.id = dataList.id
data.respondentType = dataList.respondentType
data.organizationId = dataList.organizationId
data.consideredAgency = dataList.consideredAgency
@ -149,7 +151,7 @@ async function getData() {
data.rejectReason = dataList.rejectReason
data.disciplineComplaintDocs = dataList.disciplineComplaintDocs
console.log('list', dataList.persons)
console.log('list', data.id)
})
.catch((e) => {
messageError($q, e);
@ -271,7 +273,7 @@ onMounted(() => {
</div>
</div>
<Form :on-submit="onSubmit" :data="data" />
<Form :on-submit="onSubmit" :data="data" :get-data="getData"/>
<Popup :modal="modalPopup" :close="closePopup" />
</div>
</template>

View file

@ -28,7 +28,15 @@ const fileDocDataUpload = ref<File[]>([]);
/** เรียกใช้ store */
const mixin = useCounterMixin();
const complainstStore = useComplainstDataStore();
const { date2Thai, dialogConfirm, dialogRemove, success } = mixin;
const {
date2Thai,
dialogConfirm,
dialogRemove,
success,
messageError,
hideLoader,
showLoader,
} = mixin;
const { selectComplainantTpye, filterSelector } = complainstStore; // function store complainstStore
/** validateForm */
@ -57,6 +65,10 @@ const props = defineProps({
type: Function,
default: () => "",
},
getData: {
type: Function,
default: () => "",
},
});
const fileListOj = reactive<ArrayFileList>({
@ -66,6 +78,7 @@ const fileListOj = reactive<ArrayFileList>({
});
const formData = reactive<FormData>({
id: "",
respondentType: "",
organizationId: null,
consideredAgency: "",
@ -303,12 +316,10 @@ function onSubmit() {
dialogConfirm(
$q,
async () => {
if(complainstStore.rowsAdd){
formData.persons = complainstStore.rowsAdd
props.onSubmit(formData)
}else(
props.onSubmit(formData)
)
if (complainstStore.rowsAdd) {
formData.persons = complainstStore.rowsAdd;
props.onSubmit(formData);
} else props.onSubmit(formData);
// props.onSubmit(formData);
},
"ยืนยันการบันทึกข้อมูล",
@ -341,7 +352,18 @@ function deleteFile(id: string) {
* @param id id file
*/
function confirmDelete(id: string) {
success($q, `ลบไฟล์สำเร็จ #id:${id}`);
showLoader();
http
.delete(config.API.complaintFileDelete(formData.id, id))
.then((res) => {
success($q, `ลบไฟล์สำเร็จ`);
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
props.getData();
});
}
/**
@ -352,7 +374,7 @@ function confirmDelete(id: string) {
watch(props.data, async () => {
fileList.value = props.data.disciplineComplaintDocs;
complainstStore.fetchComplainstAdd(props.data.persons);
formData.id = props.data.id;
formData.respondentType = props.data.respondentType;
formData.organizationId = props.data.organizationId;
formData.consideredAgency = props.data.consideredAgency;
@ -365,10 +387,8 @@ watch(props.data, async () => {
formData.dateNotification = props.data.dateNotification;
formData.complaintFrom = props.data.complaintFrom;
formData.appellant = props.data.appellant;
formData.documentFile = props.data.documentFile;
formData.status = props.data.status;
formData.persons = complainstStore.rowsAdd
formData.persons = complainstStore.rowsAdd;
});
/**
@ -380,7 +400,27 @@ function handleSave(returnData: any) {
toggleModal();
}
async function addPerson(data:any) {
function upLoadFileDoc() {
const Data = new FormData();
Data.append("file", formData.documentFile);
showLoader();
http
.put(config.API.complaintFileUpload(formData.id), Data)
.then((res) => {
console.log(res);
success($q, "บันทึกข้อมูลสำเร็จ");
router.push(`/discipline/complaints`);
})
.catch((e) => {
messageError($q, e);
})
.finally(async () => {
hideLoader();
});
console.log("file", formData.documentFile, formData.id);
}
async function addPerson(data: any) {
await complainstStore.fetchComplainstAdd(data);
toggleModal();
}
@ -410,10 +450,7 @@ onMounted(() => {
ref="respondentTypeRef"
dense
outlined
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
label="ผู้ถูกร้องเรียน"
option-value="id"
option-label="name"
@ -450,10 +487,7 @@ onMounted(() => {
ref="organizationIdRef"
dense
hide-bottom-space
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
outlined
option-label="name"
option-value="id"
@ -478,10 +512,7 @@ onMounted(() => {
label="หน่วยงานที่พิจารณา"
option-value="id"
option-label="name"
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
hide-bottom-space
emit-value
map-options
@ -512,10 +543,7 @@ onMounted(() => {
>
กรองเรยน
<q-btn
v-if="
formData.status === 'NEW' ||
formData.status === ''
"
v-if="formData.status === 'NEW' || formData.status === ''"
size="12px"
flat
round
@ -582,10 +610,7 @@ onMounted(() => {
ref="titleRef"
dense
outlined
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
hide-bottom-space
v-model="formData.title"
:rules="[(val) => !!val || 'กรุณาการข้อมูล']"
@ -602,10 +627,7 @@ onMounted(() => {
ref="descriptionRef"
dense
outlined
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
hide-bottom-space
v-model="formData.description"
:rules="[(val) => !!val || 'กรุณาการข้อมูล']"
@ -623,10 +645,7 @@ onMounted(() => {
:locale="'th'"
autoApply
borderless
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
:enableTimePicker="false"
week-start="0"
>
@ -643,8 +662,7 @@ onMounted(() => {
outlined
dense
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
formData.status !== 'NEW' && formData.status !== ''
"
hide-bottom-space
class="full-width datepicker"
@ -678,10 +696,7 @@ onMounted(() => {
ref="levelConsiderationRef"
dense
outlined
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
v-model="formData.levelConsideration"
:options="levelConsiderationtoptions"
label="ระดับการพิจารณา"
@ -702,10 +717,7 @@ onMounted(() => {
v-model="formData.dateConsideration"
@update:model-value="selectLevel(formData.levelConsideration)"
:locale="'th'"
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
autoApply
borderless
:enableTimePicker="false"
@ -730,8 +742,7 @@ onMounted(() => {
: null
"
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
formData.status !== 'NEW' && formData.status !== ''
"
label="วันที่กำหนดวันพิจารณา"
hide-bottom-space
@ -759,10 +770,7 @@ onMounted(() => {
ref="offenseDetailsRef"
dense
outlined
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
v-model="formData.offenseDetails"
:options="offenseDetailstoptions"
label="ลักษณะความผิด"
@ -782,10 +790,7 @@ onMounted(() => {
v-model="formData.dateNotification"
:locale="'th'"
autoApply
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
borderless
:enableTimePicker="false"
week-start="0"
@ -803,8 +808,7 @@ onMounted(() => {
outlined
dense
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
formData.status !== 'NEW' && formData.status !== ''
"
hide-bottom-space
class="full-width datepicker"
@ -838,10 +842,7 @@ onMounted(() => {
for="selectReceivecomplaints"
ref="complaintFromRef"
dense
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
outlined
v-model="formData.complaintFrom"
:options="complaintFromtoptions"
@ -863,10 +864,7 @@ onMounted(() => {
dense
outlined
v-model="formData.appellant"
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
label="ผู้ร้องเรียน"
:rules="[(val) => !!val || `${'กรุณากรอกข้อมูล'}`]"
lazy-rules
@ -875,15 +873,29 @@ onMounted(() => {
rows="5"
/>
</div>
<div class="col-xs-12 col-sm-12">
<q-input
for="inputInspectionResults"
ref="inputRef"
dense
outlined
hide-bottom-space
v-model="formData.rejectReason"
:rules="[
(val) => !!val || 'กรุณากรอกผลการตรวจสอบเรื่องร้องเรียน',
]"
lazy-rules
label="ผลการตรวจสอบเรื่องร้องเรียน"
type="textarea"
rows="5"
/>
</div>
</div>
</div>
<q-separator />
<div
class="row col-12 q-pa-sm"
v-if="
formData.status === 'NEW' ||
formData.status === ''
"
v-if="formData.status === 'NEW' || formData.status === ''"
>
<q-space />
<q-btn
@ -899,25 +911,22 @@ onMounted(() => {
</q-card>
</div>
<div class="col-12 q-mt-sm q-mb-lg">
<div class="col-12 q-mt-sm q-mb-lg" v-if="props.data">
<q-card flat bordered>
<div
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"
>
ปโหลดไฟลเอกสารหลกฐาน
{{ formData.status === 'NEW'? 'อัปโหลดไฟล์เอกสารหลักฐาน':'ไฟล์เอกสารหลักฐาน'}}
</div>
<div class="col-12"><q-separator /></div>
<div class="row q-ma-sm q-col-gutter-x-sm">
<div class="row q-ma-sm q-col-gutter-x-sm" v-if="formData.status === 'NEW'">
<div class="col-11" id="documentFile">
<q-file
for="inputFiles"
outlined
dense
class="fit"
:readonly="
formData.status !== 'NEW' &&
formData.status !== ''
"
:readonly="formData.status !== 'NEW' && formData.status !== ''"
v-model="formData.documentFile"
@added="fileUploadDoc"
label="ไฟล์เอกสารหลักฐาน"
@ -940,6 +949,7 @@ onMounted(() => {
color="add"
class="q-ml-sm"
icon="mdi-upload"
@click="upLoadFileDoc()"
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
>
</div>

View file

@ -1,4 +1,5 @@
interface FormData {
id:string
respondentType: string
consideredAgency: string
title: string