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 name = defineModel<string>('name');
const code = defineModel<string>('code'); const code = defineModel<string>('code');
const expenseType = defineModel<string>('expenseType'); const expenseType = defineModel<string>('expenseType');
const shared = defineModel<boolean>('shared');
const codeOption = ref<{ id: string; name: string }[]>([]); const codeOption = ref<{ id: string; name: string }[]>([]);
@ -73,7 +74,7 @@ const detailEditorImageDrop = createEditorImageDrop(detail);
<template> <template>
<div class="row col-12"> <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 <q-icon
flat flat
size="xs" size="xs"
@ -82,7 +83,21 @@ const detailEditorImageDrop = createEditorImageDrop(detail);
name="mdi-office-building-outline" name="mdi-office-building-outline"
style="background-color: var(--surface-3)" 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>
<div class="col-12 row q-col-gutter-sm"> <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 FormServiceWork from 'components/04_product-service/FormServiceWork.vue';
import WorkNameManagement from 'components/04_product-service/WorkNameManagement.vue'; import WorkNameManagement from 'components/04_product-service/WorkNameManagement.vue';
import useOptionStore from 'stores/options'; import useOptionStore from 'stores/options';
import FormServiceProperties from 'components/04_product-service/FormServiceProperties.vue';
import InfoForm from 'components/02_personnel-management/InfoForm.vue'; import InfoForm from 'components/02_personnel-management/InfoForm.vue';
import NoData from 'components/NoData.vue'; import NoData from 'components/NoData.vue';
import PaginationComponent from 'components/PaginationComponent.vue'; import PaginationComponent from 'components/PaginationComponent.vue';
@ -268,6 +267,7 @@ const formProduct = ref<ProductCreate>({
name: '', name: '',
code: '', code: '',
image: undefined, image: undefined,
shared: false,
}); });
const currWorkflow = ref<WorkflowTemplate>(); const currWorkflow = ref<WorkflowTemplate>();
@ -996,6 +996,7 @@ const prevProduct = ref<ProductCreate>({
name: '', name: '',
code: '', code: '',
image: undefined, image: undefined,
shared: false,
}); });
async function assignFormDataProduct(data: Product) { async function assignFormDataProduct(data: Product) {
@ -1023,6 +1024,7 @@ async function assignFormDataProduct(data: Product) {
vatIncluded: data.vatIncluded, vatIncluded: data.vatIncluded,
selectedImage: data.selectedImage, selectedImage: data.selectedImage,
document: data.document, document: data.document,
shared: data.shared,
}; };
if (prevProduct.value.document) if (prevProduct.value.document)
formProductDocument.value = prevProduct.value.document; formProductDocument.value = prevProduct.value.document;
@ -1056,6 +1058,7 @@ function clearFormProduct() {
expenseType: '', expenseType: '',
calcVat: true, calcVat: true,
vatIncluded: true, vatIncluded: true,
shared: false,
}; };
imageProduct.value = undefined; imageProduct.value = undefined;
dialogProduct.value = false; dialogProduct.value = false;
@ -3776,6 +3779,7 @@ watch(
v-model:code="formProduct.code" v-model:code="formProduct.code"
v-model:process="formProduct.process" v-model:process="formProduct.process"
v-model:expense-type="formProduct.expenseType" v-model:expense-type="formProduct.expenseType"
v-model:shared="formProduct.shared"
dense dense
separator separator
/> />
@ -3970,6 +3974,7 @@ watch(
v-model:code="formProduct.code" v-model:code="formProduct.code"
v-model:process="formProduct.process" v-model:process="formProduct.process"
v-model:expense-type="formProduct.expenseType" v-model:expense-type="formProduct.expenseType"
v-model:shared="formProduct.shared"
disableCode disableCode
dense dense
separator separator

View file

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