Compare commits

...

76 Commits

Author SHA1 Message Date
Pablo Natek 7f1ae16270 fix: refs #8004 fix conflict
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-16 06:20:41 +02:00
Jon Elias 4fb3e0dadf Merge pull request '#7825: Fill the bank field when a new entity is created' (!798) from 7825-FixCreatebankEntity into dev
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #798
Reviewed-by: Javier Segarra <jsegarra@verdnatura.es>
2024-10-15 11:42:38 +00:00
Jon Elias c4670b57de Merge branch 'dev' into 7825-FixCreatebankEntity
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-15 11:13:35 +00:00
Jon Elias 15f171da0f perf: refs #7825 create bank entity
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-15 13:12:37 +02:00
Carlos Satorres 22cc9d689d Merge pull request 'refs #7767 check holiday' (!800) from 7767-holidayDaysExceeded into dev
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #800
Reviewed-by: Alex Moreno <alexm@verdnatura.es>
2024-10-15 10:55:45 +00:00
Carlos Satorres 3badfbcff9 Merge branch 'dev' into 7767-holidayDaysExceeded
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-15 10:54:57 +00:00
Alex Moreno 0f84baf1a8 build: init version 24.44
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
2024-10-15 09:29:06 +02:00
Alex Moreno a33dde3dcf Merge pull request '8093-devToTest_2442_3' (!831) from 8093-devToTest_2442_3 into test
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #831
Reviewed-by: Carlos Satorres <carlossa@verdnatura.es>
2024-10-15 07:22:03 +00:00
Alex Moreno 3bb5f66ce7 fix(claimNotes): refs #8093 $props.selectType && !newNote.observationTypeFk
gitea/salix-front/pipeline/pr-test This commit looks good Details
2024-10-15 08:43:58 +02:00
Alex Moreno d87e8ec4ae Merge branch 'test' of https://gitea.verdnatura.es/verdnatura/salix-front into dev
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
gitea/salix-front/pipeline/pr-test This commit looks good Details
2024-10-15 08:01:22 +02:00
Alex Moreno a68416244c Merge branch 'master' of https://gitea.verdnatura.es/verdnatura/salix-front into test
gitea/salix-front/pipeline/head This commit looks good Details
2024-10-15 08:01:02 +02:00
Carlos Satorres bc581caa4e fix: refs #7767 console remove
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-15 07:57:19 +02:00
Carlos Satorres 29770c57bd Merge pull request 'refs #6898 #6899 hotfix lists' (!826) from #6898-&-#6899-hotfixFilterList into master
gitea/salix-front/pipeline/pr-test This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
gitea/salix-front/pipeline/pr-master This commit looks good Details
Reviewed-on: #826
Reviewed-by: Alex Moreno <alexm@verdnatura.es>
2024-10-15 05:42:40 +00:00
Carlos Satorres 85eed86ba8 Merge branch 'master' into #6898-&-#6899-hotfixFilterList
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-15 05:41:32 +00:00
Jorge Penadés 523423cce6 Merge pull request '#7874 add observation type' (!765) from 7874-addObservationType into dev
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #765
Reviewed-by: Javier Segarra <jsegarra@verdnatura.es>
2024-10-14 14:16:44 +00:00
Jorge Penadés 53fe6b0c3c Merge pull request 'fix: refs #7353 scopeDays' (!795) from 7353-hotfix-fixScopeDays into master
gitea/salix-front/pipeline/pr-test This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #795
Reviewed-by: Javier Segarra <jsegarra@verdnatura.es>
2024-10-14 14:11:06 +00:00
Jorge Penadés 37dfca3bce Merge branch 'master' of https://gitea.verdnatura.es/verdnatura/salix-front into 7353-hotfix-fixScopeDays
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-14 16:03:13 +02:00
Jorge Penadés 12e1d9c389 Merge pull request 'fix: refs #7524 dynamic fetch' (!828) from 7524-hotfix-dynamicFetch into master
gitea/salix-front/pipeline/pr-test This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #828
Reviewed-by: Javier Segarra <jsegarra@verdnatura.es>
2024-10-14 14:02:02 +00:00
Jorge Penadés 1c7ec6af41 Merge branch '7353-hotfix-fixScopeDays' of https://gitea.verdnatura.es/verdnatura/salix-front into 7353-hotfix-fixScopeDays
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-14 15:54:19 +02:00
Jorge Penadés 19545ca7e6 Merge branch 'master' of https://gitea.verdnatura.es/verdnatura/salix-front into 7353-hotfix-fixScopeDays 2024-10-14 15:54:08 +02:00
Jorge Penadés 2d34921cf5 fix: refs #7524 paginate
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-14 15:52:12 +02:00
Jorge Penadés 245c027357 chore: refs #7874 refactor imports
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 15:43:59 +02:00
Jorge Penadés 0fb9b22935 chore: refs #7874 refactor code
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 14:09:52 +02:00
Carlos Satorres 8258fbb91e refs #7767 remove onMounted
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 13:24:12 +02:00
Jorge Penadés 0f3168456a chore: refs #7524 sort by firstName
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-14 13:22:59 +02:00
Carlos Satorres b225f6a4c8 refs #7767 fix contractHolidays
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 13:18:34 +02:00
Jorge Penadés 4ff3c18f33 feat: refs #7874 use badge type
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 13:00:15 +02:00
Jorge Penadés 6f2187cb68 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 12:18:37 +02:00
Jorge Penadés 4b78c1acd0 fix: refs #7524 dynamic
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-14 12:00:05 +02:00
Jorge Penadés 12392444b9 Merge pull request '#8019 make responsive inputs' (!812) from 8019-makeResponsiveInputs into dev
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #812
Reviewed-by: Alex Moreno <alexm@verdnatura.es>
2024-10-14 08:50:20 +00:00
Jorge Penadés fdbae5c0b5 Merge branch 'dev' into 8019-makeResponsiveInputs
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 08:48:50 +00:00
Carlos Satorres 2edeb1043e Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7767-holidayDaysExceeded
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 10:24:49 +02:00
Carlos Satorres 85b068eddb refs #6898 #6899 hotfix lists
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-14 10:21:02 +02:00
Alex Moreno 29651b425e Merge pull request 'refs: #6898 hotfix accounts' (!824) from 6898-fixSupplierAccounts into master
gitea/salix-front/pipeline/pr-test This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #824
Reviewed-by: Alex Moreno <alexm@verdnatura.es>
2024-10-14 07:46:30 +00:00
Carlos Satorres 6a624b12a5 refs: #6898 hotfix accounts
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-14 09:28:51 +02:00
Javier Segarra adbb745f0f Merge pull request 'Fix own test' (!816) from fix_test_jsegarra into dev
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #816
Reviewed-by: Alex Moreno <alexm@verdnatura.es>
2024-10-14 07:24:16 +00:00
Javier Segarra 914f6022be Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into fix_test_jsegarra
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 09:23:31 +02:00
Alex Moreno 55b9fb1a87 Merge pull request 'fix: MyEntry e2e test' (!823) from Fix-EntryTest into dev
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #823
Reviewed-by: Alex Moreno <alexm@verdnatura.es>
2024-10-14 07:10:20 +00:00
Jon Elias eebac7b36c fix: fixed e2e test
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 08:51:26 +02:00
Jorge Penadés db5449444a Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-14 08:37:44 +02:00
Alex Moreno 64c8d264af warmFix(TravelList): add daysOnward in travelFilter
gitea/salix-front/pipeline/pr-4774-traducciones This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
2024-10-14 07:43:29 +02:00
Jorge Penadés 50042ed45b feat: refs #7874 prevent submit if empty fields
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-10 16:49:41 +02:00
Jorge Penadés 6d674f2a2b Merge branch 'dev' into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-10 13:41:01 +00:00
Jorge Penadés 5af14b1b52 chore: refs #7874 fix test
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-10 12:12:03 +02:00
Jorge Penadés 44c4c378f9 chore: refs #7874 add default ob type
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-10 11:02:03 +02:00
Javier Segarra 09d40b844c Merge pull request 'fix: Use geoFk for ZoneDeliveryPanel' (!819) from hotfix_zoneDeliveryPanel into master
gitea/salix-front/pipeline/pr-test This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #819
Reviewed-by: Javier Segarra <jsegarra@verdnatura.es>
2024-10-10 08:33:58 +00:00
Jon Elias 8b68c0afeb fix: improve geoFk for ZoneDeliveryPanel
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-10 08:30:56 +00:00
Jorge Penadés 830decb6db Merge branch 'dev' into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-10 08:16:36 +00:00
Jon Elias e58818e891 fix: Use geoFk for ZoneDeliveryPanel
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-10 08:14:24 +00:00
Jorge Penadés 9c6b4f28d7 Merge pull request '#7524 use dynamic load' (!818) from 7524-hotfix-dynamicFetch into master
gitea/salix-front/pipeline/pr-test This commit looks good Details
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #818
Reviewed-by: Javier Segarra <jsegarra@verdnatura.es>
2024-10-10 08:00:56 +00:00
Jorge Penadés cfe95df9e8 fix: refs #7524 use dynamic load
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-10 09:46:07 +02:00
Javier Segarra 6a79746080 test: fix TicketDescriptor
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-08 13:18:51 +02:00
Javier Segarra e0f60ed118 test: fix VnLocation
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-08 11:07:05 +00:00
Jorge Penadés e6535a5dd8 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 8019-makeResponsiveInputs
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-07 16:10:59 +02:00
Jorge Penadés 4344458bb0 feat: refs #8019 fine-tunning vnTime
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-07 16:02:29 +02:00
Jorge Penadés c815066953 feat: refs #8019 fine-tunning vnDate 2024-10-07 15:55:18 +02:00
Jorge Penadés d1b3e01d87 chore: refs #8019 refactor css scoped
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-07 13:36:27 +02:00
Jorge Penadés d88fadca55 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 8019-makeResponsiveInputs 2024-10-07 11:47:39 +02:00
Jorge Penadés 5c5a359986 refactor: refs #8019 create VnTime 2024-10-07 09:38:39 +02:00
Jorge Penadés 947f913679 refactor: refs #8019 create VnDate 2024-10-07 09:25:06 +02:00
Jorge Penadés 055b1b0a88 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-04 16:12:31 +02:00
Jorge Penadés 9c5ce6dbfd Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-04 13:50:31 +02:00
Jorge Penadés a311cf00d2 Merge branch 'master' into 7353-hotfix-fixScopeDays
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-04 11:12:19 +00:00
Carlos Satorres 0d31adaa4b refs #7767 check holiday
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-04 11:29:21 +02:00
Jon Elias 4b9588c189 refactor: refs #7825 modified worker list form to fill the field when a bank entity is created
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-04 08:55:48 +02:00
Jorge Penadés cd20db637c fix: refs #7874 btn ui
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-03 15:30:26 +02:00
Jorge Penadés aca10b81af Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-03 15:14:28 +02:00
Jorge Penadés ad8b72660f fix: refs #7353 scopeDays
gitea/salix-front/pipeline/pr-master This commit looks good Details
2024-10-03 13:37:21 +02:00
Jorge Penadés 01dc25da8c refactor: refs #7874 create element if condition
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-03 10:23:27 +02:00
Jorge Penadés a8c48789ca Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-03 10:03:49 +02:00
Jorge Penadés 9b8e388525 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-03 09:49:04 +02:00
Jorge Penadés 71201f1007 feat: refs #7874 required fields banner
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-09-26 17:19:05 +02:00
Jorge Penadés 11c135e8c4 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-09-26 16:01:40 +02:00
Jorge Penadés 0cffe0b586 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7874-addObservationType
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-09-26 09:08:53 +02:00
Jorge Penadés 709a662ceb feat: refs #7874 select observation type 2024-09-26 09:08:12 +02:00
Jorge Penadés 68ebda625b fix: refs #7874 refs #6943 ui 2024-09-25 14:02:11 +02:00
35 changed files with 325 additions and 237 deletions

View File

@ -1,6 +1,6 @@
{
"name": "salix-front",
"version": "24.42.0",
"version": "24.44.0",
"description": "Salix frontend",
"productName": "Salix",
"author": "Verdnatura",

View File

@ -31,8 +31,8 @@ const countriesFilter = {
const countriesOptions = ref([]);
const onDataSaved = (formData, requestResponse) => {
emit('onDataSaved', formData, requestResponse);
const onDataSaved = (...args) => {
emit('onDataSaved', ...args);
};
onMounted(async () => {

View File

@ -0,0 +1,29 @@
<script setup>
const model = defineModel({ type: [String, Number], required: true });
</script>
<template>
<QDate v-model="model" :today-btn="true" :options="$attrs.options" />
</template>
<style lang="scss" scoped>
.q-date {
width: 245px;
min-width: unset;
:deep(.q-date__calendar) {
padding-bottom: 0;
}
:deep(.q-date__view) {
min-height: 245px;
padding: 8px;
}
:deep(.q-date__calendar-days-container) {
min-height: 160px;
height: unset;
}
:deep(.q-date__header) {
padding: 2px 2px 5px 12px;
height: 60px;
}
}
</style>

View File

@ -3,6 +3,7 @@ import { onMounted, watch, computed, ref } from 'vue';
import { date } from 'quasar';
import { useI18n } from 'vue-i18n';
import { useAttrs } from 'vue';
import VnDate from './VnDate.vue';
const model = defineModel({ type: [String, Date] });
const $props = defineProps({
@ -87,6 +88,11 @@ const styleAttrs = computed(() => {
}
: {};
});
const manageDate = (date) => {
formattedDate.value = date;
isPopupOpen.value = false;
};
</script>
<template>
@ -122,6 +128,7 @@ const styleAttrs = computed(() => {
/>
</template>
<QMenu
v-if="$q.screen.gt.xs"
transition-show="scale"
transition-hide="scale"
v-model="isPopupOpen"
@ -130,20 +137,11 @@ const styleAttrs = computed(() => {
:no-focus="true"
:no-parent-event="true"
>
<QDate
class="date-picker"
v-model="popupDate"
:landscape="true"
:today-btn="true"
:options="$attrs.options"
@update:model-value="
(date) => {
formattedDate = date;
isPopupOpen = false;
}
"
/>
<VnDate v-model="popupDate" @update:model-value="manageDate" />
</QMenu>
<QDialog v-else v-model="isPopupOpen">
<VnDate v-model="popupDate" @update:model-value="manageDate" />
</QDialog>
</QInput>
</div>
</template>

View File

@ -3,6 +3,8 @@ import { computed, ref, useAttrs } from 'vue';
import { useI18n } from 'vue-i18n';
import { date } from 'quasar';
import { useValidator } from 'src/composables/useValidator';
import VnTime from './VnTime.vue';
const { validations } = useValidator();
const $attrs = useAttrs();
const model = defineModel({ type: String });
@ -101,6 +103,7 @@ function dateToTime(newDate) {
/>
</template>
<QMenu
v-if="$q.screen.gt.xs"
transition-show="scale"
transition-hide="scale"
v-model="isPopupOpen"
@ -109,8 +112,11 @@ function dateToTime(newDate) {
:no-focus="true"
:no-parent-event="true"
>
<QTime v-model="formattedTime" mask="HH:mm" landscape now-btn />
<VnTime v-model="formattedTime" />
</QMenu>
<QDialog v-else v-model="isPopupOpen">
<VnTime v-model="formattedTime" />
</QDialog>
</QInput>
</div>
</template>

View File

@ -227,6 +227,8 @@ function nullishToTrue(value) {
}
const getVal = (val) => ($props.useLike ? { like: `%${val}%` } : val);
defineExpose({ opts: myOptions });
</script>
<template>

View File

@ -0,0 +1,16 @@
<script setup>
const model = defineModel({ type: [String, Number], required: true });
</script>
<template>
<QTime v-model="model" now-btn mask="HH:mm" />
</template>
<style lang="scss" scoped>
.q-time {
width: 230px;
min-width: unset;
:deep(.q-time__header) {
min-height: unset;
height: 50px;
}
}
</style>

View File

@ -58,7 +58,7 @@ defineExpose({
:class="{ zoomIn: zoom }"
:src="getUrl()"
v-bind="$attrs"
@click.stop="show = $props.zoom ? true : false"
@click.stop="show = $props.zoom"
spinner-color="primary"
/>
<QDialog v-if="$props.zoom" v-model="show">

View File

@ -1,6 +1,6 @@
<script setup>
import axios from 'axios';
import { ref } from 'vue';
import { ref, reactive } from 'vue';
import { onBeforeRouteLeave } from 'vue-router';
import { useI18n } from 'vue-i18n';
import { useQuasar } from 'quasar';
@ -12,36 +12,40 @@ import VnPaginate from 'components/ui/VnPaginate.vue';
import VnUserLink from 'components/ui/VnUserLink.vue';
import VnConfirm from 'components/ui/VnConfirm.vue';
import VnAvatar from 'components/ui/VnAvatar.vue';
import VnRow from 'components/ui/VnRow.vue';
import VnSelect from 'components/common/VnSelect.vue';
import FetchData from 'components/FetchData.vue';
import VnInput from 'components/common/VnInput.vue';
const $props = defineProps({
url: { type: String, default: null },
filter: { type: Object, default: () => {} },
body: { type: Object, default: () => {} },
addNote: { type: Boolean, default: false },
selectType: { type: Boolean, default: false },
});
const { t } = useI18n();
const state = useState();
const quasar = useQuasar();
const currentUser = ref(state.getUser());
const newNote = ref('');
const newNote = reactive({ text: null, observationTypeFk: null });
const observationTypes = ref([]);
const vnPaginateRef = ref();
function handleKeyUp(event) {
if (event.key === 'Enter') {
event.preventDefault();
if (!event.shiftKey) insert();
}
}
async function insert() {
if (!newNote.text || ($props.selectType && !newNote.observationTypeFk)) return;
const body = $props.body;
const newBody = { ...body, ...{ text: newNote.value } };
const newBody = {
...body,
...{ text: newNote.text, observationTypeFk: newNote.observationTypeFk },
};
await axios.post($props.url, newBody);
await vnPaginateRef.value.fetch();
newNote.value = '';
}
onBeforeRouteLeave((to, from, next) => {
if (newNote.value)
if (newNote.text)
quasar.dialog({
component: VnConfirm,
componentProps: {
@ -54,6 +58,13 @@ onBeforeRouteLeave((to, from, next) => {
});
</script>
<template>
<FetchData
v-if="selectType"
url="ObservationTypes"
:filter="{ fields: ['id', 'description'] }"
auto-load
@on-fetch="(data) => (observationTypes = data)"
/>
<QCard class="q-pa-xs q-mb-xl full-width" v-if="$props.addNote">
<QCardSection horizontal>
<VnAvatar :worker-id="currentUser.id" size="md" />
@ -62,18 +73,28 @@ onBeforeRouteLeave((to, from, next) => {
{{ t('globals.now') }}
</div>
</QCardSection>
<QCardSection class="q-pa-xs q-my-none q-py-none" horizontal>
<QInput
v-model="newNote"
class="full-width"
<QCardSection class="q-px-xs q-my-none q-py-none">
<VnRow class="full-width">
<VnSelect
:label="t('Observation type')"
v-if="selectType"
url="ObservationTypes"
v-model="newNote.observationTypeFk"
option-label="description"
style="flex: 0.15"
:required="true"
@keyup.enter.stop="insert"
/>
<VnInput
v-model.trim="newNote.text"
type="textarea"
:label="t('Add note here...')"
filled
size="lg"
autogrow
autofocus
@keyup="handleKeyUp"
@keyup.enter.stop="insert"
clearable
:required="true"
>
<template #append>
<QBtn
@ -82,9 +103,12 @@ onBeforeRouteLeave((to, from, next) => {
color="primary"
flat
@click="insert"
class="q-mb-xs"
dense
/>
</template>
</QInput>
</VnInput>
</VnRow>
</QCardSection>
</QCard>
<VnPaginate
@ -98,6 +122,10 @@ onBeforeRouteLeave((to, from, next) => {
class="show"
v-bind="$attrs"
search-url="notes"
@on-fetch="
newNote.text = '';
newNote.observationTypeFk = null;
"
>
<template #body="{ rows }">
<TransitionGroup name="list" tag="div" class="column items-center full-width">
@ -111,13 +139,28 @@ onBeforeRouteLeave((to, from, next) => {
:descriptor="false"
:worker-id="note.workerFk"
size="md"
:title="note.worker?.user.nickname"
/>
<div class="full-width row justify-between q-pa-xs">
<div>
<VnUserLink
:name="`${note.worker.user.nickname}`"
:worker-id="note.worker.id"
/>
{{ toDateHourMin(note.created) }}
<QBadge
class="q-ml-xs"
outline
color="grey"
v-if="selectType && note.observationTypeFk"
>
{{
observationTypes.find(
(ot) => ot.id === note.observationTypeFk
)?.description
}}
</QBadge>
</div>
<span v-text="toDateHourMin(note.created)" />
</div>
</QCardSection>
<QCardSection class="q-pa-xs q-my-none q-py-none">
@ -131,12 +174,6 @@ onBeforeRouteLeave((to, from, next) => {
<style lang="scss" scoped>
.q-card {
width: 90%;
@media (max-width: $breakpoint-sm) {
width: 100%;
}
&__section {
word-wrap: break-word;
}
}
.q-dialog .q-card {
width: 400px;
@ -150,11 +187,28 @@ onBeforeRouteLeave((to, from, next) => {
opacity: 0;
background-color: $primary;
}
.vn-row > :nth-child(2) {
margin-left: 0;
}
@media (max-width: $breakpoint-xs) {
.vn-row > :deep(*) {
margin-left: 0;
}
.q-card {
width: 100%;
&__section {
padding: 0;
}
}
}
</style>
<i18n>
es:
Add note here...: Añadir nota aquí...
New note: Nueva nota
Save (Enter): Guardar (Intro)
Observation type: Tipo de observación
</i18n>

View File

@ -22,5 +22,6 @@ const noteFilter = computed(() => {
:filter="noteFilter"
:body="{ clientFk: route.params.id }"
style="overflow-y: auto"
:select-type="true"
/>
</template>

View File

@ -25,19 +25,31 @@ const { notify } = useNotify();
const { t } = useI18n();
const newObservation = ref(null);
const obsId = ref(null);
const onSubmit = async () => {
try {
const data = $props.clients.map((item) => {
return { clientFk: item.clientFk, text: newObservation.value };
});
await axios.post('ClientObservations', data);
if (!obsId.value)
obsId.value = (
await axios.get('ObservationTypes/findOne', {
params: { filter: { where: { description: 'Finance' } } },
})
).data?.id;
const payload = {
const bodyObs = $props.clients.map((item) => {
return {
clientFk: item.clientFk,
text: newObservation.value,
observationTypeFk: obsId.value,
};
});
await axios.post('ClientObservations', bodyObs);
const bodyObsMail = {
defaulters: $props.clients,
observation: newObservation.value,
};
await axios.post('Defaulters/observationEmail', payload);
await axios.post('Defaulters/observationEmail', bodyObsMail);
await $props.promise();

View File

@ -240,7 +240,6 @@ function handleLocation(data, location) {
class="row q-gutter-md q-mb-md"
v-for="(note, index) in notes"
>
<div class="col">
<VnSelect
:label="t('Observation type')"
:options="observationTypes"
@ -249,17 +248,14 @@ function handleLocation(data, location) {
option-value="id"
v-model="note.observationTypeFk"
/>
</div>
<div class="col">
<VnInput
:label="t('Description')"
:rules="validate('route.description')"
clearable
v-model="note.description"
/>
</div>
<div class="flex items-center">
<QIcon
:style="{ flex: 0, 'align-self': $q.screen.gt.xs ? 'end' : 'center' }"
@click.stop="deleteNote(note.id, index)"
class="cursor-pointer"
color="primary"
@ -270,9 +266,7 @@ function handleLocation(data, location) {
{{ t('Remove note') }}
</QTooltip>
</QIcon>
</div>
</VnRow>
<QBtn
@click.stop="addNote()"
class="cursor-pointer add-icon q-mt-md"

View File

@ -1,9 +1,7 @@
<script setup>
import { ref } from 'vue';
import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
import FetchData from 'components/FetchData.vue';
import FormModel from 'components/FormModel.vue';
import VnRow from 'components/ui/VnRow.vue';
import VnInput from 'src/components/common/VnInput.vue';
@ -11,17 +9,8 @@ import VnSelect from 'src/components/common/VnSelect.vue';
const route = useRoute();
const { t } = useI18n();
const workersOptions = ref([]);
const clientsOptions = ref([]);
</script>
<template>
<FetchData
url="Workers/search"
@on-fetch="(data) => (workersOptions = data)"
auto-load
/>
<FetchData url="Clients" @on-fetch="(data) => (clientsOptions = data)" auto-load />
<FormModel
:url="`Departments/${route.params.id}`"
model="department"
@ -62,7 +51,7 @@ const clientsOptions = ref([]);
<VnSelect
:label="t('department.bossDepartment')"
v-model="data.workerFk"
:options="workersOptions"
url="Workers/search"
option-value="id"
option-label="name"
hide-selected
@ -72,7 +61,7 @@ const clientsOptions = ref([]);
<VnSelect
:label="t('department.selfConsumptionCustomer')"
v-model="data.clientFk"
:options="clientsOptions"
url="Clients"
option-value="id"
option-label="name"
hide-selected

View File

@ -15,25 +15,10 @@ const props = defineProps({
required: true,
},
});
const workers = ref();
const workersCopy = ref();
const states = ref();
function setWorkers(data) {
workers.value = data;
workersCopy.value = data;
}
</script>
<template>
<FetchData url="ClaimStates" @on-fetch="(data) => (states = data)" auto-load />
<FetchData
url="Workers/activeWithInheritedRole"
:filter="{ where: { role: 'salesPerson' } }"
@on-fetch="setWorkers"
auto-load
/>
<VnFilterPanel :data-key="props.dataKey" :search-button="true">
<template #tags="{ tag, formatFn }">
<div class="q-gutter-x-xs">

View File

@ -12,6 +12,8 @@ import InvoiceOutSummary from './Card/InvoiceOutSummary.vue';
import { toCurrency, toDate } from 'src/filters/index';
import { QBtn } from 'quasar';
import CustomerDescriptorProxy from '../Customer/Card/CustomerDescriptorProxy.vue';
import RightMenu from 'src/components/common/RightMenu.vue';
import InvoiceOutFilter from './InvoiceOutFilter.vue';
const { t } = useI18n();
const { viewSummary } = useSummaryDialog();
@ -178,6 +180,11 @@ watchEffect(selectedRows);
:label="t('searchInvoice')"
data-key="invoiceOut"
/>
<RightMenu>
<template #right-panel>
<InvoiceOutFilter data-key="invoiceOut" />
</template>
</RightMenu>
<VnSubToolbar>
<template #st-actions>
<QBtn
@ -202,6 +209,7 @@ watchEffect(selectedRows);
active: true,
},
}"
:right-search="false"
v-model:selected="selectedRows"
order="id DESC"
:columns="columns"

View File

@ -170,7 +170,6 @@ const downloadCSV = async () => {
}
}
"
:limit="0"
:columns="columns"
auto-load
:is-editable="false"

View File

@ -15,7 +15,6 @@ const router = useRouter();
const newItemTypeForm = reactive({});
const workersOptions = ref([]);
const categoriesOptions = ref([]);
const temperaturesOptions = ref([]);
@ -25,12 +24,6 @@ const redirectToItemTypeBasicData = (_, { id }) => {
</script>
<template>
<FetchData
url="Workers"
@on-fetch="(data) => (workersOptions = data)"
:filter="{ order: 'firstName ASC', fields: ['id', 'firstName'] }"
auto-load
/>
<FetchData
url="ItemCategories"
@on-fetch="(data) => (categoriesOptions = data)"
@ -61,7 +54,9 @@ const redirectToItemTypeBasicData = (_, { id }) => {
<VnSelect
v-model="data.workerFk"
:label="t('itemType.shared.worker')"
:options="workersOptions"
url="Workers"
sort-by="firstName ASC"
:fields="['id', 'firstName']"
option-value="id"
option-label="firstName"
hide-selected

View File

@ -12,17 +12,10 @@ import VnSelect from 'src/components/common/VnSelect.vue';
const route = useRoute();
const { t } = useI18n();
const workersOptions = ref([]);
const categoriesOptions = ref([]);
const temperaturesOptions = ref([]);
</script>
<template>
<FetchData
url="Workers"
@on-fetch="(data) => (workersOptions = data)"
:filter="{ order: 'firstName ASC', fields: ['id', 'firstName'] }"
auto-load
/>
<FetchData
url="ItemCategories"
@on-fetch="(data) => (categoriesOptions = data)"
@ -50,7 +43,9 @@ const temperaturesOptions = ref([]);
<VnSelect
v-model="data.workerFk"
:label="t('shared.worker')"
:options="workersOptions"
url="Workers"
sort-by="firstName ASC"
:fields="['id', 'firstName']"
option-value="id"
option-label="firstName"
hide-selected

View File

@ -25,7 +25,11 @@ const stateOpts = ref([]);
const zoneOpts = ref([]);
const visibleColumns = ref([]);
const { viewSummary } = useSummaryDialog();
const [from, to] = dateRange(Date.vnNew());
const from = Date.vnNew();
from.setHours(0, 0, 0, 0);
const to = new Date(from.getTime());
to.setDate(to.getDate() + 1);
to.setHours(23, 59, 59, 999);
function exprBuilder(param, value) {
switch (param) {

View File

@ -126,12 +126,6 @@ onMounted(async () => {
</script>
<template>
<FetchData
url="addresses"
@on-fetch="(data) => (clientOptions = data)"
:filter="{ fields: ['id', 'name', 'defaultAddressFk'], order: 'id' }"
auto-load
/>
<FormModelPopup
url-create="Orders/new"
:title="t('Create Order')"
@ -165,13 +159,16 @@ onMounted(async () => {
</template>
</VnSelect>
<VnSelect
ref="addressRef"
:label="t('order.form.addressFk')"
v-model="data.addressId"
:options="addressList"
url="addresses"
:fields="['id', 'nickname', 'defaultAddressFk', 'street', 'city']"
sort-by="id"
option-value="id"
option-label="street"
hide-selected
:disable="!addressList?.length"
:disable="!$refs.addressRef?.length"
>
<template #option="scope">
<QItem v-bind="scope.itemProps">

View File

@ -17,10 +17,6 @@ const props = defineProps({
const agencyFilter = { fields: ['id', 'name'] };
const agencyList = ref(null);
const salesPersonFilter = {
fields: ['id', 'nickname'],
};
const salesPersonList = ref(null);
const sourceList = ref([]);
</script>
@ -32,14 +28,6 @@ const sourceList = ref([]);
auto-load
@on-fetch="(data) => (agencyList = data)"
/>
<FetchData
url="Workers/search"
:filter="salesPersonFilter"
sort-by="nickname ASC"
@on-fetch="(data) => (salesPersonList = data)"
:params="{ departmentCodes: ['VT'] }"
auto-load
/>
<FetchData
url="Orders/getSourceValues"
:filter="{ fields: ['value'] }"

View File

@ -1,7 +1,5 @@
<script setup>
import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
import FetchData from 'components/FetchData.vue';
import VnFilterPanel from 'components/ui/VnFilterPanel.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
@ -14,22 +12,9 @@ const props = defineProps({
});
const emit = defineEmits(['search']);
const workers = ref();
function setWorkers(data) {
workers.value = data;
}
</script>
<template>
<FetchData
url="Workers/activeWithInheritedRole"
:filter="{ where: { role: 'salesPerson' } }"
sort-by="firstName ASC"
@on-fetch="setWorkers"
auto-load
/>
<VnFilterPanel
:data-key="props.dataKey"
:search-button="true"

View File

@ -99,7 +99,11 @@ const setWireTransfer = async () => {
:key="index"
class="row q-gutter-md q-mb-md"
>
<VnInput :label="t('supplier.accounts.iban')" v-model="row.iban">
<VnInput
:label="t('supplier.accounts.iban')"
v-model="row.iban"
:required="true"
>
<template #append>
<QIcon name="info" class="cursor-info">
<QTooltip>{{ t('components.iban_tooltip') }}</QTooltip>
@ -113,6 +117,7 @@ const setWireTransfer = async () => {
option-label="bic"
option-value="id"
hide-selected
:required="true"
:roles-allowed-to-create="['financial']"
>
<template #form>

View File

@ -3,6 +3,8 @@ import { computed, ref } from 'vue';
import { useI18n } from 'vue-i18n';
import VnTable from 'components/VnTable/VnTable.vue';
import VnSearchbar from 'components/ui/VnSearchbar.vue';
import RightMenu from 'src/components/common/RightMenu.vue';
import SupplierListFilter from './SupplierListFilter.vue';
const { t } = useI18n();
const tableRef = ref();
@ -99,6 +101,11 @@ const columns = computed(() => [
<template>
<VnSearchbar data-key="SuppliersList" :limit="20" :label="t('Search suppliers')" />
<RightMenu>
<template #right-panel>
<SupplierListFilter data-key="SuppliersList" />
</template>
</RightMenu>
<VnTable
ref="tableRef"
data-key="SuppliersList"
@ -115,6 +122,7 @@ const columns = computed(() => [
return data;
},
}"
:right-search="false"
order="id ASC"
:columns="columns"
/>

View File

@ -27,7 +27,6 @@ const initialFormState = reactive({
warehouseId: user.value.warehouseFk,
landed: null,
});
const clientOptions = ref([]);
const agenciesOptions = ref([]);
const addressesOptions = ref([]);
const warehousesOptions = ref([]);
@ -111,12 +110,6 @@ const redirectToTicketList = (_, { id }) => {
</script>
<template>
<FetchData
url="Clients"
@on-fetch="(data) => (clientOptions = data)"
:filter="{ fields: ['id', 'name', 'defaultAddressFk'], order: 'id' }"
auto-load
/>
<FetchData
url="Warehouses"
@on-fetch="(data) => (warehousesOptions = data)"
@ -137,7 +130,9 @@ const redirectToTicketList = (_, { id }) => {
<VnSelect
:label="t('ticket.create.client')"
v-model="data.clientId"
:options="clientOptions"
url="Clients"
:fields="['id', 'name', 'defaultAddressFk']"
sort-by="id"
option-value="id"
option-label="name"
hide-selected

View File

@ -6,6 +6,7 @@ import FetchData from 'components/FetchData.vue';
import VnFilterPanel from 'src/components/ui/VnFilterPanel.vue';
import VnInput from 'src/components/common/VnInput.vue';
import VnInputDate from 'components/common/VnInputDate.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
const { t } = useI18n();
const props = defineProps({
@ -15,7 +16,6 @@ const props = defineProps({
},
});
const workers = ref([]);
const provinces = ref([]);
const states = ref([]);
const agencies = ref([]);
@ -27,12 +27,6 @@ const warehouses = ref([]);
<FetchData url="States" @on-fetch="(data) => (states = data)" auto-load />
<FetchData url="AgencyModes" @on-fetch="(data) => (agencies = data)" auto-load />
<FetchData url="Warehouses" @on-fetch="(data) => (warehouses = data)" auto-load />
<FetchData
url="Workers/activeWithInheritedRole"
:filter="{ where: { role: 'salesPerson' } }"
@on-fetch="(data) => (workers = data)"
auto-load
/>
<VnFilterPanel :data-key="props.dataKey" :search-button="true" search-url="table">
<template #tags="{ tag, formatFn }">
<div class="q-gutter-x-xs">
@ -66,23 +60,19 @@ const warehouses = ref([]);
</QItemSection>
</QItem>
<QItem>
<QItemSection v-if="!workers">
<QSkeleton type="QInput" class="full-width" />
</QItemSection>
<QItemSection v-if="workers">
<QSelect
<QItemSection>
<VnSelect
:label="t('Salesperson')"
v-model="params.salesPersonFk"
:options="workers"
url="Workers/activeWithInheritedRole"
:where="{ role: 'salesPerson' }"
option-value="id"
option-label="name"
emit-value
map-options
use-input
option-label="firstName"
:use-like="false"
sort-by="firstName ASC"
dense
outlined
rounded
:input-debounce="0"
/>
</QItemSection>
</QItem>

View File

@ -124,6 +124,12 @@ defineExpose({ states });
lazy-rules
is-outlined
/>
<VnInput
:label="t('travel.travelList.tableVisibleColumns.daysOnward')"
v-model="params.daysOnward"
lazy-rules
is-outlined
/>
</div>
</template>
</VnFilterPanel>

View File

@ -158,15 +158,6 @@ const columns = computed(() => [
cardVisible: true,
create: true,
},
{
align: 'left',
name: 'daysOnward',
label: t('travel.travelList.tableVisibleColumns.daysOnward'),
visible: false,
columnFilter: {
inWhere: false,
},
},
{
align: 'right',
label: '',

View File

@ -3,9 +3,11 @@ import WorkerEventLabel from 'pages/Worker/Card/WorkerEventLabel.vue';
import FetchData from 'components/FetchData.vue';
import { useI18n } from 'vue-i18n';
import VnSelect from 'components/common/VnSelect.vue';
import useNotify from 'src/composables/useNotify';
import { useRoute } from 'vue-router';
import { computed, ref } from 'vue';
import { computed, ref, watch } from 'vue';
import { toDateFormat } from '../../../filters/date';
const { notify } = useNotify();
const { t } = useI18n();
const route = useRoute();
@ -33,6 +35,13 @@ const props = defineProps({
},
});
watch(
() => props.contractHolidays,
(newValue) => {
checkHolidays(newValue);
},
{ deep: true, immediate: true }
);
const emit = defineEmits(['update:businessFk', 'update:year', 'update:absenceType']);
const selectedBusinessFk = computed({
@ -53,12 +62,22 @@ const selectedAbsenceType = computed({
},
});
const generateYears = () => {
function generateYears() {
const now = Date.vnNew();
const maxYear = now.getFullYear() + 1;
return Array.from({ length: 5 }, (_, i) => String(maxYear - i)) || [];
};
}
function checkHolidays(contractHolidays) {
if (!contractHolidays) return;
if (
contractHolidays.holidaysEnjoyed > contractHolidays.totalHolidays ||
contractHolidays.hoursEnjoyed > contractHolidays.totalHours
) {
notify(t('Vacation days have been exceeded'), 'negative');
}
}
const absenceTypeList = ref([]);
const contractList = ref([]);

View File

@ -29,6 +29,7 @@ const postcodesOptions = ref([]);
const user = useState().getUser();
const defaultPayMethod = ref();
const bankEntitiesRef = ref();
const columns = computed(() => [
{
align: 'left',
@ -119,6 +120,12 @@ onBeforeMount(async () => {
).data?.payMethodFk;
});
async function handleNewBankEntity(data, resp) {
await bankEntitiesRef.value.fetch();
data.bankEntityFk = resp.id;
bankEntitiesOptions.value.push(resp);
}
function handleLocation(data, location) {
const { town, code, provinceFk, countryFk } = location ?? {};
data.postcode = code;
@ -178,6 +185,7 @@ async function autofillBic(worker) {
auto-load
/>
<FetchData
ref="bankEntitiesRef"
url="BankEntities"
@on-fetch="(data) => (bankEntitiesOptions = data)"
auto-load
@ -345,7 +353,9 @@ async function autofillBic(worker) {
>
<template #form>
<CreateBankEntityForm
@on-data-saved="(data) => bankEntitiesOptions.push(data)"
@on-data-saved="
(_, resp) => handleNewBankEntity(data, resp)
"
/>
</template>
<template #option="scope">

View File

@ -94,9 +94,9 @@ watch(
url="Postcodes/location"
:fields="['geoFk', 'code', 'townFk', 'countryFk']"
sort-by="code, townFk"
option-value="code"
option-value="geoFk"
option-label="code"
option-filter="code"
:filter-options="['code', 'geoFk']"
hide-selected
dense
outlined

View File

@ -1,4 +1,6 @@
describe('ClaimNotes', () => {
const saveBtn = '.q-field__append > .q-btn > .q-btn__content > .q-icon';
const firstNote = '.q-infinite-scroll :nth-child(1) > .q-card__section--vert';
beforeEach(() => {
cy.login('developer');
cy.visit(`/#/claim/${2}/notes`);
@ -7,7 +9,7 @@ describe('ClaimNotes', () => {
it('should add a new note', () => {
const message = 'This is a new message.';
cy.get('.q-textarea').type(message);
cy.get('.q-field__append > .q-btn > .q-btn__content > .q-icon').click(); //save
cy.get(':nth-child(1) > .q-card__section--vert').should('have.text', message);
cy.get(saveBtn).click();
cy.get(firstNote).should('have.text', message);
});
});

View File

@ -11,7 +11,7 @@ describe('EntryMy when is supplier', () => {
it('should open buyLabel when is supplier', () => {
cy.get(
'[to="/null/2"] > .q-card > .column > .q-btn > .q-btn__content > .q-icon'
'[to="/null/3"] > .q-card > .column > .q-btn > .q-btn__content > .q-icon'
).click();
cy.get('.q-card__actions > .q-btn').click();
cy.window().its('open').should('be.called');

View File

@ -1,7 +1,8 @@
/// <reference types="cypress" />
describe('Ticket descriptor', () => {
const toCloneOpt = '[role="menu"] .q-list > :nth-child(8)';
const setWeightOpt = '[role="menu"] .q-list > :nth-child(13)';
const listItem = '[role="menu"] .q-list .q-item';
const toCloneOpt = 'To clone ticket';
const setWeightOpt = 'Set weight';
const warehouseValue = ':nth-child(1) > :nth-child(6) > .value > span';
const summaryHeader = '.summaryHeader > div';
const weight = 25;
@ -14,7 +15,7 @@ describe('Ticket descriptor', () => {
it('should clone the ticket without warehouse', () => {
cy.visit('/#/ticket/1/summary');
cy.openActionsDescriptor();
cy.get(toCloneOpt).click();
cy.contains(listItem, toCloneOpt).click();
cy.clickConfirm();
cy.get(warehouseValue).contains('Warehouse One');
cy.get(summaryHeader)
@ -28,7 +29,7 @@ describe('Ticket descriptor', () => {
it('should set the weight of the ticket', () => {
cy.visit('/#/ticket/10/summary');
cy.openActionsDescriptor();
cy.get(setWeightOpt).click();
cy.contains(listItem, setWeightOpt).click();
cy.intercept('POST', /\/api\/Tickets\/\d+\/setWeight/).as('weight');
cy.get('.q-dialog input').type(weight);
cy.clickConfirm();

View File

@ -64,7 +64,7 @@ describe('VnLocation', () => {
`${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(3) > .q-icon`
).click();
cy.get(
`#q-portal--dialog--4 > .q-dialog > ${createForm.prefix} > .vn-row > .q-select > ${createForm.sufix} > :nth-child(1) input`
`#q-portal--dialog--5 > .q-dialog > ${createForm.prefix} > .vn-row > .q-select > ${createForm.sufix} > :nth-child(1) input`
).should('have.value', province);
});
});
@ -133,6 +133,8 @@ describe('VnLocation', () => {
);
cy.get('.q-mt-lg > .q-btn--standard').click();
cy.get(`${createForm.prefix}`).should('not.exist');
cy.waitForElement('.q-form');
checkVnLocation(postCode, province);
});
it('Create city', () => {
@ -144,10 +146,12 @@ describe('VnLocation', () => {
cy.get(
`${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(2) > .q-icon`
).click();
cy.selectOption('#q-portal--dialog--2 .q-select', 'one');
cy.get('#q-portal--dialog--2 .q-input').type(province);
cy.get('#q-portal--dialog--2 .q-btn--standard').click();
cy.selectOption('#q-portal--dialog--3 .q-select', 'one');
cy.get('#q-portal--dialog--3 .q-input').type(province);
cy.get('#q-portal--dialog--3 .q-btn--standard').click();
cy.get('#q-portal--dialog--1 .q-btn--standard').click();
cy.waitForElement('.q-form');
checkVnLocation(postCode, province);
});