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