Easyui—datagrid嵌套四层

关于Easyui 多层datagrid 列表数据
应用场景:如查询一个省有多少城市?一个城市有多少县区?一个县区多少乡镇。
用列表展示出来,并很直观感受出来
效果展示
图片.png

<div id="divLayout" class="easyui-layout layout easyui-fluid" data-options="fit:true" style="border-top: 1px solid #95b8e7; width:100%;height:100%;">
    <div style="padding:5px;background-color:#F4F4F4">
        <p>
            <input id="searchbox">
            <div id="combox" style="width:120px">
                <div data-options="name:'WorkOrder'">工单</div>
                <div data-options="name:'Prod'">物料号(品号)</div>
                <div data-options="name:'TraceNo'">追溯号</div>
            </div>
        </p>
    </div>
    <table id="dg"></table>
</div>
<script type="text/javascript">
    $(function () {
        $('#divLayout').layout('resize', {
            height: $(window).height() - 232
        });
        //js searchbox 加载 兼容IE
        $("#searchbox").searchbox({
            width: 250,
            height: 'auto',
            prompt: '请输入关键字',
            menu: "#combox", //combox 值
            searcher: function (value, name) {
                datagridloadData(1, 20, name, value, "TO");
            },
        });
    });

    //title
    var columnstitle = [
        { title: '工单', field: 'WorkOrder', width: 80 },
        { title: '类型', field: 'WorkOrderType', width: 50 },//formatter: function (value, rowData, rowIndex) { return type;}
        { title: '物料编码(品号)', field: 'Prod', width: 80 },
        { title: '物料名称', field: 'ProdName', width: 120 },
        { title: '追溯号', field: 'TraceNo', width: 80 },
        { title: '供应商代码', field: 'SupplierCode', width: 80 },
        { title: '客户品号', field: 'PartNo', width: 80 },
        { title: '(Part No.)', field: 'PartNoName', width: 80 },
        { title: '(D/C)', field: 'Dc', width: 80 },
        { title: '版本/型号', field: 'Rev', width: 80 },
        { title: '(LOT/DC)', field: 'LotDc', width: 80 },
        { title: '数量', field: 'OperationQty', width: 80 },
        { title: '仓库代码', field: 'Warehouse', width: 80 },
        { title: '仓库描述', field: 'WareHouseDesc', width: 100 },
        { title: '仓库状态', field: 'StorageStatus', width: 80 },
        { title: '出库操作人员', field: 'Creator', width: 80 },
        { title: '出库日期', field: 'CreateDate', width: 80 }];

    //数据列表
    $(function () {
        $('#dg').datagrid({
            //一级列表
            view: detailview,
            autoRowHeight: true,
            fitColumns: true,
            singleSelect: false,
            rownumbers: true,
            striped: true,
            height: '80%',
            loadMsg: '@Message.Loading',
            columns: [columnstitle],
            pagination: true,
            pageSize: 20,
            pageList: [10, 20, 30, 40, 50],
            detailFormatter: function (index, row) {
                //二级列表的分页
                return '<div style="padding:2px"><table class="ddv" data-options="singleSelect:true,striped:true,pagination:true,pageSize:20,pageList : [10,20,30,40,50]"></table></div>';
            },
            onExpandRow: function (index2, row) {
                //二级列表,注意此时行索引为index2
                var ddv = $(this).datagrid('getRowDetail', index2).find('table.ddv');
                ddv.datagrid({
                    url: "@resourceHost/@Const.WEB_AREA_REPORTS/WorkOrderRetrospect/GetWorkOrderRetrospect/",//器件
                    queryParams: {
                        //page: 1,rows: 10,
                        searchName: "QJ",
                        searchValue: row.Prod,
                        selectType: "QJ"
                    },
                    view: detailview,
                    autoRowHeight: true,
                    fitColumns: true,
                    singleSelect: false,
                    rownumbers: true,
                    loadMsg: '@Message.Loading',
                    height: 'auto',
                    columns: [columnstitle],
                    detailFormatter: function (index, row) {
                        //三级列表的分页
                        return '<div style="padding:2px"><table class="dddv" data-options="singleSelect:true,striped:true,pagination:true,pageSize:10,pageList : [10,20,30,40,50]"></table></div>';
                    },
                    onExpandRow: function (index3, row) {
                        //三级列表,此时行索引为index3
                        var dddv = $(this).datagrid('getRowDetail', index3).find('table.dddv');
                        dddv.datagrid({
                            url: "@resourceHost/@Const.WEB_AREA_REPORTS/WorkOrderRetrospect/GetWorkOrderRetrospect/",//模块
                            queryParams: {
                                //page: 1,rows: 10,
                                searchName: "MODULE",
                                searchValue: row.Prod,
                                selectType: "MODULE"
                            },
                            view: detailview,
                            autoRowHeight: true,
                            fitColumns: true,
                            singleSelect: false,
                            rownumbers: true,
                            loadMsg: '@Message.Loading',
                            height: 'auto',
                            columns: [columnstitle],
                            detailFormatter: function (index, row) {
                                //四级列表的分页
                                return '<div style="padding:2px"><table class="ddddv" data-options="singleSelect:true,striped:true,pagination:true,pageSize:10,pageList : [10,20,30,40,50]"></table></div>';
                            },
                            onExpandRow: function (index4, row) {
                                //四级列表,此时行索引为index3
                                var ddddv = $(this).datagrid('getRowDetail', index4).find('table.ddddv');
                                ddddv.datagrid({
                                    url: "@resourceHost/@Const.WEB_AREA_REPORTS/WorkOrderRetrospect/GetWorkOrderRetrospect/",//明细
                                    queryParams: {
                                        //page: 1,rows: 10,
                                        searchName: "MODULE",
                                        searchValue: row.Prod,
                                        selectType: "MODULE"
                                    },
                                    autoRowHeight: true,
                                    fitColumns: true,//改变横向滚动条
                                    singleSelect: false,//去掉选中效果
                                    rownumbers: true,
                                    loadMsg: '@Message.Loading',
                                    height: 'auto',
                                    columns: [columnstitle],
                                    //四级
                                    onLoadSuccess: function () {
                                        setTimeout(function () {
                                            dddv.datagrid('fixDetailRowHeight', index4);
                                            //在加载成功时,获取父列表的明细高度,使其适应明显点开后的高度,注意此时的行索引为index3
                                            dddv.datagrid('fixRowHeight', index4);
                                            //在加载成功时,获取子明细点开后父列表的列高,防止在超过加载成功前的高度时,出现垂直方向的滑动条
                                            $('#dg').datagrid('fixDetailRowHeight', index4);
                                            //在加载成功时,获取一接列表的明细高度,使其适应前面父列表和子列表的高度变化,注意此时的行索引为index2
                                            $('#dg').datagrid('fixRowHeight', index4);
                                            //在加载成功时,获取父列表的明细点开后爷爷列表的高度,防止在超过加载成功前的高度时,出现垂直方向的滑动条
                                        }, 0);
                                    },
                                    onResize: function () {
                                        dddv.datagrid('fixDetailRowHeight', index4);
                                        $('#dg').datagrid('fixDetailRowHeight', index4);
                                    },
                                });
                                $('#dg').datagrid('fixDetailRowHeight', index4);
                            },
                            //三级
                            onLoadSuccess: function () {
                                $('#dg').datagrid('fixRowHeight', index3);
                                setTimeout(function () {
                                    ddv.datagrid('fixDetailRowHeight', index3);
                                    ddv.datagrid('fixRowHeight', index3);
                                    $('#dg').datagrid('fixDetailRowHeight', index3);
                                    $('#dg').datagrid('fixRowHeight', index3);
                                }, 0);
                            },
                            onResize: function () {
                                ddv.datagrid('fixDetailRowHeight', index3);
                                $('#dg').datagrid('fixDetailRowHeight', index3);
                            },
                        });
                        $('#dg').datagrid('fixDetailRowHeight', index3);
                    },
                    //二级
                    onCollapseRow: function (index2, row3) {
                        setTimeout(function () {
                            $('#dg').datagrid('fixDetailRowHeight', index2);
                            $('#dg').datagrid('fixRowHeight', index2);
                        }, 0);
                    },
                    onLoadSuccess: function () {
                        setTimeout(function () {
                            $('#dg').datagrid('fixDetailRowHeight', index2);
                            $('#dg').datagrid('fixRowHeight', index2);
                        }, 0);
                    },
                    onResize: function () {
                        $('#dg').datagrid('fixRowHeight', index2);
                    }
                });
                $('#dg').datagrid('fixDetailRowHeight', index2);
            }
        });

        //获取分页对象
        //var pager = $("#dg").datagrid("getPager");
        $('#dg').datagrid('getPager').pagination({
            onBeforeRefresh: function (pageNumber, pageSize) { //刷新
                console.log('before refresh : pageNumber:' + pageNumber + ',pageSize:' + pageSize); //这个也没有出现
            },
            onSelectPage: function (pageNumber, pageSize) {
                //$(this).pagination('loading');
                //序号连序
                var gridOpts = $('#dg').datagrid('options');
                gridOpts.pageNumber = pageNumber;
                gridOpts.pageSize = pageSize;
                var name = $('#searchbox').searchbox('getName');   //搜索框
                var value = $('#searchbox').searchbox('getValue'); //值
                datagridloadData(pageNumber, pageSize, name, value, "TO");
            }
        });

    });

    //请求方法
    function datagridloadData(page, rows, name, value, Type) {
        $.ajax({
            url: "@resourceHost/@Const.WEB_AREA_REPORTS/WorkOrderRetrospect/GetWorkOrderRetrospect",
            method: 'POST',
            data: { page: page, rows: rows, searchName: name, searchValue: value, selectType: Type },
            success: function (data) {
                //序号连序
                var gridOpts = $('#dg').datagrid('options');
                gridOpts.pageNumber = page;
                gridOpts.pageSize = rows;
                $('#dg').datagrid('loadData', data);//绑定datagrid
            }
        });
    }

</script>

注意项:
1、searchbox 组件 在ie下不支持在HTML写组件渲染关系
2、datagrid嵌套的子列表无法在外面用ajax请求,使用url 直接请求,如果参数过多不用拼接 ?a=1&=2 可用queryParams ,并开启 view: detailview ;在onExpandRow 写子列表渲染js

url: "@resourceHost/@Const.WEB_AREA_REPORTS/WorkOrderRetrospect/GetWorkOrderRetrospect/",//模块
queryParams: {
	//page: 1,rows: 10,
	searchName: "MODULE",
	searchValue: row.Prod,
	selectType: "MODULE"
},

3、注意层级关系,否则打不开,或是乱的

dddv.datagrid('fixDetailRowHeight', index4);
//在加载成功时,获取父列表的明细高度,使其适应明显点开后的高度,注意此时的行索引为index3
dddv.datagrid('fixRowHeight', index4);
//在加载成功时,获取子明细点开后父列表的列高,防止在超过加载成功前的高度时,出现垂直方向的滑动条
$('#dg').datagrid('fixDetailRowHeight', index4);
//在加载成功时,获取一接列表的明细高度,使其适应前面父列表和子列表的高度变化,注意此时的行索引为index2
$('#dg').datagrid('fixRowHeight', index4);

4、如第一层 分页无效,需单独渲染

//获取分页对象
//var pager = $("#dg").datagrid("getPager");
$('#dg').datagrid('getPager').pagination({
	onBeforeRefresh: function (pageNumber, pageSize) { //刷新
		console.log('before refresh : pageNumber:' + pageNumber + ',pageSize:' + pageSize); //这个也没有出现
	},
	onSelectPage: function (pageNumber, pageSize) {
		//$(this).pagination('loading');
		//序号连序
		var gridOpts = $('#dg').datagrid('options');
		gridOpts.pageNumber = pageNumber;
		gridOpts.pageSize = pageSize;
		var name = $('#searchbox').searchbox('getName');   //搜索框
		var value = $('#searchbox').searchbox('getValue'); //值
		datagridloadData(pageNumber, pageSize, name, value, "TO");
	}
});

5、如datagrid 分页 在第二页分后序号ID又从1开始,需要连序

//序号连序
var gridOpts = $('#dg').datagrid('options');
gridOpts.pageNumber = page;
gridOpts.pageSize = rows;

6、deom

@using System.Collections.Generic
@using Microsoft.AspNetCore.Http
@using Microsoft.AspNetCore.Http.Authentication
@using iROCK.Entity.Enum
@using iROCK.Resource
@using iROCK.Foundation.Web
@using System.Net.Http
@using System.IO
@using iROCK.Web
@using Microsoft.Extensions.Configuration
@using iROCK.Foundation.Web
@{
    var resourceHost = Context.GetResourceHost();
    Layout = "/Views/Shared/_LayoutEasyuiIndex.cshtml";
}@{ await Html.RenderPartialAsync("/Views/Shared/_PartialGlobalScript.cshtml"); }
@{ await Html.RenderPartialAsync("/Views/Shared/_PartialEasyuiDataGridExtentionScripts.cshtml"); }
<div id="divLayout" class="easyui-layout layout easyui-fluid" data-options="fit:true" style="border-top: 1px solid #95b8e7; width:100%;height:100%;">
    <div style="padding: 5px; background-color: #F4F4F4; font-size: 12px;">
        <span style="vertical-align:middle;">序列号</span>
        <input id="txtSerialNo" class="easyui-textbox" data-options="prompt:'序列号',panelWidth:420">
        <span style="padding-right:5px">
            <a id="butnsearch" class="easyui-linkbutton l-btn l-btn-small" onclick="doSearch()">
                <span class="l-btn-left"><span class="l-btn-text"><i class="fa fa-search"></i> 搜索</span></span>
            </a>
        </span>
    </div>
    <table id="dg"></table>
</div>
<script type="text/javascript">
    $(function () {
        $('#divLayout').layout('resize', {
            height: $(window).height() - 232
        });
    });

    function doSearch() {
        datagridloadData(1, 20, $("#txtSerialNo").val(), "MODULE");
    }

    function columnstype(type) {
        var columns;
        switch (type) {
            case "MODULE":
            case "DEVICE":
                columns = [[
                    {title: '@Label.SerialNo', field: 'SerialNo', width: 120},
                    { title: '类型', field: 'WorkOrderType', width: 100, formatter: function (value, rowData, rowIndex) { return type; } },
                    { title: '@Label.WorkOrder', field: 'WorkOrder', width: 120 },
                    { title: '@Label.LotNo', field: 'LotNo', width: 120 },
                    { title: '@Label.Status', field: 'Status', width: 120 },
                    { title: '@Label.RouteName', field: 'RouteName', width: 140 },
                    { title: '@Label.Operation', field: 'OperationDesc', width: 140 },
                    { title: '@Label.OperationTo', field: 'OperationToDesc', width: 140 },
                    { title: '@Label.PlatePackingNo', field: 'BottomMostPackingNo', width: 120 },
                    { title: '@Label.CartonNo', field: 'MiddlePackingNo', width: 120 },
                    { title: '@Label.ShippingBoxNo', field: 'TopMostPackingNo', width: 120 },
                    {
                        title: '@Label.SubObjectTypeAndNo', field: 'SubObjectTypeAndNo', width: 160,
                        formatter: function (value, row, index) {
                            if (row.SubObjectTypeAndNo.replace(/(^s*)|(s*$)/g, "").length > 0) {
                                var str = '<p style="color:red;">' + row.SubObjectTypeAndNo + '</p>';
                                return str;
                            }
                        }
                    },
                    {
                        title: '@Label.ComponentsSubProd', field: 'SubProd', width: 140,
                        formatter: function (value, row, index) {
                            if (row.SubObjectTypeAndNo.replace(/(^s*)|(s*$)/g, "").length > 0) {
                                var str = '<p style="color:red;">' + row.SubProd + '</p>';
                                return str;
                            }
                        }
                    },
                    { title: '@Label.UdaAndUdaValueNew', field: 'UdaAndUdaValueNew', width: 120 },
                    { title: '@Label.Operate', field: 'EmpNo', width: 100 },
                    { title: '@Label.OperatingTime', field: 'DateTmOut', width: 120 }
                ]];
                break;
            case "TO":
                columns = [[
                    { title: '@Label.TraceNo',field: 'TraceNo',  width: 180 },
                    { title: '@Label.ItemNo', field: 'Prod', width: 100 },
                    { title: '@Label.MaterialName',field: 'ProdName',  width: 130 },
                    { title: '@Label.SupplierCode',field: 'SupplierCode',  width: 100 },
                    { title: '@Label.CustomerProd',field: 'PartNo', width: 100 },
                    { title: '@Label.PartNo',field: 'PartNoName', width: 120 },
                    { title: '@Label.Dc',field: 'Dc', width: 120 },
                    { title: '@Label.Version',field: 'Rev', width: 100 },
                    { title: '@Label.LotDc',field: 'LotDc', width: 80 },
                    { title: '@Label.Qty',field: 'OperationQty', width: 130 },
                    { title: '@Label.WorkOrder',field: 'WorkOrder',  width: 130 },
                    { title: '@Label.WareHouseCode', field: 'Warehouse',  width: 80 },
                    { title: '@Label.WareHouseDesc',field: 'WareHouseDesc',  width: 80 },
                    { title: '@Label.OutputOperator',field: 'Creator', width: 130 },
                    { title: '@Label.DeliveryDate',field: 'CreateDate',  width: 140 }
                ]];
                break;
        }
        return columns;
    }
    //{value?}/{type?}
    //数据列表
    $(function () {
        $('#dg').datagrid({
            //一级列表
            view: detailview,
            autoRowHeight: true,
            fitColumns: true,
            singleSelect: false,
            rownumbers: true,
            striped: true,
            height: '80%',
            loadMsg: '@Message.Loading',
            columns: columnstype("MODULE"),
            pagination: true,
            pageSize: 20,
            pageList: [10, 20, 30, 40, 50],
            detailFormatter: function (index, row) {
                //二级列表的分页
                return '<div style="padding:2px"><table class="ddv" data-options="singleSelect:true,striped:true,pagination:true,pageSize:20,pageList : [10,20,30,40,50]"></table></div>';
            },
            onExpandRow: function (index2, row) {
                //二级列表,注意此时行索引为index2 器件 DEVICE
                var ddv = $(this).datagrid('getRowDetail', index2).find('table.ddv');
                ddv.datagrid({
                    url: "@resourceHost/@Const.WEB_AREA_REPORTS/WorkOrderRetrospect/GetWorkOrderRetrospect/",
                    queryParams: {
                        page: 1, rows: 10,
                        value: row.SubSerialNo,
                        type: "DEVICE"
                    },
                    view: detailview,
                    autoRowHeight: true,
                    fitColumns: true,
                    singleSelect: false,
                    rownumbers: true,
                    loadMsg: '@Message.Loading',
                    height: 'auto',
                    pageSize: 10,
                    pageList: [10, 20, 30, 40, 50],
                    columns: columnstype("DEVICE"),
                    detailFormatter: function (index, row) {
                        //三级列表的分页
                        return '<div style="padding:2px"><table class="dddv" data-options="singleSelect:true,striped:true,pagination:true,pageSize:10,pageList : [10,20,30,40,50]"></table></div>';
                    },
                    onExpandRow: function (index3, row) {
                        //三级列表,此时行索引为index3  TO
                        var dddv = $(this).datagrid('getRowDetail', index3).find('table.dddv');
                        dddv.datagrid({
                            url: "@resourceHost/@Const.WEB_AREA_REPORTS/WorkOrderRetrospect/GetWorkOrderRetrospect/",
                            queryParams: {
                                page: 1,rows: 10,
                                value: row.WorkOrder,
                                type: "TO"
                            },
                            autoRowHeight: true,
                            fitColumns: true,
                            singleSelect: false,
                            rownumbers: true,
                            loadMsg: '@Message.Loading',
                            height: 'auto',
                            columns: columnstype("TO"),
                            pageSize: 10,
                            pageList: [10, 20, 30, 40, 50],
                            view: detailview,
                            detailFormatter: function (index, row) {
                                //四级列表的分页
                                return '<div style="padding:2px"><table class="ddddv" data-options="singleSelect:true,striped:true,pagination:true,pageSize:10,pageList : [10,20,30,40,50]"></table></div>';
                            },
                            onExpandRow: function (index4, row) {
                                //四级列表,此时行索引为index3
                                var ddddv = $(this).datagrid('getRowDetail', index4).find('table.ddddv');
                                ddddv.datagrid({
                                    url: "@resourceHost/@Const.WEB_AREA_REPORTS/WorkOrderRetrospect/GetWorkOrderRetrospect/",//明细
                                    queryParams: {
                                        page: 1,rows: 10,
                                        value: row.SubSerialNo,
                                        type: "MODULE"
                                    },
                                    autoRowHeight: true,
                                    fitColumns: true,//改变横向滚动条
                                    singleSelect: false,//去掉选中效果
                                    rownumbers: true,
                                    loadMsg: '@Message.Loading',
                                    height: 'auto',
                                    columns: columnstype("TO"),
                                    pageSize: 10,
                                    pageList: [10, 20, 30, 40, 50],
                                    //四级
                                    onLoadSuccess: function () {
                                        setTimeout(function () {
                                            dddv.datagrid('fixDetailRowHeight', index4);
                                            //在加载成功时,获取父列表的明细高度,使其适应明显点开后的高度,注意此时的行索引为index3
                                            dddv.datagrid('fixRowHeight', index4);
                                            //在加载成功时,获取子明细点开后父列表的列高,防止在超过加载成功前的高度时,出现垂直方向的滑动条
                                            $('#dg').datagrid('fixDetailRowHeight', index4);
                                            //在加载成功时,获取一接列表的明细高度,使其适应前面父列表和子列表的高度变化,注意此时的行索引为index2
                                            $('#dg').datagrid('fixRowHeight', index4);
                                            //在加载成功时,获取父列表的明细点开后爷爷列表的高度,防止在超过加载成功前的高度时,出现垂直方向的滑动条
                                        }, 0);
                                    },
                                    onResize: function () {
                                        dddv.datagrid('fixDetailRowHeight', index4);
                                        $('#dg').datagrid('fixDetailRowHeight', index4);
                                    },
                                });
                                $('#dg').datagrid('fixDetailRowHeight', index4);
                            },
                            //三级
                            onLoadSuccess: function () {
                                $('#dg').datagrid('fixRowHeight', index3);
                                setTimeout(function () {
                                    ddv.datagrid('fixDetailRowHeight', index3);
                                    ddv.datagrid('fixRowHeight', index3);
                                    $('#dg').datagrid('fixDetailRowHeight', index3);
                                    $('#dg').datagrid('fixRowHeight', index3);
                                }, 0);
                            },
                            onResize: function () {
                                ddv.datagrid('fixDetailRowHeight', index3);
                                $('#dg').datagrid('fixDetailRowHeight', index3);
                            },
                        });
                        $('#dg').datagrid('fixDetailRowHeight', index3);
                    },
                    //二级
                    onCollapseRow: function (index2, row3) {
                        setTimeout(function () {
                            $('#dg').datagrid('fixDetailRowHeight', index2);
                            $('#dg').datagrid('fixRowHeight', index2);
                        }, 0);
                    },
                    onLoadSuccess: function () {
                        setTimeout(function () {
                            $('#dg').datagrid('fixDetailRowHeight', index2);
                            $('#dg').datagrid('fixRowHeight', index2);
                        }, 0);
                    },
                    onResize: function () {
                        $('#dg').datagrid('fixRowHeight', index2);
                    }
                });
                $('#dg').datagrid('fixDetailRowHeight', index2);
            }
        });

        //获取分页对象
        //var pager = $("#dg").datagrid("getPager");
        $('#dg').datagrid('getPager').pagination({
            onBeforeRefresh: function (pageNumber, pageSize) { //刷新
                console.log('before refresh : pageNumber:' + pageNumber + ',pageSize:' + pageSize);
            },
            onSelectPage: function (pageNumber, pageSize) {
                //序号连序
                var gridOpts = $('#dg').datagrid('options');
                gridOpts.pageNumber = pageNumber;
                gridOpts.pageSize = pageSize;
                var value = $("#txtSerialNo").val();
                datagridloadData(pageNumber, pageSize, value, "MODULE");
            }
        });

    });

    //请求方法
    function datagridloadData(page, rows, value, type) {
        $("#dg").datagrid('loading');
        $.ajax({
            url: "@resourceHost/@Const.WEB_AREA_REPORTS/WorkOrderRetrospect/GetWorkOrderRetrospect",
            method: 'POST',
            data: { page: page, rows: rows, value: value, type: type },
            success: function (data) {
                $('#dg').datagrid('loaded');
                //序号连序
                var gridOpts = $('#dg').datagrid('options');
                gridOpts.pageNumber = page;
                gridOpts.pageSize = rows;
                $('#dg').datagrid('loadData', data);//绑定datagrid
            }
        });
    }

</script>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值