forked from verdnatura/salix-front
refs #7986 fix front
This commit is contained in:
parent
73e5039ec3
commit
855032e4a6
|
@ -1,187 +0,0 @@
|
||||||
<script setup>
|
|
||||||
import { useI18n } from 'vue-i18n';
|
|
||||||
import { useRoute } from 'vue-router';
|
|
||||||
import { ref, computed } from 'vue';
|
|
||||||
|
|
||||||
import axios from 'axios';
|
|
||||||
import useNotify from 'src/composables/useNotify.js';
|
|
||||||
import FetchData from 'components/FetchData.vue';
|
|
||||||
import FormModelPopup from 'src/components/FormModelPopup.vue';
|
|
||||||
import { useVnConfirm } from 'composables/useVnConfirm';
|
|
||||||
|
|
||||||
import VnPaginate from 'src/components/ui/VnPaginate.vue';
|
|
||||||
import VnRow from 'components/ui/VnRow.vue';
|
|
||||||
import VnSelect from 'src/components/common/VnSelect.vue';
|
|
||||||
import VnInput from 'src/components/common/VnInput.vue';
|
|
||||||
|
|
||||||
const { t } = useI18n();
|
|
||||||
const { notify } = useNotify();
|
|
||||||
|
|
||||||
const paginate = ref();
|
|
||||||
const dialog = ref();
|
|
||||||
const route = useRoute();
|
|
||||||
const { openConfirmationModal } = useVnConfirm();
|
|
||||||
const routeId = computed(() => route.params.id);
|
|
||||||
|
|
||||||
const initialData = computed(() => {
|
|
||||||
return {
|
|
||||||
userFk: routeId.value,
|
|
||||||
deviceProductionFk: null,
|
|
||||||
simSerialNumber: null,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
const deallocatePDA = async (deviceProductionFk) => {
|
|
||||||
try {
|
|
||||||
await axios.post(`Workers/${route.params.id}/deallocatePDA`, {
|
|
||||||
pda: deviceProductionFk,
|
|
||||||
});
|
|
||||||
notify(t('PDA deallocated'), 'positive');
|
|
||||||
} catch (err) {
|
|
||||||
console.error('Error deallocating PDA');
|
|
||||||
}
|
|
||||||
paginate.value.fetch();
|
|
||||||
};
|
|
||||||
|
|
||||||
function reloadData() {
|
|
||||||
initialData.value.deviceProductionFk = null;
|
|
||||||
initialData.value.simSerialNumber = null;
|
|
||||||
paginate.value.fetch();
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<QPage class="column items-center q-pa-md centerCard">
|
|
||||||
<FetchData
|
|
||||||
url="workers/getAvailablePda"
|
|
||||||
@on-fetch="(data) => (deviceProductions = data)"
|
|
||||||
auto-load
|
|
||||||
/>
|
|
||||||
<VnPaginate
|
|
||||||
ref="paginate"
|
|
||||||
data-key="WorkerPda"
|
|
||||||
url="DeviceProductionUsers"
|
|
||||||
:filter="{ where: { userFk: routeId } }"
|
|
||||||
order="id"
|
|
||||||
auto-load
|
|
||||||
>
|
|
||||||
<template #body="{ rows }">
|
|
||||||
<QCard
|
|
||||||
flat
|
|
||||||
bordered
|
|
||||||
:key="row.id"
|
|
||||||
v-for="row of rows"
|
|
||||||
class="card q-px-md q-mb-sm container"
|
|
||||||
>
|
|
||||||
<VnRow>
|
|
||||||
<VnInput
|
|
||||||
:label="t('worker.pda.currentPDA')"
|
|
||||||
:model-value="row?.deviceProductionFk"
|
|
||||||
disable
|
|
||||||
/>
|
|
||||||
<VnInput
|
|
||||||
:label="t('Model')"
|
|
||||||
:model-value="row?.deviceProduction?.modelFk"
|
|
||||||
disable
|
|
||||||
/>
|
|
||||||
<VnInput
|
|
||||||
:label="t('Serial number')"
|
|
||||||
:model-value="row?.deviceProduction?.serialNumber"
|
|
||||||
disable
|
|
||||||
/>
|
|
||||||
<VnInput
|
|
||||||
:label="t('Current SIM')"
|
|
||||||
:model-value="row?.simSerialNumber"
|
|
||||||
disable
|
|
||||||
/>
|
|
||||||
<QBtn
|
|
||||||
flat
|
|
||||||
icon="delete"
|
|
||||||
color="primary"
|
|
||||||
class="btn-delete"
|
|
||||||
@click="
|
|
||||||
openConfirmationModal(
|
|
||||||
t(`Remove PDA`),
|
|
||||||
t('Do you want to remove this PDA?'),
|
|
||||||
() => deallocatePDA(row.deviceProductionFk)
|
|
||||||
)
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('worker.pda.removePDA') }}
|
|
||||||
</QTooltip>
|
|
||||||
</QBtn>
|
|
||||||
</VnRow>
|
|
||||||
</QCard>
|
|
||||||
</template>
|
|
||||||
</VnPaginate>
|
|
||||||
<QPageSticky :offset="[18, 18]">
|
|
||||||
<QBtn @click.stop="dialog.show()" color="primary" fab icon="add" shortcut="+">
|
|
||||||
<QDialog ref="dialog">
|
|
||||||
<FormModelPopup
|
|
||||||
:title="t('Add new device')"
|
|
||||||
url-create="DeviceProductionUsers"
|
|
||||||
model="DeviceProductionUser"
|
|
||||||
:form-initial-data="initialData"
|
|
||||||
@on-data-saved="reloadData()"
|
|
||||||
>
|
|
||||||
<template #form-inputs="{ data }">
|
|
||||||
<VnRow>
|
|
||||||
<VnSelect
|
|
||||||
:label="t('worker.pda.newPDA')"
|
|
||||||
v-model="data.deviceProductionFk"
|
|
||||||
:options="deviceProductions"
|
|
||||||
option-label="id"
|
|
||||||
option-value="id"
|
|
||||||
id="deviceProductionFk"
|
|
||||||
hide-selected
|
|
||||||
>
|
|
||||||
<template #option="scope">
|
|
||||||
<QItem v-bind="scope.itemProps">
|
|
||||||
<QItemSection>
|
|
||||||
<QItemLabel
|
|
||||||
>ID: {{ scope.opt?.id }}</QItemLabel
|
|
||||||
>
|
|
||||||
<QItemLabel caption>
|
|
||||||
{{ scope.opt?.modelFk }},
|
|
||||||
{{ scope.opt?.serialNumber }}
|
|
||||||
</QItemLabel>
|
|
||||||
</QItemSection>
|
|
||||||
</QItem>
|
|
||||||
</template>
|
|
||||||
</VnSelect>
|
|
||||||
<VnInput
|
|
||||||
v-model="data.simSerialNumber"
|
|
||||||
:label="t('SIM serial number')"
|
|
||||||
id="simSerialNumber"
|
|
||||||
use-input
|
|
||||||
/>
|
|
||||||
</VnRow>
|
|
||||||
</template>
|
|
||||||
</FormModelPopup>
|
|
||||||
</QDialog>
|
|
||||||
</QBtn>
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('globals.new') }}
|
|
||||||
</QTooltip>
|
|
||||||
</QPageSticky>
|
|
||||||
</QPage>
|
|
||||||
</template>
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.btn-delete {
|
|
||||||
max-width: 4%;
|
|
||||||
margin-top: 30px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<i18n>
|
|
||||||
es:
|
|
||||||
Model: Modelo
|
|
||||||
Serial number: Número de serie
|
|
||||||
Current SIM: SIM actual
|
|
||||||
Add new device: Añadir nuevo dispositivo
|
|
||||||
PDA deallocated: PDA desasignada
|
|
||||||
Remove PDA: Eliminar PDA
|
|
||||||
Do you want to remove this PDA?: ¿Desea eliminar este PDA?
|
|
||||||
You can only have one PDA: Solo puedes tener un PDA si no eres autonomo
|
|
||||||
This PDA is already assigned to another user: Este PDA ya está asignado a otro usuario
|
|
||||||
</i18n>
|
|
|
@ -0,0 +1,322 @@
|
||||||
|
<script setup>
|
||||||
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { useRoute } from 'vue-router';
|
||||||
|
import { ref, computed } from 'vue';
|
||||||
|
|
||||||
|
import axios from 'axios';
|
||||||
|
import useNotify from 'src/composables/useNotify.js';
|
||||||
|
import FetchData from 'components/FetchData.vue';
|
||||||
|
import FormModelPopup from 'src/components/FormModelPopup.vue';
|
||||||
|
import { useVnConfirm } from 'composables/useVnConfirm';
|
||||||
|
|
||||||
|
import VnPaginate from 'src/components/ui/VnPaginate.vue';
|
||||||
|
import VnRow from 'components/ui/VnRow.vue';
|
||||||
|
import VnSelect from 'src/components/common/VnSelect.vue';
|
||||||
|
import VnInput from 'src/components/common/VnInput.vue';
|
||||||
|
import { size } from 'cypress/types/lodash';
|
||||||
|
|
||||||
|
const { t } = useI18n();
|
||||||
|
const { notify } = useNotify();
|
||||||
|
|
||||||
|
const paginate = ref();
|
||||||
|
const dialog = ref();
|
||||||
|
const route = useRoute();
|
||||||
|
const { openConfirmationModal } = useVnConfirm();
|
||||||
|
const routeId = computed(() => route.params.id);
|
||||||
|
|
||||||
|
const initialData = computed(() => {
|
||||||
|
return {
|
||||||
|
workerFk: routeId.value,
|
||||||
|
numberOfWagons: 2,
|
||||||
|
trainFk: 1,
|
||||||
|
itemPackingTypeFk: 'H',
|
||||||
|
warehouseFk: 60,
|
||||||
|
sectorFk: null,
|
||||||
|
labelerFk: null,
|
||||||
|
linesLimit: 20,
|
||||||
|
volumenLimit: 0.5,
|
||||||
|
sizeLimit: null,
|
||||||
|
isOnReservationMode: 0,
|
||||||
|
machineFk: null,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// const deallocatePDA = async (deviceProductionFk) => {
|
||||||
|
// try {
|
||||||
|
// await axios.post(`Workers/${route.params.id}/deallocatePDA`, {
|
||||||
|
// pda: deviceProductionFk,
|
||||||
|
// });
|
||||||
|
// notify(t('PDA deallocated'), 'positive');
|
||||||
|
// } catch (err) {
|
||||||
|
// console.error('Error deallocating PDA');
|
||||||
|
// }
|
||||||
|
// paginate.value.fetch();
|
||||||
|
// };
|
||||||
|
|
||||||
|
function reloadData() {
|
||||||
|
// initialData.value.deviceProductionFk = null;
|
||||||
|
// initialData.value.simSerialNumber = null;
|
||||||
|
paginate.value.fetch();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<QPage class="column items-center q-pa-md centerCard">
|
||||||
|
<FetchData
|
||||||
|
url="shelvings/trains"
|
||||||
|
@on-fetch="(data) => (trainsData = data)"
|
||||||
|
auto-load
|
||||||
|
/>
|
||||||
|
<FetchData
|
||||||
|
url="items/ItemPackingTypes"
|
||||||
|
@on-fetch="(data) => (ItemPackingTypesData = data)"
|
||||||
|
auto-load
|
||||||
|
/>
|
||||||
|
<FetchData
|
||||||
|
url="warehouses"
|
||||||
|
@on-fetch="(data) => (warehousesData = data)"
|
||||||
|
auto-load
|
||||||
|
/>
|
||||||
|
<FetchData
|
||||||
|
url="shelvings/sectors"
|
||||||
|
@on-fetch="(data) => (shelvingsData = data)"
|
||||||
|
auto-load
|
||||||
|
/>
|
||||||
|
<FetchData url="machines" @on-fetch="(data) => (machinesData = data)" auto-load />
|
||||||
|
<VnPaginate
|
||||||
|
ref="paginate"
|
||||||
|
data-key="WorkerPda"
|
||||||
|
url="Operators"
|
||||||
|
:filter="{ where: { workerFk: routeId } }"
|
||||||
|
order="id"
|
||||||
|
auto-load
|
||||||
|
>
|
||||||
|
<template #body="{ rows }">
|
||||||
|
<QCard
|
||||||
|
flat
|
||||||
|
bordered
|
||||||
|
:key="row.id"
|
||||||
|
v-for="row of rows"
|
||||||
|
class="card q-px-md q-mb-sm container"
|
||||||
|
>
|
||||||
|
<VnRow>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.numberOfWagons')"
|
||||||
|
:model-value="row?.numberOfWagons"
|
||||||
|
disable
|
||||||
|
/>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.train')"
|
||||||
|
:options="trainsData"
|
||||||
|
hide-selected
|
||||||
|
option-label="name"
|
||||||
|
option-value="id"
|
||||||
|
v-model="data.trainFk"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.itemPackingType')"
|
||||||
|
:options="ItemPackingTypesData"
|
||||||
|
hide-selected
|
||||||
|
option-label="code"
|
||||||
|
option-value="code"
|
||||||
|
v-model="data.itemPackingTypeFk"
|
||||||
|
/>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.warehouse')"
|
||||||
|
:options="warehousesData"
|
||||||
|
hide-selected
|
||||||
|
option-label="name"
|
||||||
|
option-value="id"
|
||||||
|
v-model="data.warehouseFk"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.sector')"
|
||||||
|
:options="shelvingsData"
|
||||||
|
hide-selected
|
||||||
|
option-label="description"
|
||||||
|
option-value="id"
|
||||||
|
v-model="data.sectorFk"
|
||||||
|
/>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.labeler')"
|
||||||
|
:model-value="row?.labelerFk"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.linesLimit')"
|
||||||
|
:model-value="row?.linesLimit"
|
||||||
|
/>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.volumeLimit')"
|
||||||
|
:model-value="row?.volumeLimit"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.sizeLimit')"
|
||||||
|
:model-value="row?.sizeLimit"
|
||||||
|
/>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.sizeLimit')"
|
||||||
|
:model-value="row?.sizeLimit"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.isOnReservationMode')"
|
||||||
|
:model-value="row?.isOnReservationMode"
|
||||||
|
/>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.machine')"
|
||||||
|
:options="machinesData"
|
||||||
|
hide-selected
|
||||||
|
option-label="plate"
|
||||||
|
option-value="id"
|
||||||
|
v-model="data.machineFk"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<!-- <QBtn
|
||||||
|
flat
|
||||||
|
icon="delete"
|
||||||
|
color="primary"
|
||||||
|
class="btn-delete"
|
||||||
|
@click="
|
||||||
|
openConfirmationModal(
|
||||||
|
t(`Remove PDA`),
|
||||||
|
t('Do you want to remove this PDA?'),
|
||||||
|
() => deallocatePDA(row.deviceProductionFk)
|
||||||
|
)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<QTooltip>
|
||||||
|
{{ t('worker.pda.removePDA') }}
|
||||||
|
</QTooltip>
|
||||||
|
</QBtn>-->
|
||||||
|
</QCard>
|
||||||
|
</template>
|
||||||
|
</VnPaginate>
|
||||||
|
<QPageSticky :offset="[18, 18]">
|
||||||
|
<QBtn @click.stop="dialog.show()" color="primary" fab icon="add" shortcut="+">
|
||||||
|
<QDialog ref="dialog">
|
||||||
|
<FormModelPopup
|
||||||
|
:title="t('Add new device')"
|
||||||
|
url-create="operators"
|
||||||
|
model="operator"
|
||||||
|
:form-initial-data="initialData"
|
||||||
|
@on-data-saved="reloadData()"
|
||||||
|
>
|
||||||
|
<template #form-inputs="{ data }">
|
||||||
|
<VnRow>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.numberOfWagons')"
|
||||||
|
:model-value="row?.numberOfWagons"
|
||||||
|
disable
|
||||||
|
/>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.train')"
|
||||||
|
:options="trainsData"
|
||||||
|
hide-selected
|
||||||
|
option-label="name"
|
||||||
|
option-value="id"
|
||||||
|
v-model="data.trainFk"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.itemPackingType')"
|
||||||
|
:options="ItemPackingTypesData"
|
||||||
|
hide-selected
|
||||||
|
option-label="code"
|
||||||
|
option-value="code"
|
||||||
|
v-model="data.itemPackingTypeFk"
|
||||||
|
/>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.warehouse')"
|
||||||
|
:options="warehousesData"
|
||||||
|
hide-selected
|
||||||
|
option-label="name"
|
||||||
|
option-value="id"
|
||||||
|
v-model="data.warehouseFk"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.sector')"
|
||||||
|
:options="shelvingsData"
|
||||||
|
hide-selected
|
||||||
|
option-label="description"
|
||||||
|
option-value="id"
|
||||||
|
v-model="data.sectorFk"
|
||||||
|
/>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.labeler')"
|
||||||
|
:model-value="row?.labelerFk"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.linesLimit')"
|
||||||
|
:model-value="row?.linesLimit"
|
||||||
|
/>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.volumeLimit')"
|
||||||
|
:model-value="row?.volumeLimit"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.sizeLimit')"
|
||||||
|
:model-value="row?.sizeLimit"
|
||||||
|
/>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.sizeLimit')"
|
||||||
|
:model-value="row?.sizeLimit"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnInput
|
||||||
|
:label="t('worker.operator.isOnReservationMode')"
|
||||||
|
:model-value="row?.isOnReservationMode"
|
||||||
|
/>
|
||||||
|
<VnSelect
|
||||||
|
:label="t('worker.operator.machine')"
|
||||||
|
:options="machinesData"
|
||||||
|
hide-selected
|
||||||
|
option-label="plate"
|
||||||
|
option-value="id"
|
||||||
|
v-model="data.machineFk"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
</template>
|
||||||
|
</FormModelPopup>
|
||||||
|
</QDialog>
|
||||||
|
</QBtn>
|
||||||
|
<QTooltip>
|
||||||
|
{{ t('globals.new') }}
|
||||||
|
</QTooltip>
|
||||||
|
</QPageSticky>
|
||||||
|
</QPage>
|
||||||
|
</template>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.btn-delete {
|
||||||
|
max-width: 4%;
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<i18n>
|
||||||
|
es:
|
||||||
|
Model: Modelo
|
||||||
|
Serial number: Número de serie
|
||||||
|
Current SIM: SIM actual
|
||||||
|
Add new device: Añadir nuevo dispositivo
|
||||||
|
PDA deallocated: PDA desasignada
|
||||||
|
Remove PDA: Eliminar PDA
|
||||||
|
Do you want to remove this PDA?: ¿Desea eliminar este PDA?
|
||||||
|
You can only have one PDA: Solo puedes tener un PDA si no eres autonomo
|
||||||
|
This PDA is already assigned to another user: Este PDA ya está asignado a otro usuario
|
||||||
|
</i18n>
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { path } from 'chromium';
|
||||||
|
import { name } from 'quasar/dist/icon-set/material-icons.umd.prod';
|
||||||
import { RouterView } from 'vue-router';
|
import { RouterView } from 'vue-router';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -27,6 +29,7 @@ export default {
|
||||||
'WorkerBalance',
|
'WorkerBalance',
|
||||||
'WorkerFormation',
|
'WorkerFormation',
|
||||||
'WorkerMedical',
|
'WorkerMedical',
|
||||||
|
'WorkerOperator',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
|
@ -208,6 +211,15 @@ export default {
|
||||||
},
|
},
|
||||||
component: () => import('src/pages/Worker/Card/WorkerMedical.vue'),
|
component: () => import('src/pages/Worker/Card/WorkerMedical.vue'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'WorkerOperator',
|
||||||
|
path: 'operator',
|
||||||
|
meta: {
|
||||||
|
title: 'operator',
|
||||||
|
icon: 'person',
|
||||||
|
},
|
||||||
|
component: () => import('src/pages/Worker/Card/WorkerOperator.vue'),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
Loading…
Reference in New Issue