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

OSCHINA-MIRROR/jd-platform-opensource-ccms

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

CCMS

CCMS

CCMS — это набор универсальных и настраиваемых решений, которые позволяют автоматически генерировать интерфейс для управления контентом (CMS). CCMS абстрагирует страницы интерфейса управления контентом в систему, основанную на нескольких API.

API запросов к бэкенду разделены на типы: отправка форм, отображение списков, запросы данных и т. д. Используя формат данных JSON, можно описать интерфейсы, входные и выходные параметры, а также различные проверки и простую логику для динамического отображения страниц интерфейса. Это позволяет создавать системы управления контентом без необходимости разработки.

Подробнее

✨ Особенности

  • 🛠️ Настраиваемое создание интерфейса CMS для бэкенда.
  • 📚 Пошаговый подход охватывает различные сценарии применения бэкенда.
  • 🏹 Поддержка передачи данных между страницами и взаимодействия между компонентами.
  • 🎏 Возможность использования различных библиотек компонентов.

Принцип работы

Принцип работы основан на свойствах прокси-компонентов, запросах данных, взаимодействии между компонентами и логике состояний. Это обеспечивает настраиваемость интерфейса на основе компонентов.

Простота использования

Интерфейс настраивается с помощью конфигурации JSON, определяющей шаги формы и компоненты. Это создаёт полный набор функций управления бэкендом.

Подключение библиотеки компонентов

Разработчики могут вносить свой вклад в библиотеку компонентов, предоставляя разнообразные компоненты для использования. Эти компоненты могут быть выбраны пользователями.

⚙️ Использование (на примере antd UI)

npm install ccms-antd ccms

🌰 Пример

import { CCMS } from 'ccms-antd';

const App = () => (
  <>
    <CCMS
      checkPageAuth={async () => true}
      loadPageURL={async (id) => `/url?id=${id}&type=page`}
      loadPageFrameURL={async (id) => `/url?id=${id}&type=open`}
      // 界面操作更新CCMS config 
      loadPageConfig={async (page) => newConfig }
      sourceData={{}}
      callback={() => {
        if (window.history.length > 1) {
          window.history.back()
        } else {
          window.close()
        }
      }}
      //последующее описание config (демо) см. в документации по API
      config={config}
    />
  </>
);

Пример конфигурации параметров:

{
  "basic": {
      "title": "Моя форма"
  },
  "steps": [
    {
      type: "form",
      layout: "horizontal",
      fields:[
            {
                type:'text',
                "field": "text",
                "label": "Это шаг отправки"
            }
        ]
    },
    {
        "type": "fetch",
        "request": {
            "url": "https://j-api.jd.com/mocker/data?p=263&v=POST&u=list.do",
            "method": "GET"
        },
        "response": {
            "root": "result"
        },
        "condition": {
            "enable": true,
            "field": "code",
            "value": 0,
            "success": {
                "type": "none",
                "content": {
                    "type": "static",
                    "content": "Успех"
                }
            },
            "fail": {
                "type": "modal",
                "content": {
                    "type": "field",
                    "field": "msg"
                }
            }
        }
    }, {
        "type": "table",
        "primary": "index",
        "columns": [
            {
                "label": "id",
                "field": "id",
                "type": "text",
                "defaultValue": "Нет данных"
            },
            {
                "label": "datetime",
                "field": "datetime",
                "type": "text",
                "defaultValue": "Нет данных"
            },
            {
                "label": "name",
                "field": "name",
                "type": "text",
                "defaultValue": "Нет данных"
            }
        ],
        "operations": {
            "rowOperations": [
                {
                    "type": "button",
                    "label": "Редактировать",
                    "handle": {
                        "type": "ccms","callback":true,
                        "page": "o_manage_list_edit",
                        "target": "current",
                        "data": {
                            "id": {
                                "source": "record",
                                "field": "id"
                            }
                        }
                    }
                },
                {
                    "type": "button",
                    "label": "Удалить",
                    "handle": {
                        "type": "ccms","callback":true,
                        "page": "o_manage_list_delete",
                        "target": "current",
                        "data": {
                            "id": {
                                "source": "record",
                                "field": "id"

                            }
                        }
                    }
                }
            ]
        }
    }
]
}
``` ```
                        }
                    },
                    "confirm": {
                        "enable": true,
                                        "titleText": "确定删除应用吗?删除后无法恢复"
                    }
                }
            ],
            "tableOperations": [
                {
                    "type": "button",
                    "label": "+ 可以新建应用",
                    "handle": {
                        "type": "ccms",
                        "callback":true,
                        "page": "o_manage_list_create",
                        "target": "current",
                        "data": {}
                    }
                }
            ]
        }
    }
  ]
}

📖 API документ 👉 Api документ

🧑‍🤝‍🧑 Участие в совместной разработке

Настройка системы управления контентом (совместная разработка и подключение пользовательского интерфейса).

Инициализация проекта

npm install

sudo npm link

Компиляция

npm run build

Модульное тестирование

npm run test

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/jd-platform-opensource-ccms.git
git@api.gitlife.ru:oschina-mirror/jd-platform-opensource-ccms.git
oschina-mirror
jd-platform-opensource-ccms
jd-platform-opensource-ccms
master