$.extend($.fn.validatebox.defaults.rules, { widthBigThanZero:{ validator: function (value) { console.log(value); return value>0; }, message: '宽度必须大于0' }, pointIsNatural:{ validator: function (value) { var patt = /([1-9]\d+)|(\d)/; return patt.test(value);; }, message: '小数点必须为自然数' }, lengthPositive :{ validator: function (value) { var patt = /[1-9]\d*/; return patt.test(value);; }, message: '长度必须为正整数' }, lengthByType :{ validator: function (value) { console.log(value); if(value>1&&value<4){ return true; }else{ return false; } }, message: '长度必须在指定范围内' } }); /** * 序号:1 * 功能:定义分页(EasyUI) * 参数: * 说明: * 作者:高伟杰 * 时间:2016-01-22 * 单位:宁波金网 * 备注:无需更改 **/ var ls_width = $(window).width(); var ls_height = $(window).height(); var local_page=1; var rows=20; var listPageSize = [10,20,50,100,500,1000]; var queryData = eval("({'page':'"+local_page+"','rows':'"+rows+"'})"); var tab_n = 0; //重置分页参数 function resetQueryData(){ queryData = ""; queryData = eval("({'page':'"+local_page+"','rows':'"+rows+"'})"); } //定义附件关联模块ID(1:一般业务,2:测试信息,3:审批业务,999:其它数据 ) var ls_module_id='2'; //定义当前模块业务类型(YBYW:一般业务,SPGL:审批业务) var ls_ywlx = 'YBYW'; /****/ /** * 序号:2 * 功能:构建下拉框内容 * 参数: * 说明:方便新增、修改页面里的下拉选项加载数据 * 作者:高伟杰 * 时间:2016-01-22 * 单位:宁波金网 * 备注:需更改 **/ var is_dbsynch_data=[{CODE_ID:'0',CODE_NAME:'不同步'},{CODE_ID:'1',CODE_NAME:'同步'}]; var type_data=[ {CODE_ID:'varchar',CODE_NAME:'varchar'}, {CODE_ID:'int',CODE_NAME:'int'}, {CODE_ID:'double',CODE_NAME:'double'}, {CODE_ID:'float',CODE_NAME:'float'}, {CODE_ID:'blob',CODE_NAME:'blob'}, {CODE_ID:'bigdecimal',CODE_NAME:'bigdecimal'}, {CODE_ID:'text',CODE_NAME:'text'}, {CODE_ID:'datetime',CODE_NAME:'datetime'}, {CODE_ID:'date',CODE_NAME:'date'}]; var list_default_field=[{ FIELD_NAME:'uuid', LENGTH:50, POINT:'', FIELD_MUST_INPUT:true, IS_KEY:true, CONTENT:'主键UUID', FIELD_DEFAULT:'', TYPE:'varchar', FIELD_WIDTH:20, IS_NULL:false, IS_SHOW_LIST:false },{ FIELD_NAME:'create_id', LENGTH:50, POINT:'', FIELD_MUST_INPUT:true, IS_KEY:false, CONTENT:'新建人', FIELD_DEFAULT:'', TYPE:'varchar', FIELD_WIDTH:20, IS_NULL:true, IS_SHOW_LIST:false },{ FIELD_NAME:'create_time', LENGTH:'', POINT:'', FIELD_MUST_INPUT:true, IS_KEY:false, CONTENT:'新建时间', FIELD_DEFAULT:'', TYPE:'date', FIELD_WIDTH:20, IS_NULL:true, IS_SHOW_LIST:false },{ FIELD_NAME:'update_id', LENGTH:50, POINT:'', FIELD_MUST_INPUT:true, IS_KEY:false, CONTENT:'更新人', FIELD_DEFAULT:'', TYPE:'varchar', FIELD_WIDTH:20, IS_NULL:true, IS_SHOW_LIST:false },{ FIELD_NAME:'update_time', LENGTH:'', POINT:'', FIELD_MUST_INPUT:true, IS_KEY:false, CONTENT:'更新时间', FIELD_DEFAULT:'', TYPE:'date', FIELD_WIDTH:20, IS_NULL:true, IS_SHOW_LIST:false }]; var tr=['<tr>', ' <td >@{index}</td>', ' <td >@{opt}</td>', ' <td >@{field_name}</td>', ' <td >@{content}</td>', ' <td >@{type}</td>', ' <td >@{length}</td>', ' <td >@{point}</td>', ' <td >@{field_default}</td>', ' <td >@{field_width}</td>', ' <td >@{is_key}</td>', ' <td >@{is_null}</td>', ' <td >@{order_num}</td>', ' <td >@{is_show_list}</td>', '</tr>'].join(""); /****/ /** * 序号:3 * 功能:构建主页面列表 * 参数: * 说明: * 作者:高伟杰 * 时间:2016-01-22 * 单位:宁波金网 * 备注:需更改 **/ //定义grid列表 var ls_title="表单管理 "; var is_column = [ [ {field : 'TABLE_NAME',title : '表名',width : 100,align : 'center'}, {field : 'CONTENT',title : '描述',width : 80,align : 'center'}, {field : 'IS_DBSYNCH',title : '是否同步到数据库',width : 100,align : 'center',formatter:function(value,row,index){ if(value=='0'){ return "未同步"; }else{ return "同步"; } }}, {field : 'CREATE_ID',title : '创建人员',width : 100,align : 'center'}, {field : 'CREATE_TIME',title : '创建时间',width : 100,align : 'center'}, {field : 'UPDATE_TIME',title : '更新时间',width : 100,align : 'center'}, {field : 'UPDATE_ID',title : '更新人员',width : 100,align : 'center'} ] ]; //列表加载完成回调 function dataOnLoadSuccess(){ } //设置颜色和每行高度 function rowstyler(index,row){ } //展示列表 datagrid("list", ls_title, gaowj.WEB_APP_NAME + "/formtableData_list", queryData, is_column, 60, 80); /****/ /** * 序号:4 * 功能:设置主页面操作列菜单 * 参数: * 说明: * 作者:高伟杰 * 时间:2016-01-22 * 单位:宁波金网 * 备注:需更改 **/ //操用列显示更多(一般情况下无需更改) function formatMenu(value, data,index) { var returnData=""; return returnData + "<span class=\"icon-ext-moremenu\" style=\"padding-left:20px;*width:20px;\"></span>" + "<span data-p1="+index+" class=\"easyui-tooltip\" style=\"color:blue;cursor:pointer;\">更多</span>"; } //上浮横向菜单集里的具体菜单项(需更改) function getOptionMenu(data,index){ var returnData= "<span class=\"icon-edit\" style=\"padding-left:20px;*width:20px;\"></span><a href=\"javascript:void(0);\" onclick=\"editRow('" + index + "')\">编辑</a> | <span class=\"icon-edit\" style=\"padding-left:20px;*width:20px;\"></span><a href=\"javascript:void(0);\" onclick=\"templateRow('" + index + "')\">模板</a> | <span class=\"icon-clear\" style=\"padding-left:20px;*width:20px;\"></span><a href=\"javascript:void(0);\" onclick=\"synchRow('" + index + "')\">同步</a> | <span class=\"icon-ext-file\" style=\"padding-left:20px;*width:20px;\"></span><a href=\"javascript:void(0);\" onclick=\"deleteRow('" + index + "')\">删除</a>"; return returnData; } //返回菜单集的菜单个数(需更改) function getOptionMenuCount(){ var is_menu_count = 4; return is_menu_count; } /****/ /** * 序号:5 * 功能:新增修改弹出 * 参数: * 说明: * 作者:高伟杰 * 时间:2016-01-22 * 单位:宁波金网 * 备注:需更改 **/ //加载增加子页面 function addRow(){ var is_row={OPETYPE:'insert'}; openEditRow("formtableView_formtableTabDetail",is_row,"新增",true,0.95,0.95,0,0); } //加载增加子页面成功后的回调 function addUrlOnloadCallback(is_row){ initTableInsert(); } function initTableInsert(){ var fieldTable=$("#fieldTable"); $(replaceByJson(tr,{ index:'序号', opt:'操作', field_name:'字段名称', content:'备注', type:'数据类型', length:'长度', point:'小数点', field_default:'默认值', field_width:'字段宽度', is_key:'主键', is_null:'允许空值', order_num:'', is_show_list:'列表显示', })).appendTo(fieldTable); fieldTable.find('tr').eq(0).find('td').css({'fontWeight':'bold','background':'#f1f1f1','textAlign':'center'}) $('#IS_DBSYNCH').combobox({ data : is_dbsynch_data, valueField : 'CODE_ID', textField : 'CODE_NAME', editable:false, panelHeight:'auto' }); for(var i=0;i<list_default_field.length;i++){ var tr2=tr; var field=list_default_field[i]; tr2=replaceByJson(tr2,fieldModel(i,field)); $(tr2).appendTo(fieldTable); initEasyUiControl(i); } //重置表的索引 resetFieldTableIndex(); //设置表的最大索引值(为了简单起见,第一次初始化为当前行数,以后每新增一行,该值+1) $("#fieldTable").data('maxIndex',$('#fieldTable tr').length-2); } function fieldModel(i,field){ if(typeof field=='undefined'){ field={ FIELD_NAME:'', CONTENT:'', TYPE:'', LENGTH:'', POINT:'', FIELD_DEFAULT:'', FIELD_WIDTH:'', IS_KEY:false, IS_NULL:true, IS_SHOW_LIST:false }; } if(typeof field.LENGTH=='undefined'){ field.LENGTH=''; } if(typeof field.POINT=='undefined'){ field.POINT=''; } if(typeof field.field_width == 'undefined'){ field.FIELD_WIDTH=''; } return { index:i+1, opt:'<input style="width:25px;" type="checkbox" name="checkbox"/>', field_name:'<input type="text" name="LIST['+i+'].NAME" value="'+field.FIELD_NAME+'" />', content:'<input type="text" name="LIST['+i+'].CONTENT" value="'+field.CONTENT+'" />', type:'<input type="combobox" name="LIST['+i+'].TYPE" value="'+field.TYPE+'" />', length:'<input placeholder="dfsd" type="text" name="LIST['+i+'].LENGTH" value="'+field.LENGTH+'" />', point:'<input type="text" name="LIST['+i+'].POINT" value="'+field.POINT+'" />', field_default:'<input type="text" name="LIST['+i+'].FIELD_DEFAULT" value="'+field.FIELD_DEFAULT+'" />', field_width:'<input type="text" name="LIST['+i+'].FIELD_WIDTH" value="'+field.FIELD_WIDTH+'" />', is_key:'<input style="width:25px;" type="checkbox" value="'+field.IS_KEY+'" name="LIST['+i+'].IS_KEY" '+(field.IS_KEY==true?'checked':'')+' />', is_null:'<input style="width:57px;" type="checkbox" value="'+field.IS_NULL+'" name="LIST['+i+'].IS_NULL" '+(field.IS_NULL==false?'':'checked')+' />', order_num:'<input style="width:57px;" class="field_order_number" type="hidden" name="LIST['+i+'].ORDER_NUM" />', is_show_list:'<input style="width:57px;" type="checkbox" value="'+field.IS_SHOW_LIST+'" name="LIST['+i+'].IS_SHOW_LIST" '+(field.IS_SHOW_LIST==false?'':'checked')+' />' }; } /** * 初始化easyui控件 */ function initEasyUiControl(i){ $('input[name="LIST['+i+'].NAME"]').textbox({ required: true }); $('input[name="LIST['+i+'].CONTENT"]').textbox({ required: true }); $('input[name="LIST['+i+'].LENGTH"]').textbox({ //validType:'lengthPositive' }); $('input[name="LIST['+i+'].POINT"]').textbox({ validType:'pointIsNatural' }); $('input[name="LIST['+i+'].FIELD_DEFAULT"]').textbox({ }); $('input[name="LIST['+i+'].FIELD_WIDTH"]').textbox({ validType:'widthBigThanZero' }); $('input[name="LIST['+i+'].TYPE"]').combobox({ data : type_data, valueField : 'CODE_ID', textField : 'CODE_NAME', editable:false, panelHeight:'auto', onSelect:function(record){ //$('input[name="LIST['+i+'].LENGTH"]').prev().attr("placeholder","1-4"); console.log($('input[name="LIST['+i+'].LENGTH"]').textbox()); $('input[name="LIST['+i+'].LENGTH"]').textbox({ validType:'lengthByType' }); } }); } function resetFieldTableIndex(){ //除标题行外的所有行内寻找".field_order_number"元素,将值设置为当前索引 //并将序号设置为当前索引 $('#fieldTable tr').eq(0).nextAll().each(function(index,element){ $(element).find('.field_order_number').val(index+1); $(element).find('td').eq(0).html('<span style="width:50px;display:inline-block;text-align:center;">'+(index+1)+'</span>'); }); } //保存 function insertData(is_entity){ var v_result = formtableModule.act.insertFormTable(is_entity); $('#list').datagrid('reload'); return v_result; } //加载修改子页面 function editRow(index) { $('#list').datagrid('selectRow',index); var is_row = $('#list').datagrid('getSelections'); $('#list').datagrid('clearSelections'); is_row[0].OPETYPE = 'update'; openEditRow("formtableView_formtableTabDetail",is_row[0],"编辑",true,0.95,0.95,0,0); } //加载修改子页面成功后的回调 function updateUrlOnloadCallback(is_row){ initTableUpdate(is_row); } function initTableUpdate(is_row){ $.ajax({ url:'formtableAct_listTableFile', type:'post', data:{ UUID:is_row.UUID }, success: function(data){ var fieldTable=$("#fieldTable"); $(replaceByJson(tr,{ index:'序号', opt:'操作', field_name:'字段名称', content:'备注', type:'数据类型', length:'长度', point:'小数点', field_default:'默认值', field_width:'字段宽度', is_key:'主键', is_null:'允许空值', order_num:'', is_show_list:'列表显示', })).appendTo(fieldTable); if(is_row.IS_DBSYNCH==0){ $('#IS_DBSYNCH').html('未同步'); }else{ $('#IS_DBSYNCH').html('已同步'); } for(var i=0;i<data.listfield.length;i++){ var tr2=tr; var field=data.listfield[i]; tr2=replaceByJson(tr2,fieldModel(i,field)); $(tr2).appendTo(fieldTable); $('input[name="LIST['+i+'].TYPE"]').combobox({ data : type_data, valueField : 'CODE_ID', textField : 'CODE_NAME', editable:false, panelHeight:'auto' }); } //重置表的索引 resetFieldTableIndex(); //设置表的最大索引值(为了简单起见,第一次初始化为当前行数,以后每新增一行,该值+1) fieldTable.data('maxIndex',$('#fieldTable tr').length-2); } }) } //保存 function updateData(is_entity){ v_result = formtableModule.act.updateFormTable(is_entity); $('#list').datagrid('reload'); return v_result; } /****/ /** * 序号:6 * 功能:单个删除 * 参数: * 说明: * 作者:高伟杰 * 时间:2016-01-22 * 单位:宁波金网 * 备注:需更改 **/ function deleteRow(index){ $('#list').datagrid('selectRow',index); var is_row = $('#list').datagrid('getSelections'); $('#list').datagrid('clearSelections'); var code = is_row[0].UUID; $.messager.confirm('提示', '确定删除?', function(r) { if (r) { var v_query = {}; v_query.FIELD_CODE = code; var v_result = formtableModule.act.deleteFormTable(v_query); $.messager.alert('提示',v_result.VALUE); $('#list').datagrid('reload'); } }); } /****/ /** * 序号:7 * 功能:批量删除 * 参数: * 说明: * 作者:高伟杰 * 时间:2016-01-22 * 单位:宁波金网 * 备注:需更改 **/ function deleteBatchRow(){ var code=""; var rows = $('#list').datagrid('getSelections'); for(var i=0; i<rows.length; i++){ code = code + rows[i].UUID+","; } if(rows == null || rows == ""){ $.messager.alert('提示',"请选择需删除的记录!",'info'); return; } if(code.length>0){ code = code.substring(0,code.length - 1); } $.messager.confirm('提示', '确定删除?', function(r) { if (r) { var v_query = {}; v_query.FIELD_CODE = code; var v_result = formtableModule.act.deleteFormTable(v_query); $.messager.alert('提示',v_result.VALUE); $('#list').datagrid('reload'); } }); } /****/ /** * 序号:8 * 功能:刷新 * 参数: * 说明: * 作者:高伟杰 * 时间:2016-01-22 * 单位:宁波金网 * 备注:需更改 **/ function refreshRow(){ $('#list').datagrid('load',{}); $("#formTableTab_searchForm")[0].reset(); } /****/ /** * 序号:9 * 功能:查询 * 参数: * 说明: * 作者:高伟杰 * 时间:2016-01-22 * 单位:宁波金网 * 备注:需更改 **/ function searchRow(){ var v_query = $("#formTableTab_searchForm").getFormVal(); $('#list').datagrid('load',v_query); } function replaceByJson(text,json){ for(key in json){ text = text.replace('@{'+key+'}',json[key]); } return text; } function addLine(){ var j=$("#fieldTable").data('maxIndex')+1; $("#fieldTable").data('maxIndex',j); var aa=fieldModel(j); var fieldTable=$("#fieldTable"); $(replaceByJson(tr,aa)).appendTo(fieldTable); initEasyUiControl(j); //重置表的索引 resetFieldTableIndex(); } function deleteLine(){ if($(":checkbox[name='checkbox']:checked").length == 0 ){ $.messager.alert('提示',"请选择需删除的行!",'info'); return; } $(":checkbox[name='checkbox']:checked").each(function(){ $(this).parent().parent().remove(); }); //重置表的索引 resetFieldTableIndex(); } function templateRow(index){ $('#list').datagrid('selectRow',index); var is_row = $('#list').datagrid('getSelections'); $('#list').datagrid('clearSelections'); openViewIframRow("templateIframe","formmodelView_formmodelTab?tableId="+is_row[0].UUID,is_row[0],"流程模板列表",true,0.95,0.95,0,0); } /** * 同步操作 * @param index */ function synchRow(index){ $('#list').datagrid('selectRow',index); var is_row = $('#list').datagrid('getSelections'); $('#list').datagrid('clearSelections'); if(is_row[0].IS_DBSYNCH=='1'){ $.messager.alert('警告',"该表已同步到数据库",'info'); return; } $.ajax({ url:'formtableAct_synchFormTable', data:{ tableId:is_row[0].UUID, tableName:is_row[0].TABLE_NAME }, success:function(data){ $('#list').datagrid('load',{}); } }); //formtableModule.act.updateFormTable(is_row[0]) }