Your Name 8 月之前
父節點
當前提交
04f6a7df41

+ 14 - 0
UCore/DcatAdmin/FormHelper.php

@@ -107,6 +107,20 @@ class FormHelper
         return $this->form->select($field, $label)->options($this->useing($field, $enmu));
     }
 
+    public function selectOptionCast($field,   $label = null)
+    {
+        $modeClass = get_class($this->form->repository()->model());
+        $cates = $this->form->repository()->model()->getCasts();
+//        dump($cates);
+        $enmu  = $cates[$field] ?? "";
+        if ($enmu === '') {
+            throw new \Exception("$field is not a model $modeClass casts");
+        }
+        $values  = $enmu::getValueDescription();
+
+        return $this->form->select($field, $label)->options( $values);
+    }
+
     /**
      * 多 select
      *

+ 2 - 16
app/Module/GameItems/AdminControllers/ItemController.php

@@ -3,9 +3,7 @@
 namespace App\Module\GameItems\AdminControllers;
 
 use App\Module\GameItems\Enums\ITEM_TYPE;
-use App\Module\GameItems\Enums\ITEM_RARITY;
 use App\Module\GameItems\Models\ItemCategory;
-use App\Module\GameItems\Models\Item;
 use App\Module\GameItems\Repositorys\ItemRepository;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
@@ -41,8 +39,6 @@ class ItemController extends AdminController
             $grid->column('name', '名称');
             $grid->column('category.name', '分类');
             $helper->columnModelCats('type');
-
-            $grid->column('icon', '图标')->image('', 50, 50);
             $grid->column('is_unique', '单独属性')->bool();
             $grid->column('max_stack', '最大堆叠');
             $grid->column('tradable', '可交易')->bool();
@@ -63,7 +59,6 @@ class ItemController extends AdminController
                 );
                 $helper->equalRadioModelCats('type','类型');
 
-                $filter->equal('rarity', '稀有度')->select(ITEM_RARITY::all());
                 $filter->equal('is_unique', '单独属性')->radio([
                                                                    1 => '是',
                                                                    0 => '否',
@@ -99,7 +94,6 @@ class ItemController extends AdminController
             $show->field('description', '描述');
             $show->field('category.name', '分类');
             $helper->fieldModelCats('type');
-            $show->field('icon', '图标')->image();
             $show->field('is_unique', '单独属性')->as(function ($isUnique) {
                 return $isUnique ? '是' : '否';
             });
@@ -155,16 +149,8 @@ class ItemController extends AdminController
             $form->select('category_id', '分类')
                 ->options(ItemCategory::pluck('name', 'id'))
                 ->required();
-            $form->select('type', '类型')
-                ->options(ITEM_TYPE::all())
-                ->required();
-            $form->select('rarity', '稀有度')
-                ->options(ITEM_RARITY::all())
-                ->required();
-            $form->image('icon', '图标')
-                ->uniqueName()
-                ->autoUpload()
-                ->required();
+            $helper->selectOptionCast('type','类型');
+
             $form->switch('is_unique', '单独属性')
                 ->default(false);
             $form->number('max_stack', '最大堆叠')

+ 30 - 6
app/Module/GameItems/Enums/ITEM_TYPE.php

@@ -9,12 +9,36 @@ use UCore\Enum\EnumToInt;
 enum ITEM_TYPE: int
 {
     use EnumCore,EnumExpression,EnumToInt;
-    case USABLE = 1;      // 可使用物品
-    case EQUIPMENT = 2;   // 可装备物品
-    case CRAFTABLE = 3;   // 可合成物品
-    case QUEST = 4;       // 任务物品
-    case CHEST = 5;       // 宝箱
-    case MATERIAL = 6;    // 材料
+
+    /**
+     * 可使用物品
+     */
+    case USABLE = 1;
+    
+    /**
+     * 可装备物品
+     */
+    case EQUIPMENT = 2;
+    
+    /**
+     * 可合成物品
+     */
+    case CRAFTABLE = 3;
+    
+    /**
+     * 任务物品
+     */
+    case QUEST = 4;
+    
+    /**
+     * 宝箱
+     */
+    case CHEST = 5;
+    
+    /**
+     * 材料
+     */
+    case MATERIAL = 6;
 
 
 

+ 24 - 0
app/Module/GameItems/Validators/IsExpiredValidator.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Module\GameItems\Validators;
+
+use UCore\Validator;
+
+/**
+ * 物品是否过期
+ *
+ */
+class IsExpiredValidator extends Validator
+{
+
+    /**
+     * @param mixed $value item_user 表的 id
+     * @param array $data
+     * @return bool
+     */
+    public function validate(mixed $value, array $data): bool
+    {
+        return true;
+    }
+
+}