image.png1、行添加自定义按钮

  1. <?php
  2. namespace app\controller;
  3. use app\BaseController;
  4. class User extends BaseController
  5. {
  6. use \tpScriptVueCurd\base\controller\Controller;
  7. public function init(): void
  8. {
  9. $this->title='人员信息';
  10. $this->md=\app\model\User::make($this);
  11. }
  12. /**
  13. * 列表按钮组左侧 (--模型中同样存在此方法--)
  14. * @param BaseModel $info 当前行信息
  15. * @param FieldCollection $fields
  16. * @param BaseModel|null $parentInfo
  17. * @param \think\model\Collection $list 列表信息
  18. * @return RowBtn[]|OpenBtn[]
  19. */
  20. public function getListRowBeforeBtns(BaseModel $info, FieldCollection $fields, ?BaseModel $parentInfo, \think\model\Collection $list): array
  21. {
  22. $btn=new RowBtn();
  23. $btn->btnTitle='作废';
  24. $btn->btnColor='#fa541c';
  25. $btn->modalTitle='填写作废信息';
  26. $btn->modalH='300px';
  27. //打开页面后要填写的字段信息。!!!如果没有字段信息,将会弹出一个确认操作,点击确认后直接执行saveUrl
  28. $btn->modalFields=FieldCollection::make([
  29. TextField::init('remark','作废理由')
  30. ->required(true),
  31. DateField::init('date_time','作废时间')
  32. ->showTime(true)
  33. ->editExplain('不填写默认为当前时间')
  34. ]);
  35. $btn->saveUrl=url('doNullify')->build();//处理填写信息的操作地址
  36. $btn->saveBtnTitle='确定作废';
  37. $btn2=new OpenBtn();
  38. $btn2->btnTitle='按钮2';
  39. $btn2->modalTitle='按钮2标题';
  40. //可以在新打开的页面中操作列表页面,根据JS对象window.listVue
  41. //比如操作成功后刷新列表(ajax请求结束后):
  42. //window.listVue.refreshTable();//刷新(父页面)列表
  43. //document.body.dispatchEvent(new Event('closeIframe'));//关闭当前页面
  44. $btn2->modalUrl='/index';
  45. $btn2->btnType='warning';
  46. return [
  47. $btn,$btn2,$btn3
  48. ];
  49. }
  50. /**
  51. * 列表按钮组右侧 (--模型中同样存在此方法--)
  52. * @param BaseModel $info 当前行信息
  53. * @param FieldCollection $fields
  54. * @param BaseModel|null $parentInfo
  55. * @param \think\model\Collection $list 列表信息
  56. * @return RowBtn[]|OpenBtn[]
  57. */
  58. public function getListRowAfterBtns(BaseModel $info, FieldCollection $fields, ?BaseModel $parentInfo, \think\model\Collection $list): array
  59. {
  60. return [];
  61. }
  62. }

2、修改详情、编辑按钮文字与打开窗口信息

<?php
namespace app\controller;

use app\BaseController;

class User extends BaseController
{
    use \tpScriptVueCurd\base\controller\Controller;

    public function init(): void
    {
        $this->title='人员信息';
        $this->md=\app\model\User::make($this);
    }



    /**
     * 对列表给到前端的数据进行处理
     * @param FunControllerIndexData $option
     * @return void
     */
    protected function indexData(FunControllerIndexData $option): void
    {
        foreach ($option->data as $v){
            //更改详情按钮
            /**
             * @var OpenBtn $showBtn
             */
            $showBtn=$v['showBtn'];
            $showBtn->btnTitle='详情';
            $showBtn->modalTitle='查看 '.$this->title.' 相关信息';
            $showBtn->modalUrl=url('show',[
                'base_id'=>$option->parentInfo&&!empty($option->parentInfo->id)?$option->parentInfo->id:0,
                'id'=>$v['id']
                ])->build();


            //更改修改按钮
            /**
             * @var OpenBtn $editBtn
             */
            $editBtn=$v['editBtn'];

            //更改添加下级按钮
            /**
             * @var OpenBtn $childAddBtn
             */
            $childAddBtn=$v['childAddBtn'];
        }
    }
}