|
|
@@ -115,42 +115,30 @@ class GameConditionItemController extends AdminController
|
|
|
->options(GameConditionGroup::pluck('name', 'id'))
|
|
|
->required();
|
|
|
|
|
|
- // 使用when方法根据条件类型显示不同的target_id字段
|
|
|
+ // 简化表单,不使用when方法
|
|
|
$form->select('condition_type', '条件类型')
|
|
|
->options(CONDITION_TYPE::getAll())
|
|
|
- ->required()
|
|
|
- ->when(CONDITION_TYPE::LAND_LEVEL->value, function (Form $form) {
|
|
|
- // 土地等级条件
|
|
|
- $form->select('target_id', '土地类型')
|
|
|
- ->options(FarmLandType::pluck('name', 'id'))
|
|
|
- ->required()
|
|
|
- ->help('选择要检查的土地类型');
|
|
|
- })
|
|
|
- ->when(CONDITION_TYPE::HOUSE_LEVEL->value, function (Form $form) {
|
|
|
- // 房屋等级条件
|
|
|
- $form->hidden('target_id')->default(0);
|
|
|
- })
|
|
|
- ->when(CONDITION_TYPE::PET_LEVEL->value, function (Form $form) {
|
|
|
- // 宠物等级条件
|
|
|
- $form->select('target_id', '宠物')
|
|
|
- ->options(PetConfig::pluck('name', 'id'))
|
|
|
- ->required()
|
|
|
- ->help('选择要检查的宠物');
|
|
|
- })
|
|
|
- ->when(CONDITION_TYPE::ITEM_COUNT->value, function (Form $form) {
|
|
|
- // 物品持有数条件
|
|
|
- $form->select('target_id', '物品')
|
|
|
- ->options(Item::pluck('name', 'id'))
|
|
|
- ->required()
|
|
|
- ->help('选择要检查的物品');
|
|
|
+ ->required();
|
|
|
+
|
|
|
+ // 根据条件类型显示不同的提示信息
|
|
|
+ $form->select('target_id', '目标ID')
|
|
|
+ ->options(function () {
|
|
|
+ $conditionType = request()->input('condition_type');
|
|
|
+
|
|
|
+ // 根据条件类型返回不同的选项
|
|
|
+ if ($conditionType == CONDITION_TYPE::LAND_LEVEL->value) {
|
|
|
+ return FarmLandType::pluck('name', 'id')->toArray();
|
|
|
+ } elseif ($conditionType == CONDITION_TYPE::PET_LEVEL->value) {
|
|
|
+ return PetConfig::pluck('name', 'id')->toArray();
|
|
|
+ } elseif ($conditionType == CONDITION_TYPE::ITEM_COUNT->value) {
|
|
|
+ return Item::pluck('name', 'id')->toArray();
|
|
|
+ } elseif ($conditionType == CONDITION_TYPE::CURRENCY_COUNT->value) {
|
|
|
+ return FundCurrencyModel::pluck('name', 'id')->toArray();
|
|
|
+ }
|
|
|
+
|
|
|
+ return [];
|
|
|
})
|
|
|
- ->when(CONDITION_TYPE::CURRENCY_COUNT->value, function (Form $form) {
|
|
|
- // 代币持有数条件
|
|
|
- $form->select('target_id', '代币')
|
|
|
- ->options(FundCurrencyModel::pluck('name', 'id'))
|
|
|
- ->required()
|
|
|
- ->help('选择要检查的代币');
|
|
|
- });
|
|
|
+ ->help('根据条件类型不同,表示土地类型ID、宠物ID、物品ID、代币ID等。房屋等级条件可填0。');
|
|
|
|
|
|
$form->select('operator', '比较运算符')
|
|
|
->options(CONDITION_OPERATOR::getAll())
|
|
|
@@ -177,25 +165,16 @@ class GameConditionItemController extends AdminController
|
|
|
$form->display('created_at', '创建时间');
|
|
|
$form->display('updated_at', '更新时间');
|
|
|
|
|
|
- // 添加JavaScript代码,处理房屋等级条件的target_id
|
|
|
+ // 添加简单的JavaScript代码,处理条件类型变化
|
|
|
$form->html(<<<HTML
|
|
|
<script>
|
|
|
$(function() {
|
|
|
// 监听条件类型变化
|
|
|
$('select[name="condition_type"]').on('change', function() {
|
|
|
- // 如果选择的是房屋等级条件,确保target_id为0
|
|
|
- if ($(this).val() == '2') { // HOUSE_LEVEL
|
|
|
- $('input[name="target_id"]').val(0);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- // 表单提交前的处理
|
|
|
- $('form').on('submit', function() {
|
|
|
- // 如果选择的是房屋等级条件,确保target_id为0
|
|
|
- if ($('select[name="condition_type"]').val() == '2') { // HOUSE_LEVEL
|
|
|
- $('input[name="target_id"]').val(0);
|
|
|
- }
|
|
|
- return true;
|
|
|
+ // 刷新页面,传递条件类型参数
|
|
|
+ var url = new URL(window.location.href);
|
|
|
+ url.searchParams.set('condition_type', $(this).val());
|
|
|
+ window.location.href = url.toString();
|
|
|
});
|
|
|
});
|
|
|
</script>
|