update database
This commit is contained in:
@@ -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: "Все" }];
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 ký</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);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<CCard>
|
||||
<CCardHeader>
|
||||
<strong>Người nhận</strong>
|
||||
<strong>Получатель</strong>
|
||||
<CBadge
|
||||
color="success"
|
||||
class="float-right"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<CCard>
|
||||
<CCardHeader>
|
||||
<strong>Nơi nhận</strong>
|
||||
<strong>Место получения</strong>
|
||||
</CCardHeader>
|
||||
<CCardBody>
|
||||
<CRow class="form-group">
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<CCard>
|
||||
<CCardHeader>
|
||||
<strong>Thông tin</strong>
|
||||
<strong>Информация</strong>
|
||||
</CCardHeader>
|
||||
<CCardBody>
|
||||
<CForm>
|
||||
<CInput label="Mã" :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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<CCard>
|
||||
<CCardHeader>
|
||||
<strong>Phân quyền</strong>
|
||||
<strong>Право</strong>
|
||||
</CCardHeader>
|
||||
<CCardBody>
|
||||
<CForm>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -4,7 +4,7 @@ export default [
|
||||
_children: [
|
||||
{
|
||||
_name: 'CSidebarNavItem',
|
||||
name: 'Trang chủ',
|
||||
name: 'Домашняя страница',
|
||||
to: '/dashboard',
|
||||
icon: 'cil-home',
|
||||
},
|
||||
|
||||
@@ -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
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<CCard>
|
||||
<CCardHeader>
|
||||
<strong>Thống kê</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);
|
||||
|
||||
@@ -18,11 +18,11 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
fields: [
|
||||
{ key: "id", label: "Mã" },
|
||||
{ key: "name", label: "Tên" }
|
||||
{ key: "id", label: "Код" },
|
||||
{ key: "name", label: "Имя" }
|
||||
],
|
||||
service: services.book,
|
||||
title: "Sổ văn bản"
|
||||
title: "Документы"
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -18,12 +18,12 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
fields: [
|
||||
{ key: "id", label: "Mã" },
|
||||
{ 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: "Подразделение"
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -18,11 +18,11 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
fields: [
|
||||
{ key: "id", label: "Mã" },
|
||||
{ key: "name", label: "Tên" },
|
||||
{ key: "id", label: "Код" },
|
||||
{ key: "name", label: "Имя" },
|
||||
],
|
||||
service: services.documentType,
|
||||
title: "Loại văn bản"
|
||||
title: "Вид документа"
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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: "Mã" },
|
||||
{ key: "name", label: "Tên" },
|
||||
{ key: "id", label: "Код" },
|
||||
{ key: "name", label: "Имя" },
|
||||
],
|
||||
service: services.role,
|
||||
title: "Nhóm",
|
||||
title: "Группа",
|
||||
permissionOptions: [],
|
||||
permissions: [],
|
||||
role: {}
|
||||
|
||||
@@ -18,11 +18,11 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
fields: [
|
||||
{ key: "id", label: "Mã" },
|
||||
{ key: "name", label: "Tên" }
|
||||
{ key: "id", label: "Код" },
|
||||
{ key: "name", label: "Имя" }
|
||||
],
|
||||
service: services.permission,
|
||||
title: "Quyền"
|
||||
title: "Разрешение"
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -18,11 +18,11 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
fields: [
|
||||
{ key: "id", label: "Mã" },
|
||||
{ key: "name", label: "Tên" },
|
||||
{ key: "id", label: "Код" },
|
||||
{ key: "name", label: "Имя" },
|
||||
],
|
||||
service: services.publisher,
|
||||
title: "Nơi ban hành"
|
||||
title: "Место выдачи"
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -18,12 +18,12 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
fields: [
|
||||
{ key: "id", label: "Mã" },
|
||||
{ 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: "Подписал"
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -18,11 +18,11 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
fields: [
|
||||
{ key: "id", label: "Mã" },
|
||||
{ key: "name", label: "Tên" }
|
||||
{ key: "id", label: "Код" },
|
||||
{ key: "name", label: "Имя" }
|
||||
],
|
||||
service: services.title,
|
||||
title: "Chức danh"
|
||||
title: "Должность"
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
</CRow>
|
||||
<CCard>
|
||||
<CCardHeader>
|
||||
<strong>Phân quyền</strong>
|
||||
<strong>Право</strong>
|
||||
</CCardHeader>
|
||||
<CCardBody>
|
||||
<CRow>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
</CRow>
|
||||
<CCard>
|
||||
<CCardHeader>
|
||||
<strong>Phân quyền</strong>
|
||||
<strong>Право</strong>
|
||||
</CCardHeader>
|
||||
<CCardBody>
|
||||
<CRow>
|
||||
|
||||
@@ -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: "Mã" },
|
||||
{ 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: "Mã" },
|
||||
{ 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);
|
||||
|
||||
Reference in New Issue
Block a user