#6321 - Negative ticket #158
|
@ -1,22 +1,17 @@
|
|||
<script setup>
|
||||
import { ref, computed, onUnmounted } from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import VnPaginate from 'components/ui/VnPaginate.vue';
|
||||
import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
|
||||
import FetchedTags from 'components/ui/FetchedTags.vue';
|
||||
import { useSession } from 'src/composables/useSession';
|
||||
import VnLv from 'src/components/ui/VnLv.vue';
|
||||
import VnImg from 'src/components/ui/VnImg.vue';
|
||||
import { toCurrency } from 'filters/index';
|
||||
import VnStockValueDisplay from 'src/components/ui/VnStockValueDisplay.vue';
|
||||
import { useDialogPluginComponent } from 'quasar';
|
||||
import VnTable from 'src/components/VnTable/VnTable.vue';
|
||||
import VnInput from 'src/components/common/VnInput.vue';
|
||||
import VnInputNumber from 'src/components/common/VnInputNumber.vue';
|
||||
jgallego marked this conversation as resolved
Outdated
|
||||
|
||||
const MATCH_VALUES = [5, 6, 7, 8];
|
||||
const { t } = useI18n();
|
||||
const session = useSession();
|
||||
|
||||
const primaryColor = '#f5b351';
|
||||
const colorSpacer = '#ecf0f1';
|
||||
|
@ -50,33 +45,15 @@ const $props = defineProps({
|
|||
});
|
||||
const proposalSelected = ref([]);
|
||||
const quantity = ref(-1);
|
||||
const token = session.getTokenMultimedia();
|
||||
// const index = ref(0);
|
||||
// const currentTicket = computed(() => $props.tickets[index.value]);
|
||||
const showProposalDialog = ref(false);
|
||||
const defaultColumnAttrs = {
|
||||
align: 'left',
|
||||
jsegarra marked this conversation as resolved
Outdated
jgallego
commented
a tablas a tablas
|
||||
sortable: true,
|
||||
};
|
||||
// const compatibility = ref(null);
|
||||
// const compatibility = computed(() => `linear-gradient(to right,red 10%, white 10%);`);
|
||||
const statusConditionalValue = (row) => {
|
||||
const total = MATCH_VALUES.reduce((acc, i) => acc + row[`match${i}`], 0);
|
||||
// const STATUS_VALUES = { 1: 'white', 2: '$secondary', 3: 'positive', 4: 'warning' };
|
||||
// const status = STATUS_VALUES[total];
|
||||
// const compatibility = `${100 * (total / values.length)}%`;
|
||||
return total;
|
||||
};
|
||||
// const conditionalValue = (tag) => (tag === 1 ? 'match' : 'not-match');
|
||||
const conditionalValuePrice = (price) => (price > 1.3 ? 'match' : 'not-match');
|
||||
// const changeTicket = (type, _index = 0) => {
|
||||
// const value = type ? 1 : -1;
|
||||
// const nextIndex = index.value + value + _index;
|
||||
// const ticket = $props.tickets[nextIndex];
|
||||
// if (ticket.ticketFk === currentTicket.value.ticketFk)
|
||||
// return changeTicket(true, nextIndex - 1);
|
||||
// index.value = nextIndex;
|
||||
// };
|
||||
const columns = computed(() => [
|
||||
{
|
||||
...defaultColumnAttrs,
|
||||
|
@ -123,45 +100,6 @@ const columns = computed(() => [
|
|||
columnClass: 'expand',
|
||||
columnFilter: { class: 'expand' },
|
||||
},
|
||||
// {
|
||||
// ...defaultColumnAttrs,
|
||||
// label: t('proposal.subName'),
|
||||
// name: 'subName',
|
||||
// field: 'subName',
|
||||
// },
|
||||
/*{
|
||||
...defaultColumnAttrs,
|
||||
label: t('proposal.value5'),
|
||||
name: 'value5',
|
||||
field: 'value5',
|
||||
classes: ({ match5 }) => conditionalValue(match5),
|
||||
},
|
||||
{
|
||||
...defaultColumnAttrs,
|
||||
label: t('proposal.value6'),
|
||||
name: 'value6',
|
||||
field: 'value6',
|
||||
classes: ({ match6 }) => conditionalValue(match6),
|
||||
},
|
||||
{
|
||||
...defaultColumnAttrs,
|
||||
label: t('proposal.value7'),
|
||||
name: 'value7',
|
||||
field: 'value7',
|
||||
classes: ({ match7 }) => conditionalValue(match7),
|
||||
},
|
||||
{
|
||||
...defaultColumnAttrs,
|
||||
label: t('proposal.value8'),
|
||||
name: 'value8',
|
||||
field: 'value8',
|
||||
classes: ({ match8 }) => conditionalValue(match8),
|
||||
},*/
|
||||
// {
|
||||
// ...defaultColumnAttrs,
|
||||
// label: t('proposal.tags'),
|
||||
// name: 'tags',
|
||||
// },
|
||||
|
||||
{
|
||||
...defaultColumnAttrs,
|
||||
|
@ -194,27 +132,12 @@ const columns = computed(() => [
|
|||
]);
|
||||
|
||||
async function confirm() {
|
||||
// console.log('');
|
||||
// const response = { address: address.value };
|
||||
// if (props.promise) {
|
||||
// isLoading.value = true;
|
||||
// // eslint-disable-next-line no-unused-vars
|
||||
// const { address: _address, ...restData } = props.data;
|
||||
// try {
|
||||
// Object.assign(response, restData);
|
||||
// await props.promise(response);
|
||||
// } finally {
|
||||
// isLoading.value = false;
|
||||
// }
|
||||
// }
|
||||
// onDialogOK({ data: true });
|
||||
emit('refreshData', { type: 'refresh', itemProposal: proposalSelected.value[0] });
|
||||
proposalSelected.value = [];
|
||||
popupProxyRef.value.hide();
|
||||
}
|
||||
const { dialogRef, onDialogOK, onDialogCancel } = useDialogPluginComponent();
|
||||
const popupProxyRef = ref(null);
|
||||
// Definir el emisor de eventos
|
||||
const emit = defineEmits(['dialogClosed', 'refreshData']);
|
||||
|
||||
function onDialogClose() {
|
||||
|
@ -231,15 +154,7 @@ const isSelectionAvailable = ({ row }) => {
|
|||
};
|
||||
</script>
|
||||
<template>
|
||||
<!-- <QPopupProxy ref="popupProxyRef"> -->
|
||||
<!-- <QCard style="min-width: 500px">
|
||||
<QCardSection class="row items-center justify-center column items-stretch"> -->
|
||||
<!-- <VnRow style="display: flex"> -->
|
||||
<div style="min-width: 65vw">
|
||||
<!-- {{ proposalSelected }} -->
|
||||
<!-- {{ $props.itemLack.itemFk }}
|
||||
{{ $props.itemLack.warehouseFk }} -->
|
||||
<!-- {{ rows[1].available }} -->
|
||||
<VnTable
|
||||
jgallego marked this conversation as resolved
Outdated
jsegarra
commented
Aqui no veo correcto usar las variables de colores definidos Aqui no veo correcto usar las variables de colores definidos
jgallego
commented
yo lo que no veo correcto es usar el amarillo que nos de javascript sin saber cual és, creemos una variable amarillo porque tal vez en el dark o en el light lo queramos hacer amarillo pero no el mismo tono yo lo que no veo correcto es usar el amarillo que nos de javascript sin saber cual és, creemos una variable amarillo porque tal vez en el dark o en el light lo queramos hacer amarillo pero no el mismo tono
jsegarra
commented
ok, vale, cambio de style por class ok, vale, cambio de style por class
|
||||
data-key="ItemsGetSimilar"
|
||||
url="Items/getSimilar"
|
||||
|
@ -286,15 +201,7 @@ const isSelectionAvailable = ({ row }) => {
|
|||
class="q-ml-xs"
|
||||
/></div
|
||||
></template>
|
||||
jgallego marked this conversation as resolved
Outdated
jgallego
commented
numeros en el codigo no en tablas, que es este 30? numeros en el codigo no en tablas, que es este 30?
jsegarra
commented
Gestionado en una columna de TicketConfig Gestionado en una columna de TicketConfig
|
||||
<!-- <template #body="scope">{{ scope }}</template> -->
|
||||
<template #body-selection="{ data }">
|
||||
<!-- <QTd align="center"> -->
|
||||
<!-- {{ data.row.available }}
|
||||
{{ $props.itemLack.lack * -1 }} -->
|
||||
<!-- {{
|
||||
$props.replaceAction &&
|
||||
data.row.available >= $props.itemLack.lack * -1
|
||||
}} -->
|
||||
<QCheckbox
|
||||
class="q-ma-xs"
|
||||
flat
|
||||
|
@ -303,10 +210,6 @@ const isSelectionAvailable = ({ row }) => {
|
|||
@update:model-value="(evt, _) => handleSelection(data.row, null)"
|
||||
>
|
||||
</QCheckbox>
|
||||
<!-- <div v-else class="q-ml-sm">
|
||||
<QIcon name="info" size="sm"></QIcon>
|
||||
</div
|
||||
>-->
|
||||
</template>
|
||||
<template #column-longName="{ row }">
|
||||
<!-- <QTd align="left" class="text-primary"> -->
|
||||
|
@ -330,7 +233,6 @@ const isSelectionAvailable = ({ row }) => {
|
|||
<!-- </QTd> -->
|
||||
</template>
|
||||
<template #column-status="{ row }">
|
||||
<!-- <QTd class="col" align="center"> -->
|
||||
<div
|
||||
:style="{ background: gradientStyle(statusConditionalValue(row)) }"
|
||||
class="compatibility"
|
||||
|
@ -339,33 +241,20 @@ const isSelectionAvailable = ({ row }) => {
|
|||
{{ compatibilityItem(statusConditionalValue(row)) }}
|
||||
</QTooltip>
|
||||
</div>
|
||||
<!-- </QTd> -->
|
||||
</template>
|
||||
<!-- <template #column-tags="{ row }">
|
||||
<QTd class="col" align="center"> </QTd>
|
||||
</template> -->
|
||||
|
||||
<template #column-price2="{ row }">
|
||||
<!-- <QTd align="center"> -->
|
||||
<QTooltip>
|
||||
{{ toCurrency(row.price2) }}
|
||||
</QTooltip>
|
||||
<span :class="[conditionalValuePrice(row.price2)]">{{
|
||||
toCurrency(row.price2)
|
||||
}}</span>
|
||||
<!-- </QTd> -->
|
||||
</template>
|
||||
<template #column-difference="{ row }">
|
||||
<!-- <pre>asdad{{ row }}</pre> -->
|
||||
<!-- <QTd class="col" align="left"> -->
|
||||
<VnStockValueDisplay :value="row.id % 2 === 0 ? 10 : -10" />
|
||||
<!-- </QTd> -->
|
||||
</template>
|
||||
</VnTable>
|
||||
</div>
|
||||
<!-- </QCardSection>
|
||||
</QCard> -->
|
||||
<!-- </QPopupProxy> -->
|
||||
</template>
|
||||
<style lang="scss">
|
||||
.compatibility {
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
<script setup>
|
||||
import { computed, nextTick, onMounted, onUnmounted, ref } from 'vue';
|
||||
import { computed, onMounted, onUnmounted, ref } from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import axios from 'axios';
|
||||
import ChangeQuantityDialog from 'pages/Ticket/Negative/components/ChangeQuantityDialog.vue';
|
||||
import ChangeStateDialog from 'pages/Ticket/Negative/components/ChangeStateDialog.vue';
|
||||
import ItemProposal from 'pages/Item/components/ItemProposal.vue';
|
||||
import FetchedTags from 'components/ui/FetchedTags.vue';
|
||||
import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
|
||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||
|
@ -12,7 +10,6 @@ import TicketTransfer from '../Card/TicketTransfer.vue';
|
|||
import TicketMassiveUpdate from '../Card/TicketMassiveUpdate.vue';
|
||||
import VnPaginate from 'src/components/ui/VnPaginate.vue';
|
||||
import FetchData from 'src/components/FetchData.vue';
|
||||
import useNotify from 'src/composables/useNotify.js';
|
||||
import { useStateStore } from 'stores/useStateStore';
|
||||
import { useRoute } from 'vue-router';
|
||||
import { useArrayData } from 'src/composables/useArrayData';
|
||||
|
@ -89,12 +86,9 @@ const replaceItem = () => {
|
|||
if (ticket.quantity > itemProposalSelected.value.available) continue;
|
||||
originalRowDataCopy.value.splice(originalRowDataCopy.value.indexOf(ticket));
|
||||
ticket.itemFk = itemProposalSelected.value.id;
|
||||
// ticket.quantity *= 2;
|
||||
selectedRows.value.push({ ticketFk: ticket.ticketFk });
|
||||
itemProposalSelected.value.available -= ticket.quantity;
|
||||
itemLack.value.lack += ticket.quantity;
|
||||
// tableRef.value.rows.pop();
|
||||
console.log(store.data);
|
||||
const index = store.data.findIndex((t) => t.ticketFk === ticket.ticketFk);
|
||||
jsegarra marked this conversation as resolved
jgallego
commented
2 ? 2 ?
jsegarra
commented
Esto ya lo habia cambiado, pero a lo mejor al hacer otros cambios se ha machacado Esto ya lo habia cambiado, pero a lo mejor al hacer otros cambios se ha machacado
|
||||
store.data.splice(index, 1);
|
||||
console.log(ticket);
|
||||
|
@ -129,7 +123,6 @@ const replaceItem = () => {
|
|||
@on-fetch="
|
||||
(data) => {
|
||||
itemLack = data[0];
|
||||
// itemLackForm.value.fetch();
|
||||
}
|
||||
"
|
||||
auto-load
|
||||
|
@ -147,11 +140,6 @@ const replaceItem = () => {
|
|||
:selected-rows="selectedRows"
|
||||
></ChangeStateDialog>
|
||||
</TicketMassiveUpdate>
|
||||
<!-- <QBtn >
|
||||
<QTooltip bottom anchor="bottom right">
|
||||
{{ t() }}
|
||||
</QTooltip>
|
||||
</QBtn> -->
|
||||
<TicketMassiveUpdate
|
||||
label="negative.buttonsUpdate.quantity"
|
||||
@click="showChangeQuantityDialog = true"
|
||||
|
@ -164,32 +152,6 @@ const replaceItem = () => {
|
|||
>
|
||||
</ChangeQuantityDialog>
|
||||
</TicketMassiveUpdate>
|
||||
<!-- <TicketMassiveUpdate
|
||||
icon="refresh"
|
||||
color="primary"
|
||||
label="negative.buttonsUpdate.itemProposal"
|
||||
@click="showChangeQuantityDialog = true"
|
||||
:disable="selectedRows.length < 2"
|
||||
tooltip="negative.buttonsUpdate.itemProposal"
|
||||
>
|
||||
</TicketMassiveUpdate> -->
|
||||
<!-- <QBtn
|
||||
color="primary"
|
||||
@click="
|
||||
openConfirmationModal(
|
||||
t('negative.detail.modal.split.title'),
|
||||
t('negative.detail.modal.split.subTitle'),
|
||||
split,
|
||||
() => (showSplitDialog = true)
|
||||
)
|
||||
"
|
||||
:disable="selectedRows.length < 1"
|
||||
icon="call_split"
|
||||
>
|
||||
<QTooltip bottom anchor="bottom right">
|
||||
{{ t('globals.split') }}
|
||||
</QTooltip>
|
||||
</QBtn> -->
|
||||
<QBtn color="primary" icon="vn:splitline">
|
||||
<QTooltip>{{ t('ticketSale.transferLines') }}</QTooltip>
|
||||
<TicketTransfer
|
||||
|
@ -220,10 +182,6 @@ const replaceItem = () => {
|
|||
</VnSubToolbar>
|
||||
<QPage>
|
||||
<div class="full-width" style="padding-bottom: 0px">
|
||||
<!-- <p>item:{{ item }}</p>
|
||||
<p>itemLack:{{ itemLack }}</p>
|
||||
<p>selectedRows:{{ selectedRows }}</p>
|
||||
<p>itemProposalSelected:{{ itemProposalSelected }}</p> -->
|
||||
<VnPaginate
|
||||
:data-key="URL_KEY"
|
||||
:url="`${URL_KEY}/${entityId}`"
|
||||
|
@ -233,8 +191,6 @@ const replaceItem = () => {
|
|||
class="full-width q-pa-md"
|
||||
>
|
||||
<template #body>
|
||||
<!-- <VnLv >
|
||||
<template #label> -->
|
||||
<div style="display: flex; align-items: center">
|
||||
<VnImg :id="item.id" class="rounded image-wrapper"></VnImg>
|
||||
<div
|
||||
|
@ -264,22 +220,11 @@ const replaceItem = () => {
|
|||
</QBtn>
|
||||
<FetchedTags class="q-ml-md" :item="item" />
|
||||
</div>
|
||||
<!-- {{ rows }} -->
|
||||
<!-- </template>
|
||||
<template #value> </template>
|
||||
</VnLv> -->
|
||||
</template>
|
||||
</VnPaginate>
|
||||
</div>
|
||||
<TicketLackTable :filter="{ alertLevel: showFree }"></TicketLackTable>
|
||||
</QPage>
|
||||
|
||||
<!--<HandleSplited
|
||||
ref="splitDialogRef"
|
||||
@hide="onDialogHide"
|
||||
v-model="showSplitDialog"
|
||||
:tickets="resultSplit"
|
||||
></HandleSplited>-->
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.list-enter-active,
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
<script setup>
|
||||
import { ref, onMounted } from 'vue';
|
||||
import { ref } from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useArrayData } from 'composables/useArrayData';
|
||||
import VnInputDate from 'components/common/VnInputDate.vue';
|
||||
import VnInputTime from 'components/common/VnInputTime.vue';
|
||||
|
||||
import FetchData from 'components/FetchData.vue';
|
||||
import VnFilterPanel from 'src/components/ui/VnFilterPanel.vue';
|
||||
|
@ -16,17 +13,10 @@ const props = defineProps({
|
|||
required: true,
|
||||
},
|
||||
});
|
||||
// const arrayData = useArrayData(props.dataKey);
|
||||
// const warehouse = ref(null);
|
||||
// onMounted(async () => {
|
||||
// warehouse.value = arrayData.store?.userParams?.warehouse;
|
||||
// });
|
||||
|
||||
const to = Date.vnNew();
|
||||
to.setDate(to.getDate() + 1);
|
||||
|
||||
const warehouses = ref();
|
||||
const categoriesOptions = ref([]);
|
||||
const itemTypesRef = ref(null);
|
||||
jsegarra marked this conversation as resolved
Outdated
jgallego
commented
borra comentarios borra comentarios
|
||||
const itemTypesOptions = ref([]);
|
||||
|
||||
|
@ -36,16 +26,6 @@ const itemTypesFilter = {
|
|||
order: 'name ASC',
|
||||
where: {},
|
||||
};
|
||||
const onCategoryChange = async (categoryFk, search) => {
|
||||
if (!categoryFk) {
|
||||
itemTypesFilter.where.categoryFk = null;
|
||||
delete itemTypesFilter.where.categoryFk;
|
||||
} else {
|
||||
itemTypesFilter.where.categoryFk = categoryFk;
|
||||
}
|
||||
search();
|
||||
await itemTypesRef.value.fetch();
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
|
|
@ -10,7 +10,6 @@ import { dashIfEmpty, toDate, toHour } from 'src/filters';
|
|||
import { useRouter } from 'vue-router';
|
||||
import { useState } from 'src/composables/useState';
|
||||
import { useRole } from 'src/composables/useRole';
|
||||
import TicketMassiveUpdate from '../Card/TicketMassiveUpdate.vue';
|
||||
import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
|
||||
import RightMenu from 'src/components/common/RightMenu.vue';
|
||||
const router = useRouter();
|
||||
|
@ -21,22 +20,15 @@ const stateStore = useStateStore();
|
|||
const { t } = useI18n();
|
||||
const selectedRows = ref([]);
|
||||
jgallego marked this conversation as resolved
Outdated
jgallego
commented
estos numeros habria que replantearlo o simplificarlo a uno estos numeros habria que replantearlo o simplificarlo a uno
jsegarra
commented
Ok, en la version ^1.1 Ok, en la version ^1.1
|
||||
const showNegativeOriginDialog = ref(false);
|
||||
// const showTotalNegativeOriginDialog = ref(false);
|
||||
// const showFilterPanel = ref(false);
|
||||
const currentRow = ref(null);
|
||||
// const state = useState();
|
||||
|
||||
const negativeParams = reactive({
|
||||
jgallego
commented
anota esto para cambiarlo en la proxima verison anota esto para cambiarlo en la proxima verison
jsegarra
commented
Lo mas simple para todos es que lo pongamos sin valor/ a 0 y que se lo pongan al gusto en marcadores, como hemos explicados a otros comerciales. que te parece? Y sino, las userConfigs Lo mas simple para todos es que lo pongamos sin valor/ a 0 y que se lo pongan al gusto en marcadores, como hemos explicados a otros comerciales. que te parece?
Y sino, las userConfigs
|
||||
days: useRole().likeAny('buyer') ? 2 : 0,
|
||||
warehouseFk: useState().getUser().value.warehouseFk,
|
||||
});
|
||||
const redirectToCreateView = ({ itemFk }) => {
|
||||
// stateStore.rightDrawer = false;
|
||||
// currentRow.value = row;
|
||||
router.push({ name: 'NegativeDetail', params: { id: itemFk } });
|
||||
};
|
||||
const originDialogRef = ref();
|
||||
// const totalNegativeDialogRef = ref();
|
||||
const columns = computed(() => [
|
||||
{
|
||||
name: 'date',
|
||||
|
@ -159,25 +151,15 @@ const columns = computed(() => [
|
|||
},
|
||||
]);
|
||||
const tableRef = ref();
|
||||
// const ticketDetailRef = ref();
|
||||
|
||||
onBeforeMount(() => {
|
||||
stateStore.$state.rightDrawer = true;
|
||||
});
|
||||
|
||||
// const handleWarehouses = async (data) => {
|
||||
// negativeParams.warehouse = data.find((w) => w.name === DEFAULT_WAREHOUSE).id;
|
||||
// await tableRef.value.fetch();
|
||||
// showFilterPanel.value = true;
|
||||
// };
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<QPage class="column items-center">
|
||||
<!-- <FetchData url="Warehouses" @on-fetch="handleWarehouses" auto-load /> -->
|
||||
<VnSubToolbar class="bg-vn-dark justify-end">
|
||||
<template #st-actions>
|
||||
<!-- <QBtnGroup push style="column-gap: 1px" v-if="!currentRow"> -->
|
||||
<QBtn
|
||||
color="primary"
|
||||
:disable="!selectedRows?.length"
|
||||
|
@ -193,14 +175,6 @@ onBeforeMount(() => {
|
|||
></QPopupProxy>
|
||||
<QTooltip>{{ t('negative.negativeAction') }}</QTooltip>
|
||||
</QBtn>
|
||||
<!-- <QBtn
|
||||
color="primary"
|
||||
@click="showTotalNegativeOriginDialog = true"
|
||||
:label="t('negative.totalNegative')"
|
||||
>
|
||||
<QTooltip>{{ t('negative.totalNegative') }}</QTooltip>
|
||||
</QBtn> -->
|
||||
<!-- </QBtnGroup> -->
|
||||
</template>
|
||||
</VnSubToolbar>
|
||||
<RightMenu>
|
||||
|
@ -229,14 +203,12 @@ onBeforeMount(() => {
|
|||
}"
|
||||
>
|
||||
<template #column-itemFk="{ row }">
|
||||
<!-- <QTd style="height: 76px; flex-direction: row; display: flex"> -->
|
||||
{{ row.itemFk }}
|
||||
<VnImg
|
||||
style="width: 50px; height: 50px; float: inline-end"
|
||||
:id="row.itemFk"
|
||||
class="rounded"
|
||||
></VnImg>
|
||||
<!-- </QTd> -->
|
||||
</template>
|
||||
</VnTable>
|
||||
</QPage>
|
||||
|
@ -267,7 +239,5 @@ div.q-dialog__inner > div {
|
|||
.q-btn-group > .q-btn-item:not(:first-child) {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
// border-top-right-radius: 0;
|
||||
// border-bottom-right-radius: 0;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -3,12 +3,8 @@ import { computed, ref, watch } from 'vue';
|
|||
import { useI18n } from 'vue-i18n';
|
||||
import axios from 'axios';
|
||||
import FetchData from 'src/components/FetchData.vue';
|
||||
import VnSelect from 'components/common/VnSelect.vue';
|
||||
import VnInput from 'src/components/common/VnInput.vue';
|
||||
import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
|
||||
import { toDate, toHour } from 'src/filters';
|
||||
import useNotify from 'src/composables/useNotify.js';
|
||||
import { useDialogPluginComponent } from 'quasar';
|
||||
import ZoneDescriptorProxy from 'pages/Zone/Card/ZoneDescriptorProxy.vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
import VnTable from 'src/components/VnTable/VnTable.vue';
|
||||
|
@ -46,13 +42,6 @@ const { notify } = useNotify();
|
|||
|
||||
const route = useRoute();
|
||||
jsegarra marked this conversation as resolved
Outdated
jgallego
commented
imagino que sean minusculas el code imagino que sean minusculas el code
|
||||
const itemLack = ref(null);
|
||||
// defineProps({
|
||||
// rows: {
|
||||
// type: [Object],
|
||||
// required: true,
|
||||
// default: () => {},
|
||||
// },
|
||||
// });
|
||||
const getInputEvents = (colField, props) => ({
|
||||
'update:modelValue': () => saveChange(colField, props),
|
||||
'keyup.enter': () => saveChange(colField, props),
|
||||
|
@ -181,21 +170,8 @@ const columns = computed(() => [
|
|||
sortable: true,
|
||||
component: 'input',
|
||||
type: 'number',
|
||||
// attrs: ({ row }) => {
|
||||
// return {
|
||||
// workerId: row.workerFk,
|
||||
// name: row.userName,
|
||||
// }
|
||||
// attrs: (props) => ({
|
||||
// events: getInputEvents(props),
|
||||
// }),
|
||||
},
|
||||
]);
|
||||
const emit = defineEmits([...useDialogPluginComponent.emits, 'selection', 'close']);
|
||||
function rowsHasSelected(selection) {
|
||||
emit('selection', selection);
|
||||
}
|
||||
|
||||
const itemLackForm = ref();
|
||||
|
||||
const reload = async () => {
|
||||
|
@ -203,8 +179,6 @@ const reload = async () => {
|
|||
};
|
||||
defineExpose({ reload });
|
||||
|
||||
// Función de comparación
|
||||
|
||||
const tableRef = ref(null);
|
||||
</script>
|
||||
|
||||
|
@ -233,7 +207,6 @@ const tableRef = ref(null);
|
|||
@on-fetch="
|
||||
(data) => {
|
||||
itemLack = data[0];
|
||||
// itemLackForm.value.fetch();
|
||||
}
|
||||
"
|
||||
auto-load
|
||||
|
@ -259,10 +232,6 @@ const tableRef = ref(null);
|
|||
:right-search="false"
|
||||
v-model:selected="rowsSelected"
|
||||
>
|
||||
<!--
|
||||
<template #body="props">
|
||||
{{ props }}
|
||||
</template> -->
|
||||
<template #column-quantity="props">
|
||||
<VnInputNumber
|
||||
v-model.number="props.row.quantity"
|
||||
|
|
|
@ -8,7 +8,7 @@ import VnInput from 'src/components/common/VnInput.vue';
|
|||
const { t } = useI18n();
|
||||
const showChangeQuantityDialog = ref(false);
|
||||
const newQuantity = ref(null);
|
||||
const { dialogRef, onDialogHide } = useDialogPluginComponent();
|
||||
const { dialogRef } = useDialogPluginComponent();
|
||||
const $props = defineProps({
|
||||
selectedRows: {
|
||||
type: Array,
|
||||
|
@ -34,22 +34,7 @@ const updateQuantity = async () => {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<!-- <QDialog ref="dialogRef" @hide="onDialogHide" v-model="showChangeQuantityDialog"> -->
|
||||
<QCard class="q-pa-sm">
|
||||
<!-- <QCardSection class="row items-center q-pb-none">
|
||||
<QAvatar
|
||||
:icon="icon"
|
||||
color="primary"
|
||||
text-color="white"
|
||||
size="xl"
|
||||
v-if="icon"
|
||||
/>
|
||||
<span class="text-h6 text-grey">{{
|
||||
t('negative.detail.modal.changeQuantity.title')
|
||||
}}</span>
|
||||
<QSpace />
|
||||
<QBtn icon="close" flat round dense v-close-popup />
|
||||
</QCardSection> -->
|
||||
<QCardSection class="row items-center justify-center column items-stretch">
|
||||
<span>{{ t('negative.detail.modal.changeQuantity.title') }}</span>
|
||||
<VnInput
|
||||
|
@ -70,7 +55,6 @@ const updateQuantity = async () => {
|
|||
autofocus
|
||||
/> </QCardActions
|
||||
></QCard>
|
||||
<!-- </QDialog> -->
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
@ -10,7 +10,7 @@ const editableStates = ref([]);
|
|||
const { t } = useI18n();
|
||||
const showChangeStateDialog = ref(false);
|
||||
const newState = ref(null);
|
||||
const { dialogRef, onDialogHide } = useDialogPluginComponent();
|
||||
const { dialogRef } = useDialogPluginComponent();
|
||||
const $props = defineProps({
|
||||
selectedRows: {
|
||||
type: Array,
|
||||
|
@ -36,27 +36,12 @@ const updateState = async () => {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<!-- <QDialog ref="dialogRef" @hide="onDialogHide" v-model="showChangeStateDialog"> -->
|
||||
<FetchData
|
||||
url="States/editableStates"
|
||||
@on-fetch="(data) => (editableStates = data)"
|
||||
auto-load
|
||||
/>
|
||||
<QCard class="q-pa-sm">
|
||||
<!-- <QCardSection class="row items-center q-pb-none">
|
||||
<QAvatar
|
||||
:icon="icon"
|
||||
color="primary"
|
||||
text-color="white"
|
||||
size="xl"
|
||||
v-if="icon"
|
||||
/>
|
||||
<span class="text-h6 text-grey">{{
|
||||
t('negative.detail.modal.changeState.title')
|
||||
}}</span>
|
||||
<QSpace />
|
||||
<QBtn icon="close" flat round dense v-close-popup />
|
||||
</QCardSection> -->
|
||||
<QCardSection class="row items-center justify-center column items-stretch">
|
||||
<span>{{ t('negative.detail.modal.changeState.title') }}</span>
|
||||
<VnSelect
|
||||
|
@ -78,7 +63,6 @@ const updateState = async () => {
|
|||
autofocus
|
||||
/> </QCardActions
|
||||
></QCard>
|
||||
<!-- </QDialog> -->
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
@ -4,15 +4,12 @@ import { useI18n } from 'vue-i18n';
|
|||
import axios from 'axios';
|
||||
import { useDialogPluginComponent } from 'quasar';
|
||||
import VnSelect from 'src/components/common/VnSelect.vue';
|
||||
import FetchData from 'components/FetchData.vue';
|
||||
import VnPaginate from 'src/components/ui/VnPaginate.vue';
|
||||
|
||||
import VnInputDate from 'src/components/common/VnInputDate.vue';
|
||||
import VnInput from 'src/components/common/VnInput.vue';
|
||||
const { t } = useI18n();
|
||||
const showSplitDialog = ref(false);
|
||||
const newState = ref(null);
|
||||
const resultSplit = ref([]);
|
||||
const { dialogRef, onDialogHide } = useDialogPluginComponent();
|
||||
const $props = defineProps({
|
||||
tickets: {
|
||||
|
@ -54,13 +51,6 @@ const columns = computed(() => [
|
|||
field: ({ message }) => message,
|
||||
sortable: true,
|
||||
},
|
||||
// {
|
||||
// name: 'actions',
|
||||
// align: 'center',
|
||||
// label: t('negative.split.actions'),
|
||||
// // style: 'padding-left: 100px',
|
||||
// // headerStyle: 'padding-left: 100px',
|
||||
// },
|
||||
]);
|
||||
|
||||
const formData = ref({ agencies: [] });
|
||||
|
@ -80,7 +70,6 @@ const handleDateChanged = async () => {
|
|||
});
|
||||
formData.value.agencies = zoneData;
|
||||
if (zoneData.length === 1) formData.value.agencyModeFk = zoneData[0];
|
||||
// formData.value.dateChanged = false;
|
||||
};
|
||||
const ticketsSelected = ref([]);
|
||||
onMounted(() => {
|
||||
|
|
|
@ -7,7 +7,7 @@ import { useDialogPluginComponent } from 'quasar';
|
|||
const { t } = useI18n();
|
||||
const showNegativeOriginDialog = ref(false);
|
||||
const reason = ref(null);
|
||||
const { dialogRef, onDialogHide } = useDialogPluginComponent();
|
||||
const { dialogRef } = useDialogPluginComponent();
|
||||
const $props = defineProps({
|
||||
selectedRows: {
|
||||
type: Array,
|
||||
|
@ -32,12 +32,6 @@ const update = async () => {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<!-- <QDialog
|
||||
ref="dialogRef"
|
||||
@hide="onDialogHide"
|
||||
v-model="showNegativeOriginDialog"
|
||||
full-width
|
||||
> -->
|
||||
<QCard class="q-pa-sm">
|
||||
<QCardSection class="row items-center q-pb-none">
|
||||
<QAvatar
|
||||
|
@ -76,7 +70,6 @@ const update = async () => {
|
|||
autofocus
|
||||
/> </QCardActions
|
||||
></QCard>
|
||||
<!-- </QDialog> -->
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
configuracion a tablas
ya no hace falta