diff --git a/CHANGELOG.md b/CHANGELOG.md index 119f702f7..47f2f49d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,169 @@ +# Version 24.28 - 2024-07-09 + +### Added 🆕 + +- Change header titles style by:wbuezas +- chore: refs #7436 fix e2e (origin/7436-showQCheckbox) by:jorgep +- feat: #7196 eslint (origin/7196-cjsToEsm) by:jgallego +- feat: adapt tu VnTable → CrudModel by:alexm +- feat(CustomerFIlter): use correct table by:alexm +- feat(customerList): add searchbar by:alexm +- feat: customerList is customerExtendedList by:alexm +- feat: fixes #7196 by:jgallego +- feat: refs #6739 transferInvoice new checkbox and functionality by:Jon +- feat: refs #6825 create vnTable and add in CustomerExtendedList by:alexm +- feat: refs #6825 create vnTableColumn, cardActions by:alexm +- feat: refs #6825 fix modes by:alexm +- feat: refs #6825 qchip color by:alexm +- feat: refs #6825 right filter panel (6825-vnTable) by:alexm +- feat: refs #6825 scroll for table mode by:alexm +- feat: refs #6825 share filters, create popup by:alexm +- feat: refs #6825 VnComponent mix component and attrs Form to create new row by:alexm +- feat: refs #6825 VnTableFilter and VnPanelFilter init by:alexm +- feat: refs #6826 added rol summary link by:Jon +- feat: refs #6896 created VnImg and added to order module by:Jon +- feat: refs #6896 new filters by:Jon +- feat: refs #7129 fix some code and add order by:pablone +- feat: refs #7436 show checkbox by:jorgep +- feat: refs #7545 Deleted hasIncoterms client column (origin/7545-hasIncoterms) by:guillermo +- feat(TicketService): use correct format by:alexm +- feat(url): sepate filters by:alexm +- feat(VnFilter): merge objects by:alexm +- feat(VnTable): is-editable and use-model. fix: checkbox by:alexm +- feat(VnTable): refs #6825 actions sticky by:alexm +- feat(VnTable): refs #6825 addInWhere by:alexm +- feat(VnTable): refs #6825 dinamic columns by:alexm +- feat(VnTable): refs #6825 execute function when create by:alexm +- feat(VnTable): refs #6825 fix ellipsis and add titles by:alexm +- feat(VnTable): refs #6825 merge where's by:alexm +- feat(VnTable): refs #6825 move to folder. fix checkboxs by:alexm +- feat(VnTable): refs #6825 remove field prop. Add actions in table by:alexm +- feat(VnTable): refs #6825 use checkbox if startsWith 'is' or 'has' by:alexm +- feat(VnTable): refs #6825 VnTableChip component by:alexm +- feat(vnTable): reload data when change url by:alexm +- feat(WorkerFormation): add columnFilter by:alexm +- feat(WorkerFormation): is-editable and use-model by:alexm +- fix: notify icon style by:Javier Segarra +- refactor: refs #6896 fixed styles by:Jon +- Revert "feat: fixes #7196" by:alexm +- style: refs #6464 changed checkbox and qbtn styles by:Jon + +### Changed 📦 + +- perf: Remove div.col by:Javier Segarra +- perf: remove ItemPicture by:Javier Segarra +- perf: replace ItemPicture in favour of VnImg by:Javier Segarra +- refactor by:wbuezas +- refactor: refs #5447 changed warehouse filter by:Jon +- refactor: refs #5447 changed warehouse out filter behavior by:Jon +- refactor: refs #5447 fixed filter if continent not selected by:Jon +- refactor: refs #5447 fix request by:Jon +- refactor: refs #5447 refactor filters by:Jon +- refactor: refs #6739 changed invoice functions' name by:Jon +- refactor: refs #6739 changed router.push by:Jon +- refactor: refs #6739 deleted useless const by:Jon +- refactor: refs #6739 fix redirect transferInvoice by:Jon +- refactor: refs #6739 new confirmation window by:Jon +- refactor: refs #6739 requested changes by:Jon +- refactor: refs #6739 updated transferInvoice function by:Jon +- refactor: refs #6896 changes requested in PR by:Jon +- refactor: refs #6896 end migration orders by:Jon +- refactor: refs #6896 fixed styles by:Jon +- refactor: refs #6896 fix qdrawer by:Jon +- refactor: refs #6896 refactor VnImg by:Jon +- refactor: refs #6896 requested changes by:Jon +- refactor: refs #6977 fix VnImg props (origin/6977-ClonedURL) by:Jon +- refactor: refs #6977 refactor VnImg by:Jon +- refactor: refs #6977 use VnImg by:Jon +- refactors by:alexm + +### Fixed 🛠️ + +- chore: refs #7436 fix e2e (origin/7436-showQCheckbox) by:jorgep +- feat: fixes #7196 by:jgallego +- feat: refs #6825 fix modes by:alexm +- feat: refs #7129 fix some code and add order by:pablone +- feat(VnTable): is-editable and use-model. fix: checkbox by:alexm +- feat(VnTable): refs #6825 fix ellipsis and add titles by:alexm +- feat(VnTable): refs #6825 move to folder. fix checkboxs by:alexm +- fix(ArrayData): refs #6825 router.replace and use filter.where by:alexm +- fix: bug replace by:alexm +- fix: column hidden v-if by:Javier Segarra +- fix: comment 4 by:Javier Segarra +- fix: comments by:Javier Segarra +- fix: cypress.config to mjs by:alexm +- fix(EntryBuys): fix VnSubtoolbar by:alexm +- fixes: fix vnFilter params and redirect by:alexm +- fix: fix warnings by:alexm +- fix: invoiceDueDay test by:alexm +- fix log view not refreshing when changing id param by:wbuezas +- fix: map selected by:Javier Segarra +- fix: merge dev by:Javier Segarra +- fix: notify icon style by:Javier Segarra +- fix: point 1 by:Javier Segarra +- fix: point 3 by:Javier Segarra +- fix: refs #5447 deleted console.log by:Jon +- fix: refs 6464 deleted useless class in checkbox by:Jon +- fix: refs #6464 fix error isLoading by:Jon +- fix: refs #6739 changed checkbox field by:Jon +- fix: refs #6825 css by:carlossa +- fix: refs #6826 fix redirect by:Jon +- fix: refs #6826 fix roleDescriptor by:Jon +- fix: refs #7129 fix e2e by:pablone +- fix: refs #7129 fix module routes by:pablone +- fix: refs #7129 fix some issues on load and tools by:pablone +- fix: refs #7129 remove consoleLog by:pablone +- fix: refs #7129 remove fix from claim lines by:pablone +- fix: refs #7274 fix duplicate rows by:jorgep +- fix: refs #7433 skeleton by:jorgep +- fix: refs #7623 bugs & tests by:jorgep +- fix: refs #7623 disable router update by:jorgep +- fix: refs #7623 redirect by:jorgep +- fix: refs #7623 test by:jorgep +- fix: refs #7623 update add updateRoute prop in VnPaginate by:jorgep +- fix: refs #7623 updating skip param by:jorgep +- fix: revert cypress mjs by:alexm +- fix: SkeletonTable by:alexm +- fix: state translations by:Javier Segarra +- fix: ticket order by:Javier Segarra +- fix(ticket router): typo by:alexm +- fix(TicketService): pay use selected by:alexm +- fix: TravelLog by:Javier Segarra +- fix(url): filter by:alexm +- fix(url): redirect by:alexm +- fix(VnFilter): filter with params by:alexm +- fix(VnFilterPanel): remove key by:alexm +- fix(VnTable): create scss by:alexm +- fix(VnTable): duplicate fetch by:alexm +- fix(VnTable): Qtable v-bind by:alexm +- fix(VnTable): refs #6825 checkbox align and color by:alexm +- fix(VnTable): refs #6825 fix click sticky column by:alexm +- fix(VnTable): refs #6825 fix events and css by:alexm +- fix(VnTable): refs #6825 VnInputDate by:alexm +- fix(VnTable): showLabel by:alexm +- fix(VnTable): warns by:alexm +- fix: WorkerNotificationsManager test by:alexm +- fix: WorkerSelect option format by:Javier Segarra +- refactor: refs #5447 fixed filter if continent not selected by:Jon +- refactor: refs #5447 fix request by:Jon +- refactor: refs #6739 fix redirect transferInvoice by:Jon +- refactor: refs #6896 fixed styles by:Jon +- refactor: refs #6896 fix qdrawer by:Jon +- refactor: refs #6977 fix VnImg props (origin/6977-ClonedURL) by:Jon +- refs #6504 fix formModel claimFilter claimCard (origin/6504-fixCardClaim) by:carlossa +- refs #7406 fix components by:carlossa +- refs #7406 fix pr by:carlossa +- refs #7406 fix props by:carlossa +- refs #7406 fix Tb components create by:carlossa +- refs #7406 fix trad by:carlossa +- refs #7406 fix url by:carlossa +- refs #7406 fix VnTable columns by:carlossa +- refs #7409 fix balance and formation by:carlossa +- refs #7409 fix trad by:carlossa +- Revert "feat: fixes #7196" by:alexm +- test: fix intermitent e2e by:alexm +- test: fix vnSearchbar adapt to vnTable (origin/7648_dev_customerEntries) by:alexm + # Version 24.24 - 2024-06-11 ### Added 🆕 diff --git a/package.json b/package.json index 71d80d401..0a66ddb4f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-front", - "version": "24.30.1", + "version": "24.32.0", "description": "Salix frontend", "productName": "Salix", "author": "Verdnatura", diff --git a/src/components/VnTable/VnColumn.vue b/src/components/VnTable/VnColumn.vue index da4687d32..3af58226f 100644 --- a/src/components/VnTable/VnColumn.vue +++ b/src/components/VnTable/VnColumn.vue @@ -78,7 +78,7 @@ const defaultComponents = { date: { component: markRaw(VnInputDate), attrs: { - readonly: true, + readonly: !$props.isEditable, disable: !$props.isEditable, style: 'min-width: 125px', class: 'fit', diff --git a/src/components/VnTable/VnFilter.vue b/src/components/VnTable/VnFilter.vue index 15e1cc947..285e2338e 100644 --- a/src/components/VnTable/VnFilter.vue +++ b/src/components/VnTable/VnFilter.vue @@ -48,6 +48,17 @@ const forceAttrs = { label: $props.showTitle ? '' : $props.column.label, }; +const selectComponent = { + component: markRaw(VnSelect), + event: updateEvent, + attrs: { + class: 'q-px-sm q-pb-xs q-pt-none fit', + dense: true, + filled: !$props.showTitle, + }, + forceAttrs, +}; + const components = { input: { component: markRaw(VnInput), @@ -97,16 +108,8 @@ const components = { }, forceAttrs, }, - select: { - component: markRaw(VnSelect), - event: updateEvent, - attrs: { - class: 'q-px-sm q-pb-xs q-pt-none fit', - dense: true, - filled: !$props.showTitle, - }, - forceAttrs, - }, + select: selectComponent, + rawSelect: selectComponent, }; async function addFilter(value) { diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index dc5410e93..2f275f974 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -1,5 +1,5 @@ - + @@ -114,3 +149,8 @@ watch( border-style: solid; } + + es: + Open time: Abrir tiempo + +, nextTick diff --git a/src/components/common/VnSelect.vue b/src/components/common/VnSelect.vue index e3bda6c8e..3cba466a3 100644 --- a/src/components/common/VnSelect.vue +++ b/src/components/common/VnSelect.vue @@ -125,7 +125,8 @@ function filter(val, options) { }); } - const id = row.id; + if (!row) return; + const id = row[$props.optionValue]; const optionLabel = String(row[$props.optionLabel]).toLowerCase(); return id == search || optionLabel.includes(search); diff --git a/src/components/common/VnSelectCache.vue b/src/components/common/VnSelectCache.vue index 51873ef6e..29cf22dc5 100644 --- a/src/components/common/VnSelectCache.vue +++ b/src/components/common/VnSelectCache.vue @@ -8,18 +8,32 @@ const $props = defineProps({ default: null, }, find: { - type: String, + type: [String, Object], default: null, + description: 'search in row to add default options', }, }); const options = ref([]); + onBeforeMount(async () => { - const { url } = useAttrs(); + const { url, optionValue, optionLabel } = useAttrs(); const findBy = $props.find ?? url?.charAt(0)?.toLocaleLowerCase() + url?.slice(1, -1); - if (findBy) options.value = [$props.row[findBy]]; + if (!findBy || !$props.row) return; + // is object + if (typeof findBy == 'object') { + const { value, label } = findBy; + if (!$props.row[value] || !$props.row[label]) return; + return (options.value = [ + { + [optionValue ?? 'id']: $props.row[value], + [optionLabel ?? 'name']: $props.row[label], + }, + ]); + } + // is string + if ($props.row[findBy]) options.value = [$props.row[findBy]]; }); - diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue index 7792ed2cd..90ac856e5 100644 --- a/src/components/ui/CardDescriptor.vue +++ b/src/components/ui/CardDescriptor.vue @@ -120,7 +120,7 @@ const toModule = computed(() => :icon="iconModule" color="white" class="link" - :to="toModule" + :to="$attrs['to-module'] ?? toModule" > {{ t('globals.goToModuleIndex') }} diff --git a/src/components/ui/QCalendarMonthWrapper.vue b/src/components/ui/QCalendarMonthWrapper.vue index bced893fe..07ca18bef 100644 --- a/src/components/ui/QCalendarMonthWrapper.vue +++ b/src/components/ui/QCalendarMonthWrapper.vue @@ -52,8 +52,8 @@ const containerClasses = computed(() => { --calendar-border-current: #84d0e2 2px solid; --calendar-current-color-dark: #84d0e2; // Colores de fondo del calendario en dark mode - --calendar-outside-background-dark: #222; - --calendar-background-dark: #222; + --calendar-outside-background-dark: var(--vn-section-color); + --calendar-background-dark: var(--vn-section-color); } // Clases para modificar el color de fecha seleccionada en componente QCalendarMonth @@ -70,8 +70,27 @@ const containerClasses = computed(() => { text-transform: capitalize; } +.q-calendar-month__head--workweek, +.q-calendar-month__head--weekday, +// .q-calendar-month__workweek.q-past-day, +.q-calendar-month__week :nth-child(6), +:nth-child(7) { + color: var(--vn-label-color); +} + +.q-calendar-month__head--weekdays > div[aria-label='miércoles'] > span { + /* color: transparent; */ + visibility: hidden; + // position: absolute; +} +.q-calendar-month__head--weekdays > div[aria-label='miércoles'] > span:after { + content: 'X'; + visibility: visible; + left: 33%; + position: absolute; +} .transparent-background { - --calendar-background-dark: transparent; + // --calendar-background-dark: transparent; --calendar-background: transparent; --calendar-outside-background-dark: transparent; } @@ -110,11 +129,6 @@ const containerClasses = computed(() => { cursor: pointer; } } - .q-calendar-month__week--days > div:nth-child(6), - .q-calendar-month__week--days > div:nth-child(7) { - // Cambia el color de los días sábado y domingo - color: #777777; - } .q-calendar-month__week--wrapper { margin-bottom: 4px; @@ -124,6 +138,7 @@ const containerClasses = computed(() => { height: 32px; display: flex; justify-content: center; + color: var(--vn-label-color); } .q-calendar__button--bordered { @@ -147,7 +162,7 @@ const containerClasses = computed(() => { .q-calendar-month__head--workweek, .q-calendar-month__head--weekday.q-calendar__center.q-calendar__ellipsis { text-transform: capitalize; - color: $color-font-secondary; + color: var(--vn-label-color); font-weight: bold; font-size: 0.8rem; text-align: center; diff --git a/src/components/ui/VnFilterPanel.vue b/src/components/ui/VnFilterPanel.vue index b93ca7121..27b6e7b34 100644 --- a/src/components/ui/VnFilterPanel.vue +++ b/src/components/ui/VnFilterPanel.vue @@ -110,9 +110,11 @@ async function search(evt) { store.filter.where = {}; isLoading.value = true; - const filter = { ...userParams.value }; + const filter = { ...userParams.value, ...$props.modelValue }; store.userParamsChanged = true; - const { params: newParams } = await arrayData.addFilter({ params: userParams.value }); + const { params: newParams } = await arrayData.addFilter({ + params: filter, + }); userParams.value = newParams; if (!$props.showAll && !Object.values(filter).length) store.data = []; diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js index 8567a0409..50d620a34 100644 --- a/src/composables/useArrayData.js +++ b/src/composables/useArrayData.js @@ -18,7 +18,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) { onMounted(() => { setOptions(); - arrayDataStore.reset(['skip']); + reset(['skip']); const query = route.query; const searchUrl = store.searchUrl; @@ -74,9 +74,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) { }; let exprFilter; - let userParams = { ...store.userParams }; - if (store?.exprBuilder) { const where = buildFilter(userParams, (param, value) => { const res = store.exprBuilder(param, value); @@ -159,11 +157,10 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) { if (filter) store.filter = filter; let userParams = { ...store.userParams, ...params }; - userParams = sanitizerParams(userParams, store?.exprBuilder); store.userParams = userParams; - arrayDataStore.reset(['skip', 'filter.skip', 'page']); + reset(['skip', 'filter.skip', 'page']); await fetch({}); return { filter, params }; @@ -190,6 +187,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) { } store.order = order; + reset(['skip', 'filter.skip', 'page']); fetch({}); index++; diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index 6943252c9..2f1209a3a 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -246,6 +246,7 @@ globals: mailForwarding: Mail forwarding mailAlias: Mail alias privileges: Privileges + labeler: Labeler created: Created worker: Worker now: Now diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index f32562313..c5c4fab66 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -248,6 +248,7 @@ globals: components: Componentes pictures: Fotos packages: Bultos + labeler: Etiquetas created: Fecha creación worker: Trabajador now: Ahora diff --git a/src/pages/Department/Card/DepartmentDescriptor.vue b/src/pages/Department/Card/DepartmentDescriptor.vue index b49f5f9e2..e914f6af6 100644 --- a/src/pages/Department/Card/DepartmentDescriptor.vue +++ b/src/pages/Department/Card/DepartmentDescriptor.vue @@ -24,7 +24,7 @@ const $props = defineProps({ const route = useRoute(); const router = useRouter(); - +const DepartmentDescriptorRef = ref(); const { t } = useI18n(); const { notify } = useNotify(); @@ -55,18 +55,20 @@ const { openConfirmationModal } = useVnConfirm(); { department = data; setData(data); } " + data-key="department" > diff --git a/src/pages/Entry/Card/EntrySummary.vue b/src/pages/Entry/Card/EntrySummary.vue index fe530795c..b32dc70a9 100644 --- a/src/pages/Entry/Card/EntrySummary.vue +++ b/src/pages/Entry/Card/EntrySummary.vue @@ -183,15 +183,10 @@ const fetchEntryBuys = async () => { {{ t('globals.summary.basicData') }} - - - - - { {{ t('globals.summary.basicData') }} - @@ -214,31 +208,25 @@ const fetchEntryBuys = async () => { - - - - - - { diff --git a/src/pages/Entry/MyEntries.vue b/src/pages/Entry/MyEntries.vue index d4b73b479..45990235d 100644 --- a/src/pages/Entry/MyEntries.vue +++ b/src/pages/Entry/MyEntries.vue @@ -98,7 +98,6 @@ const printBuys = (rowId) => { ref="myEntriesRef" data-key="myEntriesList" url="Entries/filter" - :order="['landed DESC', 'id DESC']" :columns="columns" default-mode="card" auto-load diff --git a/src/pages/InvoiceOut/Card/InvoiceOutDescriptor.vue b/src/pages/InvoiceOut/Card/InvoiceOutDescriptor.vue index 42b8d92d9..bd52e5b02 100644 --- a/src/pages/InvoiceOut/Card/InvoiceOutDescriptor.vue +++ b/src/pages/InvoiceOut/Card/InvoiceOutDescriptor.vue @@ -84,7 +84,7 @@ const setData = (entity) => (data.value = useCardDescription(entity.ref, entity. /> - + { - stateStore.rightDrawer = true; + stateStore.leftDrawer = false; }); -onUnmounted(() => (stateStore.rightDrawer = false)); +onUnmounted(() => (stateStore.leftDrawer = true)); @@ -63,13 +63,15 @@ onUnmounted(() => (stateStore.rightDrawer = false)); - + - + {{ t('salesMonitor.ticketsMonitor') }} - + + diff --git a/src/pages/Monitor/SalesClientsTable.vue b/src/pages/Monitor/SalesClientsTable.vue index 8008b1fda..2fb9e8e2f 100644 --- a/src/pages/Monitor/SalesClientsTable.vue +++ b/src/pages/Monitor/SalesClientsTable.vue @@ -3,14 +3,11 @@ import { ref, computed, reactive, watch } from 'vue'; import { useI18n } from 'vue-i18n'; import FetchData from 'components/FetchData.vue'; -import VnSelect from 'src/components/common/VnSelect.vue'; -import VnInputDate from 'src/components/common/VnInputDate.vue'; import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue'; import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorProxy.vue'; -import VnPaginate from 'components/ui/VnPaginate.vue'; import { toDateFormat } from 'src/filters/date.js'; -import { dashIfEmpty } from 'src/filters'; +import VnTable from 'src/components/VnTable/VnTable.vue'; const { t } = useI18n(); @@ -37,9 +34,11 @@ const filter = reactive({ }, }); +const refetch = async () => await paginateRef.value.fetch(); + watch(dateRange, (val) => { filter.where['v.stamp'].between = val; - paginateRef.value.fetch(); + refetch(); }); function exprBuilder(param, value) { @@ -53,25 +52,15 @@ function exprBuilder(param, value) { const params = reactive({}); -const applyColumnFilter = async (col) => { - try { - const paramKey = col.columnFilter?.filterParamKey || col.field; - params[paramKey] = col.columnFilter.filterValue; - await paginateRef.value.addFilter(null, params); - } catch (err) { - console.error('Error applying column filter', err); - } -}; - const columns = computed(() => [ { label: t('salesClientsTable.date'), - name: 'date', + name: 'dated', field: 'dated', align: 'left', columnFilter: null, sortable: true, - format: (val) => toDateFormat(val), + format: (row) => toDateFormat(row.dated), }, { label: t('salesClientsTable.hour'), @@ -86,19 +75,9 @@ const columns = computed(() => [ field: 'salesPerson', align: 'left', sortable: true, - columnFilter: { - component: VnSelect, - filterParamKey: 'salesPersonFk', - type: 'select', - filterValue: null, - attrs: { - options: workersActiveOptions.value, - 'option-value': 'id', - 'option-label': 'name', - dense: true, - }, + columnField: { + component: null, }, - format: (val) => dashIfEmpty(val), }, { label: t('salesClientsTable.client'), @@ -106,19 +85,9 @@ const columns = computed(() => [ name: 'client', align: 'left', sortable: true, - columnFilter: { - component: VnSelect, - filterParamKey: 'clientFk', - type: 'select', - filterValue: null, - attrs: { - options: clientsOptions.value, - 'option-value': 'id', - 'option-label': 'name', - dense: true, - }, + columnField: { + component: null, }, - format: (val) => dashIfEmpty(val), }, ]); @@ -144,7 +113,7 @@ const columns = computed(() => [ @on-fetch="(data) => (clientsOptions = data)" /> - [ :filter="filter" :offset="50" auto-load + :columns="columns" + :right-search="false" + default-mode="table" + dense + :without-header="true" > - - - - - - - - - - - - - - - - {{ row.salesPerson }} - - - - - - {{ row.clientName }} - - - - + + + {{ row.salesPerson }} + + - + + + {{ row.clientName }} + + + + diff --git a/src/pages/Monitor/SalesOrdersTable.vue b/src/pages/Monitor/SalesOrdersTable.vue index 0ba900393..f0c389aa6 100644 --- a/src/pages/Monitor/SalesOrdersTable.vue +++ b/src/pages/Monitor/SalesOrdersTable.vue @@ -5,7 +5,8 @@ import { useI18n } from 'vue-i18n'; import FetchData from 'components/FetchData.vue'; import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue'; import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorProxy.vue'; -import VnPaginate from 'components/ui/VnPaginate.vue'; +import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue'; +import VnTable from 'components/VnTable/VnTable.vue'; import { toDateFormat, toDateTimeFormat } from 'src/filters/date.js'; import { toCurrency } from 'src/filters'; @@ -50,19 +51,22 @@ const columns = computed(() => [ name: 'date', field: 'dated', align: 'left', - columnFilter: null, + sortable: true, + cardVisible: true, }, { label: t('salesOrdersTable.client'), name: 'client', align: 'left', sortable: true, + cardVisible: true, }, { label: t('salesOrdersTable.salesPerson'), name: 'salesPerson', align: 'left', sortable: true, + cardVisible: true, }, ]); @@ -119,79 +123,78 @@ const redirectToOrderSummary = (orderId) => { @on-fetch="(data) => (clientsOptions = data)" /> + - redirectToOrderSummary(row.id)" + v-model:selected="selectedRows" > - - redirectToOrderSummary(row.id)" + + - - - {{ t('salesOrdersTable.delete') }} - - - - - - {{ toDateFormat(row.date_send) }} - - {{ toDateTimeFormat(row.date_make) }} - - - - - - {{ row.clientName }} - - - {{ row.agencyName }} - - - - - - {{ row.salesPerson }} - - - {{ toCurrency(row.import) }} - - - + {{ t('salesOrdersTable.delete') }} + - + + + + {{ toDateFormat(row.date_send) }} + + {{ toDateTimeFormat(row.date_make) }} + + + + + + {{ row.clientName }} + + + {{ row.agencyName }} + + + + + + + {{ row.salesPerson }} + + + {{ toCurrency(row.import) }} + + +