chore: install prettier
This commit is contained in:
@@ -18,15 +18,18 @@
|
||||
@option="selected('product', $event)"
|
||||
/>
|
||||
</div>
|
||||
<p class="help is-danger" v-if="false">error</p>
|
||||
<p
|
||||
class="help is-danger"
|
||||
v-if="false"
|
||||
>
|
||||
error
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div :class="`column px-0 is-full ${viewport === 1 ? 'px-0 pb-1' : ''}`">
|
||||
<div class="field">
|
||||
<label class="label">
|
||||
Giao dịch<b class="ml-1 has-text-danger">*</b>
|
||||
</label>
|
||||
<label class="label"> Giao dịch<b class="ml-1 has-text-danger">*</b> </label>
|
||||
<div class="control">
|
||||
<SearchBox
|
||||
v-bind="{
|
||||
@@ -40,7 +43,10 @@
|
||||
@option="selected('phase', $event)"
|
||||
/>
|
||||
</div>
|
||||
<p class="help is-danger" v-if="errors.phase">
|
||||
<p
|
||||
class="help is-danger"
|
||||
v-if="errors.phase"
|
||||
>
|
||||
{{ errors.phase }}
|
||||
</p>
|
||||
</div>
|
||||
@@ -48,9 +54,7 @@
|
||||
|
||||
<div :class="`column px-0 is-full ${viewport === 1 ? 'px-0 pb-1' : ''}`">
|
||||
<div class="field">
|
||||
<label class="label">
|
||||
Khách hàng<b class="ml-1 has-text-danger">*</b>
|
||||
</label>
|
||||
<label class="label"> Khách hàng<b class="ml-1 has-text-danger">*</b> </label>
|
||||
<div class="control">
|
||||
<SearchBox
|
||||
v-bind="{
|
||||
@@ -65,7 +69,10 @@
|
||||
@option="selected('customer', $event)"
|
||||
/>
|
||||
</div>
|
||||
<p class="help is-danger" v-if="errors.customer">
|
||||
<p
|
||||
class="help is-danger"
|
||||
v-if="errors.customer"
|
||||
>
|
||||
{{ errors.customer }}
|
||||
</p>
|
||||
</div>
|
||||
@@ -73,9 +80,7 @@
|
||||
|
||||
<div :class="`column px-0 is-6 ${viewport === 1 ? 'px-0 pb-1' : ''}`">
|
||||
<div class="field">
|
||||
<label class="label">
|
||||
Số tiền đặt cọc<b class="ml-1 has-text-danger">*</b>
|
||||
</label>
|
||||
<label class="label"> Số tiền đặt cọc<b class="ml-1 has-text-danger">*</b> </label>
|
||||
<div class="control">
|
||||
<InputNumber
|
||||
v-bind="{
|
||||
@@ -86,7 +91,10 @@
|
||||
@number="selected('amount', $event)"
|
||||
></InputNumber>
|
||||
</div>
|
||||
<p class="help is-danger" v-if="errors.amount">
|
||||
<p
|
||||
class="help is-danger"
|
||||
v-if="errors.amount"
|
||||
>
|
||||
{{ errors.amount }}
|
||||
</p>
|
||||
</div>
|
||||
@@ -94,16 +102,17 @@
|
||||
|
||||
<div :class="`column is-6 ${viewport === 1 ? 'px-0 pb-1' : ''}`">
|
||||
<div class="field">
|
||||
<label class="label"
|
||||
>Hạn thanh toán<b class="ml-1 has-text-danger">*</b></label
|
||||
>
|
||||
<label class="label">Hạn thanh toán<b class="ml-1 has-text-danger">*</b></label>
|
||||
<div class="control">
|
||||
<Datepicker
|
||||
v-bind="{ record: formData, attr: 'due_date' }"
|
||||
@date="selected('due_date', $event)"
|
||||
/>
|
||||
</div>
|
||||
<p class="help is-danger" v-if="errors.due_date">
|
||||
<p
|
||||
class="help is-danger"
|
||||
v-if="errors.due_date"
|
||||
>
|
||||
{{ errors.due_date }}
|
||||
</p>
|
||||
</div>
|
||||
@@ -111,9 +120,7 @@
|
||||
|
||||
<div :class="`column px-0 is-full ${viewport === 1 ? 'px-0 pb-1' : ''}`">
|
||||
<div class="field">
|
||||
<label class="label">{{
|
||||
dataLang && findFieldName("note")[lang]
|
||||
}}</label>
|
||||
<label class="label">{{ dataLang && findFieldName("note")[lang] }}</label>
|
||||
<div class="control">
|
||||
<textarea
|
||||
v-model="formData.note"
|
||||
@@ -123,15 +130,18 @@
|
||||
rows="3"
|
||||
></textarea>
|
||||
</div>
|
||||
<p class="help is-danger" v-if="errors.note">{{ errors.note }}</p>
|
||||
<p
|
||||
class="help is-danger"
|
||||
v-if="errors.note"
|
||||
>
|
||||
{{ errors.note }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div :class="`column is-full px-0 ${viewport === 1 ? 'px-0 pb-1' : ''}`">
|
||||
<button
|
||||
:class="`button is-primary has-text-white ${
|
||||
isSubmitting ? 'is-loading' : ''
|
||||
}`"
|
||||
:class="`button is-primary has-text-white ${isSubmitting ? 'is-loading' : ''}`"
|
||||
@click="handleSubmitData"
|
||||
:disabled="isSubmitting"
|
||||
>
|
||||
@@ -170,28 +180,10 @@ const props = defineProps({
|
||||
api: String,
|
||||
});
|
||||
|
||||
const {
|
||||
$updatepage,
|
||||
$getdata,
|
||||
$insertapi,
|
||||
$updateapi,
|
||||
$empty,
|
||||
$snackbar,
|
||||
$generateDocument,
|
||||
} = useNuxtApp();
|
||||
const transaction = await $getdata(
|
||||
"transaction",
|
||||
{ product: props.row.id },
|
||||
undefined,
|
||||
true
|
||||
);
|
||||
const { $updatepage, $getdata, $insertapi, $updateapi, $empty, $snackbar, $generateDocument } = useNuxtApp();
|
||||
const transaction = await $getdata("transaction", { product: props.row.id }, undefined, true);
|
||||
const reservation = transaction
|
||||
? await $getdata(
|
||||
"reservation",
|
||||
{ transaction: transaction.id },
|
||||
undefined,
|
||||
true
|
||||
)
|
||||
? await $getdata("reservation", { transaction: transaction.id }, undefined, true)
|
||||
: undefined;
|
||||
|
||||
const viewport = 5;
|
||||
@@ -205,12 +197,7 @@ const showContractModal = ref(false);
|
||||
|
||||
// Load contract nếu đã có
|
||||
if (transaction) {
|
||||
contractData.value = await $getdata(
|
||||
"contract",
|
||||
{ transaction: transaction.id },
|
||||
undefined,
|
||||
true
|
||||
);
|
||||
contractData.value = await $getdata("contract", { transaction: transaction.id }, undefined, true);
|
||||
}
|
||||
|
||||
const initFormData = {
|
||||
@@ -279,9 +266,7 @@ const findFieldName = (code) => {
|
||||
|
||||
const selected = (fieldName, value) => {
|
||||
const finalValue =
|
||||
value !== null && typeof value === "object"
|
||||
? value.id || value.index || value.code || value.label
|
||||
: value;
|
||||
value !== null && typeof value === "object" ? value.id || value.index || value.code || value.label : value;
|
||||
formData.value[fieldName] = finalValue;
|
||||
};
|
||||
|
||||
@@ -296,21 +281,15 @@ const checkErrors = (fields) => {
|
||||
}
|
||||
|
||||
if ($empty(customer)) {
|
||||
errors.value.customer = isVietnamese.value
|
||||
? "Khách hàng không được để trống"
|
||||
: "Customer is required";
|
||||
errors.value.customer = isVietnamese.value ? "Khách hàng không được để trống" : "Customer is required";
|
||||
}
|
||||
|
||||
if ($empty(amount)) {
|
||||
errors.value.amount = isVietnamese.value
|
||||
? "Số tiền đặt cọc không được để trống"
|
||||
: "Deposit amount is required";
|
||||
errors.value.amount = isVietnamese.value ? "Số tiền đặt cọc không được để trống" : "Deposit amount is required";
|
||||
}
|
||||
|
||||
if ($empty(due_date)) {
|
||||
errors.value.due_date = isVietnamese.value
|
||||
? "Hạn thanh toán không được để trống"
|
||||
: "Due date is required";
|
||||
errors.value.due_date = isVietnamese.value ? "Hạn thanh toán không được để trống" : "Due date is required";
|
||||
}
|
||||
|
||||
return Object.keys(errors.value).length > 0;
|
||||
@@ -321,19 +300,13 @@ async function handleSubmitData() {
|
||||
if (isSubmitting.value) return;
|
||||
|
||||
if (isEqual(formData.value, initFormData)) {
|
||||
$snackbar(
|
||||
isVietnamese.value ? "Form không thay đổi" : "Form is unchanged"
|
||||
);
|
||||
$snackbar(isVietnamese.value ? "Form không thay đổi" : "Form is unchanged");
|
||||
return;
|
||||
}
|
||||
|
||||
const hasValidationErrors = checkErrors(formData.value);
|
||||
if (hasValidationErrors) {
|
||||
$snackbar(
|
||||
isVietnamese.value
|
||||
? "Vui lòng kiểm tra lại dữ liệu."
|
||||
: "Please check the data again."
|
||||
);
|
||||
$snackbar(isVietnamese.value ? "Vui lòng kiểm tra lại dữ liệu." : "Please check the data again.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -345,12 +318,7 @@ async function handleSubmitData() {
|
||||
date: dayjs().format("YYYY-MM-DD"),
|
||||
};
|
||||
|
||||
const transactionRs = await $insertapi(
|
||||
"transaction",
|
||||
transactionPayload,
|
||||
undefined,
|
||||
false
|
||||
);
|
||||
const transactionRs = await $insertapi("transaction", transactionPayload, undefined, false);
|
||||
const { date, id: transactionId, code: transactionCode } = transactionRs;
|
||||
|
||||
// 2. Tạo reservation
|
||||
@@ -358,16 +326,11 @@ async function handleSubmitData() {
|
||||
amount: Number(formData.value.amount),
|
||||
due_date: formData.value.due_date,
|
||||
creator: 1,
|
||||
date:dayjs().format("YYYY-MM-DD"),
|
||||
date: dayjs().format("YYYY-MM-DD"),
|
||||
transaction: transactionId,
|
||||
};
|
||||
|
||||
const reservationnRs = await $insertapi(
|
||||
"reservation",
|
||||
reservationPayload,
|
||||
undefined,
|
||||
false
|
||||
);
|
||||
const reservationnRs = await $insertapi("reservation", reservationPayload, undefined, false);
|
||||
const reservationId = reservationnRs.id;
|
||||
|
||||
// 3. Generate document
|
||||
@@ -409,19 +372,12 @@ async function handleSubmitData() {
|
||||
user: null,
|
||||
};
|
||||
|
||||
const contractResult = await $insertapi(
|
||||
"contract",
|
||||
contractPayload,
|
||||
undefined,
|
||||
false
|
||||
);
|
||||
const contractResult = await $insertapi("contract", contractPayload, undefined, false);
|
||||
contractData.value = contractResult;
|
||||
}
|
||||
|
||||
$snackbar(
|
||||
isVietnamese.value
|
||||
? "Tạo giao dịch và hợp đồng thành công!"
|
||||
: "Transaction and contract created successfully!"
|
||||
isVietnamese.value ? "Tạo giao dịch và hợp đồng thành công!" : "Transaction and contract created successfully!",
|
||||
);
|
||||
|
||||
// Tự động mở modal xem hợp đồng
|
||||
@@ -430,11 +386,7 @@ async function handleSubmitData() {
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Create transaction failed:", error);
|
||||
$snackbar(
|
||||
isVietnamese.value
|
||||
? "Tạo giao dịch thất bại"
|
||||
: "Create transaction failed"
|
||||
);
|
||||
$snackbar(isVietnamese.value ? "Tạo giao dịch thất bại" : "Create transaction failed");
|
||||
} finally {
|
||||
isSubmitting.value = false;
|
||||
}
|
||||
@@ -447,11 +399,7 @@ function openContractModal() {
|
||||
function handleContractUpdated(eventData) {
|
||||
if (eventData?.data) {
|
||||
contractData.value = { ...contractData.value, ...eventData.data };
|
||||
$snackbar(
|
||||
isVietnamese.value
|
||||
? "Hợp đồng đã được cập nhật"
|
||||
: "Contract has been updated"
|
||||
);
|
||||
$snackbar(isVietnamese.value ? "Hợp đồng đã được cập nhật" : "Contract has been updated");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user