Componente aparte para seccion canastas

This commit is contained in:
Alejandro Tasistro 2025-06-18 19:46:00 -03:00
parent a497ae134e
commit 5c3d68a4e9
3 changed files with 118 additions and 95 deletions

View file

@ -1,110 +1,87 @@
<template> <template>
<div class="block ml-3 mr-3 is-max-widescreen is-max-desktop"> <div class="block ml-3 mr-3 is-max-widescreen is-max-desktop">
<comunes-tabs-secciones :tabs="tabs" :tabInicial="tabActiva"></comunes-tabs-secciones> <tabs-secciones :tabs="tabs" :tabInicial="tabActiva"/>
<div class="block pb-6" id="pedidos-comisiones-seccion" <div class="block pb-6"
id="pedidos-comisiones-seccion"
:class="seccionActiva === 'pedidos-comisiones-seccion' ? 'is-active' : 'is-hidden'"> :class="seccionActiva === 'pedidos-comisiones-seccion' ? 'is-active' : 'is-hidden'">
<div class="block" id="pedidos-comisiones-tabla-y-dropdown"> <div class="block" id="pedidos-comisiones-tabla-y-dropdown">
<dropdown-descargar/> <dropdown-descargar/>
</div> </div>
</div> </div>
<div class="block pb-6" id="canasta-comisiones-seccion" <div class="block pb-6"
id="canasta-comisiones-seccion"
:class="seccionActiva === 'canasta-comisiones-seccion' ? 'is-active' : 'is-hidden'"> :class="seccionActiva === 'canasta-comisiones-seccion' ? 'is-active' : 'is-hidden'">
<div class="block" id="canasta-comisiones-seccion"> <canasta-seccion/>
<article class="message is-warning">
<div class="message-header">
<p>Formato de la canasta</p>
</div>
<div class="message-body">
<div class="content">
La planilla de la canasta tiene que tener el siguiente formato para que la aplicación la lea correctamente:
<ul>
<li> Los precios deben usar punto y no coma decimal </li>
<li> El nombre de las columnas deben ser "Tipo", "Producto", y "Precio" respectivamente </li>
<li> Las celdas deben separarse con '|' </li>
<li> No puede haber "enters" en ninguna celda </li>
<li> El bono de transporte debe tener tipo 'T' </li>
</ul>
<a class="has-text-info" href="/comisiones/canasta/ejemplo">Planilla de ejemplo.</a>
<article class="message is-danger mt-2">
<div class="message-body">
<div class="content">
Cuidado! Cargar una nueva canasta elimina todos los pedidos de la aplicación.
</div>
</div>
</article>
</div>
</div>
</article>
<div class="buttons is-right">
<canasta-input/>
</div>
</div>
</div> </div>
<div <div class="block pb-6"
class="block pb-6" id="saldos-comisiones-seccion"
id="saldos-comisiones-seccion" :class="seccionActiva === 'saldos-comisiones-seccion' ? 'is-active' : 'is-hidden'">
:class="seccionActiva === 'saldos-comisiones-seccion' ? 'is-active' : 'is-hidden'"
>
<div class="block" id="saldos-comisiones-seccion"> <div class="block" id="saldos-comisiones-seccion">
<article class="message is-warning"> <div class="columns">
<div class="message-header"> <div class="column">
<p> <article class="message is-warning">
<button class="icon" aria-label="foldout" @click="toggleSaldosFileDialog"> <div class="message-header">
<i class="fa" :class="show_saldos_file_dialog ? 'fa-arrow-up' : 'fa-arrow-down'"></i> <p>
</button> <span class="icon is-small"
Cargar saldos @click="toggleSaldosFileDialog">
</p> <i :class="`fas ${!show_saldos_file_dialog ? 'fa-angle-down' : 'fa-angle-up'}`" aria-hidden="true"></i>
</div> </span>
<div class="message-body" v-if="show_saldos_file_dialog"> Cargar saldos
<div class="content"> </p>
La planilla de saldos tiene que tener el siguiente formato para que la aplicación la lea correctamente: </div>
<ul> <div class="message-body" v-if="show_saldos_file_dialog">
<li>Los valores deben usar punto y no coma decimal</li> <div class="content">
<li>El nombre de las columnas deben ser "Barrio" y "Saldo"</li> La planilla de saldos tiene que tener el siguiente formato para que la aplicación la lea correctamente:
<li>Las celdas deben separarse con '|'</li> <ul>
<li>No puede haber "enters" en ninguna celda</li> <li>Los valores deben usar punto y no coma decimal</li>
<li>El nombre de los barrios debe estar exactamente igual que como est&aacute;n configurados en esta aplicacai&oacute;n</li> <li>El nombre de las columnas deben ser "Barrio" y "Saldo"</li>
</ul> <li>Las celdas deben separarse con '|'</li>
<article class="message is-danger mt-2"> <li>No puede haber "enters" en ninguna celda</li>
<div class="message-body"> <li>El nombre de los barrios debe estar exactamente igual que como est&aacute;n configurados en esta aplicacai&oacute;n</li>
<div class="content"> </ul>
Cargar un archivo de saldos s&oacute;lo reemplazar&aacute; los saldos de los barrios presentes en la tabla. <article class="message is-danger mt-2">
</div> <div class="message-body">
<div class="content">
Cargar un archivo de saldos s&oacute;lo reemplazar&aacute; los saldos de los barrios presentes en la tabla.
</div>
</div>
</article>
</div> </div>
</article> <input-file-button text="Subir archivo" @archivo-subido="saldosSubido" />
</div> </div>
<input-file-button text="Subir archivo" @archivo-subido="saldosSubido" /> </article>
</div> </div>
</article> <div class="column">
<table class="table container">
<table class="table container"> <thead>
<thead> <tr>
<tr> <th>Barrio</th>
<th>Barrio</th> <th>Saldo</th>
<th>Saldo</th> </tr>
</tr> </thead>
</thead> <tbody>
<tbody> <tr v-for="gdc in grupos_de_compra">
<tr v-for="gdc in grupos_de_compra"> <th>{{ gdc.nombre }}</th>
<th>{{ gdc.nombre }}</th> <td>
<td> <input id="cantidad"
<input id="cantidad" v-model="gdc.saldo"
v-model="gdc.saldo" class="input is-small"
class="input is-small" type="number"
type="number" style="text-align: center"
style="text-align: center" @input="saldoModificado(gdc.id)">
@input="saldoModificado(gdc.id)"> </td>
</td> <td>
<td> <button :disabled="!isSaldoModificado(gdc.id)" class="button is-small is-success ml-1" @click="confirmar_saldo(gdc.id)">
<button :disabled="!isSaldoModificado(gdc.id)" class="button is-small is-success ml-1" @click="confirmar_saldo(gdc.id)">
<span class="icon"> <span class="icon">
<i class="fas fa-check"></i> <i class="fas fa-check"></i>
</span> </span>
</button> </button>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -113,16 +90,16 @@
<script> <script>
import TabsSecciones from "../comunes/TabsSecciones.vue"; import TabsSecciones from "../comunes/TabsSecciones.vue";
import DropdownDescargar from "./DropdownDescargar.vue"; import DropdownDescargar from "./DropdownDescargar.vue";
import CanastaInput from "./CanastaInput.vue";
import InputFileButton from "../comunes/InputFileButton.vue"; import InputFileButton from "../comunes/InputFileButton.vue";
import { mapActions, mapState } from "vuex"; import { mapActions, mapState } from "vuex";
import CanastaSeccion from "./canasta/CanastaSeccion.vue";
export default { export default {
name: "ComisionesBody", name: "ComisionesBody",
components: { components: {
CanastaSeccion,
TabsSecciones, TabsSecciones,
DropdownDescargar, DropdownDescargar,
CanastaInput,
InputFileButton, InputFileButton,
}, },
data() { data() {
@ -136,7 +113,7 @@ export default {
seccionActiva: "pedidos-comisiones-seccion", seccionActiva: "pedidos-comisiones-seccion",
archivo: undefined, archivo: undefined,
saldo_modificado: {}, saldo_modificado: {},
show_saldos_file_dialog: false, show_saldos_file_dialog: true,
} }
}, },
methods: { methods: {

View file

@ -0,0 +1,46 @@
<script>
import { defineComponent } from "vue";
import CanastaInput from "./CanastaInput.vue";
export default defineComponent({
components: { CanastaInput },
name: "CanastaSeccion",
})
</script>
<template>
<div>
<article class="message is-warning">
<div class="message-header">
<p>Formato de la canasta</p>
</div>
<div class="message-body">
<div class="content">
La planilla de la canasta tiene que tener el siguiente formato para que la aplicación la lea correctamente:
<ul>
<li> Los precios deben usar punto y no coma decimal </li>
<li> El nombre de las columnas deben ser "Tipo", "Producto", y "Precio" respectivamente </li>
<li> Las celdas deben separarse con '|' </li>
<li> No puede haber "enters" en ninguna celda </li>
<li> El bono de transporte debe tener tipo 'T' </li>
</ul>
<a class="has-text-info" href="/comisiones/canasta/ejemplo">Planilla de ejemplo.</a>
<article class="message is-danger mt-2">
<div class="message-body">
<div class="content">
Cuidado! Cargar una nueva canasta elimina todos los pedidos de la aplicación.
</div>
</div>
</article>
</div>
</div>
</article>
<div class="buttons">
<canasta-input/>
</div>
</div>
</template>
<style scoped>
</style>