Просмотр исходного кода

feat: adiciona nova logica em feriado criado por franchisor

ebagabee 2 недель назад
Родитель
Сommit
1902d4936e

+ 5 - 1
src/pages/dashboard/components/FeriadosDialog.vue

@@ -115,7 +115,11 @@
                   }}</q-item-label>
                   }}</q-item-label>
                 </q-item-section>
                 </q-item-section>
                 <q-item-section side>
                 <q-item-section side>
-                  <q-icon name="mdi-pencil-outline" color="grey-5" size="xs" />
+                  <q-icon
+                    :name="holiday.base_holiday_id ? 'mdi-lock-outline' : 'mdi-pencil-outline'"
+                    :color="holiday.base_holiday_id ? 'grey-4' : 'grey-5'"
+                    size="xs"
+                  />
                 </q-item-section>
                 </q-item-section>
               </q-item>
               </q-item>
             </q-list>
             </q-list>

+ 41 - 19
src/pages/dashboard/components/FeriadosEditDialog.vue

@@ -4,12 +4,23 @@
       <DefaultDialogHeader :title="dialogTitle" @close="onDialogCancel" />
       <DefaultDialogHeader :title="dialogTitle" @close="onDialogCancel" />
 
 
       <q-card-section class="column q-gutter-md q-pt-sm">
       <q-card-section class="column q-gutter-md q-pt-sm">
+        <q-banner
+          v-if="isReadOnly"
+          dense
+          rounded
+          class="bg-grey-2 text-grey-7"
+          icon="mdi-lock-outline"
+        >
+          Este feriado foi criado pela franqueadora e não pode ser editado.
+        </q-banner>
+
         <DefaultInput
         <DefaultInput
           v-model="description"
           v-model="description"
           label="Nome do Evento"
           label="Nome do Evento"
           placeholder="Ex: Ponto facultativo, Natal..."
           placeholder="Ex: Ponto facultativo, Natal..."
           icon="mdi-pencil-outline"
           icon="mdi-pencil-outline"
           outlined
           outlined
+          :disable="isReadOnly"
           autofocus
           autofocus
         />
         />
 
 
@@ -20,33 +31,42 @@
           emit-value
           emit-value
           map-options
           map-options
           outlined
           outlined
+          :disable="isReadOnly"
         />
         />
       </q-card-section>
       </q-card-section>
 
 
       <q-separator />
       <q-separator />
 
 
-      <q-card-actions align="between">
-        <q-btn
-          outline
-          color="negative"
-          label="EXCLUIR"
-          no-caps
-          :loading="deleting"
-          @click="confirmDelete"
-        />
-        <div class="row q-gutter-sm">
-          <q-btn outline color="primary" label="CANCELAR" no-caps @click="onDialogCancel" />
+      <template v-if="isReadOnly">
+        <q-card-actions align="right">
+          <q-btn outline color="primary" label="FECHAR" no-caps @click="onDialogCancel" />
+        </q-card-actions>
+      </template>
+
+      <template v-else>
+        <q-card-actions align="between">
           <q-btn
           <q-btn
-            unelevated
-            color="primary"
-            label="SALVAR"
+            outline
+            color="negative"
+            label="EXCLUIR"
             no-caps
             no-caps
-            :disable="!description.trim()"
-            :loading="saving"
-            @click="save"
+            :loading="deleting"
+            @click="confirmDelete"
           />
           />
-        </div>
-      </q-card-actions>
+          <div class="row q-gutter-sm">
+            <q-btn outline color="primary" label="CANCELAR" no-caps @click="onDialogCancel" />
+            <q-btn
+              unelevated
+              color="primary"
+              label="SALVAR"
+              no-caps
+              :disable="!description.trim()"
+              :loading="saving"
+              @click="save"
+            />
+          </div>
+        </q-card-actions>
+      </template>
     </q-card>
     </q-card>
   </q-dialog>
   </q-dialog>
 </template>
 </template>
@@ -71,6 +91,8 @@ const props = defineProps({
   },
   },
 });
 });
 
 
+const isReadOnly = computed(() => !!props.holiday.base_holiday_id);
+
 const description = ref(props.holiday.description);
 const description = ref(props.holiday.description);
 const type = ref(props.holiday.type ?? "feriado");
 const type = ref(props.holiday.type ?? "feriado");
 const saving = ref(false);
 const saving = ref(false);