Данный проект представляет собой фреймворк для бэкенд-разработчиков на Laravel, основанный на Vue Antd Admin. Он предоставляет возможность легко и быстро создавать различные виды взаимодействия в бэкенде, используя простую конфигурацию.
Проект лицензирован под Apache 2.0. Выпуски доступны по ссылке: https://github.com/similing4/AntOA/releases/latest.
Документация доступна по ссылкам:
Мы предоставляем скрипт для установки одним кликом под PaaS, но некоторые части требуют ручной настройки:
wget http://similing.gitee.io/antoa/install.sh && chmod +x install.sh && ./install.sh
Пример кода на PHP:
class RaceController extends AntOAController {
public function __construct(AuthInterface $auth) {
parent::__construct($auth);
}
/**
* 初始化Grid объекта
* @param Grid $grid
*/
public function grid(Grid $grid) {
$sql = DB::table("race_register")
->groupBy("race_id")
->select(['race_id', DB::raw('count(id) as reg_count')])
->toSql();
$chooseUser = (new GridListEasy(new class(DB::table("race_register")) extends DBListOperator {
public function where($column, $operator = null, $value = null, $boolean = 'and') {
if ($column == "id")
return parent::where("race_id", $operator, $value, $boolean);
return parent::where($column, $operator, $value, $boolean);
}
}))->columnText("game_uid", "雀魂UID")
->columnText("game_nickname", "雀魂昵称")
->filterHidden('id');
$grid->list((new class(DB::table("race as race")->leftJoin(DB::raw("(" . $sql . ") reg"), DB::raw('reg.race_id'), '=', 'race.id')) extends DBListOperator {
public function where($column, $operator = null, $value = null, $boolean = 'and') {
return parent::where("race." . $column, $operator, $value, $boolean);
}
public function select($columns) {
$columns2 = [];
foreach ($columns as $r) {
if ($r != "reg_count")
$columns2[] = "race." . $r . " as " . $r;
else
$columns2[] = DB::raw("reg.reg_count as reg_count");
}
return parent::select($columns2);
}
})->orderBy('start_time', "desc"))
->columnText('id', 'ID')
->columnText('name', '比赛名称')
->columnText('reg_count', '报名人数')
->columnEnum('status', '状态', [
new EnumOption(0, "不可报名"),
new EnumOption(1, "可报名")
])
->columnRichDisplay('detail_url', '报名链接')
->filterText("name", "比赛名称")
->rowNavigateButton(new class("/race/register/list", "报名记录", "primary") extends ListRowButtonNavigate {
public function calcButtonParam(UrlParamCalculator $calculator) {
return [new UrlParamCalculatorParamItem("race_id", $calculator->getRowParamByKey("id")->val)];
}
public function judgeIsShow(UrlParamCalculator $calculator) {
return true;
}
})
->rowNavigateButton(new class("/race/group/list", "比赛分组", "primary") extends ListRowButtonNavigate {
public function calcButtonParam(UrlParamCalculator $calculator) {
return [new UrlParamCalculatorParamItem("race_id", $calculator->getRowParamByKey("id")->val)];
}
public function judgeIsShow(UrlParamCalculator $calculator) {
return true;
}
});
$grid->createForm(new class(DB::table("race")) extends DBCreateOperator {
})
->columnText('name', '比赛名称')
->columnTimestamp('start_time', '比赛开始时间')
->columnTimestamp('register_end_time', '报名截止时间')
->columnRichText('money_explain', '奖金介绍')
->columnRichText('race_explain', '比赛简介')
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )