fix เครื่องราช
This commit is contained in:
parent
0796c36f73
commit
07a5aa1a07
5 changed files with 313 additions and 279 deletions
|
|
@ -17,7 +17,14 @@ import type {
|
|||
/** use*/
|
||||
const $q = useQuasar();
|
||||
const mixin = useCounterMixin();
|
||||
const { success, messageError, hideLoader, dialogConfirm, showLoader } = mixin;
|
||||
const {
|
||||
success,
|
||||
messageError,
|
||||
hideLoader,
|
||||
dialogConfirm,
|
||||
showLoader,
|
||||
onSearchDataTable,
|
||||
} = mixin;
|
||||
|
||||
/**
|
||||
* props
|
||||
|
|
@ -36,6 +43,7 @@ const filterKeyword = ref<string>(""); //คำค้นหา
|
|||
|
||||
/** คอลัมน์ตาราง*/
|
||||
const rows2 = ref<DataDocuments[]>([]);
|
||||
const rowsMain = ref<DataDocuments[]>([]);
|
||||
const colums2 = ref<QTableProps["columns"]>([
|
||||
{
|
||||
name: "no",
|
||||
|
|
@ -58,13 +66,6 @@ const colums2 = ref<QTableProps["columns"]>([
|
|||
field: "annotation",
|
||||
sortable: true,
|
||||
},
|
||||
{
|
||||
name: "file",
|
||||
align: "left",
|
||||
label: "ไฟล์เอกสาร",
|
||||
field: "file",
|
||||
sortable: false,
|
||||
},
|
||||
]);
|
||||
const visibleColumnsReference = ref<String[]>([
|
||||
"no",
|
||||
|
|
@ -90,6 +91,7 @@ async function getRequest() {
|
|||
file: item.pathName,
|
||||
});
|
||||
});
|
||||
rowsMain.value = rows2.value;
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
|
|
@ -113,7 +115,8 @@ function save() {
|
|||
dataAppend.append("File", fileUpload.value);
|
||||
await http
|
||||
.put(config.API.requestDocNote(props.roundId as string), dataAppend)
|
||||
.then(() => {
|
||||
.then(async () => {
|
||||
await getRequest();
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
})
|
||||
.catch((e) => {
|
||||
|
|
@ -126,7 +129,6 @@ function save() {
|
|||
|
||||
// reset เพื่อไม่ให้ฟอร์มแจ้งเตือ validate หลังบันทึกเสร็จแล้วล้างค่าฟิลด์ต่างๆ
|
||||
myForm.value.reset();
|
||||
getRequest();
|
||||
hideLoader();
|
||||
});
|
||||
});
|
||||
|
|
@ -134,13 +136,6 @@ function save() {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* function resetFilter
|
||||
*/
|
||||
function resetFilterRef() {
|
||||
filterKeyword.value = "";
|
||||
}
|
||||
|
||||
const pagination = ref({
|
||||
sortBy: "filename",
|
||||
descending: true,
|
||||
|
|
@ -148,6 +143,13 @@ const pagination = ref({
|
|||
rowsPerPage: 10,
|
||||
});
|
||||
|
||||
function serchDataTable() {
|
||||
rows2.value = onSearchDataTable(
|
||||
filterKeyword.value,
|
||||
rowsMain.value,
|
||||
colums2.value ? colums2.value : []
|
||||
);
|
||||
}
|
||||
/**hook*/
|
||||
onMounted(async () => {
|
||||
await getRequest();
|
||||
|
|
@ -217,48 +219,42 @@ onMounted(async () => {
|
|||
</q-form>
|
||||
</q-card>
|
||||
<div class="row col-12">
|
||||
<q-space />
|
||||
<q-input
|
||||
class="col-xs-12 col-sm-3 col-md-2"
|
||||
standout
|
||||
dense
|
||||
v-model="filterKeyword"
|
||||
outlined
|
||||
debounce="300"
|
||||
placeholder="ค้นหา"
|
||||
>
|
||||
<template v-slot:append>
|
||||
<q-icon v-if="filterKeyword == ''" name="search" />
|
||||
<q-icon
|
||||
v-if="filterKeyword !== ''"
|
||||
name="clear"
|
||||
class="cursor-pointer"
|
||||
@click="resetFilterRef"
|
||||
/>
|
||||
</template>
|
||||
</q-input>
|
||||
<div class="col-12 row">
|
||||
<q-space />
|
||||
<div class="row q-col-gutter-sm">
|
||||
<q-input
|
||||
standout
|
||||
dense
|
||||
v-model="filterKeyword"
|
||||
outlined
|
||||
placeholder="ค้นหา"
|
||||
@keydown.enter.pervent="serchDataTable"
|
||||
>
|
||||
<template v-slot:append>
|
||||
<q-icon name="search" />
|
||||
</template>
|
||||
</q-input>
|
||||
|
||||
<q-select
|
||||
v-model="visibleColumnsReference"
|
||||
multiple
|
||||
outlined
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$q.lang.table.columns"
|
||||
emit-value
|
||||
map-options
|
||||
:options="colums2"
|
||||
option-value="name"
|
||||
|
||||
style="min-width: 140px"
|
||||
class="col-xs-12 col-sm-3 col-md-2 q-ml-sm"
|
||||
/>
|
||||
<q-select
|
||||
v-model="visibleColumnsReference"
|
||||
multiple
|
||||
outlined
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$q.lang.table.columns"
|
||||
emit-value
|
||||
map-options
|
||||
:options="colums2"
|
||||
option-value="name"
|
||||
style="min-width: 140px"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 q-pt-sm">
|
||||
<d-table
|
||||
:columns="colums2"
|
||||
:rows="rows2"
|
||||
:filter="filterKeyword"
|
||||
row-key="fileName"
|
||||
:visible-columns="visibleColumnsReference"
|
||||
v-model:pagination="pagination"
|
||||
|
|
@ -268,6 +264,7 @@ onMounted(async () => {
|
|||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||
<span class="text-weight-medium">{{ col.label }}</span>
|
||||
</q-th>
|
||||
<q-th auto-width />
|
||||
</q-tr>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,14 @@ import DialogEdit from "@/modules/07_insignia/components/4_Allocate/DialogEdit.v
|
|||
const router = useRouter();
|
||||
const DataStore = useAllocateDataStore();
|
||||
const mixin = useCounterMixin();
|
||||
const { showLoader, hideLoader, messageError, success, dialogRemove } = mixin;
|
||||
const {
|
||||
showLoader,
|
||||
hideLoader,
|
||||
messageError,
|
||||
success,
|
||||
dialogRemove,
|
||||
onSearchDataTable,
|
||||
} = mixin;
|
||||
|
||||
const attrs = ref<any>(useAttrs());
|
||||
const $q = useQuasar(); //ใช้ noti quasar
|
||||
|
|
@ -32,6 +39,7 @@ const route = useRoute();
|
|||
|
||||
/** ข้อมูล Table*/
|
||||
const rows = ref<ResponseAllocate[]>([]);
|
||||
const rowsMain = ref<ResponseAllocate[]>([]);
|
||||
const columns = ref<QTableProps["columns"]>([
|
||||
{
|
||||
name: "no",
|
||||
|
|
@ -104,9 +112,7 @@ const stat = ref({
|
|||
remain: 0, //จำนวนเครื่องราช ฯ คงเหลือ
|
||||
});
|
||||
|
||||
/**
|
||||
* funcion เรียกข้อมูล stat
|
||||
*/
|
||||
/** funcion เรียกข้อมูล stat*/
|
||||
async function fetchDashboard() {
|
||||
await http
|
||||
.get(config.API.insigniaManageOrgDashboard(id.value))
|
||||
|
|
@ -122,11 +128,8 @@ async function fetchDashboard() {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* funcion เรียกข้อมูลรายชื่อ หน่วยงานจัดสรรเครื่องราชอิสริยาภรณ์ ตริตาภรณ์มงกุฎไทย ()
|
||||
*/
|
||||
/** funcion เรียกข้อมูลรายชื่อ หน่วยงานจัดสรรเครื่องราชอิสริยาภรณ์ ตริตาภรณ์มงกุฎไทย ()*/
|
||||
async function fetchListData() {
|
||||
// showLoader();
|
||||
await http
|
||||
.get(config.API.insigniaManageOrg(id.value))
|
||||
.then((res) => {
|
||||
|
|
@ -137,18 +140,14 @@ async function fetchListData() {
|
|||
allocate: e.allocate,
|
||||
remain: e.remain,
|
||||
}));
|
||||
rowsMain.value = rows.value;
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
// hideLoader();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* funcion เรียกข้อมูลหน่วยงานจัดสรรเครื่องราชอิสริยาภรณ์
|
||||
*/
|
||||
/** funcion เรียกข้อมูลหน่วยงานจัดสรรเครื่องราชอิสริยาภรณ์*/
|
||||
async function fetchOrgList() {
|
||||
http
|
||||
.get(config.API.activeOrganization)
|
||||
|
|
@ -173,16 +172,12 @@ async function fetchOrgList() {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* funcion ย้อนกลับหน้าจัดสรรเครื่องราชอิสริยาภรณ์
|
||||
*/
|
||||
/** funcion ย้อนกลับหน้าจัดสรรเครื่องราชอิสริยาภรณ์*/
|
||||
function backHistory() {
|
||||
router.push(`/insignia/allocate`);
|
||||
}
|
||||
|
||||
/**
|
||||
* funcion closePopup
|
||||
*/
|
||||
/** funcion closePopup*/
|
||||
function close() {
|
||||
modal.value = false;
|
||||
modalEdit.value = false;
|
||||
|
|
@ -278,10 +273,14 @@ function clickAdd() {
|
|||
/** ค้นหาในตาราง*/
|
||||
const filterKeyword = ref<string>("");
|
||||
const filterRef = ref<any>(null);
|
||||
const resetFilter = () => {
|
||||
filterKeyword.value = "";
|
||||
filterRef.value.focus();
|
||||
};
|
||||
|
||||
function serchDataTable() {
|
||||
rows.value = onSearchDataTable(
|
||||
filterKeyword.value,
|
||||
rowsMain.value,
|
||||
columns.value ? columns.value : []
|
||||
);
|
||||
}
|
||||
|
||||
/** Hook*/
|
||||
onMounted(async () => {
|
||||
|
|
@ -332,9 +331,10 @@ onMounted(async () => {
|
|||
</div>
|
||||
</div>
|
||||
</q-card>
|
||||
|
||||
<q-card flat bordered class="col-12 q-mt-sm q-pa-md">
|
||||
<div class="row q-col-gutter-sm">
|
||||
<div class="row col-12 q-col-gutter-sm">
|
||||
<div class="row col-12">
|
||||
<div>
|
||||
<q-btn
|
||||
@click="clickAdd()"
|
||||
|
|
@ -348,49 +348,42 @@ onMounted(async () => {
|
|||
</q-btn>
|
||||
</div>
|
||||
<q-space />
|
||||
<div class="row q-col-gutter-sm">
|
||||
<q-input
|
||||
standout
|
||||
dense
|
||||
v-model="filterKeyword"
|
||||
ref="filterRef"
|
||||
outlined
|
||||
@keydown.enter.pervent="serchDataTable"
|
||||
placeholder="ค้นหา"
|
||||
>
|
||||
<template v-slot:append>
|
||||
<q-icon name="search" />
|
||||
</template>
|
||||
</q-input>
|
||||
|
||||
<q-input
|
||||
class="col-xs-12 col-sm-3 col-md-2"
|
||||
standout
|
||||
dense
|
||||
v-model="filterKeyword"
|
||||
ref="filterRef"
|
||||
outlined
|
||||
debounce="300"
|
||||
placeholder="ค้นหา"
|
||||
>
|
||||
<template v-slot:append>
|
||||
<q-icon v-if="filterKeyword == ''" name="search" />
|
||||
<q-icon
|
||||
v-if="filterKeyword !== ''"
|
||||
name="clear"
|
||||
class="cursor-pointer"
|
||||
@click="resetFilter"
|
||||
/>
|
||||
</template>
|
||||
</q-input>
|
||||
|
||||
<q-select
|
||||
v-model="visibleColumns"
|
||||
multiple
|
||||
outlined
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$q.lang.table.columns"
|
||||
emit-value
|
||||
map-options
|
||||
:options="columns"
|
||||
option-value="name"
|
||||
style="min-width: 140px"
|
||||
class="col-xs-12 col-sm-3 col-md-2"
|
||||
/>
|
||||
<q-select
|
||||
v-model="visibleColumns"
|
||||
multiple
|
||||
outlined
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$q.lang.table.columns"
|
||||
emit-value
|
||||
map-options
|
||||
:options="columns"
|
||||
option-value="name"
|
||||
style="min-width: 140px"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<d-table
|
||||
ref="table"
|
||||
:columns="columns"
|
||||
:rows="rows"
|
||||
:filter="filterKeyword"
|
||||
row-key="id"
|
||||
flat
|
||||
bordered
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue