Commit eec5c80a authored by Tình Trương's avatar Tình Trương

update

parent 7e6a2497
...@@ -55,4 +55,9 @@ export enum API_PATHS { ...@@ -55,4 +55,9 @@ export enum API_PATHS {
listCustomerLevel = 'customerLevel', listCustomerLevel = 'customerLevel',
addCustomer = 'customer/add', addCustomer = 'customer/add',
deleteCustomer = 'customer/delete', deleteCustomer = 'customer/delete',
getListCustomersRank = 'customerLevel',
deleteCustomerRank = 'customerLevel/delete',
addCustomerRank = 'customerLevel/add',
updateCustomerRank = 'customerLevel/update',
getDetailCustomerRank = 'customerLevel/detail',
} }
...@@ -16,5 +16,5 @@ export enum HotProductStatus { ...@@ -16,5 +16,5 @@ export enum HotProductStatus {
export enum CustomerRankStatus { export enum CustomerRankStatus {
active = 1, active = 1,
inactive = 2, inactive = 0,
} }
...@@ -251,3 +251,37 @@ export type CustomerLevelType = { ...@@ -251,3 +251,37 @@ export type CustomerLevelType = {
level: number; level: number;
status: number; status: number;
}; };
export type CustomerRank = {
id: number;
code: string;
name: string;
description: string;
level: number;
status: number;
};
export type AddCustomerRank = {
name: string;
description: string;
level: number;
status: number;
};
export type UpdateCustomerRank = {
id: number;
code: string;
name: string;
description: string;
level: number;
status: number;
};
export type DetailCustomerRank = {
id: number;
code: string;
name: string;
description: string;
level: number;
status: number;
};
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
:model-value="isOpened" :model-value="isOpened"
@update:model-value="$emit('update:isOpened', $event)" @update:model-value="$emit('update:isOpened', $event)"
> >
<q-card class="full-width" style="max-width: 50rem" bordered> <q-card class="full-width" style="max-width: 30rem" bordered>
<q-form <q-form
greedy greedy
@submit.prevent=" @submit.prevent="
...@@ -30,70 +30,45 @@ ...@@ -30,70 +30,45 @@
style="max-height: calc(100vh - 10rem)" style="max-height: calc(100vh - 10rem)"
> >
<div class="row q-col-gutter-sm"> <div class="row q-col-gutter-sm">
<div class="col-6"> <div class="col-12">
<q-input <q-input
:model-value="rankCode" :model-value="code"
@update:model-value="$emit('update:rankCode', $event)" @update:model-value="$emit('update:code', $event)"
:label="$t('customerRank.dialogLabel.fieldLabels.rankCode')" :label="$t('customerRank.dialogLabel.fieldLabels.code')"
type="text" type="text"
class="q-my-sm" class="q-my-sm"
outlined outlined
:rules="rankCodeRules" :rules="codeRules"
clearable clearable
></q-input> ></q-input>
<q-input <q-input
:model-value="rankName" :model-value="name"
@update:model-value="$emit('update:rankName', $event)" @update:model-value="$emit('update:name', $event)"
:label="$t('customerRank.dialogLabel.fieldLabels.rankName')" :label="$t('customerRank.dialogLabel.fieldLabels.name')"
type="text" type="text"
class="q-my-sm" class="q-my-sm"
outlined outlined
:rules="rankNameRules" :rules="nameRules"
clearable clearable
></q-input> ></q-input>
<q-select
:model-value="rankType"
@update:model-value="$emit('update:rankType', $event)"
:label="$t('customerRank.dialogLabel.fieldLabels.rankType')"
:options="rankTypeOptions"
:rules="rankTypeRules"
map-options
option-value="id"
option-label="name"
class="q-my-sm"
outlined
></q-select>
</div>
<div class="col-6">
<q-input <q-input
:model-value="discount" :model-value="level"
@update:model-value="$emit('update:discount', $event)" @update:model-value="$emit('update:level', $event)"
:label="$t('customerRank.dialogLabel.fieldLabels.discount')" :label="$t('customerRank.dialogLabel.fieldLabels.level')"
type="text" :rules="levelRules"
type="number"
class="q-my-sm" class="q-my-sm"
outlined outlined
:rules="discountRules"
clearable
></q-input>
<q-input
:model-value="discountCode"
@update:model-value="$emit('update:discountCode', $event)"
:label="$t('customerRank.dialogLabel.fieldLabels.discountCode')"
type="text"
class="q-my-sm"
outlined
:rules="discountCodeRules"
clearable
></q-input> ></q-input>
<div class="q-pt-sm"> <div class="q-pt-sm">
<span class="text-body1">{{ <span class="text-body1">{{
$t('customerRank.dialogLabel.fieldLabels.rankStatus') $t('customerRank.dialogLabel.fieldLabels.status')
}}</span }}</span
><q-toggle ><q-toggle
:model-value="rankStatus" :model-value="status"
:true-value="1" :true-value="1"
:false-value="2" :false-value="2"
@update:model-value="$emit('update:rankStatus', $event)" @update:model-value="$emit('update:status', $event)"
/> />
</div> </div>
</div> </div>
...@@ -134,56 +109,39 @@ export default defineComponent({ ...@@ -134,56 +109,39 @@ export default defineComponent({
required: true, required: true,
}, },
isUpdate: { type: Boolean, default: false }, isUpdate: { type: Boolean, default: false },
rankCode: { type: String, required: true }, code: { type: String, required: true },
rankName: { type: String, required: true }, name: { type: String, required: true },
discount: { type: String, required: true }, level: { type: Number, required: true },
discountCode: { type: String, required: true }, status: { type: Number, required: true },
rankType: { type: Number, required: true },
rankTypeOptions: { type: Array, required: true },
rankStatus: { type: Number, required: true },
}, },
setup() { setup() {
const rankTypeRules = [ const levelRules = [
(val?: number) => (val?: number) =>
val !== undefined || val !== undefined ||
i18n.global.t('customerRank.validateMessages.requireRankType'), i18n.global.t('customerRank.validateMessages.requireLevel'),
];
const rankCodeRules = [
(val?: string) =>
(val && val.trim().length) ||
i18n.global.t('customerRank.validateMessages.requireRankCode'),
];
const rankNameRules = [
(val?: string) =>
(val && val.trim().length) ||
i18n.global.t('customerRank.validateMessages.requireRankName'),
]; ];
const discountRules = [ const codeRules = [
(val?: string) => (val?: string) =>
(val && val.trim().length) || (val && val.trim().length) ||
i18n.global.t('customerRank.validateMessages.requireDiscount'), i18n.global.t('customerRank.validateMessages.requireCode'),
]; ];
const discountCodeRules = [ const nameRules = [
(val?: string) => (val?: string) =>
(val && val.trim().length) || (val && val.trim().length) ||
i18n.global.t('customerRank.validateMessages.requireDiscountCode'), i18n.global.t('customerRank.validateMessages.requireName'),
]; ];
return { return {
rankTypeRules, levelRules,
rankCodeRules, codeRules,
rankNameRules, nameRules,
discountRules,
discountCodeRules,
}; };
}, },
emits: [ emits: [
'update:isOpened', 'update:isOpened',
'update:rankCode', 'update:code',
'update:rankName', 'update:name',
'update:rankType', 'update:level',
'update:discount', 'update:status',
'update:discountCode',
'update:rankStatus',
'saveCustomerRankInfo', 'saveCustomerRankInfo',
], ],
}); });
......
...@@ -517,15 +517,13 @@ export default { ...@@ -517,15 +517,13 @@ export default {
//xếp hạng khách hàng //xếp hạng khách hàng
customerRank: { customerRank: {
title: 'Xếp hạng', title: 'Danh mục xếp hạng khách hàng',
tableColumnsCustomerRank: { tableColumnsCustomerRank: {
stt: 'STT', stt: 'STT',
rankCode: 'Mã xếp hạng', code: 'Mã xếp hạng',
rankName: 'Tên xếp hạng', name: 'Tên xếp hạng',
rankType: 'Loại xếp hạng', level: 'Loại xếp hạng',
discount: 'Chiết khấu (%)', status: 'Trạng thái',
discountCode: 'Mã chiết khấu',
rankStatus: 'Trạng thái',
action: 'Chức năng', action: 'Chức năng',
}, },
statusLabel: { statusLabel: {
...@@ -534,16 +532,14 @@ export default { ...@@ -534,16 +532,14 @@ export default {
}, },
dialogLabel: { dialogLabel: {
title: { title: {
addCustomerRank: 'Thêm xếp hạng', addCustomerRank: 'Thêm danh mục xếp hạng khách hàng',
updateCustomerRank: 'Cập nhật xếp hạng', updateCustomerRank: 'Cập nhật danh mục xếp hạng khách hàng',
}, },
fieldLabels: { fieldLabels: {
rankCode: 'Mã xếp hạng *', code: 'Mã xếp hạng *',
rankName: 'Tên xếp hạng *', name: 'Tên xếp hạng *',
rankType: 'Loại xếp hạng *', level: 'Loại xếp hạng *',
discount: 'Chiết khấu (%) *', status: 'Trạng thái',
discountCode: 'Mã chiết khấu *',
rankStatus: 'Trạng thái',
}, },
}, },
toolTipMessage: { toolTipMessage: {
...@@ -555,22 +551,21 @@ export default { ...@@ -555,22 +551,21 @@ export default {
cancel: 'Đóng', cancel: 'Đóng',
}, },
validateMessages: { validateMessages: {
requireRankCode: 'Vui lòng nhập Mã xếp hạng', requireCode: 'Vui lòng nhập Mã xếp hạng',
requireRankName: 'Vui lòng nhập Tên xếp hạng', requireName: 'Vui lòng nhập Tên xếp hạng',
requireRankType: 'Vui lòng chọn Loại xếp hạng', requireLevel: 'Vui lòng nhập Loại xếp hạng',
requireDiscount: 'Vui lòng nhập % chiết khấu',
requireDiscountCode: 'Vui lòng nhập Mã chiết khấu',
}, },
confirmActionsTitle: { confirmActionsTitle: {
confirmDeleteCustomerRankTitle: 'Xác nhận', confirmDeleteCustomerRankTitle: 'Xác nhận',
confirmDeleteCustomerRankCancelBtnLabel: 'Huỷ', confirmDeleteCustomerRankCancelBtnLabel: 'Huỷ',
confirmDeleteCustomerRankContent: confirmDeleteCustomerRankContent:
'Bạn có chắc muốn xoá xếp hạng này không?', 'Bạn có chắc chắn muốn xoá danh mục xếp hạng khách hàng này không?',
}, },
actionMessages: { actionMessages: {
addNewCustomerRankAccess: 'Thêm xếp hạng thành công', addNewCustomerRankAccess: 'Thêm danh mục xếp hạng khách hàng thành công',
deleteCustomerRankAccess: 'Xoá xếp hạng thành công', deleteCustomerRankAccess: 'Xoá danh mục xếp hạng khách hàng thành công',
updateCustomerRankAccess: 'Cập nhật xếp hạng thành công', updateCustomerRankAccess:
'Cập nhật danh mục xếp hạng khách hàng thành công',
}, },
}, },
}; };
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<q-input <q-input
dense dense
outlined outlined
:label="$t('managingUnit.tableColumns.name')" label="Tên đơn vị"
v-model="unitNameKeyword" v-model="unitNameKeyword"
clearable clearable
></q-input> ></q-input>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
flat flat
round round
color="primary" color="primary"
icon="mdi-delete" icon="mdi-delete-outline"
@click="confirmDeleteManagingUnits(item.row.id)" @click="confirmDeleteManagingUnits(item.row.id)"
> >
<q-tooltip :offset="[20, 10]">{{ <q-tooltip :offset="[20, 10]">{{
......
This diff is collapsed.
...@@ -10,7 +10,7 @@ export enum Pages { ...@@ -10,7 +10,7 @@ export enum Pages {
informationArtist = 'cap-nhat-thong-tin-nghe-sy', informationArtist = 'cap-nhat-thong-tin-nghe-sy',
customer = 'khach-hang', customer = 'khach-hang',
addArtist = 'them-nghe-sy', addArtist = 'them-nghe-sy',
customerRank = 'danh-muc-xep-hang', customerRank = 'xep-hang-khach-hang',
} }
const routes: RouteRecordRaw[] = [ const routes: RouteRecordRaw[] = [
...@@ -64,7 +64,7 @@ const routes: RouteRecordRaw[] = [ ...@@ -64,7 +64,7 @@ const routes: RouteRecordRaw[] = [
name: Pages.customer, name: Pages.customer,
}, },
{ {
path: 'danh-muc-xep-hang', path: 'xep-hang-khach-hang',
component: () => import('pages/xep-hang-khach-hang/index.vue'), component: () => import('pages/xep-hang-khach-hang/index.vue'),
name: Pages.customerRank, name: Pages.customerRank,
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment