| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <template>
- <div>
- <DefaultHeaderPage />
- <div>
- <DefaultTable
- ref="tableRef"
- :columns="columns"
- :api-call="getProviders"
- :delete-function="deleteProvider"
- :mostrar-selecao-de-colunas="false"
- :mostrar-botao-fullscreen="false"
- :mostrar-toggle-inativos="false"
- open-item
- add-item
- @on-row-click="onRowClick"
- @on-add-item="onAddItem"
- />
- </div>
- </div>
- </template>
- <script setup>
- import { defineAsyncComponent, useTemplateRef } from "vue";
- import { useQuasar } from "quasar";
- import { useI18n } from "vue-i18n";
- import { permissionStore } from "src/stores/permission";
- import { getProviders, deleteProvider } from "src/api/provider";
- import DefaultTable from "src/components/defaults/DefaultTable.vue";
- import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
- // import { formatDateYMDtoDMY } from "src/helpers/utils";
- const AddEditProviderDialog = defineAsyncComponent(
- () => import("src/pages/provider/components/AddEditProviderDialog.vue"),
- );
- const permission_store = permissionStore();
- const $q = useQuasar();
- const tableRef = useTemplateRef("tableRef");
- const { t } = useI18n();
- const columns = [
- {
- name: "id",
- label: "ID",
- field: "id",
- align: "left",
- required: true,
- sortable: true,
- },
- {
- name: "document",
- label: t("provider.fields.document"),
- field: "document",
- align: "left",
- sortable: true,
- },
- {
- name: "user",
- label: t("common.terms.user"),
- field: (row) => row.user?.name || "-",
- align: "left",
- sortable: true,
- },
- {
- name: "birth_date",
- label: t("provider.fields.birth_date"),
- field: "birth_date",
- // format: (val) => (val ? formatDateYMDtoDMY(val) : "-"),
- align: "left",
- sortable: true,
- },
- {
- name: "is_approved",
- label: t("provider.fields.is_approved"),
- field: (row) => (row.is_approved ? t("common.status.yes") : t("common.status.no")),
- align: "left",
- sortable: true,
- },
- {
- name: "average_rating",
- label: t("provider.fields.average_rating"),
- field: (row) => row.average_rating || "-",
- align: "left",
- sortable: true,
- },
- {
- name: "total_services",
- label: t("provider.fields.total_services"),
- field: "total_services",
- align: "left",
- sortable: true,
- },
- {
- name: "daily_price_8h",
- label: t("provider.fields.daily_price_8h"),
- field: (row) => row.daily_price_8h ? `R$ ${row.daily_price_8h}` : "-",
- align: "left",
- sortable: true,
- },
- {
- name: "actions",
- required: true,
- },
- ];
- const onRowClick = ({ row }) => {
- if (permission_store.getAccess("config.provider", "edit") === false) {
- $q.loading.hide();
- $q.notify({
- type: "negative",
- message: t("validation.permissions.edit"),
- });
- return;
- }
- $q.dialog({
- component: AddEditProviderDialog,
- componentProps: {
- provider: row,
- title: () =>
- useI18n().t("common.actions.edit") +
- " " +
- useI18n().t("ui.navigation.provider"),
- },
- }).onOk(async (success) => {
- if (success) {
- tableRef.value.refresh();
- }
- });
- };
- const onAddItem = () => {
- if (permission_store.getAccess("config.provider", "add") === false) {
- $q.loading.hide();
- $q.notify({
- type: "negative",
- message: t("validation.permissions.add"),
- });
- return;
- }
- $q.dialog({
- component: AddEditProviderDialog,
- componentProps: {
- title: () =>
- useI18n().t("common.actions.add") + " " + useI18n().t("ui.navigation.provider"),
- },
- }).onOk(async (success) => {
- if (success) {
- tableRef.value.refresh();
- }
- });
- };
- </script>
|