1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lanmushan-slash-layer

Клонировать/Скачать
doc.md 7.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 14.03.2025 02:57 41e2c28

Быстрый старт

Установка

yarn add slash-layer

npm install slash-layer

Использование

import { createApp } from 'vue'
import App from './App.vue'
import SlashLayer from 'slash-layer';
import { config } from './LayerConfig';
import 'slash-layer/dist/style.css';

let app = createApp(App);
app.use(SlashLayer, config);
app.mount('#app');

Глобальная конфигурация

import { LayerGlobalConfigure } from '../packages/components/Layer/ts/LayerConfigureDefinition';

export const config = {
    title: 'Пользовательская глобальная метка',
    max: false, // кнопка для увеличения окна
    min: false, // кнопка для уменьшения окна
    header: true, // отображение верхней части модального окна
    loadingTime: 500, // время анимации загрузки / миллисекунды
    dbFull: true, // двойной щелчок для изменения размера окна
    successDecide(msg: any) {
        console.log(msg);
        if (msg.code === 200) {
            return {
                msg: msg.msg,
                result: true,
                data: msg.data
            };
        } else {
            return {
                msg: msg.msg,
                result: false,
                data: msg.data
            };
        }
    }
} as LayerGlobalConfigure;

export default config;

Пример модальных окон

Модальное окно без конфигурации

Layer.modal({
    title: 'Без конфигурации',
    content: {
        component: HelloWorld,
        parent: this,
        props: {
            msg: 'Передача параметров'
        }
    }
});

Предустановленное модальное окно SM размера

Layer.modal({
    title: 'Размер sm',
    content: {
        position: 'sm',
        component: HelloWorld,
        parent: this,
        props: {
            msg: 'Передача параметров'
        }
    }
});
```## Предустановленное модальное окно MD размера

```typescript
Layer.modal({
    title: `Модальное окно среднего размера md`,
    position: "md",
    content: {
        component: HelloWorld,
        parent: this,
        props: {
            msg: "Передача параметров"
        }
    }
});

Предустановленное модальное окно LG размера

Layer.modal({
    title: `Модальное окно большого размера lg`,
    position: "lg",
    content: {
        component: HelloWorld,
        parent: this,
        props: {
            msg: "Передача параметров"
        }
    }
});

Полноэкранный модальный экран

Layer.modal({
    title: `Без конфигурации`,
    position: "full",
    content: {
        component: HelloWorld,
        parent: this,
        props: {
            msg: "Передача параметров"
        }
    }
});

Настройка позиций и размеров

Layer.modal({
    position: {
        top: 200,
        left: 100,
        width: 400,
        height: 400
    }
})

Форма в модальном окне

Добавление формы

Компонент вызывающей стороны

При вызове возвращает Promise, при успешной отправке данных возвращается ответ от сервера.

Layer.createForm({
    title: "Добавление системы",
    content: {
        component: SystemManagementUpdate,
        props: {
            id: "xxx"
        }
    }
} as FormConfigure).then(res => {
    // Выполнение последующих действий
})

Внутренний компонент

При нажатии кнопки "Отправить" вызывается метод этого компонента, который может вернуть Promise или данные.

const doSubmit = async () => {
    console.log("Сохранение");
    if (!formInstance) {
        return;
    }
    let result = await checkFormData();
    if (!result) {
        return;
    }
    return sysAppApi.doSaveEntity(formData.value);
};
```## Изменение формы

### Компонент вызывающей стороны

Аналогично созданию формы, при вызове возвращает Promise, при успешной отправке данных возвращается ответ от сервера.

```typescript
Layer.updateForm({
    title: "Изменение системы",
    content: {
        component: SystemManagementUpdate,
        props: {
            ...row // Распаковка передачи данных
        }
    }
} as FormConfigure).then(res => {
    // Выполнение поиска списка
})

Внутренний компонент

Аналогично созданию формы, при нажатии кнопки "Отправить" вызывается метод этого компонента, который может вернуть Promise или данные.

const doUpdate = async () => {
    if (!formInstance)
        return;
    let result = await checkFormData();
    if (!result) {
        return;
    }
    return sysAppApi.doUpdateEntity(formData.value);
}

Только для чтения форма

Layer.readForm({
    title: "Создание пользователя",
    content: {
        component: UserForm,
        props: {
            msg: "Создание пользователя"
        }
    }
});

Как принимает параметры внутренний компонент

Записывается как обычный Vue-компонент, Layer дополнительно передаст параметр режима выполнения, runMode:create|update|read

export default defineComponent({
    name: 'SystemManagementUpdate',
    props: ["id", "runMode"],
    setup: (props, ctx) => {
        const formInstance = ref<FormInstance>();
        const { id, runMode } = toRefs(props); // Извлечение двух параметров
    }
})

Изображение просмотра

Инструмент просмотра изображений предоставляет возможность предварительного просмотра нескольких изображений, включая функции масштабирования, восстановления и поворота.```typescript Layer.images({ imgList: [ { src: this.getSrc("/src/assets/1.jpg") }, { src: this.getSrc("/src/assets/3.jpg") }, { src: this.getSrc("/src/assets/2.jpg") } ] });


![](./assets/images/images.png)

# Уведомления

![](./assets/images/confim.png)

## Подтверждение

```typescript
Layer.confirm("Вы уверены, что хотите удалить?").then((msg) => {
    alert("Нажата кнопка 'Подтвердить'");
}).catch((msg) => {
    alert("Нажата кнопка 'Отмена'");
});

Успешное уведомление

Layer.success("Это успешное уведомление.");

Ошибочное уведомление

Layer.error("Это сообщение об ошибке.");

Обычное информационное уведомление

Layer.info("Это обычное уведомление.");

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lanmushan-slash-layer.git
git@api.gitlife.ru:oschina-mirror/lanmushan-slash-layer.git
oschina-mirror
lanmushan-slash-layer
lanmushan-slash-layer
1.1.x