fix(01): code form & i18n
This commit is contained in:
parent
c25cede70b
commit
68cc429b2e
9 changed files with 207 additions and 139 deletions
|
|
@ -36,7 +36,7 @@ defineProps<{
|
||||||
outlined
|
outlined
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
class="col-md-3 col-12"
|
class="col-3"
|
||||||
:label="
|
:label="
|
||||||
typeBranch === 'headOffice'
|
typeBranch === 'headOffice'
|
||||||
? $t('formDialogInputEmailHq')
|
? $t('formDialogInputEmailHq')
|
||||||
|
|
@ -56,7 +56,7 @@ defineProps<{
|
||||||
outlined
|
outlined
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
class="col-md-3 col-12"
|
class="col-3"
|
||||||
:label="
|
:label="
|
||||||
typeBranch === 'headOffice'
|
typeBranch === 'headOffice'
|
||||||
? $t('formDialogInputTelephoneHq')
|
? $t('formDialogInputTelephoneHq')
|
||||||
|
|
@ -70,34 +70,6 @@ defineProps<{
|
||||||
</template>
|
</template>
|
||||||
</q-input>
|
</q-input>
|
||||||
|
|
||||||
<q-input
|
|
||||||
lazy-rules="ondemand"
|
|
||||||
:dense="dense"
|
|
||||||
outlined
|
|
||||||
:readonly="readonly"
|
|
||||||
hide-bottom-space
|
|
||||||
class="col-md-3 col-12"
|
|
||||||
:label="$t('formDialogInputContactName')"
|
|
||||||
v-model="contactName"
|
|
||||||
for="input-contact-name"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<q-input
|
|
||||||
lazy-rules="ondemand"
|
|
||||||
:dense="dense"
|
|
||||||
outlined
|
|
||||||
:readonly="readonly"
|
|
||||||
hide-bottom-space
|
|
||||||
class="col-3"
|
|
||||||
:label="$t('formDialogInputTelephoneContact')"
|
|
||||||
v-model="contact"
|
|
||||||
for="input-contact"
|
|
||||||
>
|
|
||||||
<template #prepend>
|
|
||||||
<q-icon color="primary" name="mdi-phone" size="xs" class="q-mr-xs" />
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
|
|
||||||
<q-input
|
<q-input
|
||||||
lazy-rules="ondemand"
|
lazy-rules="ondemand"
|
||||||
:dense="dense"
|
:dense="dense"
|
||||||
|
|
@ -109,6 +81,41 @@ defineProps<{
|
||||||
v-model="lineId"
|
v-model="lineId"
|
||||||
for="input-line-id"
|
for="input-line-id"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<div class="col-12 row q-col-gutter-sm">
|
||||||
|
<q-input
|
||||||
|
lazy-rules="ondemand"
|
||||||
|
:dense="dense"
|
||||||
|
outlined
|
||||||
|
:readonly="readonly"
|
||||||
|
hide-bottom-space
|
||||||
|
class="col-3"
|
||||||
|
:label="$t('formDialogInputContactName')"
|
||||||
|
v-model="contactName"
|
||||||
|
for="input-contact-name"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<q-input
|
||||||
|
lazy-rules="ondemand"
|
||||||
|
:dense="dense"
|
||||||
|
outlined
|
||||||
|
:readonly="readonly"
|
||||||
|
hide-bottom-space
|
||||||
|
class="col-3"
|
||||||
|
:label="$t('formDialogInputTelephoneContact')"
|
||||||
|
v-model="contact"
|
||||||
|
for="input-contact"
|
||||||
|
>
|
||||||
|
<template #prepend>
|
||||||
|
<q-icon
|
||||||
|
color="primary"
|
||||||
|
name="mdi-phone"
|
||||||
|
size="xs"
|
||||||
|
class="q-mr-xs"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { onMounted } from 'vue';
|
||||||
|
|
||||||
const code = defineModel<string>('code');
|
const code = defineModel<string>('code');
|
||||||
const codeSubBranch = defineModel<string>('codeSubBranch');
|
const codeSubBranch = defineModel<string>('codeSubBranch');
|
||||||
const taxNo = defineModel<string>('taxNo');
|
const taxNo = defineModel<string>('taxNo');
|
||||||
const name = defineModel<string>('name');
|
const name = defineModel<string>('name');
|
||||||
|
const abbreviation = defineModel<string>('abbreviation');
|
||||||
const nameEN = defineModel<string>('nameEN');
|
const nameEN = defineModel<string>('nameEN');
|
||||||
const typeBranch = defineModel<string>('typeBranch');
|
const typeBranch = defineModel<string>('typeBranch');
|
||||||
|
|
||||||
|
|
@ -13,6 +16,14 @@ defineProps<{
|
||||||
readonly?: boolean;
|
readonly?: boolean;
|
||||||
view?: boolean;
|
view?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
function formatCode(input: string | undefined, type: 'code' | 'number') {
|
||||||
|
if (!input) return;
|
||||||
|
const code = input.slice(0, -6);
|
||||||
|
const number = input.slice(-6);
|
||||||
|
if (type === 'code') return code;
|
||||||
|
if (type === 'number') return number;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row col-12">
|
<div class="row col-12">
|
||||||
|
|
@ -29,104 +40,118 @@ defineProps<{
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-12 row q-col-gutter-sm">
|
<div class="col-12 row q-col-gutter-sm">
|
||||||
<q-input
|
<div
|
||||||
lazy-rules="ondemand"
|
class="col-6 row q-col-gutter-sm"
|
||||||
:dense="dense"
|
|
||||||
outlined
|
|
||||||
readonly
|
|
||||||
:disable="!readonly"
|
|
||||||
hide-bottom-space
|
|
||||||
:class="{
|
:class="{
|
||||||
'col-12': $q.screen.xs,
|
'col-8': typeBranch !== 'headOffice',
|
||||||
'col-3': typeBranch == 'headOffice',
|
'col-6': typeBranch === 'headOffice',
|
||||||
'col-4': typeBranch != 'headOffice',
|
|
||||||
}"
|
}"
|
||||||
:label="$t('formDialogInputCode')"
|
>
|
||||||
v-model="code"
|
<q-input
|
||||||
for="input-code"
|
lazy-rules="ondemand"
|
||||||
/>
|
:dense="dense"
|
||||||
|
outlined
|
||||||
|
:disable="view && !readonly"
|
||||||
|
:readonly="readonly"
|
||||||
|
hide-bottom-space
|
||||||
|
class="col"
|
||||||
|
:label="$t('formDialogHqAbbreviation')"
|
||||||
|
for="input-abbreviation"
|
||||||
|
:model-value="view ? formatCode(abbreviation, 'code') : abbreviation"
|
||||||
|
@update:model-value="(v) => (abbreviation = v as string)"
|
||||||
|
/>
|
||||||
|
<q-input
|
||||||
|
lazy-rules="ondemand"
|
||||||
|
:dense="dense"
|
||||||
|
outlined
|
||||||
|
readonly
|
||||||
|
:disable="!readonly"
|
||||||
|
hide-bottom-space
|
||||||
|
class="col"
|
||||||
|
:label="$t('formDialogInputCode')"
|
||||||
|
for="input-code"
|
||||||
|
:model-value="view ? formatCode(code, 'number') : code"
|
||||||
|
@update:model-value="(v) => (code = v as string)"
|
||||||
|
/>
|
||||||
|
<q-input
|
||||||
|
lazy-rules="ondemand"
|
||||||
|
v-if="typeBranch !== 'headOffice'"
|
||||||
|
:dense="dense"
|
||||||
|
outlined
|
||||||
|
:disable="view && !readonly"
|
||||||
|
:readonly="readonly"
|
||||||
|
hide-bottom-space
|
||||||
|
class="col"
|
||||||
|
:label="$t('branchLabelCode')"
|
||||||
|
for="input-code-sub-branch"
|
||||||
|
:model-value="
|
||||||
|
view ? formatCode(codeSubBranch, 'number') : codeSubBranch
|
||||||
|
"
|
||||||
|
@update:model-value="(v) => (codeSubBranch = v as string)"
|
||||||
|
/>
|
||||||
|
|
||||||
<q-input
|
<q-input
|
||||||
lazy-rules="ondemand"
|
lazy-rules="ondemand"
|
||||||
v-if="typeBranch !== 'headOffice'"
|
:dense="dense"
|
||||||
:dense="dense"
|
outlined
|
||||||
outlined
|
:readonly="readonly"
|
||||||
readonly
|
hide-bottom-space
|
||||||
hide-bottom-space
|
class="col-5"
|
||||||
:class="{
|
:label="$t('formDialogInputTaxNo')"
|
||||||
'col-12': $q.screen.xs,
|
v-model="taxNo"
|
||||||
'col-3': typeBranch == 'headOffice',
|
:rules="[
|
||||||
'col-4': typeBranch != 'headOffice',
|
(val) =>
|
||||||
}"
|
(val && val.length === 13 && /[0-9]+/.test(val)) ||
|
||||||
:label="$t('branchLabelCode')"
|
$t('formDialogInputTaxNoValidate'),
|
||||||
v-model="codeSubBranch"
|
]"
|
||||||
for="input-code-sub-branch"
|
for="input-tax-no"
|
||||||
/>
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
<q-input
|
<div class="col-12 row q-col-gutter-sm">
|
||||||
lazy-rules="ondemand"
|
<q-input
|
||||||
:dense="dense"
|
lazy-rules="ondemand"
|
||||||
outlined
|
:dense="dense"
|
||||||
:readonly="readonly"
|
outlined
|
||||||
hide-bottom-space
|
:readonly="readonly"
|
||||||
:class="{
|
hide-bottom-space
|
||||||
'col-12': $q.screen.xs,
|
class="col-6"
|
||||||
'col-3': typeBranch === 'headOffice',
|
:label="
|
||||||
'col-4': typeBranch !== 'headOffice',
|
typeBranch === 'headOffice'
|
||||||
}"
|
? $t('formDialogInputNameHq')
|
||||||
:label="$t('formDialogInputTaxNo')"
|
: $t('formDialogInputNameSubBranch')
|
||||||
v-model="taxNo"
|
"
|
||||||
:rules="[
|
v-model="name"
|
||||||
(val) =>
|
:rules="[(val) => val && val.length > 0]"
|
||||||
(val && val.length === 13 && /[0-9]+/.test(val)) ||
|
:error-message="
|
||||||
$t('formDialogInputTaxNoValidate'),
|
typeBranch === 'headOffice'
|
||||||
]"
|
? $t('formDialogInputNameHqValidate')
|
||||||
for="input-tax-no"
|
: $t('formDialogInputNameSubBranchValidate')
|
||||||
/>
|
"
|
||||||
|
for="input-name"
|
||||||
<q-input
|
/>
|
||||||
lazy-rules="ondemand"
|
<q-input
|
||||||
:dense="dense"
|
lazy-rules="ondemand"
|
||||||
outlined
|
:dense="dense"
|
||||||
:readonly="readonly"
|
outlined
|
||||||
hide-bottom-space
|
:readonly="readonly"
|
||||||
class="col-3"
|
hide-bottom-space
|
||||||
:label="
|
class="col-6"
|
||||||
typeBranch === 'headOffice'
|
v-model="nameEN"
|
||||||
? $t('formDialogInputNameHq')
|
:label="
|
||||||
: $t('formDialogInputNameSubBranch')
|
typeBranch === 'headOffice'
|
||||||
"
|
? $t('formDialogInputNameHqEn')
|
||||||
v-model="name"
|
: $t('formDialogInputNameSubBranchEn')
|
||||||
:rules="[(val) => val && val.length > 0]"
|
"
|
||||||
:error-message="
|
:rules="[(val) => val && val.length > 0]"
|
||||||
typeBranch === 'headOffice'
|
:error-message="
|
||||||
? $t('formDialogInputNameHqValidate')
|
typeBranch === 'headOffice'
|
||||||
: $t('formDialogInputNameSubBranchValidate')
|
? $t('formDialogInputNameHqEnValidate')
|
||||||
"
|
: $t('formDialogInputNameSubBranchEnValidate')
|
||||||
for="input-name"
|
"
|
||||||
/>
|
for="input-name-en"
|
||||||
|
/>
|
||||||
<q-input
|
</div>
|
||||||
lazy-rules="ondemand"
|
|
||||||
:dense="dense"
|
|
||||||
outlined
|
|
||||||
:readonly="readonly"
|
|
||||||
hide-bottom-space
|
|
||||||
class="col-3"
|
|
||||||
v-model="nameEN"
|
|
||||||
:label="
|
|
||||||
typeBranch === 'headOffice'
|
|
||||||
? $t('formDialogInputNameHqEn')
|
|
||||||
: $t('formDialogInputNameSubBranchEn')
|
|
||||||
"
|
|
||||||
:rules="[(val) => val && val.length > 0]"
|
|
||||||
:error-message="
|
|
||||||
typeBranch === 'headOffice'
|
|
||||||
? $t('formDialogInputNameHqEnValidate')
|
|
||||||
: $t('formDialogInputNameSubBranchEnValidate')
|
|
||||||
"
|
|
||||||
for="input-name-en"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ export default {
|
||||||
selectValidate: 'Please select ',
|
selectValidate: 'Please select ',
|
||||||
|
|
||||||
// Branch & HQ
|
// Branch & HQ
|
||||||
|
formDialogHqAbbreviation: 'Head Office Abbreviation',
|
||||||
formDialogTitleImg: 'Office Image',
|
formDialogTitleImg: 'Office Image',
|
||||||
formDialogBtnImg: 'Add Office Image',
|
formDialogBtnImg: 'Add Office Image',
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ export default {
|
||||||
about: 'เกี่ยวกับ',
|
about: 'เกี่ยวกับ',
|
||||||
branchCode: 'รหัสสาขา',
|
branchCode: 'รหัสสาขา',
|
||||||
legalEntityCode: 'รหัสนิติบุคคล',
|
legalEntityCode: 'รหัสนิติบุคคล',
|
||||||
taxNo: 'เลขประจำตัวผู้เสียภาษี',
|
taxNo: 'เลขทะเบียนนิติบุคคล',
|
||||||
customerName: 'ชื่อสาขา ภาษาไทย',
|
customerName: 'ชื่อสาขา ภาษาไทย',
|
||||||
customerEnglishName: 'ชื่อสาขา ภาษาอังกฤษ',
|
customerEnglishName: 'ชื่อสาขา ภาษาอังกฤษ',
|
||||||
registerDate: 'จดทะเบียนเมื่อ',
|
registerDate: 'จดทะเบียนเมื่อ',
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ export default {
|
||||||
selectValidate: 'กรุณาเลือก',
|
selectValidate: 'กรุณาเลือก',
|
||||||
|
|
||||||
// Branch & HQ
|
// Branch & HQ
|
||||||
|
formDialogHqAbbreviation: 'ตัวย่อสำนักงานใหญ่',
|
||||||
formDialogTitleImg: 'ภาพสำนักงาน',
|
formDialogTitleImg: 'ภาพสำนักงาน',
|
||||||
formDialogBtnImg: 'เพิ่มรูปสำนักงาน',
|
formDialogBtnImg: 'เพิ่มรูปสำนักงาน',
|
||||||
|
|
||||||
|
|
@ -23,8 +24,8 @@ export default {
|
||||||
formDialogTitlePersonal: 'ข้อมูลบุคคล',
|
formDialogTitlePersonal: 'ข้อมูลบุคคล',
|
||||||
|
|
||||||
formDialogInputCode: 'รหัสสำนักงานใหญ่',
|
formDialogInputCode: 'รหัสสำนักงานใหญ่',
|
||||||
formDialogInputTaxNo: 'เลขประจำตัวผู้เสียภาษี',
|
formDialogInputTaxNo: 'เลขทะเบียนนิติบุคคล',
|
||||||
formDialogInputTaxNoValidate: 'โปรดระบุเลขประจำตัวผู้เสียภาษี',
|
formDialogInputTaxNoValidate: 'โปรดระบุเลขทะเบียนนิติบุคคล',
|
||||||
|
|
||||||
formDialogInputNameHq: 'ชื่อสำนักงานใหญ่',
|
formDialogInputNameHq: 'ชื่อสำนักงานใหญ่',
|
||||||
formDialogInputNameSubBranch: 'ชื่อสาขา',
|
formDialogInputNameSubBranch: 'ชื่อสาขา',
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ export default {
|
||||||
customerName: 'ชื่อบริษัท',
|
customerName: 'ชื่อบริษัท',
|
||||||
customerNameEN: 'ชื่อบริษัท (EN)',
|
customerNameEN: 'ชื่อบริษัท (EN)',
|
||||||
personName: 'ชื่อลูกค้า',
|
personName: 'ชื่อลูกค้า',
|
||||||
taxIdentificationNumber: 'หมายเลขประจำตัวผู้เสียภาษี',
|
taxIdentificationNumber: 'หมายเลขทะเบียนนิติบุคคล',
|
||||||
branch: {
|
branch: {
|
||||||
title: 'สาขาที่ {name}',
|
title: 'สาขาที่ {name}',
|
||||||
},
|
},
|
||||||
|
|
@ -130,7 +130,7 @@ export default {
|
||||||
form: {
|
form: {
|
||||||
no: 'เลขที่สาขา',
|
no: 'เลขที่สาขา',
|
||||||
code: 'รหัสสาขา',
|
code: 'รหัสสาขา',
|
||||||
taxNo: 'เลขประจำตัวผู้เสียภาษี',
|
taxNo: 'เลขทะเบียนนิติบุคคล',
|
||||||
name: 'ชื่อสาขา',
|
name: 'ชื่อสาขา',
|
||||||
nameEN: 'ชื่อสาขา (ภาษาอังกฤษ)',
|
nameEN: 'ชื่อสาขา (ภาษาอังกฤษ)',
|
||||||
authorizedCapital: 'ทุนจดทะเบียน',
|
authorizedCapital: 'ทุนจดทะเบียน',
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ export default {
|
||||||
input: {
|
input: {
|
||||||
formDialogInputCode: 'รหัสสำนักงานใหญ่',
|
formDialogInputCode: 'รหัสสำนักงานใหญ่',
|
||||||
formDialogInputBrId: 'รหัสสาขา',
|
formDialogInputBrId: 'รหัสสาขา',
|
||||||
formDialogInputTaxNo: 'เลขประจำตัวผู้เสียภาษี',
|
formDialogInputTaxNo: 'เลขทะเบียนนิติบุคคล',
|
||||||
formDialogInputNameSubBranch: 'ชื่อสาขา',
|
formDialogInputNameSubBranch: 'ชื่อสาขา',
|
||||||
formDialogInputNameSubBranchEn: 'ชื่อสาขา (ภาษาอังกฤษ)',
|
formDialogInputNameSubBranchEn: 'ชื่อสาขา (ภาษาอังกฤษ)',
|
||||||
formDialogInputEmailSubBranch: 'อีเมลติดต่อสาขา',
|
formDialogInputEmailSubBranch: 'อีเมลติดต่อสาขา',
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ const { t } = useI18n();
|
||||||
const utilsStore = useUtilsStore();
|
const utilsStore = useUtilsStore();
|
||||||
|
|
||||||
const holdDialog = ref(false);
|
const holdDialog = ref(false);
|
||||||
|
const isSubCreate = ref(false);
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
name: 'branchLabelNo',
|
name: 'branchLabelNo',
|
||||||
|
|
@ -80,6 +80,7 @@ const columns = [
|
||||||
|
|
||||||
const modal = ref<boolean>(false);
|
const modal = ref<boolean>(false);
|
||||||
const hideStat = ref(false);
|
const hideStat = ref(false);
|
||||||
|
const currentId = ref<string>('');
|
||||||
const currentStatus = ref<Status | 'All'>('All');
|
const currentStatus = ref<Status | 'All'>('All');
|
||||||
const expandedTree = ref<string[]>([]);
|
const expandedTree = ref<string[]>([]);
|
||||||
const formMenuIcon = ref<{ icon: string; color: string; bgColor: string }[]>([
|
const formMenuIcon = ref<{ icon: string; color: string; bgColor: string }[]>([
|
||||||
|
|
@ -257,6 +258,7 @@ const splitterModel = ref(25);
|
||||||
|
|
||||||
const defaultFormData = {
|
const defaultFormData = {
|
||||||
headOfficeId: null,
|
headOfficeId: null,
|
||||||
|
code: '',
|
||||||
taxNo: '',
|
taxNo: '',
|
||||||
nameEN: '',
|
nameEN: '',
|
||||||
name: '',
|
name: '',
|
||||||
|
|
@ -314,6 +316,7 @@ async function fetchBranchById(id: string) {
|
||||||
formBankBook.value = updatedBank;
|
formBankBook.value = updatedBank;
|
||||||
|
|
||||||
formData.value = {
|
formData.value = {
|
||||||
|
code: res.code,
|
||||||
headOfficeId: res.headOfficeId,
|
headOfficeId: res.headOfficeId,
|
||||||
taxNo: res.taxNo,
|
taxNo: res.taxNo,
|
||||||
nameEN: res.nameEN,
|
nameEN: res.nameEN,
|
||||||
|
|
@ -382,7 +385,9 @@ function triggerCreate(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type === 'subBranch' && id && code) {
|
if (type === 'subBranch' && id && code) {
|
||||||
|
isSubCreate.value = true;
|
||||||
formData.value.headOfficeId = id;
|
formData.value.headOfficeId = id;
|
||||||
|
formData.value.code = code;
|
||||||
formData.value.codeHeadOffice = code;
|
formData.value.codeHeadOffice = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -418,6 +423,8 @@ async function triggerEdit(
|
||||||
formData.value.codeHeadOffice = code;
|
formData.value.codeHeadOffice = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
currentId.value = id;
|
||||||
|
|
||||||
const currentRecord = branchData.value.result.find((x) => x.id === id);
|
const currentRecord = branchData.value.result.find((x) => x.id === id);
|
||||||
|
|
||||||
if (!currentRecord) return;
|
if (!currentRecord) return;
|
||||||
|
|
@ -441,6 +448,7 @@ async function triggerEdit(
|
||||||
currentHq.value = currentEdit.value;
|
currentHq.value = currentEdit.value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log(formData.value);
|
||||||
|
|
||||||
formTypeBranch.value = typeBranch;
|
formTypeBranch.value = typeBranch;
|
||||||
}
|
}
|
||||||
|
|
@ -496,6 +504,7 @@ async function triggerChangeStatus(
|
||||||
async function onSubmit() {
|
async function onSubmit() {
|
||||||
if (formType.value === 'edit') {
|
if (formType.value === 'edit') {
|
||||||
delete formData.value['codeHeadOffice'];
|
delete formData.value['codeHeadOffice'];
|
||||||
|
delete formData.value['code'];
|
||||||
|
|
||||||
await branchStore.editById(
|
await branchStore.editById(
|
||||||
currentEdit.value.id,
|
currentEdit.value.id,
|
||||||
|
|
@ -520,6 +529,7 @@ async function onSubmit() {
|
||||||
);
|
);
|
||||||
|
|
||||||
formData.value.headOfficeId = currentRecord?.id;
|
formData.value.headOfficeId = currentRecord?.id;
|
||||||
|
formData.value.code = formData.value.code?.slice(0, -6);
|
||||||
delete formData.value['codeHeadOffice'];
|
delete formData.value['codeHeadOffice'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1060,6 +1070,7 @@ watch(currentHq, () => {
|
||||||
<div class="row items-center">
|
<div class="row items-center">
|
||||||
<div
|
<div
|
||||||
:class="{
|
:class="{
|
||||||
|
'q-mr-sm': true,
|
||||||
'status-active':
|
'status-active':
|
||||||
props.row.status !== 'INACTIVE',
|
props.row.status !== 'INACTIVE',
|
||||||
'status-inactive':
|
'status-inactive':
|
||||||
|
|
@ -1077,7 +1088,7 @@ watch(currentHq, () => {
|
||||||
<q-img
|
<q-img
|
||||||
:src="
|
:src="
|
||||||
baseUrl +
|
baseUrl +
|
||||||
`/branch/${props.row.id}/branch-image`
|
`/branch/${props.row.id}/branch-image?ts=${Date.now()}`
|
||||||
"
|
"
|
||||||
style="
|
style="
|
||||||
height: 3rem;
|
height: 3rem;
|
||||||
|
|
@ -1504,7 +1515,10 @@ watch(currentHq, () => {
|
||||||
"
|
"
|
||||||
:close="
|
:close="
|
||||||
() => (
|
() => (
|
||||||
(modal = false), (profileFileImg = undefined), (isImageEdit = false)
|
(modal = false),
|
||||||
|
(profileFileImg = undefined),
|
||||||
|
(isImageEdit = false),
|
||||||
|
(isSubCreate = false)
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
|
@ -1513,17 +1527,25 @@ watch(currentHq, () => {
|
||||||
caption="Jobs Worker Service Co., Ltd." -->
|
caption="Jobs Worker Service Co., Ltd." -->
|
||||||
<ProfileBanner
|
<ProfileBanner
|
||||||
active
|
active
|
||||||
|
useToggle
|
||||||
:title="formData.name"
|
:title="formData.name"
|
||||||
:caption="formData.nameEN"
|
:caption="formData.codeHeadOffice"
|
||||||
|
v-model:toggle-status="formData.status"
|
||||||
v-model:cover-url="imageUrl"
|
v-model:cover-url="imageUrl"
|
||||||
:hideFade="imageUrl === '' || imageUrl === null"
|
:hideFade="imageUrl === '' || imageUrl === null"
|
||||||
:img="imageUrl || null"
|
:img="imageUrl || null"
|
||||||
icon="mdi-office-building-outline"
|
icon="mdi-office-building-outline"
|
||||||
color="hsla(var(--pink-6-hsl)/1)"
|
color="hsla(var(--pink-6-hsl)/1)"
|
||||||
bgColor="hsla(var(--pink-6-hsl)/0.15)"
|
bgColor="hsla(var(--pink-6-hsl)/0.15)"
|
||||||
|
:menu="formMenuIcon"
|
||||||
@view="imageDialog = true"
|
@view="imageDialog = true"
|
||||||
@edit="refImageUpload && refImageUpload.browse()"
|
@edit="refImageUpload && refImageUpload.browse()"
|
||||||
:menu="formMenuIcon"
|
@update:toggle-status="
|
||||||
|
() => {
|
||||||
|
formData.status =
|
||||||
|
formData.status === 'CREATED' ? 'INACTIVE' : 'CREATED';
|
||||||
|
}
|
||||||
|
"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|
@ -1572,6 +1594,7 @@ watch(currentHq, () => {
|
||||||
<div class="col-10 q-pa-md q-gutter-y-xl">
|
<div class="col-10 q-pa-md q-gutter-y-xl">
|
||||||
<FormBranchInformation
|
<FormBranchInformation
|
||||||
id="form-information"
|
id="form-information"
|
||||||
|
v-model:abbreviation="formData.code"
|
||||||
v-model:code="formData.codeHeadOffice"
|
v-model:code="formData.codeHeadOffice"
|
||||||
v-model:code-sub-branch="currentEdit.code"
|
v-model:code-sub-branch="currentEdit.code"
|
||||||
v-model:taxNo="formData.taxNo"
|
v-model:taxNo="formData.taxNo"
|
||||||
|
|
@ -1581,7 +1604,7 @@ watch(currentHq, () => {
|
||||||
:dense="true"
|
:dense="true"
|
||||||
:outlined="true"
|
:outlined="true"
|
||||||
:readonly="formType === 'view'"
|
:readonly="formType === 'view'"
|
||||||
:view="formType === 'view'"
|
:view="isSubCreate"
|
||||||
title="formDialogTitleInformation"
|
title="formDialogTitleInformation"
|
||||||
/>
|
/>
|
||||||
<FormBranchContact
|
<FormBranchContact
|
||||||
|
|
@ -1670,18 +1693,27 @@ watch(currentHq, () => {
|
||||||
<InfoForm>
|
<InfoForm>
|
||||||
<div class="q-mx-lg q-mt-lg">
|
<div class="q-mx-lg q-mt-lg">
|
||||||
<ProfileBanner
|
<ProfileBanner
|
||||||
active
|
:active="formData.status !== 'INACTIVE'"
|
||||||
|
useToggle
|
||||||
v-model:cover-url="imageUrl"
|
v-model:cover-url="imageUrl"
|
||||||
:hideFade="imageUrl === '' || imageUrl === null"
|
:hideFade="imageUrl === '' || imageUrl === null"
|
||||||
:img="imageUrl || null"
|
:img="imageUrl || null"
|
||||||
:cover="imageUrl || null"
|
:cover="imageUrl || null"
|
||||||
:title="formData.name"
|
:title="formData.name"
|
||||||
:caption="formData.nameEN"
|
:caption="formData.codeHeadOffice"
|
||||||
icon="mdi-office-building-outline"
|
icon="mdi-office-building-outline"
|
||||||
color="hsla(var(--pink-6-hsl)/1)"
|
color="hsla(var(--pink-6-hsl)/1)"
|
||||||
bgColor="hsla(var(--pink-6-hsl)/0.15)"
|
bgColor="hsla(var(--pink-6-hsl)/0.15)"
|
||||||
|
v-model:toggle-status="formData.status"
|
||||||
@view="imageDialog = true"
|
@view="imageDialog = true"
|
||||||
@edit="refImageUpload && refImageUpload.browse()"
|
@edit="refImageUpload && refImageUpload.browse()"
|
||||||
|
@update:toggle-status="
|
||||||
|
async (v) => {
|
||||||
|
const res = await triggerChangeStatus(currentId, v);
|
||||||
|
if (res) formData.status = res.status;
|
||||||
|
await branchStore.fetchList({ pageSize: 99999 });
|
||||||
|
}
|
||||||
|
"
|
||||||
:readonly="formType === 'view'"
|
:readonly="formType === 'view'"
|
||||||
:menu="formMenuIcon"
|
:menu="formMenuIcon"
|
||||||
/>
|
/>
|
||||||
|
|
@ -1733,6 +1765,7 @@ watch(currentHq, () => {
|
||||||
<div class="col-10 q-pa-md q-gutter-y-xl">
|
<div class="col-10 q-pa-md q-gutter-y-xl">
|
||||||
<FormBranchInformation
|
<FormBranchInformation
|
||||||
id="info-information"
|
id="info-information"
|
||||||
|
v-model:abbreviation="formData.code"
|
||||||
v-model:code="formData.codeHeadOffice"
|
v-model:code="formData.codeHeadOffice"
|
||||||
v-model:code-sub-branch="currentEdit.code"
|
v-model:code-sub-branch="currentEdit.code"
|
||||||
v-model:taxNo="formData.taxNo"
|
v-model:taxNo="formData.taxNo"
|
||||||
|
|
@ -1743,7 +1776,7 @@ watch(currentHq, () => {
|
||||||
:dense="true"
|
:dense="true"
|
||||||
:outlined="true"
|
:outlined="true"
|
||||||
:readonly="formType === 'view'"
|
:readonly="formType === 'view'"
|
||||||
:view="formType === 'view'"
|
view
|
||||||
title="formDialogTitleInformation"
|
title="formDialogTitleInformation"
|
||||||
/>
|
/>
|
||||||
<FormBranchContact
|
<FormBranchContact
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ export type Branch = {
|
||||||
export type BranchWithChildren = Branch & { branch: Branch[] };
|
export type BranchWithChildren = Branch & { branch: Branch[] };
|
||||||
|
|
||||||
export type BranchCreate = {
|
export type BranchCreate = {
|
||||||
|
code?: string;
|
||||||
taxNo: string;
|
taxNo: string;
|
||||||
nameEN: string;
|
nameEN: string;
|
||||||
name: string;
|
name: string;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue