Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
quasar-web-base
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nguyễn Hải Sơn
quasar-web-base
Commits
8f1807c3
Commit
8f1807c3
authored
Jul 15, 2021
by
Tình Trương
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
82a0b5d8
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
103 additions
and
117 deletions
+103
-117
enums.ts
src/assets/enums.ts
+0
-5
index.vue
src/components/configSystem/index.vue
+10
-12
index.vue
src/components/systemMenu/index.vue
+13
-13
index.ts
src/i18n/vi/index.ts
+13
-13
index.vue
src/pages/cau-hinh-trang-tinh/index.vue
+11
-2
index.vue
src/pages/menu/index.vue
+56
-72
No files found.
src/assets/enums.ts
View file @
8f1807c3
...
...
@@ -50,11 +50,6 @@ export enum ContactStatus {
inactive
=
0
,
}
export
enum
ConfigSystemStatus
{
active
=
1
,
inactive
=
0
,
}
export
enum
NewsStatus
{
active
=
1
,
inactive
=
0
,
...
...
src/components/configSystem/index.vue
View file @
8f1807c3
...
...
@@ -52,6 +52,16 @@
></q-input>
</div>
<div
class=
"col-6"
>
<q-input
:model-value=
"url"
@
update:model-value=
"$emit('update:url', $event)"
:label=
"$t('listConfigSystem.dialogLabel.fieldLabels.url')"
class=
"q-my-sm"
type=
"text"
outlined
:rules=
"urlRules"
clearable
></q-input>
<q-select
:model-value=
"nameMenu"
@
update:model-value=
"$emit('update:nameMenu', $event)"
...
...
@@ -68,16 +78,6 @@
use-chips
clearable
></q-select>
<q-input
:model-value=
"url"
@
update:model-value=
"$emit('update:url', $event)"
:label=
"$t('listConfigSystem.dialogLabel.fieldLabels.url')"
class=
"q-my-sm"
type=
"text"
outlined
:rules=
"urlRules"
clearable
></q-input>
</div>
<div
class=
"col-12 q-pb-md"
>
<div>
...
...
@@ -208,7 +208,6 @@
</
template
>
<
script
lang=
"ts"
>
import
{
ConfigSystemStatus
}
from
'src/assets/enums'
;
import
{
defineComponent
}
from
'vue'
;
import
{
i18n
}
from
'src/boot/i18n'
;
...
...
@@ -246,7 +245,6 @@ export default defineComponent({
namePageRules
,
urlRules
,
nameMenuRules
,
ConfigSystemStatus
,
};
},
emits
:
[
...
...
src/components/systemMenu/index.vue
View file @
8f1807c3
...
...
@@ -40,7 +40,7 @@
:rules=
"nameRules"
clearable
></q-input>
<q-input
<
!--
<
q-input
:model-value=
"url"
@
update:model-value=
"$emit('update:url', $event)"
:label=
"$t('listMenu.dialogLabel.fieldLabels.url')"
...
...
@@ -58,8 +58,8 @@
mask=
"##"
outlined
clearable
></q-input>
<div
class=
"q-pt-sm"
>
></q-input>
-->
<div>
<span
class=
"text-body1"
>
{{
$t
(
'listMenu.dialogLabel.fieldLabels.status'
)
}}
</span
...
...
@@ -106,8 +106,8 @@ export default defineComponent({
},
isUpdate
:
{
type
:
Boolean
,
default
:
false
},
name
:
{
type
:
String
,
required
:
true
},
url
:
{
type
:
String
,
required
:
true
},
numIndex
:
{
type
:
Number
,
required
:
true
},
//
url: { type: String, required: true },
//
numIndex: { type: Number, required: true },
status
:
{
type
:
Number
,
required
:
true
},
},
setup
()
{
...
...
@@ -116,22 +116,22 @@ export default defineComponent({
(
val
&&
val
.
trim
().
length
)
||
i18n
.
global
.
t
(
'listMenu.validateMessages.requireName'
),
];
const
urlRules
=
[
(
val
?:
string
)
=>
(
val
&&
val
.
trim
().
length
)
||
i18n
.
global
.
t
(
'listMenu.validateMessages.requireUrl'
),
];
//
const urlRules = [
//
(val?: string) =>
//
(val && val.trim().length) ||
//
i18n.global.t('listMenu.validateMessages.requireUrl'),
//
];
return
{
nameRules
,
urlRules
,
//
urlRules,
MenuStatus
,
};
},
emits
:
[
'update:isOpened'
,
'update:name'
,
'update:url'
,
'update:numIndex'
,
//
'update:url',
//
'update:numIndex',
'update:status'
,
'addUpdateMenu'
,
],
...
...
src/i18n/vi/index.ts
View file @
8f1807c3
...
...
@@ -981,7 +981,7 @@ export default {
titleColumnsTable
:
{
stt
:
'STT'
,
namePage
:
'Tên cấu hình'
,
nameMenu
:
'
Tên
menu'
,
nameMenu
:
'
Loại
menu'
,
url
:
'Path'
,
content
:
'Nội dung'
,
numIndex
:
'Vị trí'
,
...
...
@@ -992,7 +992,7 @@ export default {
titleUpdate
:
'Cập nhập Cấu hình'
,
fieldLabels
:
{
namePage
:
'Tên cấu hình *'
,
nameMenu
:
'
Tên
menu *'
,
nameMenu
:
'
Loại
menu *'
,
url
:
'Path *'
,
numIndex
:
'Vị trí'
,
status
:
'Trạng thái'
,
...
...
@@ -1000,7 +1000,7 @@ export default {
},
validateMessages
:
{
requireNamePage
:
'Vui lòng nhập Tên Cấu hình'
,
requireNameMenu
:
'Vui lòng
nhập Tên Cấu hình
'
,
requireNameMenu
:
'Vui lòng
chọn Loại menu
'
,
requireUrl
:
'Vui lòng nhập Path'
,
},
crudActions
:
{
...
...
@@ -1130,16 +1130,16 @@ export default {
add
:
'Thêm'
,
toolTipMessageUpdate
:
'Cập nhập'
,
toolTipMessageDelete
:
'Xóa'
,
title
:
'
Cấu hìn
h Menu'
,
title
:
'
Danh sác
h Menu'
,
titleColumnsTable
:
{
stt
:
'STT'
,
name
:
'Tên menu'
,
url
:
'Url target'
,
numIndex
:
'Vị trí'
,
createTime
:
'Người tạo'
,
createBy
:
'Thời gian tạo'
,
updateTime
:
'Người cập nhập'
,
updateBy
:
'Thời gian cập nhập'
,
//
url: 'Url target',
//
numIndex: 'Vị trí',
//
createTime: 'Người tạo',
//
createBy: 'Thời gian tạo',
//
updateTime: 'Người cập nhập',
//
updateBy: 'Thời gian cập nhập',
status
:
'Trạng thái'
,
action
:
'Chức năng'
,
},
...
...
@@ -1148,14 +1148,14 @@ export default {
titleAdd
:
'Thêm Menu'
,
fieldLabels
:
{
name
:
'Tên menu'
,
url
:
'Url target'
,
numIndex
:
'Vị trí'
,
//
url: 'Url target',
//
numIndex: 'Vị trí',
status
:
'Trạng thái'
,
},
},
validateMessages
:
{
requireName
:
'Vui lòng nhập Tên menu'
,
requireUrl
:
'Vui lòng nhập Url target'
,
//
requireUrl: 'Vui lòng nhập Url target',
},
crudActions
:
{
save
:
'Lưu'
,
...
...
src/pages/cau-hinh-trang-tinh/index.vue
View file @
8f1807c3
...
...
@@ -20,6 +20,7 @@
:options=
"nameMenuOptions"
option-label=
"name"
option-value=
"id"
multiple
dense
outlined
label=
"Tên menu"
...
...
@@ -257,13 +258,18 @@ export default defineComponent({
const
showDialogAdd
=
ref
(
false
);
const
showDialogUpdate
=
ref
(
false
);
const
namePage
:
Ref
<
string
>
=
ref
(
''
);
const
nameMenuOptions
:
Ref
<
unknown
[]
>
=
ref
([]);
const
nameMenuOptions
=
ref
([
{
id
:
1
,
name
:
'Menu Trên'
},
{
id
:
2
,
name
:
'Menu Chính sách'
},
{
id
:
3
,
name
:
'Menu Liên hệ'
},
]);
const
nameMenuSreach
:
Ref
<
{
id
:
number
;
name
:
string
}
|
undefined
>
=
ref
(
undefined
);
const
nameMenu
:
Ref
<
unknown
|
undefined
>
=
ref
();
const
url
:
Ref
<
string
>
=
ref
(
''
);
const
content
:
Ref
<
string
>
=
ref
(
''
);
const
numIndex
:
Ref
<
number
|
undefined
>
=
ref
(
undefined
);
const
ConfigSystemId
:
Ref
<
number
|
undefined
>
=
ref
(
undefined
);
const
nameMenuSreach
:
Ref
<
unknown
[]
>
=
ref
([]);
const
getConfigSystem
=
async
()
=>
{
try
{
...
...
@@ -274,6 +280,7 @@ export default defineComponent({
pageIndex
:
pageIndex
.
value
,
pageSize
:
pageSize
.
value
,
namePage
:
sreachNamePage
.
value
,
nameMenu
:
nameMenuSreach
.
value
?.
id
,
},
}))
as
AxiosResponse
<
BaseResponseBody
<
PaginationResponse
<
ListConfigSystem
>>
...
...
@@ -363,6 +370,7 @@ export default defineComponent({
message
:
i18n
.
global
.
t
(
'listConfigSystem.actionMessages.updateSuccess'
),
actions
:
[{
icon
:
'close'
,
color
:
'white'
}],
});
void
getConfigSystem
();
showDialogUpdate
.
value
=
false
;
...
...
@@ -403,6 +411,7 @@ export default defineComponent({
message
:
i18n
.
global
.
t
(
'listConfigSystem.actionMessages.deleteSuccess'
),
actions
:
[{
icon
:
'close'
,
color
:
'white'
}],
});
void
getConfigSystem
();
}
...
...
src/pages/menu/index.vue
View file @
8f1807c3
...
...
@@ -77,7 +77,7 @@
</q-btn>
</q-td>
</
template
>
<
template
v-slot:body-cell-url=
"rowData"
>
<
!-- <
template v-slot:body-cell-url="rowData">
<q-td>
<div align="center">
<a
...
...
@@ -88,7 +88,7 @@
>
</div>
</q-td>
</
template
>
</template>
-->
<
template
v-slot:body-cell-stt=
"item"
>
<q-td
:item=
"item"
style=
"text-align: center"
>
{{
1
+
item
.
rowIndex
+
pageSize
*
(
pageIndex
-
1
)
}}
...
...
@@ -129,8 +129,6 @@
isUpdate
v-model:isOpened=
"showDialogAdd"
v-model:name=
"name"
v-model:url=
"url"
v-model:num-index=
"numIndex"
v-model:status=
"status"
@
addUpdateMenu=
"addMenu"
/>
...
...
@@ -138,8 +136,6 @@
<AddUpdateMenuDialog
v-model:isOpened=
"showDialogUpdate"
v-model:name=
"name"
v-model:url=
"url"
v-model:num-index=
"numIndex"
v-model:status=
"status"
@
addUpdateMenu=
"updateMenu"
/>
...
...
@@ -189,60 +185,60 @@ export default defineComponent({
headerStyle
:
'text-align: center !important; width: 15%'
,
sortable
:
false
,
},
{
name
:
'url'
,
field
:
'url'
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listMenu.titleColumnsTable.url'
),
headerStyle
:
'text-align: center !important; width: 15%'
,
align
:
'center'
,
sortable
:
false
,
},
{
name
:
'numIndex'
,
field
:
'numIndex'
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listMenu.titleColumnsTable.numIndex'
),
headerStyle
:
'text-align: center !important; width: 10%'
,
align
:
'center'
,
sortable
:
false
,
},
{
name
:
'createTime'
,
field
:
'createTime'
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listMenu.titleColumnsTable.createTime'
),
headerStyle
:
'text-align: center !important; width: 8%'
,
align
:
'center'
,
sortable
:
false
,
},
{
name
:
'createBy'
,
field
:
'createBy'
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listMenu.titleColumnsTable.createBy'
),
headerStyle
:
'text-align: center !important; width: 8%'
,
align
:
'center'
,
sortable
:
false
,
},
{
name
:
'updateTime'
,
field
:
'updateTime'
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listMenu.titleColumnsTable.updateTime'
),
headerStyle
:
'text-align: center !important; width: 8%'
,
align
:
'center'
,
sortable
:
false
,
},
{
name
:
'updateBy'
,
field
:
'updateBy'
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listMenu.titleColumnsTable.updateBy'
),
headerStyle
:
'text-align: center !important; width: 10%'
,
align
:
'center'
,
sortable
:
false
,
},
//
{
//
name: 'url',
//
field: 'url',
//
required: true,
//
label: i18n.global.t('listMenu.titleColumnsTable.url'),
//
headerStyle: 'text-align: center !important; width: 15%',
//
align: 'center',
//
sortable: false,
//
},
//
{
//
name: 'numIndex',
//
field: 'numIndex',
//
required: true,
//
label: i18n.global.t('listMenu.titleColumnsTable.numIndex'),
//
headerStyle: 'text-align: center !important; width: 10%',
//
align: 'center',
//
sortable: false,
//
},
//
{
//
name: 'createTime',
//
field: 'createTime',
//
required: true,
//
label: i18n.global.t('listMenu.titleColumnsTable.createTime'),
//
headerStyle: 'text-align: center !important; width: 8%',
//
align: 'center',
//
sortable: false,
//
},
//
{
//
name: 'createBy',
//
field: 'createBy',
//
required: true,
//
label: i18n.global.t('listMenu.titleColumnsTable.createBy'),
//
headerStyle: 'text-align: center !important; width: 8%',
//
align: 'center',
//
sortable: false,
//
},
//
{
//
name: 'updateTime',
//
field: 'updateTime',
//
required: true,
//
label: i18n.global.t('listMenu.titleColumnsTable.updateTime'),
//
headerStyle: 'text-align: center !important; width: 8%',
//
align: 'center',
//
sortable: false,
//
},
//
{
//
name: 'updateBy',
//
field: 'updateBy',
//
required: true,
//
label: i18n.global.t('listMenu.titleColumnsTable.updateBy'),
//
headerStyle: 'text-align: center !important; width: 10%',
//
align: 'center',
//
sortable: false,
//
},
{
name
:
'status'
,
field
:
'status'
,
...
...
@@ -275,8 +271,6 @@ export default defineComponent({
const
showDialogAdd
=
ref
(
false
);
const
showDialogUpdate
=
ref
(
false
);
const
name
:
Ref
<
string
>
=
ref
(
''
);
const
url
:
Ref
<
string
>
=
ref
(
''
);
const
numIndex
:
Ref
<
number
|
undefined
>
=
ref
(
undefined
);
const
status
:
Ref
<
number
>
=
ref
(
MenuStatus
.
active
);
const
MenuId
:
Ref
<
number
|
undefined
>
=
ref
(
undefined
);
...
...
@@ -300,8 +294,6 @@ export default defineComponent({
const
openAddDialog
=
()
=>
{
name
.
value
=
''
;
url
.
value
=
''
;
numIndex
.
value
=
undefined
;
status
.
value
=
MenuStatus
.
active
;
showDialogAdd
.
value
=
true
;
};
...
...
@@ -309,8 +301,6 @@ export default defineComponent({
const
addMenu
=
async
()
=>
{
const
data
=
{
name
:
name
.
value
,
url
:
url
.
value
,
numIndex
:
numIndex
.
value
,
status
:
status
.
value
,
};
const
response
=
(
await
api
({
...
...
@@ -346,8 +336,6 @@ export default defineComponent({
if
(
response
.
data
.
error
.
code
===
config
.
API_RES_CODE
.
OK
.
code
)
{
MenuId
.
value
=
response
.
data
.
data
.
id
;
name
.
value
=
response
.
data
.
data
.
name
;
url
.
value
=
response
.
data
.
data
.
url
;
numIndex
.
value
=
response
.
data
.
data
.
numIndex
;
status
.
value
=
response
.
data
.
data
.
status
;
}
}
catch
(
error
)
{}
...
...
@@ -361,8 +349,6 @@ export default defineComponent({
data
:
{
id
:
MenuId
.
value
,
name
:
name
.
value
,
url
:
url
.
value
,
numIndex
:
numIndex
.
value
,
status
:
status
.
value
,
},
}))
as
AxiosResponse
<
BaseResponseBody
<
UpdateMenu
>>
;
...
...
@@ -426,9 +412,7 @@ export default defineComponent({
changePageSize
,
getDetailMenu
,
MenuStatus
,
numIndex
,
name
,
url
,
status
,
openUpdateDialog
,
updateMenu
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment