开发一个基于对话框的删除功能

发表于 2025-07-29 11:12:05
阅读 6

页面

class role extends tfpage {
    protected function onLoad(){

    }
}

接口

class role extends tfrestfulAPI {
    protected function onPOST_delete(){
        // parameters validate
        $resourceValue = $this->tfphp->getRequest()->getResourceValue();
        // build
        $tfcrudBuilder = new tfcrudBuilder($this->tfphp);
        $ret = $tfcrudBuilder->buildUpdate((new role($this->tfphp))->getSG("roles"), [
            "roleId"=>$resourceValue
        ], [
            "roleStat"=>role::T_STAT_DELETED
        ], [
            "errorMapping"=>[
                2=>["errcode"=>110002, "errmsg"=>"角色不存在"],
                3=>["errcode"=>110003, "errmsg"=>"删除角色失败"]
            ]
        ]);
        $this->JSONData($ret);
    }
}

视图

html

<!-- delete form -->
<div class="dialog delete-form crud-form-dialog">
    <form action="<% URL('api/role/_delete') %>" method="post">
        <div class="title">
            <div class="text">删除角色</div>
            <div class="tools">
                <a data-dialog-button="close">X</a>
            </div>
        </div>
        <div class="content" style="width: 25rem;">
            <p>删除角色</p>
            <div class="form-horizontal my-container">
                <div class="form-row row">
                    <label class="form-label col2">角色名称</label>
                    <div class="col8">
                        <input type="text" name="role" class="form-control" readonly="readonly" />
                    </div>
                </div>
                <div class="form-row row">
                    <div class="col2">&nbsp;</div>
                    <div class="col8">
                        <button class="btn btn-apply">删除</button>
                    </div>
                </div>
            </div>
        </div>
    </form>
</div>

js

$("[data-row-action]").unbind().click(function(e){
    e.stopImmediatePropagation();
    dataRowId = $(this).attr("data-row-id");
    dataRowAction = $(this).attr("data-row-action");
    $.get("<% URL('api/role/') %>" + dataRowId, function(data){
        if(data){
            switch (dataRowAction){
                case "delete":
                    $actionFormDialog = $(".role-box .delete-form").tfdialog({
                        onShow: function(){
                            $(this.object).find("form").trigger("reset");
                            $(this.object).tfform({
                                onMakeFormAction: function(){
                                    return "<% URL('api/role/') %>" + dataRowId + "/_delete";
                                },
                                defaultData: {
                                    "role": data.data.roleName
                                },
                                onPostValidateError: formOnPostValidateError,
                                onProcessSuccess: formOnProcessSuccess,
                                onProcessError: formOnProcessError
                            });
                        }
                    });
                    break;
            }
        }
    });
});

快去试试吧~