主子表改关联表,关联表设置关联值

不少状况,主子表显示会出现主表或者子表显示内容太少,单表又不能明确代表关联关系,因此关联表就能够来处理这种关系javascript

  1. 设置关联字段格式化器
    function(value, row, index, field) {
        var url = '/single_grid/list/biz_demo_hotel_stock?query_hotel_id=';
        return '<a href="javascript:parent.addTab(\'' + row.name + '库存\',\'' + url + '\',\'icon-building\');" style="color:blue">' + value + '</a>';
    }
    经过查询条件来过滤关联的页面数据,可是这时的页面仍是单表,须要作一点调整才能达到子表效果
  2. 禁用关联页面的新增按钮,使用新的按钮
    <button class="layui-btn layui-btn-sm" onclick="relation_add()">
        <i class="layui-icon layui-icon-add-1"></i> ${button.name!'新增'}
    </button>
    <script type="text/javascript">
        var relation_add = function () {
    
            var ID = 'grid';
    
            var localurl = window.location.href;
            var num = localurl.indexOf("?");
            localurl = localurl.substr(num + 1); //取得全部参数
            var arr = localurl.split("&"); //各个参数放到数组里
            var ref = '';
            for (var i = 0; i < arr.length; i++) {
                num = arr[i].indexOf("=");
                if (num > 0) {
                    if (ref.length > 0) {
                        ref += ",";
                    }
                    name = arr[i].substring(0, num);
                    value = arr[i].substr(num + 1);
                    ref += name.replace("query_","")  + ":" + value;
                }
            }
            ref = "?ref=" + ref;
            var url = '/form/add/${object.code}' + ref;
            var width = ${menu.config.params.width!'720'};
            var height = ${menu.config.params.height!'undefined'};
            dialog(ID, '${I18N(button.name)} ${object.name}', url, width, height);
        };
    </script>
    以后打开新的新增时,就会自动填充关联值,达到和主子表同样的效果  
相关文章
相关标签/搜索