feat: add request list expansion (messenger, duty)
This commit is contained in:
parent
fe3bb520f3
commit
5890f07d89
6 changed files with 335 additions and 62 deletions
155
src/pages/08_request-list/DutyExpansion.vue
Normal file
155
src/pages/08_request-list/DutyExpansion.vue
Normal file
|
|
@ -0,0 +1,155 @@
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { reactive, ref } from 'vue';
|
||||||
|
|
||||||
|
import FormGroupHead from './FormGroupHead.vue';
|
||||||
|
import FormDuty from './FormDuty.vue';
|
||||||
|
|
||||||
|
import { UndoButton, SaveButton, EditButton } from 'src/components/button';
|
||||||
|
import { AttributesForm, Step } from 'src/stores/request-list/types';
|
||||||
|
import { useRequestList } from 'src/stores/request-list';
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
readonly?: boolean;
|
||||||
|
step: Step;
|
||||||
|
}>();
|
||||||
|
|
||||||
|
const requestListStore = useRequestList();
|
||||||
|
|
||||||
|
const state = reactive({
|
||||||
|
isEdit: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
const defaultForm = {
|
||||||
|
customerDuty: false,
|
||||||
|
customerDutyCost: 30,
|
||||||
|
companyDuty: false,
|
||||||
|
companyDutyCost: 30,
|
||||||
|
responsibleUserLocal: true,
|
||||||
|
responsibleUserId: '',
|
||||||
|
individualDuty: false,
|
||||||
|
individualDutyCost: 10,
|
||||||
|
};
|
||||||
|
|
||||||
|
const attributesForm = defineModel<AttributesForm>('attributesForm', {
|
||||||
|
default: {
|
||||||
|
customerDuty: false,
|
||||||
|
customerDutyCost: 30,
|
||||||
|
companyDuty: false,
|
||||||
|
companyDutyCost: 30,
|
||||||
|
responsibleUserLocal: true,
|
||||||
|
responsibleUserId: '',
|
||||||
|
individualDuty: false,
|
||||||
|
individualDutyCost: 10,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const formData = ref<AttributesForm>(defaultForm);
|
||||||
|
|
||||||
|
function triggerUndo() {
|
||||||
|
assignToForm();
|
||||||
|
state.isEdit = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function triggerSubmit() {
|
||||||
|
const payload = {
|
||||||
|
...props.step,
|
||||||
|
...formData.value,
|
||||||
|
attributes: {},
|
||||||
|
};
|
||||||
|
const res = await requestListStore.editStatusRequestWork(payload);
|
||||||
|
|
||||||
|
if (res) {
|
||||||
|
attributesForm.value = JSON.parse(JSON.stringify(formData.value));
|
||||||
|
state.isEdit = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function triggerEdit() {
|
||||||
|
state.isEdit = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assignToForm() {
|
||||||
|
formData.value = JSON.parse(JSON.stringify(attributesForm.value));
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<q-expansion-item
|
||||||
|
dense
|
||||||
|
class="overflow-hidden bordered full-width"
|
||||||
|
switch-toggle-side
|
||||||
|
style="border-radius: var(--radius-2)"
|
||||||
|
expand-icon="mdi-chevron-down-circle"
|
||||||
|
header-class="surface-1 q-py-sm text-medium text-body1"
|
||||||
|
@before-show="assignToForm"
|
||||||
|
>
|
||||||
|
<template #header>
|
||||||
|
<span>
|
||||||
|
{{ $t('duty.text') }}
|
||||||
|
</span>
|
||||||
|
<nav class="q-ml-auto row" v-if="!readonly">
|
||||||
|
<UndoButton
|
||||||
|
v-if="state.isEdit"
|
||||||
|
id="btn-info-basic-undo"
|
||||||
|
icon-only
|
||||||
|
type="button"
|
||||||
|
@click.stop="triggerUndo"
|
||||||
|
/>
|
||||||
|
<SaveButton
|
||||||
|
v-if="state.isEdit"
|
||||||
|
id="btn-info-basic-save"
|
||||||
|
icon-only
|
||||||
|
type="submit"
|
||||||
|
@click.stop="triggerSubmit"
|
||||||
|
/>
|
||||||
|
<EditButton
|
||||||
|
v-if="!state.isEdit"
|
||||||
|
id="btn-info-basic-edit"
|
||||||
|
icon-only
|
||||||
|
@click.stop="triggerEdit"
|
||||||
|
type="button"
|
||||||
|
/>
|
||||||
|
</nav>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<main class="row">
|
||||||
|
<section class="col-12">
|
||||||
|
<FormGroupHead>
|
||||||
|
{{ $t('duty.text', { subject: $t('general.customer') }) }}
|
||||||
|
</FormGroupHead>
|
||||||
|
<FormDuty
|
||||||
|
class="surface-1"
|
||||||
|
:readonly="!state.isEdit"
|
||||||
|
v-model:duty="formData.customerDuty"
|
||||||
|
v-model:duty-cost="formData.customerDutyCost"
|
||||||
|
cost
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
<section class="col-12">
|
||||||
|
<FormGroupHead>
|
||||||
|
{{ $t('duty.text', { subject: $t('general.company') }) }}
|
||||||
|
</FormGroupHead>
|
||||||
|
<FormDuty
|
||||||
|
class="surface-1"
|
||||||
|
:readonly="!state.isEdit"
|
||||||
|
v-model:duty="formData.companyDuty"
|
||||||
|
v-model:duty-cost="formData.companyDutyCost"
|
||||||
|
cost
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
<section class="col-12">
|
||||||
|
<FormGroupHead>
|
||||||
|
{{ $t('duty.text', { subject: $t('general.individual') }) }}
|
||||||
|
</FormGroupHead>
|
||||||
|
<FormDuty
|
||||||
|
:options="[10]"
|
||||||
|
:readonly="!state.isEdit"
|
||||||
|
class="surface-1"
|
||||||
|
v-model:duty="formData.individualDuty"
|
||||||
|
v-model:duty-cost="formData.individualDutyCost"
|
||||||
|
cost
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
</q-expansion-item>
|
||||||
|
</template>
|
||||||
|
<style scoped></style>
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive, ref } from 'vue';
|
import { reactive, ref } from 'vue';
|
||||||
|
|
||||||
import FormGroupHead from './FormGroupHead.vue';
|
import FormGroupHead from './FormGroupHead.vue';
|
||||||
import FormDuty from './FormDuty.vue';
|
|
||||||
import FormIssue from './FormIssue.vue';
|
import FormIssue from './FormIssue.vue';
|
||||||
import FormResponsibleUser from './FormResponsibleUser.vue';
|
|
||||||
|
|
||||||
import { UndoButton, SaveButton, EditButton } from 'src/components/button';
|
import { UndoButton, SaveButton, EditButton } from 'src/components/button';
|
||||||
import { AttributesForm, Step } from 'src/stores/request-list/types';
|
import { AttributesForm, Step } from 'src/stores/request-list/types';
|
||||||
|
|
@ -12,7 +11,6 @@ import { useRequestList } from 'src/stores/request-list';
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
readonly?: boolean;
|
readonly?: boolean;
|
||||||
step: Step;
|
step: Step;
|
||||||
responsibleAreaDistrictId?: string;
|
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const requestListStore = useRequestList();
|
const requestListStore = useRequestList();
|
||||||
|
|
@ -45,7 +43,6 @@ const attributesForm = defineModel<AttributesForm>('attributesForm', {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const isExpand = ref(false);
|
|
||||||
const formData = ref<AttributesForm>(defaultForm);
|
const formData = ref<AttributesForm>(defaultForm);
|
||||||
|
|
||||||
function triggerUndo() {
|
function triggerUndo() {
|
||||||
|
|
@ -78,7 +75,6 @@ function assignToForm() {
|
||||||
<template>
|
<template>
|
||||||
<q-expansion-item
|
<q-expansion-item
|
||||||
dense
|
dense
|
||||||
v-model="isExpand"
|
|
||||||
class="overflow-hidden bordered full-width"
|
class="overflow-hidden bordered full-width"
|
||||||
switch-toggle-side
|
switch-toggle-side
|
||||||
style="border-radius: var(--radius-2)"
|
style="border-radius: var(--radius-2)"
|
||||||
|
|
@ -115,64 +111,13 @@ function assignToForm() {
|
||||||
</nav>
|
</nav>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<main class="row" v-if="isExpand">
|
<main class="row">
|
||||||
<section class="col-12">
|
|
||||||
<FormGroupHead>
|
|
||||||
{{ $t('duty.text', { subject: $t('general.customer') }) }}
|
|
||||||
</FormGroupHead>
|
|
||||||
<FormDuty
|
|
||||||
class="surface-1"
|
|
||||||
:readonly="!state.isEdit"
|
|
||||||
v-model:duty="formData.customerDuty"
|
|
||||||
v-model:duty-cost="formData.customerDutyCost"
|
|
||||||
cost
|
|
||||||
/>
|
|
||||||
</section>
|
|
||||||
<section class="col-12">
|
|
||||||
<FormGroupHead>
|
|
||||||
{{ $t('duty.text', { subject: $t('general.company') }) }}
|
|
||||||
</FormGroupHead>
|
|
||||||
<FormDuty
|
|
||||||
class="surface-1"
|
|
||||||
:readonly="!state.isEdit"
|
|
||||||
v-model:duty="formData.companyDuty"
|
|
||||||
v-model:duty-cost="formData.companyDutyCost"
|
|
||||||
cost
|
|
||||||
/>
|
|
||||||
</section>
|
|
||||||
<section class="col-12">
|
<section class="col-12">
|
||||||
<FormGroupHead>
|
<FormGroupHead>
|
||||||
{{ $t('quotation.templateForm') }}
|
{{ $t('quotation.templateForm') }}
|
||||||
</FormGroupHead>
|
</FormGroupHead>
|
||||||
<FormIssue :readonly="!state.isEdit" />
|
<FormIssue :readonly="!state.isEdit" />
|
||||||
</section>
|
</section>
|
||||||
<section class="col-12">
|
|
||||||
<FormGroupHead>
|
|
||||||
{{
|
|
||||||
$t('general.select', { msg: $t('requestList.employeeMessenger') })
|
|
||||||
}}
|
|
||||||
</FormGroupHead>
|
|
||||||
<FormResponsibleUser
|
|
||||||
:readonly="!state.isEdit"
|
|
||||||
class="surface-1"
|
|
||||||
v-model:responsible-user-local="formData.responsibleUserLocal"
|
|
||||||
v-model:responsible-user-id="formData.responsibleUserId"
|
|
||||||
:district-id="responsibleAreaDistrictId"
|
|
||||||
/>
|
|
||||||
</section>
|
|
||||||
<section class="col-12">
|
|
||||||
<FormGroupHead>
|
|
||||||
{{ $t('duty.text', { subject: $t('general.individual') }) }}
|
|
||||||
</FormGroupHead>
|
|
||||||
<FormDuty
|
|
||||||
:options="[10]"
|
|
||||||
:readonly="!state.isEdit"
|
|
||||||
class="surface-1"
|
|
||||||
v-model:duty="formData.individualDuty"
|
|
||||||
v-model:duty-cost="formData.individualDutyCost"
|
|
||||||
cost
|
|
||||||
/>
|
|
||||||
</section>
|
|
||||||
</main>
|
</main>
|
||||||
</q-expansion-item>
|
</q-expansion-item>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ watch(responsibleUserLocal, (lhs, rhs) => {
|
||||||
|
|
||||||
<div class="col-12 row">
|
<div class="col-12 row">
|
||||||
<SelectUser
|
<SelectUser
|
||||||
|
:required="false"
|
||||||
:key="responsibleUserLocal?.toString()"
|
:key="responsibleUserLocal?.toString()"
|
||||||
class="col-md-5 col-12"
|
class="col-md-5 col-12"
|
||||||
v-model:value="responsibleUserId"
|
v-model:value="responsibleUserId"
|
||||||
|
|
|
||||||
133
src/pages/08_request-list/MessengerExpansion.vue
Normal file
133
src/pages/08_request-list/MessengerExpansion.vue
Normal file
|
|
@ -0,0 +1,133 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { reactive, ref } from 'vue';
|
||||||
|
|
||||||
|
import FormGroupHead from './FormGroupHead.vue';
|
||||||
|
import FormResponsibleUser from './FormResponsibleUser.vue';
|
||||||
|
|
||||||
|
import { UndoButton, SaveButton, EditButton } from 'src/components/button';
|
||||||
|
import { AttributesForm, Step } from 'src/stores/request-list/types';
|
||||||
|
import { useRequestList } from 'src/stores/request-list';
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
readonly?: boolean;
|
||||||
|
step: Step;
|
||||||
|
responsibleAreaDistrictId?: string;
|
||||||
|
}>();
|
||||||
|
|
||||||
|
const requestListStore = useRequestList();
|
||||||
|
|
||||||
|
const state = reactive({
|
||||||
|
isEdit: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
const defaultForm = {
|
||||||
|
customerDuty: false,
|
||||||
|
customerDutyCost: 30,
|
||||||
|
companyDuty: false,
|
||||||
|
companyDutyCost: 30,
|
||||||
|
responsibleUserLocal: true,
|
||||||
|
responsibleUserId: '',
|
||||||
|
individualDuty: false,
|
||||||
|
individualDutyCost: 10,
|
||||||
|
};
|
||||||
|
|
||||||
|
const attributesForm = defineModel<AttributesForm>('attributesForm', {
|
||||||
|
default: {
|
||||||
|
customerDuty: false,
|
||||||
|
customerDutyCost: 30,
|
||||||
|
companyDuty: false,
|
||||||
|
companyDutyCost: 30,
|
||||||
|
responsibleUserLocal: true,
|
||||||
|
responsibleUserId: '',
|
||||||
|
individualDuty: false,
|
||||||
|
individualDutyCost: 10,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const formData = ref<AttributesForm>(defaultForm);
|
||||||
|
|
||||||
|
function triggerUndo() {
|
||||||
|
assignToForm();
|
||||||
|
state.isEdit = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function triggerSubmit() {
|
||||||
|
const payload = {
|
||||||
|
...props.step,
|
||||||
|
...formData.value,
|
||||||
|
attributes: {},
|
||||||
|
};
|
||||||
|
const res = await requestListStore.editStatusRequestWork(payload);
|
||||||
|
|
||||||
|
if (res) {
|
||||||
|
attributesForm.value = JSON.parse(JSON.stringify(formData.value));
|
||||||
|
state.isEdit = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function triggerEdit() {
|
||||||
|
state.isEdit = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assignToForm() {
|
||||||
|
formData.value = JSON.parse(JSON.stringify(attributesForm.value));
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<q-expansion-item
|
||||||
|
dense
|
||||||
|
class="overflow-hidden bordered full-width"
|
||||||
|
switch-toggle-side
|
||||||
|
style="border-radius: var(--radius-2)"
|
||||||
|
expand-icon="mdi-chevron-down-circle"
|
||||||
|
header-class="surface-1 q-py-sm text-medium text-body1"
|
||||||
|
@before-show="assignToForm"
|
||||||
|
>
|
||||||
|
<template #header>
|
||||||
|
<span>
|
||||||
|
{{ $t('requestList.employeeMessenger') }}
|
||||||
|
</span>
|
||||||
|
<nav class="q-ml-auto row" v-if="!readonly">
|
||||||
|
<UndoButton
|
||||||
|
v-if="state.isEdit"
|
||||||
|
id="btn-info-basic-undo"
|
||||||
|
icon-only
|
||||||
|
type="button"
|
||||||
|
@click.stop="triggerUndo"
|
||||||
|
/>
|
||||||
|
<SaveButton
|
||||||
|
v-if="state.isEdit"
|
||||||
|
id="btn-info-basic-save"
|
||||||
|
icon-only
|
||||||
|
type="submit"
|
||||||
|
@click.stop="triggerSubmit"
|
||||||
|
/>
|
||||||
|
<EditButton
|
||||||
|
v-if="!state.isEdit"
|
||||||
|
id="btn-info-basic-edit"
|
||||||
|
icon-only
|
||||||
|
@click.stop="triggerEdit"
|
||||||
|
type="button"
|
||||||
|
/>
|
||||||
|
</nav>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<main class="row">
|
||||||
|
<section class="col-12">
|
||||||
|
<FormGroupHead>
|
||||||
|
{{
|
||||||
|
$t('general.select', { msg: $t('requestList.employeeMessenger') })
|
||||||
|
}}
|
||||||
|
</FormGroupHead>
|
||||||
|
<FormResponsibleUser
|
||||||
|
:readonly="!state.isEdit"
|
||||||
|
class="surface-1"
|
||||||
|
v-model:responsible-user-local="formData.responsibleUserLocal"
|
||||||
|
v-model:responsible-user-id="formData.responsibleUserId"
|
||||||
|
:district-id="responsibleAreaDistrictId"
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
</q-expansion-item>
|
||||||
|
</template>
|
||||||
|
<style></style>
|
||||||
|
|
@ -131,7 +131,10 @@ defineEmits<{
|
||||||
<span
|
<span
|
||||||
v-for="(prop, i) in propertiesToShow.filter(
|
v-for="(prop, i) in propertiesToShow.filter(
|
||||||
(v) =>
|
(v) =>
|
||||||
v.fieldName !== 'documentCheck' && v.fieldName !== 'designForm',
|
v.fieldName !== 'documentCheck' &&
|
||||||
|
v.fieldName !== 'designForm' &&
|
||||||
|
v.fieldName !== 'duty' &&
|
||||||
|
v.fieldName !== 'messenger',
|
||||||
)"
|
)"
|
||||||
:key="i"
|
:key="i"
|
||||||
class="row items-center q-pb-sm"
|
class="row items-center q-pb-sm"
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ import PropertiesExpansion from './PropertiesExpansion.vue';
|
||||||
import FormGroupHead from './FormGroupHead.vue';
|
import FormGroupHead from './FormGroupHead.vue';
|
||||||
import AvatarGroup from 'src/components/shared/AvatarGroup.vue';
|
import AvatarGroup from 'src/components/shared/AvatarGroup.vue';
|
||||||
import { StateButton } from 'components/button';
|
import { StateButton } from 'components/button';
|
||||||
|
import DutyExpansion from './DutyExpansion.vue';
|
||||||
|
import MessengerExpansion from './MessengerExpansion.vue';
|
||||||
|
|
||||||
// NOTE: Store
|
// NOTE: Store
|
||||||
import { baseUrl } from 'src/stores/utils';
|
import { baseUrl } from 'src/stores/utils';
|
||||||
|
|
@ -633,7 +635,7 @@ function goToQuotation(
|
||||||
v.productService.work?.attributes?.workflowStep[
|
v.productService.work?.attributes?.workflowStep[
|
||||||
pageState.currentStep - 1
|
pageState.currentStep - 1
|
||||||
]?.attributes?.properties;
|
]?.attributes?.properties;
|
||||||
|
console.log(v);
|
||||||
return Object.assign(v, {
|
return Object.assign(v, {
|
||||||
_documentExpansion: _props.some(
|
_documentExpansion: _props.some(
|
||||||
(v: PropVariant) => v.fieldName === 'documentCheck',
|
(v: PropVariant) => v.fieldName === 'documentCheck',
|
||||||
|
|
@ -641,6 +643,12 @@ function goToQuotation(
|
||||||
_formExpansion: _props.some(
|
_formExpansion: _props.some(
|
||||||
(v: PropVariant) => v.fieldName === 'designForm',
|
(v: PropVariant) => v.fieldName === 'designForm',
|
||||||
),
|
),
|
||||||
|
_dutyExpansion: _props.some(
|
||||||
|
(v: PropVariant) => v.fieldName === 'duty',
|
||||||
|
),
|
||||||
|
_messengerExpansion: _props.some(
|
||||||
|
(v: PropVariant) => v.fieldName === 'messenger',
|
||||||
|
),
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.sort(
|
.sort(
|
||||||
|
|
@ -692,10 +700,10 @@ function goToQuotation(
|
||||||
class="column surface-1 q-px-sm bordered-t q-pb-sm q-gutter-y-sm"
|
class="column surface-1 q-px-sm bordered-t q-pb-sm q-gutter-y-sm"
|
||||||
>
|
>
|
||||||
<DocumentExpansion
|
<DocumentExpansion
|
||||||
|
v-if="value._documentExpansion"
|
||||||
:readonly="
|
:readonly="
|
||||||
data.requestDataStatus === RequestDataStatus.Canceled
|
data.requestDataStatus === RequestDataStatus.Canceled
|
||||||
"
|
"
|
||||||
v-if="value._documentExpansion"
|
|
||||||
ref="refDocumentExpansion"
|
ref="refDocumentExpansion"
|
||||||
:attributes="value.attributes"
|
:attributes="value.attributes"
|
||||||
@change-status="
|
@change-status="
|
||||||
|
|
@ -742,11 +750,25 @@ function goToQuotation(
|
||||||
}"
|
}"
|
||||||
:listDocument="product?.document"
|
:listDocument="product?.document"
|
||||||
/>
|
/>
|
||||||
<FormExpansion
|
<DutyExpansion
|
||||||
|
v-if="value._dutyExpansion"
|
||||||
|
:readonly="
|
||||||
|
data.requestDataStatus === RequestDataStatus.Canceled
|
||||||
|
"
|
||||||
|
:step="{
|
||||||
|
step: pageState.currentStep,
|
||||||
|
requestWorkId: value.id || '',
|
||||||
|
}"
|
||||||
|
:id="value.id"
|
||||||
|
:attributes-form="
|
||||||
|
value.stepStatus?.[pageState.currentStep - 1]
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
<MessengerExpansion
|
||||||
|
v-if="value._messengerExpansion"
|
||||||
:readonly="
|
:readonly="
|
||||||
data.requestDataStatus === RequestDataStatus.Canceled
|
data.requestDataStatus === RequestDataStatus.Canceled
|
||||||
"
|
"
|
||||||
v-if="value._formExpansion"
|
|
||||||
:step="{
|
:step="{
|
||||||
step: pageState.currentStep,
|
step: pageState.currentStep,
|
||||||
requestWorkId: value.id || '',
|
requestWorkId: value.id || '',
|
||||||
|
|
@ -759,6 +781,20 @@ function goToQuotation(
|
||||||
data.quotation.customerBranch.districtId
|
data.quotation.customerBranch.districtId
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
<FormExpansion
|
||||||
|
v-if="value._formExpansion"
|
||||||
|
:readonly="
|
||||||
|
data.requestDataStatus === RequestDataStatus.Canceled
|
||||||
|
"
|
||||||
|
:step="{
|
||||||
|
step: pageState.currentStep,
|
||||||
|
requestWorkId: value.id || '',
|
||||||
|
}"
|
||||||
|
:id="value.id"
|
||||||
|
:attributes-form="
|
||||||
|
value.stepStatus?.[pageState.currentStep - 1]
|
||||||
|
"
|
||||||
|
/>
|
||||||
<PropertiesExpansion
|
<PropertiesExpansion
|
||||||
:id="value.id"
|
:id="value.id"
|
||||||
:readonly="
|
:readonly="
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue