//初始化界面 $(function() { var listTitle = ""; //单据标题 var listType = ""; //类型 var listTypeEn = ""; //英文类型 getType(); initTableData(); ininPager(); bindEvent(); }); //根据名称获取类型 function getType(){ listTitle = $("#tablePanel").prev().text(); if(listTitle === "供应商信息列表"){ listType = "供应商"; listTypeEn = "Vendor"; } else if(listTitle === "客户信息列表"){ listType = "客户"; listTypeEn = "Customer"; } else if(listTitle === "会员信息列表"){ listType = "会员"; listTypeEn = "Member"; } } //初始化表格数据 function initTableData() { //改变宽度和高度 $("#searchPanel").panel({width:webW-2}); $("#tablePanel").panel({width:webW-2}); $('#tableData').datagrid({ //title:'单位列表', //iconCls:'icon-save', //width:700, height:heightInfo, nowrap: false, rownumbers: false, //动画效果 animate:false, //选中单行 singleSelect : true, collapsible:false, selectOnCheck:false, //fitColumns:true, //单击行是否选中 checkOnSelect : false, //交替出现背景 striped : true, pagination: true, //自动截取数据 //nowrap : true, //loadFilter: pagerFilter, pageSize: initPageSize, pageList: initPageNum, columns:[[ { field: 'id',width:35,align:"center",checkbox:true}, { title: '操作',field: 'op',align:"center",width:60,formatter:function(value,rec) { var str = ''; var rowInfo = rec.id + 'AaBb' + rec.supplier +'AaBb' + rec.contacts + 'AaBb'+ rec.phonenum + 'AaBb'+ rec.email + 'AaBb'+ rec.beginneedget + 'AaBb'+ rec.beginneedpay + 'AaBb' + rec.isystem + 'AaBb' + rec.description+ 'AaBb' + rec.type + 'AaBb' + rec.fax + 'AaBb' + rec.telephone + 'AaBb' + rec.address + 'AaBb' + rec.taxnum + 'AaBb' + rec.bankname + 'AaBb' + rec.accountnumber + 'AaBb' + rec.taxrate; str += '   '; str += ''; return str; } }, { title: '名称',field: 'supplier',width:150}, { title: '联系人', field: 'contacts',width:50,align:"center"}, { title: '手机号码', field: 'telephone',width:100,align:"center"}, { title: '电子邮箱',field: 'email',width:80,align:"center"}, { title: '联系电话', field: 'phonenum',width:100,align:"center"}, { title: '传真', field: 'fax',width:100,align:"center"}, { title: '预付款',field: 'advancein',width:70,align:"center"}, { title: '期初应收',field: 'beginneedget',width:70,align:"center"}, { title: '期初应付',field: 'beginneedpay',width:70,align:"center"}, { title: '期末应收',field: 'allneedget',width:70,align:"center"}, { title: '期末应付',field: 'allneedpay',width:70,align:"center"}, { title: '税率(%)', field: 'taxrate',width:60,align:"center"}, { title: '状态',field: 'enabled',width:70,align:"center",formatter:function(value){ return value? "启用":"禁用"; }} ]], toolbar:[ { id:'addSupplier', text:'增加', iconCls:'icon-add', handler:function() { addSuppler(); } },'-', { id:'deleteSupplier', text:'删除', iconCls:'icon-remove', handler:function() { batDeleteSupplier(); } },'-', { id:'setEnable', text:'启用', iconCls:'icon-ok', handler:function() { setEnableFun(); } },'-', { id:'setDisEnable', text:'禁用', iconCls:'icon-no', handler:function() { setDisEnableFun(); } },'-', { id:'setInput', text:'导入', iconCls:'icon-excel', handler:function() { setInputFun(); } },'-', { id:'setOutput', text:'导出', iconCls:'icon-excel', handler:function() { setOutputFun(); } } ], onLoadError:function() { $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); return; } }); dgResize(); showSupplierDetails(1,initPageSize); } //分页信息处理 function ininPager() { try { var opts = $("#tableData").datagrid('options'); var pager = $("#tableData").datagrid('getPager'); pager.pagination({ onSelectPage:function(pageNum, pageSize) { opts.pageNumber = pageNum; opts.pageSize = pageSize; pager.pagination('refresh', { pageNumber:pageNum, pageSize:pageSize }); showSupplierDetails(pageNum,pageSize); } }); } catch (e) { $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); } } //删除信息 function deleteSupplier(supplierInfo) { $.messager.confirm('删除确认','确定要删除此条信息吗?',function(r) { if (r) { var supplierTotalInfo = supplierInfo.split("AaBb"); $.ajax({ type:"post", url: "/supplier/batchDeleteSupplierByIds", dataType: "json", data: ({ ids : supplierTotalInfo[0] }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); } else { if(res && res.code == 601){ var jsondata={}; jsondata.ids=supplierTotalInfo[0]; jsondata.deleteType='2'; var type='single'; batDeleteSupplierForceConfirm(res,"/supplier/batchDeleteSupplierByIds",jsondata,type); }else if(res && res.code == 600){ $.messager.alert('删除提示', res.msg, 'error'); }else{ $.messager.alert('删除提示', '删除信息失败,请稍后再试!', 'error'); } } }, //此处添加错误处理 error:function() { $.messager.alert('删除提示','删除信息异常,请稍后再试!','error'); return; } }); } }); } //批量删除单位 function batDeleteSupplier() { var row = $('#tableData').datagrid('getChecked'); if(row.length == 0) { $.messager.alert('删除提示','没有记录被选中!','info'); return; } if(row.length > 0) { $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条信息吗?',function(r) { if (r) { var ids = ""; for(var i = 0;i < row.length; i ++) { if(i == row.length-1) { ids += row[i].id; break; } ids += row[i].id + ","; } $.ajax({ type:"post", url: "/supplier/batchDeleteSupplierByIds", dataType: "json", async : false, data: ({ ids : ids }), success: function (res) { if(res && res.code === 200) { $("#searchBtn").click(); $(":checkbox").attr("checked", false); } else { if(res && res.code == 601){ var jsondata={}; jsondata.ids=ids; jsondata.deleteType='2'; var type='batch'; batDeleteSupplierForceConfirm(res,"/supplier/batchDeleteSupplierByIds",jsondata,type); }else if(res && res.code == 600){ $.messager.alert('删除提示', res.msg, 'error'); }else{ $.messager.alert('删除提示', '删除信息失败,请稍后再试!', 'error'); } } }, //此处添加错误处理 error:function() { $.messager.alert('删除提示','删除信息异常,请稍后再试!','error'); return; } }); } }); } } /** * 确认强制删除 * */ function batDeleteSupplierForceConfirm(res,url,jsondata) { $.messager.confirm('删除确认', res.msg, function (r) { if (r) { $.ajax({ type: "post", url: url, dataType: "json", data: (jsondata), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); if(type=='batch'){ $(":checkbox").attr("checked", false); } }else if(res && res.code == 600){ $.messager.alert('删除提示', res.msg, 'error'); }else { $.messager.alert('删除提示', '删除信息失败,请稍后再试!', 'error'); } }, //此处添加错误处理 error: function () { $.messager.alert('删除提示', '删除信息失败,请稍后再试!', 'error'); return; } }); } }); } //批量启用 function setEnableFun() { var row = $('#tableData').datagrid('getChecked'); if(row.length == 0) { $.messager.alert('启用提示','没有记录被选中!','info'); return; } if(row.length > 0) { $.messager.confirm('启用确认','确定要启用选中的' + row.length + '条信息吗?',function(r) { if (r) { var ids = ""; for(var i = 0;i < row.length; i ++) { if(i == row.length-1) { ids += row[i].id; break; } ids += row[i].id + ","; } $.ajax({ type:"post", url: "/supplier/batchSetEnable", dataType: "json", async : false, data: ({ enabled: true, supplierIDs : ids }), success: function (res) { if(res && res.code === 200) { $("#searchBtn").click(); $(":checkbox").attr("checked", false); } else { $.messager.alert('启用提示', '启用信息失败,请稍后再试!', 'error'); } }, //此处添加错误处理 error:function() { $.messager.alert('启用提示','启用信息异常,请稍后再试!','error'); return; } }); } }); } } //批量禁用 function setDisEnableFun() { var row = $('#tableData').datagrid('getChecked'); if(row.length == 0) { $.messager.alert('禁用提示','没有记录被选中!','info'); return; } if(row.length > 0) { $.messager.confirm('禁用确认','确定要禁用选中的' + row.length + '条信息吗?',function(r) { if (r) { var ids = ""; for(var i = 0;i < row.length; i ++) { if(i == row.length-1) { ids += row[i].id; break; } ids += row[i].id + ","; } $.ajax({ type:"post", url: "/supplier/batchSetEnable", dataType: "json", async : false, data: ({ enabled: false, supplierIDs : ids }), success: function (res) { if(res && res.code === 200) { $("#searchBtn").click(); $(":checkbox").attr("checked", false); } else { $.messager.alert('禁用提示', '禁用信息失败,请稍后再试!', 'error'); } }, //此处添加错误处理 error:function() { $.messager.alert('禁用提示','禁用信息异常,请稍后再试!','error'); return; } }); } }); } } //导入数据 function setInputFun(){ //IE下不允许编辑 input=file的值 解决思路:重新克隆input=file,把这个input元素复制一个,然后将原来的删除。 //在IE下复制元素的时候,其中的值是不会被复制的,所以就达到了清空文件域的目的了。 //而在Firefox下,其中的值也会被一同复制,清空一下就做到兼容 var fileUploadInput = $("#supplierFile"); fileUploadInput.after(fileUploadInput.clone().val("")); fileUploadInput.remove(); $("#isCheck").val(1); $('#importExcelDlg').dialog('open').dialog('setTitle','导入' + listType + '信息'); $(".window-mask").css({ width: webW-20 ,height: webH}); $("#supplierFile").focus(); } //导出数据 function setOutputFun(){ var supplier = $.trim($("#searchSupplier").val()); var phonenum = $.trim($("#searchPhonenum").val()); var telephone = $.trim($("#searchTelephone").val()); var description = $.trim($("#searchDesc").val()); window.location.href = "/supplier/exportExcel?browserType=" + getOs() + "&supplier=" + supplier + "&type=" + listType + "&phonenum=" + phonenum + "&telephone=" + telephone + "&description=" + description; } //增加单位 var url; var supplierID = 0; //保存编辑前的名称 var oldSupplier = ""; function addSuppler() { if(checkPower()){ return; } $('#supplierDlg').dialog('open').dialog('setTitle',' 增加'+listType+"信息"); $(".window-mask").css({ width: webW ,height: webH}); $("#supplier").focus(); $('#supplierFM').form('clear'); oldSupplier = ""; supplierID = 0; url = '/supplier/add'; } function bindEvent(){ //导入excel对话框 $('#importExcelDlg').dialog({ width: 400, closed: true, cache: false, modal: true, collapsible:false, closable: true, buttons:'#dlg-buttons5' }); //导入excel表格 $("#saveimport").unbind().bind({ click:function() { if($("#supplierFile").val().length == 0) { $.messager.alert('提示','请选择文件!','info'); return; } $("#importExcelFM").submit(); $('#importExcelDlg').dialog('close'); $.messager.progress({ title:'请稍候', msg:'数据处理ing...' }); setTimeout(function(){ $.messager.progress('close'); var opts = $("#tableData").datagrid('options'); showSupplierDetails(opts.pageNumber,opts.pageSize); },3300); } }); //保存信息 $("#saveSupplier").off("click").on("click", function () { if(validateForm("supplierFM")) { return; } if (checkSupplierName()) { return; } var reg = /^([0-9])+$/; var phonenum = $.trim($("#phonenum").val()); if(phonenum.length>0 && !reg.test(phonenum)) { $.messager.alert('提示','电话号码只能是数字','info'); $("#phonenum").val("").focus(); return; } var beginNeedGet = $.trim($("#BeginNeedGet").val()); var beginNeedPay = $.trim($("#BeginNeedPay").val()); if(beginNeedGet && beginNeedPay) { $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); return; } var obj = $("#supplierFM").serializeObject(); obj.type = listType; obj.enabled = 1; $.ajax({ url: url, type:"post", dataType: "json", data:{ info: JSON.stringify(obj) }, success: function(res) { if(res && res.code === 200) { $('#supplierDlg').dialog('close'); //加载完以后重新初始化 var opts = $("#tableData").datagrid('options'); showSupplierDetails(opts.pageNumber, opts.pageSize); } } }); }); //初始化键盘enter事件 $(document).keydown(function(event) { //兼容 IE和firefox 事件 var e = window.event || event; var k = e.keyCode||e.which||e.charCode; //兼容 IE,firefox 兼容 var obj = e.srcElement ? e.srcElement : e.target; //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 if(k == "13"&&(obj.id=="supplier" || obj.id=="contacts"|| obj.id=="phonenum" || obj.id=="email" || obj.id=="description" )) { $("#saveSupplier").click(); } //搜索按钮添加快捷键 if(k == "13"&&(obj.id=="searchSupplier" || obj.id=="searchContacts"|| obj.id=="searchPhonenum" || obj.id=="searchEmail" || obj.id=="searchDesc" )) { $("#searchBtn").click(); } }); //搜索处理 $("#searchBtn").unbind().bind({ click:function() { showSupplierDetails(1,initPageSize); var opts = $("#tableData").datagrid('options'); var pager = $("#tableData").datagrid('getPager'); opts.pageNumber = 1; opts.pageSize = initPageSize; pager.pagination('refresh', { pageNumber:1, pageSize:initPageSize }); } }); $("#searchBtn").click(); //重置按钮 $("#searchResetBtn").unbind().bind({ click:function(){ $("#searchSupplier").textbox("clear"); $("#searchPhonenum").textbox("clear"); $("#searchTelephone").textbox("clear"); $("#searchDesc").textbox("clear"); //加载完以后重新初始化 $("#searchBtn").click(); } }); } //编辑信息 function editSupplier(supplierTotalInfo) { var supplierInfo = supplierTotalInfo.split("AaBb"); var beginNeedGet = supplierInfo[5].replace("undefined",""); var beginNeedPay = supplierInfo[6].replace("undefined",""); var row = { supplier : supplierInfo[1], contacts : supplierInfo[2].replace("undefined",""), phonenum : supplierInfo[3].replace("undefined",""), email : supplierInfo[4].replace("undefined",""), BeginNeedGet : beginNeedGet == "0"? "":beginNeedGet, BeginNeedPay : beginNeedPay == "0"? "":beginNeedPay, AllNeedGet: "", AllNeedPay: "", description : supplierInfo[8].replace("undefined",""), type : supplierInfo[9], fax : supplierInfo[10].replace("undefined",""), telephone : supplierInfo[11].replace("undefined",""), address : supplierInfo[12].replace("undefined",""), taxNum : supplierInfo[13].replace("undefined",""), bankName : supplierInfo[14].replace("undefined",""), accountNumber : supplierInfo[15].replace("undefined",""), taxRate : supplierInfo[16].replace("undefined","") }; oldSupplier = supplierInfo[1]; $('#supplierDlg').dialog('open').dialog('setTitle',' 编辑'+listType +"信息"); $(".window-mask").css({ width: webW ,height: webH}); $('#supplierFM').form('load',row); supplierID = supplierInfo[0]; //焦点在名称输入框==定焦在输入文字后面 $("#supplier").val("").focus().val(supplierInfo[1]); url = '/supplier/update?id=' + supplierInfo[0]; //显示累计应收和累计应付 var thisDateTime = getNowFormatDateTime(); //当前时间 var supType = "customer"; if(listType === "客户"){ supType = "customer" } else if(listType === "供应商"){ supType = "vendor" } $.ajax({ type:"get", url: "/depotHead/findTotalPay", dataType: "json", async: false, data: ({ supplierId: supplierInfo[0], endTime:thisDateTime, supType: supType }), success: function(res){ if (res && res.code === 200 && res.data && res.data.rows && res.data.rows.getAllMoney !== "") { var moneyA = res.data.rows.getAllMoney.toFixed(2)-0; $.ajax({ type:"get", url: "/accountHead/findTotalPay", dataType: "json", async: false, data: ({ supplierId: supplierInfo[0], endTime:thisDateTime, supType: supType }), success: function(res){ if (res && res.code === 200 && res.data && res.data.rows && res.data.rows.getAllMoney !== "") { var moneyB = res.data.rows.getAllMoney.toFixed(2)-0; var money = moneyA+moneyB; var moneyBeginNeedGet = $("#BeginNeedGet").val()-0; //期初应收 var moneyBeginNeedPay = $("#BeginNeedPay").val()-0; //期初应付 if(listType === "客户"){ money = (money + moneyBeginNeedGet - moneyBeginNeedPay).toFixed(2); $("#AllNeedGet").val(money); //累计应收 } else if(listType === "供应商"){ money = (money + moneyBeginNeedPay - moneyBeginNeedGet).toFixed(2); $("#AllNeedPay").val(money); //累计应付 } } }, error: function(){ $.messager.alert('提示','网络异常请稍后再试!','error'); return; } }); } }, error: function(){ $.messager.alert('提示','网络异常请稍后再试!','error'); return; } }); } //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 function checkSupplierName() { var supplierName = $.trim($("#supplier").val()); //表示是否存在 true == 存在 false = 不存在 var flag = false; //开始ajax名称检验,不能重名 if(supplierName.length > 0 &&( oldSupplier.length ==0 || supplierName != oldSupplier)) { $.ajax({ type:"get", url: "/supplier/checkIsNameExist", dataType: "json", async : false, data: ({ id : supplierID, name : supplierName }), success: function (res) { if(res && res.code === 200) { if(res.data && res.data.status) { flag = res.data.status; if (flag) { $.messager.alert('提示', '单位名称已经存在', 'info'); return; } } } }, //此处添加错误处理 error:function() { $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); return; } }); } return flag; } function showSupplierDetails(pageNo,pageSize) { var supplier = $.trim($("#searchSupplier").val()); var phonenum = $.trim($("#searchPhonenum").val()); var telephone = $.trim($("#searchTelephone").val()); var description = $.trim($("#searchDesc").val()); $.ajax({ type:"get", url: "/supplier/list", dataType: "json", data: ({ search: JSON.stringify({ supplier: supplier, type: listType, phonenum: phonenum, telephone: telephone, description: description }), currentPage: pageNo, pageSize: pageSize }), success: function (res) { if(res && res.code === 200){ if(res.data && res.data.page) { $("#tableData").datagrid('loadData', res.data.page); } } }, //此处添加错误处理 error:function() { $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); return; } }); }