feat: refs #7119 add VehicleBasicData
gitea/salix-front/pipeline/pr-dev This commit looks good
Details
gitea/salix-front/pipeline/pr-dev This commit looks good
Details
This commit is contained in:
parent
3807e74fe4
commit
062c306cf4
|
@ -107,7 +107,7 @@ const isLoading = ref(false);
|
||||||
const isResetting = ref(false);
|
const isResetting = ref(false);
|
||||||
const hasChanges = ref(!$props.observeFormChanges);
|
const hasChanges = ref(!$props.observeFormChanges);
|
||||||
const originalData = ref({});
|
const originalData = ref({});
|
||||||
const formData = computed(() => state.get(modelValue));
|
const formData = computed(() => getValue(state.get(modelValue)));
|
||||||
const defaultButtons = computed(() => ({
|
const defaultButtons = computed(() => ({
|
||||||
save: {
|
save: {
|
||||||
dataCy: 'saveDefaultBtn',
|
dataCy: 'saveDefaultBtn',
|
||||||
|
@ -193,7 +193,7 @@ async function fetch() {
|
||||||
let { data } = await axios.get($props.url, {
|
let { data } = await axios.get($props.url, {
|
||||||
params: { filter: JSON.stringify($props.filter) },
|
params: { filter: JSON.stringify($props.filter) },
|
||||||
});
|
});
|
||||||
if (Array.isArray(data)) data = data[0] ?? {};
|
data = getValue(data);
|
||||||
|
|
||||||
updateAndEmit('onFetch', data);
|
updateAndEmit('onFetch', data);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -274,6 +274,10 @@ function trimData(data) {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getValue(data) {
|
||||||
|
return Array.isArray(data) ? data[0] : data ?? {};
|
||||||
|
}
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
save,
|
save,
|
||||||
isLoading,
|
isLoading,
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
<script setup>
|
||||||
|
import { ref } from 'vue';
|
||||||
|
import FormModel from 'components/FormModel.vue';
|
||||||
|
import FetchData from 'src/components/FetchData.vue';
|
||||||
|
import VnSelect from 'src/components/common/VnSelect.vue';
|
||||||
|
import VnRow from 'components/ui/VnRow.vue';
|
||||||
|
import VnInput from 'src/components/common/VnInput.vue';
|
||||||
|
|
||||||
|
const warehouses = ref([]);
|
||||||
|
const companies = ref([]);
|
||||||
|
const countries = ref([]);
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<FetchData
|
||||||
|
url="Warehouses"
|
||||||
|
:filter="{ fields: ['id', 'name'] }"
|
||||||
|
@on-fetch="(data) => (warehouses = data)"
|
||||||
|
auto-load
|
||||||
|
/>
|
||||||
|
<FetchData
|
||||||
|
url="Companies"
|
||||||
|
:filter="{ fields: ['id', 'code'] }"
|
||||||
|
@on-fetch="(data) => (companies = data)"
|
||||||
|
auto-load
|
||||||
|
/>
|
||||||
|
<FetchData
|
||||||
|
url="Countries"
|
||||||
|
:filter="{ fields: ['code'] }"
|
||||||
|
@on-fetch="(data) => (countries = data)"
|
||||||
|
auto-load
|
||||||
|
/>
|
||||||
|
<FormModel
|
||||||
|
model="Vehicle"
|
||||||
|
:url-update="`Vehicles/${$route.params.id}`"
|
||||||
|
v-if="isLoaded"
|
||||||
|
>
|
||||||
|
<template #form="{ data }">
|
||||||
|
<VnRow>
|
||||||
|
<VnInput v-model="data.numberPlate" :label="$t('vehicle.numberPlate')" />
|
||||||
|
<VnInput v-model="data.description" :label="$t('globals.description')" />
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnInput v-model="data.tradeMark" :label="$t('vehicle.tradeMark')" />
|
||||||
|
<VnSelect
|
||||||
|
v-model="data.companyFk"
|
||||||
|
:label="$t('globals.company')"
|
||||||
|
:options="companies"
|
||||||
|
option-label="code"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnInput v-model="data.chassis" :label="$t('vehicle.chassis')" />
|
||||||
|
<VnInput v-model="data.leasing" :label="$t('vehicle.leasing')" />
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<VnSelect
|
||||||
|
v-model="data.warehouseFk"
|
||||||
|
:label="$t('globals.warehouse')"
|
||||||
|
:options="warehouses"
|
||||||
|
/>
|
||||||
|
<VnSelect
|
||||||
|
v-model="data.countryFk"
|
||||||
|
:label="$t('globals.country')"
|
||||||
|
:options="countries"
|
||||||
|
option-label="code"
|
||||||
|
/>
|
||||||
|
</VnRow>
|
||||||
|
<VnRow>
|
||||||
|
<span>
|
||||||
|
<QCheckbox
|
||||||
|
v-model="data.isKmTruckRate"
|
||||||
|
:label="$t('vehicle.isKmTruckRate')"
|
||||||
|
:false-value="0"
|
||||||
|
:true-value="1"
|
||||||
|
padding="0"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
</VnRow>
|
||||||
|
</template>
|
||||||
|
</FormModel>
|
||||||
|
</template>
|
|
@ -12,7 +12,7 @@ export default {
|
||||||
redirect: { name: 'VehicleCard' },
|
redirect: { name: 'VehicleCard' },
|
||||||
menus: {
|
menus: {
|
||||||
main: [],
|
main: [],
|
||||||
card: ['VehicleBasicData', 'VehicleLog'],
|
card: ['VehicleBasicData'],
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
@ -31,15 +31,16 @@ export default {
|
||||||
component: () =>
|
component: () =>
|
||||||
import('src/pages/Route/Vehicle/Card/VehicleSummary.vue'),
|
import('src/pages/Route/Vehicle/Card/VehicleSummary.vue'),
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// name: 'VehicleBasicData',
|
name: 'VehicleBasicData',
|
||||||
// path: 'basic-data',
|
path: 'basic-data',
|
||||||
// meta: {
|
meta: {
|
||||||
// title: 'basicData',
|
title: 'basicData',
|
||||||
// icon: 'vn:settings',
|
icon: 'vn:settings',
|
||||||
// },
|
},
|
||||||
// component: () => import('pages/Route/Vehicle/Card/VehicleBasicData.vue'),
|
component: () =>
|
||||||
// },
|
import('pages/Route/Vehicle/Card/VehicleBasicData.vue'),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
Loading…
Reference in New Issue