Kaynağa Gözat

refactor: altera nome de dialog

ebagabee 4 hafta önce
ebeveyn
işleme
3285a49ed5

+ 8 - 7
src/pages/support/SupportPage.vue

@@ -10,7 +10,7 @@
       :female="false"
       no-api-call
       description="tickets"
-      @on-add-item="openAddTicketDialog"
+      @on-add-item="openAddEditTicketDialog()"
     >
       <template #body-cell-actions="{ row }">
         <q-btn
@@ -38,17 +38,18 @@ import { useQuasar } from "quasar";
 import DefaultTable from "src/components/defaults/DefaultTable.vue";
 import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
 
-const AddTicketDialog = defineAsyncComponent(
-  () => import("src/pages/support/components/AddTicketDialog.vue"),
+const AddEditTicketDialog = defineAsyncComponent(
+  () => import("src/pages/support/components/AddEditTicketDialog.vue"),
 );
 
 const $q = useQuasar();
 const tableRef = useTemplateRef("tableRef");
 const rows = ref([]);
 
-const openAddTicketDialog = () => {
+const openAddEditTicketDialog = (ticket = null) => {
   $q.dialog({
-    component: AddTicketDialog,
+    component: AddEditTicketDialog,
+    componentProps: { ticket },
   }).onOk(() => {
     tableRef.value?.refresh();
   });
@@ -106,8 +107,8 @@ const columns = [
   },
 ];
 
-const handleEdit = () => {
-  // TODO: implement edit
+const handleEdit = (row) => {
+  openAddEditTicketDialog(row);
 };
 
 const handleDelete = () => {

+ 18 - 8
src/pages/support/components/AddTicketDialog.vue → src/pages/support/components/AddEditTicketDialog.vue

@@ -2,7 +2,10 @@
   <q-dialog ref="dialogRef" @hide="onDialogHide">
     <div style="width: 100%; max-width: 1100px">
       <q-card class="overflow-hidden" style="width: 100%">
-        <DefaultDialogHeader title="Novo Ticket" @close="onDialogCancel" />
+        <DefaultDialogHeader
+          :title="ticket ? 'Editar Ticket' : 'Novo Ticket'"
+          @close="onDialogCancel"
+        />
 
         <q-form ref="formRef" @submit="onOKClick">
           <q-card-section class="q-pt-sm">
@@ -96,6 +99,13 @@ import UnitSelect from "src/components/selects/UnitSelect.vue";
 
 defineEmits([...useDialogPluginComponent.emits]);
 
+const { ticket } = defineProps({
+  ticket: {
+    type: Object,
+    default: null,
+  },
+});
+
 const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } =
   useDialogPluginComponent();
 
@@ -115,13 +125,13 @@ const priorityOptions = [
 ];
 
 const form = ref({
-  title: null,
-  date: null,
-  priority: null,
-  responsible: null,
-  unit: null,
-  sector: null,
-  description: null,
+  title: ticket?.title ?? null,
+  date: ticket?.date ?? null,
+  priority: ticket?.priority ?? null,
+  responsible: ticket?.responsible ?? null,
+  unit: ticket?.unit ?? null,
+  sector: ticket?.sector ?? null,
+  description: ticket?.description ?? null,
 });
 
 const onOKClick = async () => {