174 lines
4.2 KiB
JavaScript
174 lines
4.2 KiB
JavaScript
/* hooks order
|
|
1) extension
|
|
2) mixins
|
|
3) component
|
|
*/
|
|
|
|
import { mapState, mapActions } from "pinia";
|
|
// import HttpService from "~/services/httpService";
|
|
import { useCommonStore } from "~/stores/commonStore";
|
|
|
|
export default {
|
|
// beforeMount() {
|
|
// this.searchHttpService = new HttpService(import.meta.env.VITE_REPO_BASE_URL);
|
|
// },
|
|
data() {
|
|
return {
|
|
searchHttpService: undefined,
|
|
originNokeysArray: [],
|
|
viewMode: "table",
|
|
listItem: [],
|
|
|
|
sorting: {
|
|
sortby: "created",
|
|
sortorder: "asc", // asc | desc
|
|
},
|
|
|
|
filterUrl: "",
|
|
countInPage: 10,
|
|
page: 0,
|
|
|
|
pagination: {
|
|
pages: 0,
|
|
total: 0,
|
|
page: 1,
|
|
offset: 0, // page * per_page
|
|
limit: 10, //per_page
|
|
},
|
|
|
|
fetchingData: false,
|
|
tableColumns: [
|
|
{
|
|
key: "key",
|
|
title: "عنوان",
|
|
width: "2",
|
|
},
|
|
{
|
|
key: "doc_count",
|
|
title: "تعداد تکرار",
|
|
width: "2",
|
|
},
|
|
{
|
|
key: "last_access",
|
|
title: "تاریخ",
|
|
width: "4",
|
|
},
|
|
],
|
|
};
|
|
},
|
|
computed: {
|
|
...mapState(useCommonStore, ["getPanelStatus", "isSidebarCollapsed"]),
|
|
listTitle() {
|
|
return this.$route.meta.breadcrumb;
|
|
},
|
|
},
|
|
methods: {
|
|
...mapActions(useCommonStore, ["TOGGLE_PANEL"]),
|
|
toggleSidebarMenu() {
|
|
const CommonStore = useCommonStore();
|
|
CommonStore.TOGGLE_SIDEBAR_MENU();
|
|
},
|
|
filterUpdate: function (filter) {
|
|
this.filterUrl = filter;
|
|
this.resetPagination();
|
|
this.getData();
|
|
},
|
|
async getData(apiKey = this.$route.meta.apiKey, limit = undefined) {
|
|
// if(this.fetchingData) return;
|
|
// this.fetchingData = true;
|
|
var vm = this;
|
|
if (limit === undefined) limit = vm.pagination.limit;
|
|
// this.fetchingData = true;
|
|
var suburl = `/searchlog/`;
|
|
// searchlog/nokeys/0/10
|
|
|
|
try {
|
|
const { $api } = useNuxtApp();
|
|
const response = await $api(
|
|
suburl +
|
|
apiKey +
|
|
"/" +
|
|
vm.pagination.offset +
|
|
"/" +
|
|
limit +
|
|
"?sortby=" +
|
|
vm.sorting.sortby +
|
|
"&sortorder=" +
|
|
vm.sorting.sortorder +
|
|
vm.filterUrl,
|
|
{
|
|
baseURL: import.meta.env.VITE_REPO_BASE_URL,
|
|
method: "GET",
|
|
}
|
|
);
|
|
|
|
vm.listItem = [];
|
|
vm.fetchingData = false;
|
|
|
|
if (response?.hits) {
|
|
vm.pagination.pages = Math.ceil(
|
|
response.hits.total.value / vm.pagination.limit
|
|
);
|
|
vm.pagination.total = response.hits.total.value;
|
|
vm.listItem = response.aggregations.query_String.buckets;
|
|
} else {
|
|
this.originNokeysArray = structuredClone(response.buckets);
|
|
|
|
vm.pagination.pages = Math.ceil(
|
|
response.buckets.length / vm.pagination.limit
|
|
);
|
|
vm.pagination.total = response.buckets.length;
|
|
|
|
vm.listItem = response.buckets.slice(
|
|
vm.pagination.offset,
|
|
vm.pagination.limit
|
|
);
|
|
}
|
|
setTimeout(() => {
|
|
vm.$refs?.filterlist?.setAnswer(response.aggregations);
|
|
}, 500);
|
|
|
|
return vm.listItem;
|
|
} catch (err) {
|
|
|
|
}
|
|
},
|
|
resetPagination() {
|
|
this.page = 0;
|
|
this.countInPage = 10;
|
|
|
|
this.pagination = {
|
|
pages: 0,
|
|
total: 0,
|
|
page: 1,
|
|
offset: 0, // page * per_page
|
|
limit: 10, //per_page
|
|
};
|
|
},
|
|
pageChanged(paging) {
|
|
// keep original page number and just updating the offset.
|
|
let page = paging.pageNumber;
|
|
page -= 1;
|
|
this.pagination.offset = page * paging.limit;
|
|
this.pagination.limit = paging.limit;
|
|
this.pagination.page = paging.pageNumber;
|
|
|
|
this.getData();
|
|
},
|
|
pageLimitChanged(paging) {
|
|
this.resetPagination();
|
|
this.pagination.limit = paging.limit;
|
|
|
|
this.getData();
|
|
},
|
|
sortChanged(sorting) {
|
|
// keep limit status.
|
|
// reset page and offset values.
|
|
this.pagination.page = this.pagination.offset = 0;
|
|
this.sorting = sorting;
|
|
|
|
this.getData();
|
|
},
|
|
},
|
|
};
|