update database

This commit is contained in:
manhlab
2021-04-09 10:42:08 -04:00
parent 43ce9eebd5
commit 8c4ad4aabf
106 changed files with 545 additions and 545 deletions

View File

@@ -4,7 +4,7 @@
<CSelect :options="fields" @update:value="fieldChanged" />
</CCol>
<CCol sm="9">
<CInput placeholder="Tìm kiếm" :value.sync="value" @update:value="valueChanged" />
<CInput placeholder="Искать" :value.sync="value" @update:value="valueChanged" />
</CCol>
</CRow>
</template>
@@ -16,7 +16,7 @@ export default {
fields: {
type: Array,
default: function () {
return [{ value: "", label: "Tất cả" }];
return [{ value: "", label: "Все" }];
},
},
},

View File

@@ -1,7 +1,7 @@
<template>
<CCard>
<CCardHeader>
<strong>Tệp đính kèm</strong>
<strong>Вложения файлов</strong>
</CCardHeader>
<CCardBody>
<CDataTable :loading="loading" :items="attachments" :fields="fields">
@@ -40,10 +40,10 @@ export default {
return {
loading: true,
fields: [
{ key: "name", label: "Tên", _classes: "w-50" },
{ key: "size", label: "Kích thước (KB)" },
{ key: "downloads", label: "Lượt tải" },
{ key: "id", label: "Hành động" }
{ key: "name", label: "Имя", _classes: "w-50" },
{ key: "size", label: "Размер(KB)" },
{ key: "downloads", label: "Количество скачиваний" },
{ key: "id", label: "Действие" }
],
attachments: [
{
@@ -85,7 +85,7 @@ export default {
.download(item.id, item.name)
.then(response => {
item.downloads++;
this.$toast.success("Đã tải xuống");
this.$toast.success("Downloaded");
})
.catch(error => {
this.toastHttpError(error);
@@ -118,7 +118,7 @@ export default {
})
.then(response => {
this.attachments.push(response.data);
this.$toast.success("Đã tải lên");
this.$toast.success("Uploaded");
})
.catch(error => {
this.toastHttpError(error);

View File

@@ -1,7 +1,7 @@
<template>
<CCard>
<CCardHeader>
<strong>Văn bản liên kết</strong>
<strong>Связанный документ</strong>
</CCardHeader>
<CCardBody>
<CRow class="form-group">
@@ -22,7 +22,7 @@
</treeselect>
</CCol>
<CCol v-else sm="12">
<label>Danh sách đã liên kết</label>
<label>Список документа</label>
<treeselect
v-model="documentsLinked"
:options="linkedDocuments"
@@ -121,7 +121,7 @@ export default {
},
getSymbol(id) {
this.fetchSymbol(id);
return "Không có quyền truy cập";
return "Нет права доступ";
},
async fetchSymbol(id) {
const response = await services.document.get(id);

View File

@@ -1,8 +1,8 @@
<template>
<CCard>
<CCardHeader>
<strong v-if="documentId">Chi tiết văn bản</strong>
<strong v-else>Tạo văn bản</strong>
<strong v-if="documentId">О документе</strong>
<strong v-else>Создать документ</strong>
</CCardHeader>
<CCardBody>
<CForm>
@@ -10,7 +10,7 @@
<CCol sm="6">
<CSelect
class="mb-0"
label="Sổ văn bản"
label="Документы"
:options="books"
:value.sync="document.book_id"
placeholder="Please select"
@@ -20,7 +20,7 @@
<CFormGroup class="form-group mb-0">
<template #label>
<slot name="label">
<label>Loại văn bản</label>
<label>Вид документа</label>
</slot>
</template>
<template #input>
@@ -36,7 +36,7 @@
</CRow>
<CRow class="form-group">
<CCol sm="12">
<CInput label="Số ký hiệu" :value.sync="document.symbol" class="mb-0" />
<CInput label="Номер регистрации" :value.sync="document.symbol" class="mb-0" />
</CCol>
</CRow>
<CRow class="form-group">
@@ -44,7 +44,7 @@
<CFormGroup class="form-group mb-0">
<template #label>
<slot name="label">
<label>Người soạn</label>
<label>Создатель</label>
</slot>
</template>
<template #input>
@@ -64,11 +64,11 @@
</CFormGroup>
</CCol>
<CCol sm="6">
<CInput label="Người tạo" :value="document.creator.name" readonly class="mb-0" />
<CInput label="Автор" :value="document.creator.name" readonly class="mb-0" />
</CCol>
</CRow>
<CTextarea
label="Trích yếu"
label="Краткое содержание"
placeholder="Content..."
rows="5"
:value.sync="document.abstract"
@@ -78,7 +78,7 @@
<CFormGroup class="form-group mb-0">
<template #label>
<slot name="label">
<label>Nơi ban hành</label>
<label>Место выдачи</label>
</slot>
</template>
<template #input>
@@ -93,7 +93,7 @@
</CCol>
<CCol sm="6">
<CInput
:label="isIncome ? 'Ngày nhận' : 'Ngày ban hành'"
:label="isIncome ? 'Дата получения' : 'Дата выдачи'"
type="date"
:value.sync="document.effective_at"
class="mb-0"
@@ -105,7 +105,7 @@
<CFormGroup class="form-group mb-0">
<template #label>
<slot name="label">
<label>Người </label>
<label>Подписал</label>
</slot>
</template>
<template #input>
@@ -124,7 +124,7 @@
</CFormGroup>
</CCol>
<CCol sm="6">
<CInput label="Ngày ký" type="date" :value.sync="document.sign_at" class="mb-0" />
<CInput label="Дата подписания" type="date" :value.sync="document.sign_at" class="mb-0" />
</CCol>
</CRow>
</CForm>
@@ -140,7 +140,7 @@
<CIcon name="cil-check" />Lưu
</CButton>
<CButton v-else size="sm" @click="createDocument" class="float-right" color="success">
<CIcon name="cil-plus" />Tạo
<CIcon name="cil-plus" />Создать
</CButton>
</CCardFooter>
</CCard>
@@ -290,7 +290,7 @@ export default {
.create(this.document)
.then(response => {
this.$router.push({ path: `/documents/${response.data.id}` });
this.$toast.success("Đã tạo văn bản");
this.$toast.success("Уже создал документ");
})
.catch(error => {
this.toastHttpError(error);

View File

@@ -1,7 +1,7 @@
<template>
<CCard>
<CCardHeader>
<strong>Người nhận</strong>
<strong>Получатель</strong>
<CBadge
color="success"
class="float-right"

View File

@@ -1,7 +1,7 @@
<template>
<CCard>
<CCardHeader>
<strong>Nơi nhận</strong>
<strong>Место получения</strong>
</CCardHeader>
<CCardBody>
<CRow class="form-group">

View File

@@ -10,7 +10,7 @@
class="float-right"
color="primary"
variant="outline"
v-c-tooltip="'Tạo mới'"
v-c-tooltip="'Создать новый'"
@click="showCreate"
>
<CIcon name="cil-plus" />
@@ -45,7 +45,7 @@
color="success"
@click="onClickCreate"
>
<CIcon name="cil-plus" /> Tạo mới
<CIcon name="cil-plus" /> Создать новый
</CButton>
<CButton
v-if="canUpdate && !createMode"
@@ -81,7 +81,7 @@ export default {
title: {
required: false,
type: String,
default: "Danh sách"
default: "Список"
},
canCreate: {
required: false,

View File

@@ -1,14 +1,14 @@
<template>
<CCard>
<CCardHeader>
<strong>Thông tin</strong>
<strong>Информация</strong>
</CCardHeader>
<CCardBody>
<CForm>
<CInput label="" :value.sync="user.id" horizontal :readonly="true" />
<CInput label="Код" :value.sync="user.id" horizontal :readonly="true" />
<CInput
placeholder="Let us know your full name."
label="Tên"
label="Имя"
:value.sync="user.name"
horizontal
/>
@@ -21,22 +21,22 @@
autocomplete="email"
/>
<CInput
label="Số điện thoại"
label="Номер телефон"
placeholder="Enter your tel"
:value.sync="user.tel"
horizontal
autocomplete="tel"
/>
<CInput label="Ngày sinh" type="date" :value.sync="user.birthday" horizontal />
<CInput label="Дата рождения" type="date" :value.sync="user.birthday" horizontal />
<CSelect
label="Chức danh"
label="Должность"
horizontal
:value.sync="user.title_id"
:options="titles"
placeholder="Please select"
/>
<CSelect
label="Phòng ban"
label="Подразделение"
horizontal
:value.sync="user.department_id"
:options="departments"
@@ -45,7 +45,7 @@
<CFormGroup class="form-group form-row">
<template #label>
<slot name="label">
<label class="col-form-label col-sm-3">Kích hoạt</label>
<label class="col-form-label col-sm-3">Активирован</label>
</slot>
</template>
<template #input>

View File

@@ -1,21 +1,21 @@
<template>
<CCard>
<CCardHeader>
<strong>Thay đổi mật khẩu</strong>
<strong>Измененить пароль</strong>
</CCardHeader>
<CCardBody>
<CForm>
<CInput placeholder="Nhập mật khẩu." label="Mật khẩu" type="password" horizontal />
<CInput placeholder="Вводите пароль." label="Пароль" type="password" horizontal />
<CInput
placeholder="Nhập mật khẩu mới."
label="Mật khẩu mới"
placeholder="Вводите новый пароль."
label="Новый пароль"
type="password"
:value.sync="password.password"
horizontal
/>
<CInput
placeholder="Nhập lại mật khẩu mới."
label="Xác nhận"
placeholder="Подтверждение пароля."
label="Подтверждить"
type="password"
:value.sync="password.password_confirmation"
horizontal

View File

@@ -1,7 +1,7 @@
<template>
<CCard>
<CCardHeader>
<strong>Phân quyền</strong>
<strong>Право</strong>
</CCardHeader>
<CCardBody>
<CForm>

View File

@@ -1,7 +1,7 @@
<template>
<CRow class="form-group">
<CCol sm="12">
<label>Phân theo chức năng</label>
<label>По функциям</label>
<treeselect
@select="addPermission"
@deselect="removePermission"

View File

@@ -1,7 +1,7 @@
<template>
<CRow class="form-group">
<CCol sm="12">
<label>Phân theo nhóm</label>
<label>По группам</label>
<treeselect
@select="addRole"
@deselect="removeRole"

View File

@@ -5,11 +5,11 @@
color="info"
@click="goProfile"
variant="outline"
v-c-tooltip="'Thông tin cá nhân'"
v-c-tooltip="'Персональная информация'"
>
<CIcon name="cil-user" class="m-0" />
</CButton>
<CButton size="sm" color="danger" @click="logout" variant="outline" v-c-tooltip="'Đăng xuất'">
<CButton size="sm" color="danger" @click="logout" variant="outline" v-c-tooltip="'Выход'">
<CIcon name="cil-power-standby" class="m-0" />
</CButton>
</div>

File diff suppressed because one or more lines are too long

View File

@@ -4,7 +4,7 @@ export default [
_children: [
{
_name: 'CSidebarNavItem',
name: 'Trang chủ',
name: 'Домашняя страница',
to: '/dashboard',
icon: 'cil-home',
},

View File

@@ -162,7 +162,7 @@ function configRoutes () {
{
path: '/',
redirect: '/dashboard',
name: 'Trang chủ',
name: 'Домашняя страница',
component: TheContainer,
meta: {
authRequired: true
@@ -176,7 +176,7 @@ function configRoutes () {
{
path: 'books',
meta: {
label: 'Sổ văn bản',
label: 'Документы',
},
component: {
render(c) {
@@ -186,17 +186,17 @@ function configRoutes () {
children: [
{
path: '',
name: 'Sổ văn bản',
name: 'Документы',
component: Books
},
{
path: ':book',
name: 'Chi tiết sổ',
name: 'Детали',
component: Documents,
children: [
{
path: 'documents',
name: 'Danh sách văn bản',
name: 'Книга',
component: Documents,
},
]
@@ -207,7 +207,7 @@ function configRoutes () {
{
path: 'documents',
meta: {
label: 'Văn bản',
label: 'Документ',
},
component: {
render(c) {
@@ -217,17 +217,17 @@ function configRoutes () {
children: [
{
path: '',
name: 'Danh sách',
name: 'Список',
component: Documents
},
{
path: 'create',
name: 'Tạo mới',
name: 'Создать новый',
component: DocumentCreate
},
{
path: ':document',
name: 'Chi tiết',
name: 'Деталь',
component: Document,
},
]
@@ -235,7 +235,7 @@ function configRoutes () {
// Statistic
{
path: 'statistic',
name: 'Thống kê',
name: 'Статистическая',
component: Statistic
},
@@ -279,14 +279,14 @@ function configRoutes () {
path: 'me',
name: 'Profile',
meta: {
label: 'Cá nhân'
label: 'Личный кабинет'
},
component: Me
},
{
path: 'users',
meta: {
label: 'Người dùng'
label: 'Пользователь'
},
component: {
render(c) {
@@ -296,13 +296,13 @@ function configRoutes () {
children: [
{
path: '',
name: 'Danh sách',
name: 'Список',
component: Users
},
{
path: 'create',
meta: {
label: 'Tạo mới'
label: 'Создать новый'
},
name: 'Create User',
component: CreateUser
@@ -310,7 +310,7 @@ function configRoutes () {
{
path: ':id',
meta: {
label: 'Chi tiết'
label: 'Деталь'
},
name: 'User',
component: User
@@ -319,37 +319,37 @@ function configRoutes () {
},
{
path: 'titles',
name: 'Chức danh',
name: 'Должность',
component: Titles
},
{
path: 'departments',
name: 'Phòng ban',
name: 'Подразделение',
component: Departments
},
{
path: 'signers',
name: 'Người ký',
name: 'Подписал',
component: Signers
},
{
path: 'publishers',
name: 'Nơi ban hành',
name: 'Место выдачи',
component: Publishers
},
{
path: 'document-types',
name: 'Loại văn bản',
name: 'Вид документа',
component: DocumentTypes
},
{
path: 'roles',
name: 'Nhóm',
name: 'Группа',
component: Groups
},
{
path: 'permissions',
name: 'Quyền',
name: 'Разрешение',
component: Permissions
},
{

View File

@@ -5,9 +5,9 @@
<CWidgetBrand
color="white"
:right-header="''+book.unread"
right-footer="Chưa xem"
right-footer="Непрочитанные"
:left-header="''+book.count"
left-footer="Đã nhận"
left-footer="Полученные"
>
<h3 style="color:#3c4b64" class="m-3">{{book.name}}</h3>
</CWidgetBrand>
@@ -17,7 +17,7 @@
<CCol col="12">
<CCard>
<CCardHeader>
<CIcon name="cil-grid" /> Văn bản gần đây
<CIcon name="cil-grid" /> Недавно смотреть
</CCardHeader>
<CCardBody class="p-0">
<CDataTable
@@ -83,14 +83,14 @@ export default {
},
fields() {
return [
{ key: "symbol", label: "Số ký hiệu" },
{ key: "symbol", label: "Номер регистрации" },
{
key: "abstract",
label: "Trích yếu",
label: "Краткое содержание",
_classes: "w-50 font-weight-bold",
},
{ key: "type", label: "Loại" },
{ key: "book", label: "Sổ" },
{ key: "type", label: "Тип документа" },
{ key: "book", label: "Книга" },
];
},
highlightStyle() {

View File

@@ -3,14 +3,14 @@
<CCol col="12">
<CCard>
<CCardHeader>
<CIcon name="cil-grid" />Danh sách văn bản
<CIcon name="cil-grid" />Книга
<CButton
size="sm"
@click="goCreate"
class="float-right"
color="primary"
variant="outline"
v-c-tooltip="'Tạo mới'"
v-c-tooltip="'Создать новый'"
>
<CIcon name="cil-plus" />
</CButton>
@@ -137,36 +137,36 @@ export default {
},
fields() {
return [
{ key: "symbol", label: "Số ký hiệu" },
{ key: "symbol", label: "Номер регистрации" },
{
key: "abstract",
label: "Trích yếu",
label: "Краткое содержание",
_classes: "w-50 font-weight-bold",
},
{ key: "type", label: "Loại" },
{ key: "publisher", label: "Nơi ban hành" },
{ key: "type", label: "Тип документа" },
{ key: "publisher", label: "Место выдачи" },
{
key: "effective_at",
label: this.isDocumentsIncome ? "Ngày nhận" : "Ngày ban hành",
label: this.isDocumentsIncome ? "Дата получения" : "Дата выдачи",
},
];
},
searchFields() {
return [
{ value: "symbol", label: "Số ký hiệu" },
{ value: "abstract", label: "Trích yếu" },
{ value: "type.name", label: "Loại" },
{ value: "creator.name", label: "Người soạn" },
{ value: "signer.name", label: "Người ký" },
{ value: "symbol", label: "Номер регистрации" },
{ value: "abstract", label: "Краткое содержание" },
{ value: "type.name", label: "Тип документа" },
{ value: "creator.name", label: "Создатель" },
{ value: "signer.name", label: "Подписал" },
{
value: "effective_at",
label: this.isDocumentsIncome ? "Ngày nhận" : "Ngày ban hành",
label: this.isDocumentsIncome ? "Дата получения" : "Дата выдачи",
},
{ value: "sign_at", label: "Ngày ký" },
{ value: "publisher.name", label: "Nơi ban hành" },
{ value: "organizes.name", label: "Nơi nhận" },
{ value: "linkTo.symbol", label: "Liên kết văn bản đến" },
{ value: "receivers.seen", label: "Chưa xem", defaultValue: 0 },
{ value: "sign_at", label: "Дата подписания" },
{ value: "publisher.name", label: "Место выдачи" },
{ value: "organizes.name", label: "Место получения" },
{ value: "linkTo.symbol", label: "Разрешении входящие документы" },
{ value: "receivers.seen", label: "Непрочитанные", defaultValue: 0 },
];
},
highlightStyle() {

View File

@@ -6,7 +6,7 @@
<CCard class="p-4 px-5">
<CCardBody>
<CForm>
<h1 class="pb-4">Đăng nhập</h1>
<h1 class="pb-4">Войти</h1>
<CAlert :show="!!error" color="warning">{{error}}</CAlert>
<CInput autocomplete="email" placeholder="Email or Username..." v-model="email" required>
<template #prepend-content>
@@ -25,10 +25,10 @@
</CInput>
<CRow>
<CCol col="6" class="text-left">
<CButton color="primary" @click="login">Đăng nhập</CButton>
<CButton color="primary" @click="login">Войти</CButton>
</CCol>
<CCol col="6" class="text-right">
<CButton color="link">Quên mật khẩu?</CButton>
<CButton color="link">Забыли пароль?</CButton>
</CCol>
</CRow>
</CForm>
@@ -56,11 +56,11 @@ export default {
.dispatch("auth/login", { email: this.email, password: this.password })
.then(response => {
this.$router.push(
this.$route.query.redirectFrom || { name: "Trang chủ" }
this.$route.query.redirectFrom || { name: "Домашняя страница" }
);
})
.then(response => {
this.$toast.success("Đăng nhập thành công");
this.$toast.success("Успешно войти");
})
.catch(error => {
this.toastHttpError(error);

View File

@@ -1,7 +1,7 @@
<template>
<CCard>
<CCardHeader>
<strong>Thống </strong>
<strong>Статистическая</strong>
</CCardHeader>
<CCardBody>
<CForm>
@@ -10,7 +10,7 @@
<CFormGroup class="form-group mb-0">
<template #label>
<slot name="label">
<label>Sổ văn bản</label>
<label>Документы</label>
</slot>
</template>
<template #input>
@@ -19,7 +19,7 @@
:multiple="false"
:options="books"
:clearable="true"
placeholder="Tất cả"
placeholder="Все"
></treeselect>
</template>
</CFormGroup>
@@ -28,7 +28,7 @@
<CFormGroup class="form-group mb-0">
<template #label>
<slot name="label">
<label>Loại văn bản</label>
<label>Вид документа</label>
</slot>
</template>
<template #input>
@@ -37,7 +37,7 @@
:multiple="false"
:options="types"
:clearable="true"
placeholder="Tất cả"
placeholder="Все"
></treeselect>
</template>
</CFormGroup>
@@ -45,10 +45,10 @@
</CRow>
<CRow class="form-group">
<CCol sm="6">
<CInput label="Từ ngày" type="date" :value.sync="statistic.from" class="mb-0" />
<CInput label="с" type="date" :value.sync="statistic.from" class="mb-0" />
</CCol>
<CCol sm="6">
<CInput label="Đến ngày" type="date" :value.sync="statistic.to" class="mb-0" />
<CInput label="по" type="date" :value.sync="statistic.to" class="mb-0" />
</CCol>
</CRow>
<CRow class="form-group" v-if="false">
@@ -66,7 +66,7 @@
</CCardBody>
<CCardFooter>
<CButton size="sm" @click="download" class="float-right" color="success">
<CIcon name="cil-vertical-align-bottom" />Xuất
<CIcon name="cil-vertical-align-bottom" />Export
</CButton>
</CCardFooter>
</CCard>
@@ -129,7 +129,7 @@ export default {
services.statistic
.download(this.statistic)
.then(response => {
this.$toast.success("Đã xuất báo cáo");
this.$toast.success("Exported báo cáo");
})
.catch(error => {
this.toastHttpError(error);

View File

@@ -18,11 +18,11 @@ export default {
data() {
return {
fields: [
{ key: "id", label: "" },
{ key: "name", label: "Tên" }
{ key: "id", label: "Код" },
{ key: "name", label: "Имя" }
],
service: services.book,
title: "Sổ văn bản"
title: "Документы"
};
}
};

View File

@@ -18,12 +18,12 @@ export default {
data() {
return {
fields: [
{ key: "id", label: "" },
{ key: "name", label: "Tên" },
{ key: "tel", label: "Số điện thoại" }
{ key: "id", label: "Код" },
{ key: "name", label: "Имя" },
{ key: "tel", label: "Номер телефон" }
],
service: services.department,
title: "Phòng ban"
title: "Подразделение"
};
}
};

View File

@@ -18,11 +18,11 @@ export default {
data() {
return {
fields: [
{ key: "id", label: "" },
{ key: "name", label: "Tên" },
{ key: "id", label: "Код" },
{ key: "name", label: "Имя" },
],
service: services.documentType,
title: "Loại văn bản"
title: "Вид документа"
};
}
};

View File

@@ -8,7 +8,7 @@
@show="fetchRolePermissions"
>
<template #append-body>
<label>Quyền</label>
<label>Разрешение</label>
<treeselect
@select="addPermission"
@deselect="removePermission"
@@ -38,11 +38,11 @@ export default {
data() {
return {
fields: [
{ key: "id", label: "" },
{ key: "name", label: "Tên" },
{ key: "id", label: "Код" },
{ key: "name", label: "Имя" },
],
service: services.role,
title: "Nhóm",
title: "Группа",
permissionOptions: [],
permissions: [],
role: {}

View File

@@ -18,11 +18,11 @@ export default {
data() {
return {
fields: [
{ key: "id", label: "" },
{ key: "name", label: "Tên" }
{ key: "id", label: "Код" },
{ key: "name", label: "Имя" }
],
service: services.permission,
title: "Quyền"
title: "Разрешение"
};
}
};

View File

@@ -18,11 +18,11 @@ export default {
data() {
return {
fields: [
{ key: "id", label: "" },
{ key: "name", label: "Tên" },
{ key: "id", label: "Код" },
{ key: "name", label: "Имя" },
],
service: services.publisher,
title: "Nơi ban hành"
title: "Место выдачи"
};
}
};

View File

@@ -18,12 +18,12 @@ export default {
data() {
return {
fields: [
{ key: "id", label: "" },
{ key: "name", label: "Tên" },
{ key: "description", label: "Mô tả" }
{ key: "id", label: "Код" },
{ key: "name", label: "Имя" },
{ key: "description", label: "Описание" }
],
service: services.signer,
title: "Người ký"
title: "Подписал"
};
}
};

View File

@@ -18,11 +18,11 @@ export default {
data() {
return {
fields: [
{ key: "id", label: "" },
{ key: "name", label: "Tên" }
{ key: "id", label: "Код" },
{ key: "name", label: "Имя" }
],
service: services.title,
title: "Chức danh"
title: "Должность"
};
}
};

View File

@@ -3,13 +3,13 @@
<CCol col="md-6">
<CCard>
<CCardHeader>
<strong>Tạo mới người dùng</strong>
<strong>Создать новый пользователь</strong>
</CCardHeader>
<CCardBody>
<CForm>
<CInput
placeholder="Let us know your full name."
label="Tên"
label="Имя"
:value.sync="user.name"
horizontal
/>
@@ -22,22 +22,22 @@
autocomplete="email"
/>
<CInput
label="Số điện thoại"
label="Номер телефон"
placeholder="Enter your tel"
:value.sync="user.tel"
horizontal
autocomplete="tel"
/>
<CInput label="Ngày sinh" type="date" :value.sync="user.birthday" horizontal />
<CInput label="Дата рождения" type="date" :value.sync="user.birthday" horizontal />
<CSelect
label="Chức danh"
label="Должность"
horizontal
:value.sync="user.title_id"
:options="titles"
placeholder="Please select"
/>
<CSelect
label="Phòng ban"
label="Подразделение"
horizontal
:value.sync="user.department_id"
:options="departments"
@@ -46,7 +46,7 @@
<CFormGroup class="form-group form-row">
<template #label>
<slot name="label">
<label class="col-form-label col-sm-3">Kích hoạt</label>
<label class="col-form-label col-sm-3">Активирован</label>
</slot>
</template>
<template #input>
@@ -55,15 +55,15 @@
</CFormGroup>
<hr />
<CInput
placeholder="Nhập mật khẩu."
label="Mật khẩu"
placeholder="Вводите пароль."
label="Пароль"
type="password"
:value.sync="user.password"
horizontal
/>
<CInput
placeholder="Nhập lại mật khẩu."
label="Xác nhận"
label="Подтверждить"
type="password"
:value.sync="user.password_confirmation"
horizontal
@@ -72,7 +72,7 @@
</CCardBody>
<CCardFooter>
<CButton size="sm" @click="createUser" class="float-right" color="success">
<CIcon name="cil-medical-cross" /> Tạo
<CIcon name="cil-medical-cross" /> Создать
</CButton>
</CCardFooter>
</CCard>
@@ -117,7 +117,7 @@ export default {
.create(this.user)
.then(response => {
this.$router.push({ path: `/users/${response.data.id}` });
this.$toast.success("Đã tạo tài khoản");
this.$toast.success("Аккаунт создан");
})
.catch(error => {
this.toastHttpError(error);

View File

@@ -10,7 +10,7 @@
</CRow>
<CCard>
<CCardHeader>
<strong>Phân quyền</strong>
<strong>Право</strong>
</CCardHeader>
<CCardBody>
<CRow>

View File

@@ -10,7 +10,7 @@
</CRow>
<CCard>
<CCardHeader>
<strong>Phân quyền</strong>
<strong>Право</strong>
</CCardHeader>
<CCardBody>
<CRow>

View File

@@ -3,14 +3,14 @@
<CCol col="12">
<CCard>
<CCardHeader>
<CIcon name="cil-grid" />Danh sách người dùng
<CIcon name="cil-grid" />Список пользавателя
<CButton
size="sm"
@click="createUser"
class="float-right"
color="primary"
variant="outline"
v-c-tooltip="'Tạo mới'"
v-c-tooltip="'Создать новый'"
>
<CIcon name="cil-user-follow" />
</CButton>
@@ -20,7 +20,7 @@
class="float-right mr-2"
color="primary"
variant="outline"
v-c-tooltip="'Xuất'"
v-c-tooltip="'Export'"
>
<CIcon name="cil-vertical-align-bottom" />
</CButton>
@@ -30,7 +30,7 @@
class="float-right mr-2"
color="primary"
variant="outline"
v-c-tooltip="'Nhập'"
v-c-tooltip="'Import'"
>
<CIcon name="cil-vertical-align-top" />
</CButton>
@@ -52,10 +52,10 @@
@row-clicked="rowClicked"
>
<template #title="{item}">
<td>{{item.title ? item.title.name : 'Chưa xác định'}}</td>
<td>{{item.title ? item.title.name : 'Неопределено'}}</td>
</template>
<template #department="{item}">
<td>{{item.department ? item.department.name : 'Chưa xác định'}}</td>
<td>{{item.department ? item.department.name : 'Неопределено'}}</td>
</template>
</CDataTable>
<CPagination
@@ -84,23 +84,23 @@ export default {
loading: true,
items: null,
fields: [
{ key: "id", label: "" },
{ key: "name", label: "Tên", _classes: "font-weight-bold" },
{ key: "id", label: "Код" },
{ key: "name", label: "Имя", _classes: "font-weight-bold" },
{ key: "email", label: "Email" },
{ key: "tel", label: "Số điện thoại" },
{ key: "title", label: "Chức danh" },
{ key: "department", label: "Phòng ban" }
{ key: "tel", label: "Номер телефон" },
{ key: "title", label: "Должность" },
{ key: "department", label: "Подразделение" }
],
searchFields: [
{ value: "", label: "Tất cả" },
{ value: "id", label: "" },
{ value: "name", label: "Tên" },
{ value: "", label: "Все" },
{ value: "id", label: "Код" },
{ value: "name", label: "Имя" },
{ value: "email", label: "Email" },
{ value: "tel", label: "Số điện thoại" },
{ value: "birthday", label: "Ngày sinh" },
{ value: "title.name", label: "Chức danh" },
{ value: "department.name", label: "Phòng ban" },
{ value: "created_at", label: "Ngày tạo" }
{ value: "tel", label: "Номер телефон" },
{ value: "birthday", label: "Дата рождения" },
{ value: "title.name", label: "Должность" },
{ value: "department.name", label: "Подразделение" },
{ value: "created_at", label: "Дата создания" }
],
currentPage: 1,
pages: 0,
@@ -214,7 +214,7 @@ export default {
searchFields: this.searchField
})
.then(response => {
this.$toast.success("Đã xuất");
this.$toast.success("Exported");
})
.catch(error => {
this.toastHttpError(error);