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

OSCHINA-MIRROR/code2roc-FastExecutor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
FrameworkOperate.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 07:02 cd605f4

Развёртывание

Развёртывание фреймворка

  1. Скачайте исходный код по ссылке: https://gitee.com/code2roc/FastExecutor/tree/master/code.
  2. Скомпилируйте и опубликуйте его в папке.
  3. Разверните его на сервере IIS.

Развёртывание проекта

  1. В проекте используйте следующие файлы из исходного кода фреймворка: FastExecutor.Base, FastExecutor.ORG, FastIOC, FastORM, FastUtil.dll.
  2. Соберите проект.
  3. Скопируйте файлы dll, связанные с проектом, в папку Plugins корневого каталога фреймворка.
  4. Файлы из папки Views проекта скопируйте в папку Views фреймворка (можно также разместить их отдельно, используя виртуальный каталог).
  5. Поддерживается «горячая» замена.

Разработка

В качестве примера разработки бизнес-модуля рассмотрим процесс входа в развёрнутую систему с использованием учётных данных admin/1.

Создание таблиц

  1. Перейдите в бэкенд — управление данными — DMP платформа (все таблицы бизнес-проектов управляются через DMP платформу).

  2. Добавьте таблицу.

  3. Определите структуру таблицы, выбрав подходящие типы параметров и элементы управления.

  4. Выберите в списке структуры таблицы опцию генерации кода для создания страниц добавления, редактирования и списка. Код будет включать страницы для добавления, редактирования, списка, а также файлы контроллера и класса DB. Поместите эти файлы в соответствующие папки проекта.

Индивидуальная разработка бэкенда

  1. Обычно сгенерированный класс DB содержит только метод для генерации первичного ключа. Вы можете переписать любой метод в классе DB, и он будет автоматически заменён в шаблоне класса Controller.
  2. Если сгенерированного метода в классе DB недостаточно, вы можете создать свой собственный метод. Однако в этом случае вам нужно объявить класс DB в контроллере, но не использовать базовый шаблон. Пример кода:
  [AutoWired]
  public DB_User @DB_User;
  1. Контроллер также содержит основные API операций. Если вы хотите добавить индивидуальные условия поиска для операции List, пример кода будет выглядеть так:
  JObject Params = GetParams();
  string DisplayName = Convert.ToString(Params["DisplayName"]);
  if (!string.IsNullOrEmpty(DisplayName))
  {
      ListWhereText += string.Format(" and DisplayName like '%{0}%'", DisplayName);
  }
  1. Для индивидуальной настройки возвращаемых результатов пример кода выглядит следующим образом:
 ReturnValue result = new ReturnValue();
 result.Add("code", -100);
 result.Add("msg", "Уже существует таблица с таким именем!");
 return result;
  1. Если в конечном слое представления используется автоматическая инъекция (например, перехватчики, фильтры, журналы, задачи), и вы получаете сложный объект, который используется в другом месте, где также применяется автоматическая инъекция, то пример кода может быть таким:
private AuthUtil @AuthUtil = InjectUtil.Container.Resolve<AuthUtil>();

Индивидуальная разработка фронтенда

Если сгенерированная страница не полностью соответствует требованиям, создайте новый файл cshtml. Необходимо включить фреймворк js и css. Пример кода:

<!DOCTYPE html>

<html>

<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
    @Scripts.Render("~/Resource/js/fe.head.js")
</head>

<body>
    <div id="app" v-cloak>

    </div>
</body>
@Scripts.Render("~/Resource/js/fe.foot.js")
<script>
    var pageData = {};
    new Vue({
        el: '#app',
        data: pageData,
        mounted: function () {

        },
        methods: {
          
        }
    })
</script>

</html>

Использование диалоговых окон

Для обычного открытия страницы:

 OpenDialog("111", "Открыть окно", "newpage1.html", "600", "1200");

Параметры: идентификатор диалога, заголовок окна, URL-адрес страницы, высота и ширина страницы.

Открытие страницы с процентным соотношением:

OpenDialog("111", "Открыть окно", "newpage1.html", "70", "80",null,null,"%");

Примечание: восьмой параметр определяет ширину и высоту в единицах измерения, если он не указан, по умолчанию используются пиксели.

После закрытия основной страницы вызывается функция обратного вызова:

OpenDialog("222", "Закрыть окно с функцией обратного вызова", "newpage1.html", "600", "1200", AfterClose);

Основная страница вызывает функцию обратного вызова после закрытия диалогового окна:

OpenDialog("333", "Функция обратного вызова с возвращаемым значением", "newpage1.html", "600", "1200", AfterCloseWithReturn);
function AfterCloseWithReturn(ReturnValue) {
        alert("page1 возвращает параметр:" + ReturnValue);
 }

Диалоговое окно закрывается и основная страница получает возвращаемое значение:

 CloseDialog();

Закрытие диалогового окна с передачей возвращаемого значения и использованием функции обратного вызова на основной странице:

CloseDialog("page1 передаёт 222222");

Обратите внимание, что при закрытии диалогового окна OpenDialog не требуется передавать параметры, либо передавать возвращаемое значение. При закрытии диалогового окна OpenTopDialog необходимо передать два параметра: возвращаемое значение и идентификатор диалогового окна. Если возвращаемое значение не требуется, можно передать null. Если одна и та же страница открывается с помощью OpenDialog и OpenTopDialog, оба параметра должны быть переданы.

Открываем страницу в верхнем окне, обычно используется во фрейме:

OpenTopDialog("777777", "Функция обратного вызова с параметром", "newpage2.html", "500", "1000", AfterCloseWithReturn, "page1-page2 передаёт параметр");

Закройте верхнее окно:

CloseDialog("page2 передаёт 111111","page3");

Примечание: метод CloseDialog при закрытии диалогов OpenDialog или OpenTopDialog не требует передачи параметров, либо передачи возвращаемого значения. Или же при закрытии диалога OpenTopDialog обязательно нужно передать два параметра — возвращаемое значение и идентификатор диалога. Если не нужно возвращаемое значение, передаётся null. Если одну и ту же страницу нужно открыть как через OpenDialog, так и через OpenTopDialog, то оба параметра обязательны.

Откройте обычное окно предупреждения:

 OpenAlert("Предупреждение", "Пожалуйста, завершите обработку в установленный срок!");

После закрытия окна предупреждения вызывается функция обратного вызова.

OpenAlert("Предупреждение", "Пожалуйста, завершите обработку в установленный срок!",AfterClose);

Откройте окно успешного сообщения:

OpenSuccess("Предупреждение", "Пожалуйста, завершите обработку в установленный срок!");

Откройте окно предупреждающего сообщения:

 OpenWaring("Предупреждение", "Пожалуйста, завершите обработку в установленный срок!",null,"Знаю");

Откройте окно сообщения об ошибке:

 OpenFail("Предупреждение", "Пожалуйста, завершите обработку в установленный срок!");

Откройте подтверждающее сообщение:

OpenConfirm("Подтверждение", "Удалить текущие данные", function () {
                    OpenSuccess("Сообщение", "Удаление успешно!");
                });
OpenConfirm("Подтверждение", "Удалить текущие данные", function () {

                }, "Подтвердить удаление", "Отменить операцию");
``` 1. Компонент common-table имеет встроенные функции множественного выбора (showCheckBox), номера строки (showIndex), редактирования (showEdit, handleEdit) и удаления (showDelete, handleDelete).

2. В компоненте common-table есть встроенный компонент управления страницами. Он принимает параметры page-Index и page-Size. Предоставляет событие on-pageindexchange для изменения номера страницы и метод on-load для обновления данных таблицы при загрузке.

3. Структура данных списка в компоненте common-table задаётся следующим кодом:
```vue
<template slot="column">
    <el-table-column prop="TableName" header-align="center" align="left" label="表名">
    </el-table-column>
</template>
  1. Код для объявления настраиваемой операции столбца в компоненте common-table:
 <template slot="opbefore">
     <el-table-column prop="ColumnDetail" header-align="center" align="center" label="表结构" width="100">
      <template slot-scope="scope">
         <el-button type="danger" size="mini" v-on:click="columnDetail(scope.row)">表结构
         </el-button>
      </template>
    </el-table-column>
</template>

Использование компонента дерева

  1. Поддержка одиночного выбора: указать tree-Model="single".
 <common-tree :tree-data="treeData" tree-Model="single" :tree-select-value="form.OUGuid"
      v-on:node-select-change="nodeChange" :tree-body-width="630">
 </common-tree>
  1. Поддержка множественного выбора: указать tree-Model="multi".
 <common-tree :tree-data="ouTreeData" tree-Model="multi" :tree-select-array="ouList"
    v-on:node-select-change="ouNodeChange" :tree-body-width="650" :tree-body-height="220"
    :only-leaf="true">
 </common-tree>
  1. Поддержка отображения дерева: по умолчанию tree-Model="normal".
 <common-tree :tree-data="treeData" :tree-body-height="treeHeight" v-on:tree-node-          click="nodeClick">
 </common-tree>
  1. Свойства дерева:
  • treeHolder — текст, который отображается, когда данные не заданы;
  • treeSelectArray — массив значений, передаваемых при множественном выборе;
  • treeSelectValue — значение, передаваемое при одиночном выборе;
  • treeData — источник данных;
  • treeModel — тип отображения дерева;
  • disabled — возможность редактирования выбранного значения при одиночном или множественном выборе;
  • onlyLeaf — выбор только конечных узлов;
  • showSearchInput — отображение окна поиска в дереве;
  • treeBodyHeight — высота элемента управления;
  • treeBodyWidth — ширина элемента управления.
  1. События дерева:
  • node-select-change — событие выбора узла дерева (для одиночного выбора возвращается строка, для множественного — массив);
  • tree-node-click — событие клика по узлу дерева (поддерживается только для отображения дерева).

Использование элемента управления загрузкой

  1. Обычная загрузка файлов: указать controltype="upload", передать groupguid (идентификатор группы) и grouptype (тип группы для файлов одной категории).
 <common-upload :groupguid="form.RowGuid" :grouptype="GroupType" controltype="upload">
 </common-upload>
  1. Загрузка изображений: указать controltype="image".
 <common-upload :groupguid="form.RowGuid" :grouptype="GroupType" controltype="image">
 </common-upload>

Настройка меню

Меню администрирования: система управления — управление модулями. Выберите родительский модуль, нажмите кнопку «Добавить модуль», введите название модуля и его маршрут, например, «Управление отделами: Frame/OU/List».

Меню управления правами: управление правами — управление правами модулей. Найдите нужный модуль, нажмите «Изменить», установите права для отделов, пользователей и ролей. Войдите с соответствующими учётными данными, чтобы увидеть меню. Если вы настроили только права для подменю, а не для родительского меню, система автоматически заполнит их.

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

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

1
https://api.gitlife.ru/oschina-mirror/code2roc-FastExecutor.git
git@api.gitlife.ru:oschina-mirror/code2roc-FastExecutor.git
oschina-mirror
code2roc-FastExecutor
code2roc-FastExecutor
master