feat: add shared to create product

This commit is contained in:
puriphatt 2025-01-07 10:16:58 +07:00
parent be1559ac4f
commit 186d0ee726
3 changed files with 25 additions and 3 deletions

View file

@ -15,6 +15,7 @@ const process = defineModel<number>('process');
const name = defineModel<string>('name');
const code = defineModel<string>('code');
const expenseType = defineModel<string>('expenseType');
const shared = defineModel<boolean>('shared');
const codeOption = ref<{ id: string; name: string }[]>([]);
@ -73,7 +74,7 @@ const detailEditorImageDrop = createEditorImageDrop(detail);
<template>
<div class="row col-12">
<div class="col-12 q-pb-sm text-weight-bold text-body1 row items-center">
<div class="col-12 q-pb-sm row items-center">
<q-icon
flat
size="xs"
@ -82,7 +83,21 @@ const detailEditorImageDrop = createEditorImageDrop(detail);
name="mdi-office-building-outline"
style="background-color: var(--surface-3)"
/>
{{ $t(`form.field.basicInformation`) }}
<span class="text-body1 text-weight-bold">
{{ $t(`form.field.basicInformation`) }}
</span>
<section class="q-px-md">
<label :style="{ opacity: readonly ? '.5' : undefined }">
<input
id="input-shared"
class="q-pr-sm"
type="checkbox"
v-model="shared"
:disabled="readonly"
/>
{{ $t('general.shared') }}
</label>
</section>
</div>
<div class="col-12 row q-col-gutter-sm">

View file

@ -17,7 +17,6 @@ import TotalProductCardComponent from 'components/04_product-service/TotalProduc
import FormServiceWork from 'components/04_product-service/FormServiceWork.vue';
import WorkNameManagement from 'components/04_product-service/WorkNameManagement.vue';
import useOptionStore from 'stores/options';
import FormServiceProperties from 'components/04_product-service/FormServiceProperties.vue';
import InfoForm from 'components/02_personnel-management/InfoForm.vue';
import NoData from 'components/NoData.vue';
import PaginationComponent from 'components/PaginationComponent.vue';
@ -268,6 +267,7 @@ const formProduct = ref<ProductCreate>({
name: '',
code: '',
image: undefined,
shared: false,
});
const currWorkflow = ref<WorkflowTemplate>();
@ -996,6 +996,7 @@ const prevProduct = ref<ProductCreate>({
name: '',
code: '',
image: undefined,
shared: false,
});
async function assignFormDataProduct(data: Product) {
@ -1023,6 +1024,7 @@ async function assignFormDataProduct(data: Product) {
vatIncluded: data.vatIncluded,
selectedImage: data.selectedImage,
document: data.document,
shared: data.shared,
};
if (prevProduct.value.document)
formProductDocument.value = prevProduct.value.document;
@ -1056,6 +1058,7 @@ function clearFormProduct() {
expenseType: '',
calcVat: true,
vatIncluded: true,
shared: false,
};
imageProduct.value = undefined;
dialogProduct.value = false;
@ -3776,6 +3779,7 @@ watch(
v-model:code="formProduct.code"
v-model:process="formProduct.process"
v-model:expense-type="formProduct.expenseType"
v-model:shared="formProduct.shared"
dense
separator
/>
@ -3970,6 +3974,7 @@ watch(
v-model:code="formProduct.code"
v-model:process="formProduct.process"
v-model:expense-type="formProduct.expenseType"
v-model:shared="formProduct.shared"
disableCode
dense
separator

View file

@ -178,6 +178,7 @@ export interface Product {
imageUrl: string;
installmentNo: number;
document?: string[];
shared: boolean;
}
export interface ProductCreate {
@ -198,6 +199,7 @@ export interface ProductCreate {
document?: string[];
image?: File;
status?: Status;
shared: boolean;
}
export interface ProductUpdate {