laravel-admin form表单控件篇——apiSelect(api查询结果作为选项)

14 篇文章 0 订阅
6 篇文章 0 订阅

一、效果展示

 

二、使用说明 

(1)资源:apiSelect控件

(2)控件注册

下载资源后,放置到项目指定目录中(app/Admin/Extensions/Form),然后在app/Admin/bootstrap.php文件中注册

Form::extend('apiSelect', \App\Admin\Extensions\Form\ApiSelect\ApiSelect::class);

(3)控件使用说明

接下来可以像form表的的其他控件一样使用。

第一种:无默认选项,直接通过api查询。

$form->apiSelect('apply_id', '客户姓名')
            ->url(route('field.api_select'))
            ->attach([
                'type' => SelectLoanFieldController::IS_LOAN_FORM,
            ])->help('无默认选项');

该模式主要有两个要点:url()方法和attach()方法。url方法设置请求api ,attach方法设置请求附带的数据(参数attach的值);

第二种:有默认选项(如果设置url则通过api查询,否则在默认选项中匹配关键词)。

$form->apiSelect('apply_id', '客户姓名')
            ->url(route('field.api_select'))
            ->attach([
                'type' => SelectLoanFieldController::IS_LOAN_FORM,
            ])
            ->options([
                'S001' => '孙丽华',
                'S002' => '邓超',
                'S003' => '郭敬明',
                'S004' => '王力宏',
                'S005' => '周杰伦',
                'S006' => '林俊杰',
                'S007' => '邓紫棋',
                'S008' => '黄晓明',
            ])->help('有默认选项');

该模式比第一种不同的是,通过options方法设置默认选项,并无其他差别。

第三种:启用默认选中功能(当选项中只有一个选项时,将默认选中这个选项)。

$form->apiSelect('apply_id', '客户姓名')
            ->url(route('field.api_select'))
            ->defaultSelect()
            ->attach([
                'type' => SelectLoanFieldController::IS_LOAN_FORM,
            ])->help('启用当查询选项中只有一个选项时,默认选中');

该模式比第一种不同的是,通过defaultSelect()方法启动了该功能。

第四种:多选功能。

 $form->apiSelect('apply_id', '客户姓名')
            ->url(route('field.api_select'))
            ->attach([
                'type' => SelectLoanFieldController::IS_LOAN_FORM,
            ])
            ->multiple()
            ->help('启用多选项');

该模式比第一种不同的是,通过multiple()方法启动了多选功能。

(4)事件监听设置

a、change事件 changed(javascriptFunction),当值发生变化时触发

b、beforeUpdate事件  beforeUpdate(javascriptFunction),当options发生变化时,刷新前触发

c、updated事件  updated(javascriptFunction),当options发生变化时,刷新后触发

d、beforeClear事件 beforeClear(javascriptFunction),当点击选项框右侧“x”号清空时,清空前触发

c、cleared事件 cleared(javascriptFunction),当点击选项框右侧“x”号清空时,清空后触发

$form->apiSelect('apply_id', '客户姓名')
            ->url(route('field.api_select'))
            ->attach([
                'type' => SelectLoanFieldController::IS_LOAN_FORM,
            ])
            ->changed('function(data){  console.log("changed", data); }') // 值发生变化时触发
            ->beforeUpdate('function(data){ console.log("beforeUpdate", data); }') // 选项更新前触发
            ->updated('function(data){ console.log("updated", data); }') // 选项更新后触发
            ->beforeClear('function(data){ console.log("beforeClear", data); }') // 清空所有值前触发
            ->cleared('function(data){ console.log("cleared", data); }') // 清空所有值后触发
            ->help('无默认选项');

事件回调参数data内容为:

{
    period: "changed",
    options: {
        value1: text1,
        value2: text2,
        value3: text3
    },
    value: {
        value1: text1, 
    },
    apiResult: {},
    data: {
        _token: "laravel-admin的token值,由csrf_token()生成"
    },
    attach: {}, // 该内容由attach()方法设置
}

 

(5)api实现介绍。

api接收参数:

{
    q: "关键词",
    attach: {}, # 由attach()方法设置
    _token: "laravel-admin的token值,由csrf_token()生成"
}

api返回格式:

{
    value1: text1,
    value2: text2,
    value3: text3,
    value4: text4,
    value5: text5,
}

或者

{
    options: {
        value1: text1,
        value2: text2,
        value3: text3,
        value4: text4,
        value5: text5,
    },
    attach: {}
    ...
}

api返回的结果将通过参数的形式传递到事件回调中。

三、总结

以上为本次开发的控件的所有功能介绍,如有需要的可以下载apiSelect.rar资源,按照上述要求注册后即可正常使用。

开发环境:

Laravel框架: 5.5.44

Laravel-amidn: "~1.6",

php版本: 7.1

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值