Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <template>
- <div class="doc-base__content doc-base__content_left">
- <div class="doc-base__article">
- <div class="doc-base__article-section doc-base__article-section--wrap">
- <a class="doc-base__back_mobile" href="">
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240.823 240.823">
- <path
- d="M57.633 129.007L165.93 237.268c4.752 4.74 12.451 4.74 17.215 0 4.752-4.74 4.752-12.439 0-17.179l-99.707-99.671 99.695-99.671c4.752-4.74 4.752-12.439 0-17.191-4.752-4.74-12.463-4.74-17.215 0L57.621 111.816c-4.679 4.691-4.679 12.511.012 17.191z"></path>
- </svg>
- Назад в базу
- </a>
- <!-- Заголовок -->
- <div class="doc-base__head-top">
- <div class="doc-base__title">
- <a class="doc-base__back-link" href="javascript:void(0)" v-show="rubric_name"
- @click="previousRubric">
- <i class="fa fa-angle-left"></i>
- </a>
- <span v-show="!rubric_name"> Документы </span>
- <span v-show="rubric_name"> {{rubric_name}} </span>
- </div>
- <div class="doc-base__btn-wrap">
- <button class="base-btn doc-base__rubric-btn" title="Рубрики">
- <div class="base-btn__text">Рубрики</div>
- <svg width="5" height="8" viewBox="0 0 5 8" fill="none" xmlns="http://www.w3.org/2000/svg">
- <path d="M1 1L4 4" stroke="black" stroke-linecap="round"/>
- <path d="M4 4L1 7" stroke="black" stroke-linecap="round"/>
- </svg>
- </button>
- <a href="/documents/add/" v-if="is_editor_document || is_editor_rubric"
- class="base-btn base-btn--primary base-btn_icon doc-base__add-article"
- title="Добавить документ">
- <svg class="base-btn__sign" width="16" height="14" viewBox="0 0 14 14">
- <g>
- <g>
- <g>
- <path fill="none" stroke="#FFFFFF" stroke-linecap="round"
- stroke-miterlimit="50" stroke-width="1.96" d="M6.996 1.545v10.91"/>
- </g>
- <g>
- <path fill="none" stroke="#FFFFFF" stroke-linecap="round"
- stroke-miterlimit="50" stroke-width="1.96" d="M1.55 7h10.91"/>
- </g>
- </g>
- </g>
- </svg>
- </a>
- </div>
- </div>
- <!-- Фильтр -->
- <div class="doc-base__filter" v-show="rubrics.length !== 0 || materials.length !== 0 || search">
- <!-- Поиск -->
- <div class="doc-base__search doc-base__search--mobile" name="search-article">
- <div class="input-group">
- <input type="text" class="doc-base__search-input form-control" placeholder="Поиск"
- id="id_search" name="search" v-model="search">
- <button type="submit" class="doc-base__search-btn btn fa fa-search"
- @click="searchData"></button>
- </div>
- </div>
- <div class="doc-base__table-header">
- <div class="doc-base__col-header doc-base__col-header--small" v-if="is_editor_document || is_editor_rubric">
- </div>
- <div class="doc-base__col-header doc-base__col-header--large">
- <span class="doc-base__col-title">Название</span>
- </div>
- <div class="doc-base__col-header"></div>
- <div class="doc-base__col-header">
- <span class="doc-base__col-title">Дата добавления</span>
- </div>
- <div class="doc-base__col-header" v-if="is_editor_document || is_editor_rubric"></div>
- </div>
- </div>
- </div>
- <!-- Пустая рубрика -->
- <<<<<<< HEAD
- <div class="doc-base__article-section" v-if="rubrics.length === 0 && materials.length === 0 && !search"
- v-show="!isLoading">
- =======
- <div class="doc-base__article-section" v-if="(rubrics.length === 0 && materials.length === 0 && !search) && (is_editor_document || is_editor_rubric)" v-show="!isLoading">
- >>>>>>> 27f0264e695b32a258adcebabb299461ddc1d399
- <a href="/documents/add/" class="doc-base__add-material">
- <span class="add-material__link">+ Добавить документ</span>
- </a>
- </div>
- <!-- Поиск не дал результатов-->
- <div class="doc-base__empty-block"
- v-if="(search && rubrics.length === 0 && materials.length === 0) || rubrics.length === 0 && materials.length === 0"
- v-show="!isLoading">
- <!-- doc-base__block-content-->
- <div class="doc-base__empty-block--content">
- <svg class="content__icon" width="112" height="112" fill="none" xmlns="http://www.w3.org/2000/svg">
- <path d="M56 112c30.928 0 56-25.072 56-56S86.928 0 56 0 0 25.072 0 56s25.072 56 56 56z"
- fill="#FFF9EC"/>
- <path d="M61.494 64.714l1.378 1.378 1.611 1.603.621.626 3.215-3.218-3.604-3.61-3.22 3.22z"
- fill="#5D6D7E"/>
- <path
- d="M71.598 65.082l11.094 11.094a4.577 4.577 0 011.349 3.258 4.595 4.595 0 01-4.607 4.607 4.591 4.591 0 01-3.258-1.347L65.082 71.599l6.516-6.517z"
- fill="#FF8E31"/>
- <path
- d="M70.067 66.615l.901-.903 11.096 11.095a3.687 3.687 0 011.085 2.626c0 .995-.386 1.93-1.085 2.632a.643.643 0 01-.906-.002.64.64 0 010-.9 2.43 2.43 0 00.716-1.731 2.411 2.411 0 00-.713-1.722L70.067 66.615z"
- fill="#FECE59"/>
- <path
- d="M65.082 71.599l6.516-6.517-.486-.487a1.598 1.598 0 00-1.14-.474c-.45 0-.851.178-1.142.471l-4.237 4.24a1.599 1.599 0 00-.472 1.14c0 .442.181.85.472 1.136l.489.49zM27.959 48.788c0-11.502 9.326-20.83 20.83-20.83 11.505 0 20.83 9.329 20.83 20.83 0 11.505-9.326 20.83-20.83 20.834-11.504-.003-20.83-9.329-20.83-20.834z"
- fill="#34495E"/>
- <path
- d="M48.789 67.365c10.256 0 18.575-8.316 18.575-18.577 0-10.255-8.319-18.574-18.575-18.574-10.258 0-18.576 8.318-18.576 18.574 0 10.26 8.318 18.577 18.576 18.577z"
- fill="#5D6D7E"/>
- <path
- d="M48.789 65.878c9.436 0 17.088-7.65 17.088-17.09 0-9.434-7.652-17.088-17.088-17.088S31.7 39.354 31.7 48.788c0 9.44 7.651 17.09 17.089 17.09z"
- fill="#CEE2F2"/>
- <path
- d="M49.239 34.506a1.514 1.514 0 00-1.342-.671 14.868 14.868 0 00-6.625 1.99 1.515 1.515 0 00-.546 2.065 1.507 1.507 0 002.06.541 11.942 11.942 0 015.288-1.584 1.497 1.497 0 001.414-1.586 1.428 1.428 0 00-.25-.755zM39.563 39.46a1.5 1.5 0 00-2.418-.107 14.923 14.923 0 00-3.067 6.57c-.553 2.866-.264 5.8.835 8.49a1.509 1.509 0 001.971.822 1.503 1.503 0 00.823-1.965 11.866 11.866 0 01-.659-6.774 11.792 11.792 0 012.438-5.244 1.508 1.508 0 00.077-1.792z"
- fill="#fff"/>
- </svg>
- <span class="content__text"
- v-show="rubrics.length === 0 && materials.length === 0 && search && rubric_id">
- Поиск по рубрике не дал результатов. Попробуйте выполнить
- <a href="javascript:void(0)" @click="loadHome">поиск</a> на главной странице Документов
- </span>
- <span class="content__text"
- v-show="rubrics.length === 0 && materials.length === 0 && search && !rubric_id">
- По вашему запросу ничего не найдено
- </span>
- <<<<<<< HEAD
- <span class="content__text"
- v-show="rubrics.length === 0 && materials.length === 0 && !search && !rubric_id">
- Раздел документов пуст.
- Добавьте документы, их смогут просматривать сотрудники компании, которым вы откроете доступ
- </span>
- <a href="/documents/add/" class="btn doc-base__block-btn"
- v-show="rubrics.length === 0 && materials.length === 0 && !search">+ Добавить документ</a>
- =======
- <span class="content__text" v-show="rubrics.length === 0 && materials.length === 0 && !search && !rubric_id" v-if="is_editor_document || is_editor_rubric">
- Раздел документов пуст.
- Добавьте документы, их смогут просматривать сотрудники компании, которым вы откроете доступ
- </span>
- <a href="/documents/add/" class="btn doc-base__block-btn" v-if="is_editor_document || is_editor_rubric" v-show="rubrics.length === 0 && materials.length === 0 && !search">+ Добавить документ</a>
- >>>>>>> 27f0264e695b32a258adcebabb299461ddc1d399
- </div>
- </div>
- <div id="result_list_container">
- <div class="doc-base__list" v-if="rubrics.length > 0" v-for="(item, index) in rubrics"
- :key="'item_' + item.id">
- <div class="doc-base__list-item" v-if="item.is_rubric">
- <!-- Add class doc-base__list-item--not-rubric -->
- <div class="doc-base__item-caption" v-if="is_editor_document || is_editor_rubric">
- <span class="item-caption__text" style="cursor: pointer;" @click="loadRubric(item)">{{item.name}}</span>
- <<<<<<< HEAD
- <v-popover
- popoverInnerClass="one-rubric__popover-inner"
- popoverClass="one-rubric__popover"
- placement="bottom-center"
- offset="1"
- >
- =======
- <v-popover v-if="is_editor_document || is_editor_rubric"">
- >>>>>>> 27f0264e695b32a258adcebabb299461ddc1d399
- <span class="item-caption__more">
- <svg xmlns="http://www.w3.org/2000/svg" width="18" height="4">
- <path fill-rule="evenodd"
- d="M4 2a2 2 0 10-4 0 2 2 0 004 0zM11 2a2 2 0 10-4 0 2 2 0 004 0zM18 2a2 2 0 10-4 0 2 2 0 004 0z"
- clip-rule="evenodd"/>
- </svg>
- </span>
- <div class="menu-btn__inner" slot="popover">
- <<<<<<< HEAD
- <a href="javascript:void(0)" class="menu-btn__button one-rubric__change">Редактировать</a>
- <button class="menu-btn__button one-rubric__delete"
- @click="modalDeleteRubric(item)">Удалить
- </button>
- =======
- <a href="javascript:void(0)" class="menu-btn__button one-rubric__change js-edit-rubric" :id="item.id" v-close-popover>Редактировать</a>
- <button class="menu-btn__button one-rubric__delete" @click="modalDeleteRubric(item)" v-close-popover>Удалить</button>
- >>>>>>> 27f0264e695b32a258adcebabb299461ddc1d399
- </div>
- </v-popover>
- </div>
- <div class="doc-base__article-section" v-if="item.documents.length > 0">
- <div class="doc-base__rubric-item" v-if="item.documents.length > 0"
- v-for="(document, index) in item.documents" :key="'document_' + document.id">
- <div class="doc-base__col-item doc-base__col-item--small" v-if="is_editor_document || is_editor_rubric">
- <label class="css-control css-control-sm css-control-secondary css-checkbox">
- <input type="checkbox" name="selected"
- class="css-control-input js-show-actions">
- <span class="css-control-indicator"></span>
- </label>
- </div>
- <div class="doc-base__col-wrap">
- <div class="doc-base__col-item doc-base__col-item--large">
- <div class="doc-base__col-text doc-base__col-text--bold">
- <a href="javascript:void(0)"
- class="doc-base__col-text doc-base__col-text--link doc-base__col-text--bold"
- :title="document.name"
- >
- <span v-html="document.name"></span>
- </a>
- </div>
- </div>
- <div class="doc-base__col-item"></div>
- <div class="doc-base__col-item"></div>
- <div class="doc-base__col-item doc-base__col-item--text">
- <span class="doc-base__col-text text-center js-date_change">
- {{document.date}}
- </span>
- </div>
- <div class="doc-base__col-item"></div>
- <div class="doc-base__col-item doc-base__col-item--very-small" v-if="is_editor_document || is_editor_rubric">
- <div class="doc-base__col-item-wrapper">
- <a class="doc-base__col-button"
- :href="'/documents/edit/' + document.id + '/'">
- <svg class="doc-base__col-icon--pencil"
- xmlns="http://www.w3.org/2000/svg"
- width="10" height="10" fill="none">
- <path fill-rule="evenodd"
- d="M9.796 1.176L8.89.264a.897.897 0 00-1.272 0l-.869.873 2.034 2.045 1.014-1.019a.7.7 0 000-.987zm-3.048-.028l2.034 2.045-5.679 5.694L1.07 6.843l5.678-5.695zM.286 9.993a.232.232 0 01-.28-.277l.513-2.32 2.034 2.045-2.267.552z"
- clip-rule="evenodd"/>
- </svg>
- </a>
- <span class="doc-base__col-button" @click="modalDeleteDocument(document)">
- <svg class="doc-base__col-icon--delete"
- xmlns="http://www.w3.org/2000/svg" width="10" height="10"
- fill="none">
- <path stroke-linecap="round" stroke-width="2"
- d="M1 1l7.615 7.615M8.615 1L1 8.615"/>
- </svg>
- </span>
- </div>
- <<<<<<< HEAD
- <v-popover
- popoverInnerClass="one-rubric__popover-inner"
- popoverClass="one-rubric__popover"
- >
- <button class="one-rubric__menu-open"></button>
- <div class="menu-btn__inner" slot="popover">
- <a :href="'/documents/edit/' + document.id + '/'"
- class="menu-btn__button one-rubric__change">Редактировать</a>
- <button class="menu-btn__button one-rubric__delete"
- @click="modalDeleteDocument(document)">Удалить
- </button>
- </div>
- </v-popover>
- =======
- >>>>>>> 27f0264e695b32a258adcebabb299461ddc1d399
- </div>
- </div>
- </div>
- </div>
- <button class="base-btn doc-base__rubric-more" @click="loadMore(item)"
- v-show="item.is_exists_more">Показать еще
- </button>
- </div>
- </div>
- </div>
- <div class="doc-base__list" v-show="materials.length > 0">
- <div class="doc-base__list-item doc-base__list-item--not-rubric">
- <div class="doc-base__article-section" v-for="(document, index) in materials"
- :key="'document_' + document.id">
- <div class="doc-base__rubric-item">
- <div class="doc-base__col-item doc-base__col-item--small" v-if="is_editor_document || is_editor_rubric">
- <label class="css-control css-control-sm css-control-secondary css-checkbox">
- <input type="checkbox" name="selected"
- class="css-control-input js-show-actions">
- <span class="css-control-indicator"></span>
- </label>
- </div>
- <div class="doc-base__col-wrap">
- <div class="doc-base__col-item doc-base__col-item--large">
- <div class="doc-base__col-text doc-base__col-text--bold">
- <a href="javascript:void(0)"
- class="doc-base__col-text doc-base__col-text--link doc-base__col-text--bold">
- <span v-html="document.name"></span>
- </a>
- </div>
- </div>
- <div class="doc-base__col-item"></div>
- <div class="doc-base__col-item"></div>
- <div class="doc-base__col-item doc-base__col-item--text">
- <span class="doc-base__col-text text-center js-date_change">
- {{document.date}}
- </span>
- </div>
- <div class="doc-base__col-item"></div>
- <div class="doc-base__col-item doc-base__col-item--very-small" v-if="is_editor_document || is_editor_rubric">
- <div class="doc-base__col-item-wrapper">
- <a class="doc-base__col-button"
- :href="'/documents/edit/' + document.id + '/'">
- <svg class="doc-base__col-icon--pencil"
- xmlns="http://www.w3.org/2000/svg"
- width="10" height="10" fill="none">
- <path fill-rule="evenodd"
- d="M9.796 1.176L8.89.264a.897.897 0 00-1.272 0l-.869.873 2.034 2.045 1.014-1.019a.7.7 0 000-.987zm-3.048-.028l2.034 2.045-5.679 5.694L1.07 6.843l5.678-5.695zM.286 9.993a.232.232 0 01-.28-.277l.513-2.32 2.034 2.045-2.267.552z"
- clip-rule="evenodd"/>
- </svg>
- </a>
- <span class="doc-base__col-button" @click="modalDeleteDocument(document)">
- <svg class="doc-base__col-icon--delete"
- xmlns="http://www.w3.org/2000/svg" width="10" height="10"
- fill="none">
- <path stroke-linecap="round" stroke-width="2"
- d="M1 1l7.615 7.615M8.615 1L1 8.615"/>
- </svg>
- </span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <loading-spinner
- v-if="isLoading"
- class="wall__spinner"
- />
- <mugen-scroll
- :handler="infiniteScrollHandler"
- :should-handle="!isLoading"
- />
- </div>
- <!-- <div id="actions_block" class="doc-base__actions" v-if="is_editor_document || is_editor_rubric">-->
- <!-- <span class="doc-base__actions-item actions-item--unchecked">Снять выделенные </span>-->
- <!-- <div class="doc-base__actions-item actions-item--delete">-->
- <!-- <span class="actions-item--delete-icon">-->
- <!-- ×-->
- <!-- </span>-->
- <!-- Удалить выделенные-->
- <!-- </div>-->
- <!-- </div>-->
- </div>
- </template>
- <script>
- import Vue from 'vue'
- import MugenScroll from 'vue-mugen-scroll'
- import LoadingSpinner from "../../LoadingSpinner";
- import {mapActions, mapState} from "vuex"
- export default {
- name: 'DocumentList',
- components: {
- MugenScroll,
- LoadingSpinner,
- },
- props: {
- is_editor_document: {
- type: Boolean,
- default: false
- },
- is_editor_rubric: {
- type: Boolean,
- default: true
- }
- },
- data() {
- return {
- nextData: '/api/v1/document/',
- isLoading: false,
- deleteDocument: [],
- deleteRubric: [],
- level_back: null,
- rubric_name: null,
- rubric_id: null,
- search: '',
- results: []
- }
- },
- computed: {
- rubrics: function () {
- let list = this.results.filter(item => !Array.isArray(item));
- list.map(item => {
- if (item.next === null) {
- item.is_exists_more = item.count > 2;
- item.next = '/api/v1/document/load_more/{ID}/'.replace('{ID}', item.id);
- }
- return item
- });
- list.map(rubric => {
- let documents = rubric.documents.filter(item => !this.deleteDocument.some(elem => elem.id === item.id));
- rubric.documents = documents;
- return rubric
- });
- console.log('deleteRubric', this.deleteRubric)
- return list.filter(item => !this.deleteRubric.some(elem => elem.id === item.id))
- },
- materials: function () {
- let materials = [],
- array = this.results.filter(item => Array.isArray(item));
- array.forEach(item => {
- materials.push(...item)
- });
- return materials.filter(item => !this.deleteDocument.some(elem => elem.id === item.id))
- },
- ...mapState('defaultData', [
- 'current_user'
- ]),
- },
- watch: {
- search: {
- handler: function (val, oldVal) {
- this.searchData();
- },
- deep: true
- },
- },
- methods: {
- async searchData() {
- if (this.search && this.nextData && this.rubric_id) {
- this.nextData = this.nextData + '?search=' + this.search + '&rubric=' + this.rubric_id;
- } else if (this.search && !this.nextData) {
- this.nextData = '/api/v1/document/?search=' + this.search;
- } else if (!this.search) {
- this.nextData = '/api/v1/document/';
- }
- this.results = [];
- this.infiniteScrollHandler();
- },
- async loadHome() {
- this.nextData = '/api/v1/document/';
- this.$emit('rubricID', 0);
- this.search = '';
- this.results = [];
- this.infiniteScrollHandler();
- },
- async previousRubric() {
- this.nextData = '/api/v1/document/';
- if (this.level_back) {
- this.nextData = '/api/v1/document/?rubric={ID}'.replace('{ID}', this.level_back);
- this.$emit('rubricID', this.level_back);
- } else {
- this.nextData = '/api/v1/document/';
- this.$emit('rubricID', 0);
- }
- this.results = [];
- this.infiniteScrollHandler();
- },
- async loadRubric(rubric) {
- this.nextData = '/api/v1/document/?rubric={ID}'.replace('{ID}', rubric.id);
- this.results = [];
- this.$emit('rubricID', rubric.id);
- this.infiniteScrollHandler();
- },
- async infiniteScrollHandler() {
- if (!this.nextData) {
- return false;
- }
- this.isLoading = true;
- let data = await this.loadList();
- this.results.push(...data);
- this.isLoading = false;
- },
- async loadMore(item) {
- Vue.axios
- .get(item.next)
- .then(response => {
- let documents = item.documents.concat(response.data.results);
- item.documents = [...new Set(documents.map(JSON.stringify))].map(JSON.parse);
- item.next = response.data.next;
- item.is_exists_more = !!item.next;
- })
- .catch((err) => {
- this.errorHandler(err);
- })
- },
- async loadList() {
- let data, response;
- try {
- const request = Vue.axios.get(this.nextData);
- response = await request;
- data = response.data.results;
- this.nextData = response.data.next;
- this.level_back = response.data.level_back;
- this.rubric_name = response.data.rubric_name;
- this.rubric_id = response.data.rubric_id;
- return data
- } catch (err) {
- this.errorHandler(err);
- }
- },
- async modalDeleteDocument(document) {
- this.$swal({
- customClass: {
- confirmButton: 'btn btn-lg btn-alt-success m-5',
- cancelButton: 'btn btn-lg btn-alt-danger m-5'
- },
- title: 'Удалить документ?',
- text: document.name,
- icon: 'warning',
- showCancelButton: true,
- confirmButtonText: 'Да, удалить!',
- cancelButtonText: 'Отменить',
- preConfirm: function () {
- return new Promise(function (resolve) {
- setTimeout(function () {
- resolve();
- }, 50);
- });
- }
- }).then(value => {
- if (value.value) {
- let swal = this.$swal({
- title: 'Удаление...',
- icon: 'info',
- showConfirmButton: false,
- allowOutsideClick: false,
- html: '<i class="fa fa-2x fa-cog fa-spin"></i>'
- });
- // выполнение
- Vue.axios
- .delete(site_routes.document.destroy.replace('{ID}', document.id))
- .then(response => {
- this.popDocument(document);
- swal.close();
- this.$swal({
- title: 'Отлично!',
- text: 'Документ удален',
- icon: 'success',
- showConfirmButton: false,
- timer: 1400,
- });
- })
- .catch((err) => {
- this.$swal('Ошибка!', 'При обработке запроса произошла ошибка на сервере', 'error');
- this.errorHandler(err);
- });
- }
- }, reason => {
- // отказ
- });
- },
- async modalDeleteRubric(rubric) {
- this.$swal({
- customClass: {
- confirmButton: 'btn btn-lg btn-alt-success m-5',
- cancelButton: 'btn btn-lg btn-alt-danger m-5'
- },
- title: 'Удалить рубрику?',
- text: rubric.name,
- icon: 'warning',
- showCancelButton: true,
- confirmButtonText: 'Да, удалить!',
- cancelButtonText: 'Отменить',
- preConfirm: function () {
- return new Promise(function (resolve) {
- setTimeout(function () {
- resolve();
- }, 50);
- });
- }
- }).then(value => {
- if (value.value) {
- let swal = this.$swal({
- title: 'Удаление...',
- icon: 'info',
- showConfirmButton: false,
- allowOutsideClick: false,
- html: '<i class="fa fa-2x fa-cog fa-spin"></i>'
- });
- // выполнение
- Vue.axios
- .delete('/api/v1/rubric_document/{ID}/'.replace('{ID}', rubric.id))
- .then(response => {
- this.popRubric(rubric);
- swal.close();
- this.$swal({
- title: 'Отлично!',
- text: 'Рубрика удалена',
- icon: 'success',
- showConfirmButton: false,
- timer: 1400,
- });
- })
- .catch(error => {
- this.$swal({
- customClass: {
- confirmButton: 'btn btn-lg btn-alt-success m-5',
- cancelButton: 'btn btn-lg btn-alt-danger m-5'
- },
- title: 'Внимание!',
- text: error.response.data.message,
- icon: 'warning',
- showCancelButton: true,
- confirmButtonText: 'Да, удалить!',
- cancelButtonText: 'Отменить',
- preConfirm: function () {
- return new Promise(function (resolve) {
- setTimeout(function () {
- resolve();
- }, 50);
- });
- }
- }).then(value => {
- if (value.value) {
- let swal = this.$swal({
- title: 'Удаление...',
- icon: 'info',
- showConfirmButton: false,
- allowOutsideClick: false,
- html: '<i class="fa fa-2x fa-cog fa-spin"></i>'
- });
- // выполнение
- Vue.axios
- .delete('/api/v1/rubric_document/{ID}/?always_delete=1'.replace('{ID}', rubric.id))
- .then(response => {
- this.popRubric(rubric);
- swal.close();
- this.$swal({
- title: 'Отлично!',
- text: 'Рубрика удалена',
- icon: 'success',
- showConfirmButton: false,
- timer: 1400,
- });
- })
- .catch((err) => {
- this.errorHandler(err);
- });
- }
- }, reason => {
- // отказ
- });
- });
- }
- }, reason => {
- // отказ
- });
- },
- errorHandler(err) {
- swal('Ошибка!', 'При обработке запроса произошла ошибка на сервере', 'error');
- console.error(err);
- this.isLoading = false;
- },
- popDocument(document) {
- this.$emit('changeList', true);
- this.deleteDocument.push(document);
- },
- popRubric(rubric) {
- console.log('rubric', rubric)
- this.$emit('changeList', true);
- this.deleteRubric.push(rubric);
- }
- }
- }
- </script>
- <style lang="sass">
- @import "#sass/v-style"
- .doc-base__item-caption .item-caption__more
- margin-left: 0
- .trigger
- margin-left: 10px
- .swal2-icon.swal2-warning,
- .swal2-icon.swal2-info
- font-size: 20px
- .one-rubric
- &__popover
- border-radius: 10px
- border: none !important
- box-shadow: 1px 1px 24px 4px rgba(38, 38, 38, 0.3)
- .doc-base__col-text
- overflow: hidden
- text-overflow: ellipsis
- text-align: left !important
- .doc-base__col-text > span
- overflow: hidden
- white-space: nowrap
- .doc-base__col-item--large
- width: 17%
- .doc-base__col-header--small
- width: 2%
- #main-container
- background: #f0f2f5
- </style>
- .tooltip
- display: block !important
- z-index: 10000
- .tooltip-inner
- background: #fff
- color: #000
- border-radius: 4px
- font-size: 13px
- padding: 10px 20px
- box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.12)
- text-align: left
- .tooltip-arrow
- width: 0
- height: 0
- border-style: solid
- position: absolute
- margin: 5px
- border-color: #fff
- z-index: 1
- box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.12)
- &[x-placement^="top"]
- margin-bottom: 5px
- .tooltip-arrow
- border-width: 5px 5px 0 5px
- border-left-color: transparent !important
- border-right-color: transparent !important
- border-bottom-color: transparent !important
- bottom: -5px
- left: calc(50% - 5px)
- margin-top: 0
- margin-bottom: 0
- &[x-placement^="bottom"]
- margin-top: 5px
- .tooltip-arrow
- border-width: 0 5px 5px 5px
- border-left-color: transparent !important
- border-right-color: transparent !important
- border-top-color: transparent !important
- top: -5px
- left: calc(50% - 5px)
- margin-top: 0
- margin-bottom: 0
- &[x-placement^="right"]
- margin-left: 5px
- .tooltip-arrow
- border-width: 5px 5px 5px 0
- border-left-color: transparent !important
- border-top-color: transparent !important
- border-bottom-color: transparent !important
- left: -5px
- top: calc(50% - 5px)
- margin-left: 0
- margin-right: 0
- &[x-placement^="left"]
- margin-right: 5px
- .tooltip-arrow
- border-width: 5px 0 5px 5px
- border-top-color: transparent !important
- border-right-color: transparent !important
- border-bottom-color: transparent !important
- right: -5px
- top: calc(50% - 5px)
- margin-left: 0
- margin-right: 0
- &.popover
- $border: 1px solid #c5d0db
- border: $border
- outline: none
- .popover-inner
- background: #fff
- color: #000
- border-radius: 4px
- font-size: 13px
- padding: 10px 20px
- box-shadow: 0 1px 3px rgba(0,0,0,.1)
- text-align: left
- border-color: #fff
- .popover-arrow
- border-color: #fff
- &[aria-hidden='true']
- visibility: hidden
- opacity: 0
- transition: opacity .15s, visibility .15s
- &[aria-hidden='false']
- visibility: visible
- opacity: 1
- transition: opacity .15s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement