EasyUI 簡介
easyui是一種基於jQuery的使用者介面插件集合。
easyui為創建現代化,互動,JavaScript應用程序,提供必要的功能。
使用easyui你不需要寫很多程式碼,你只需要透過寫一些簡單HTML標記,就可以定義使用者介面。
easyui是個完美支援HTML5網頁的完整框架。
easyui節省您網頁開發的時間和規模。
easyui很簡單但功能強大的。
jQuery EasyUI 提供易於使用的元件,它使 Web 開發人員能夠快速地在流行的 jQuery 核心和 HTML5 上建立程式頁面 。
先給大家看效果圖:
專案需求:在我們平時購物的時候,經常是這樣一個步驟,下訂單,交貨款,賣家發貨,確認收貨,評價。那如果UI設計上一個進度條,這樣使用者就可以很清楚的看到自己在哪個位置,需要進行哪些步驟了。
再來看看我們專案的前台框架,採用的是EasyUI+MVC,我只需要去寫幾個JS和view進行互動就OK了,我用了一天的時間來看它整個頁面是怎麼實現的,基本上就是引用一個easyUI的樣式,用AJAX進行傳值,呼叫後台的controller中的方法。既然我實現的是一個前台頁面的動態效果,就在上一步和下一步上寫JQuery方法進行switch選擇進行節點的激活和完成。寫一個JS的方法來選擇控制主體頁面的顯示和隱藏,我把view寫成了幾個div,所以我的方法就是幾個div顯示的跳躍。
回顧JQuery的知識點:
1.窗體載入事件對應的是window.onload的方法
2.按鈕綁定事件有很多種
1)用JS,寫一個function放在按鈕的onclick的事件上。
2)用JQuery綁定一個匿名函數 $('#btnnext').bind('click', function (){});
3.增加類別和刪除類別 removeclass和addclass,其中ID和class的區別,在JQuery中ID有#開頭
4.js和JQuery的差別在於,後者用最少的程式碼表達了最多的意思,後者是前者了更高一層的封裝。
5.AJAX後台傳遞方法的類型區別 POST和GET,get相對傳輸的資料量小,透過URL請求來傳遞使用者的傳輸,post需要提交表單,安全度高。
部分程式碼展示:
//点击下一步按钮+进度条前进一个的效果 $('#btnnext').bind('click', function () { //判断各个输入框是否验证通过 if (InputValidate() == false) { return; } //根据当前标题,决定下一步是什么 var currentTitle = $('#MainContent').panel('options').title; if (currentTitle == '填写项目信息') { //点击下一步响应滚动条 $("#li1").removeClass("ui-step-active"); //将活动节点移除 $("#li1").addClass("ui-step-done"); //增加一个完成的节点 $("#li2").removeClass("ui-step-line"); //移除一个线 $("#li2").addClass("ui-step-active"); //增加一个活跃着的节点 $('#NewFile').hide();//制作按钮隐藏 $('#BidInfo').hide();//基本信息隐藏 $.get('/InviteBid/GetInviteBidId', { bidType: bidType }, function (data, status) { //在招标项目编号文本框中赋值 $('#InviteBidId').val(data); $('#InfoDisplay').show(); }); $('#btnback').show(); ControlContent("#InfoDisplay"); //$('#btnArea').show(); //更改标题 $('#MainContent').panel({ title: '生成招标编号' }); } //如果当前位置为填写项目信息,点击下一步时提交项目基本信息 if (currentTitle == '生成招标编号') { //获得项目基本信息 var BidProId = $('#InviteBidId').val(); //获得招标编号 var BidProName = $('#BidProName').val();//获得招标项目名称 var PurchaseUnit = $('#PurchaseUnit').val();//获得采购单位 InviteBidTypeId = $('#comboInviteBidType').combobox('getValue');//获得招标方式Id ItemTypeId = $('#comboItemType').combobox('getValue'); //获得品目类型Id var PurchaseAgency = $('#PurchaseAgency').val();//获得采购代理 var BidOpenTime = $('#BidOpenTime').datebox('getText');//开标时间 var BidGuaranteCash = $('#BidGuaranteCash').val();//投标保证金 var SaleStartDate = $('#SaleStartDate').datebox('getText');//获得招标文件发售起始时间 var SaleEndDate = $('#SaleEndDate').datebox('getText');//获得招标文件发售终止时间 //点击下一步响应滚动条 $("#li2").removeClass("ui-step-active"); //将活动节点移除 $("#li2").addClass("ui-step-done"); //增加一个完成的节点 $("#li3").removeClass("ui-step-line"); //移除一个线 $("#li3").addClass("ui-step-active"); //增加一个活跃着的节点 $("#btnback").show(); ControlContent("#EvaluationBid"); //提交项目信息数据到Controller $.ajax({ type: 'POST', url: '/InviteBid/AddBidZRecord', contentType: 'application/json', //必须有,表示提交的数据类型 data: JSON.stringify({ 'BidZRecorder': [{ 'BidProjectId': BidProId, 'BidRecordName': BidProName, 'PurchaseUnit': PurchaseUnit, 'PurchaseAgency': PurchaseAgency, 'SaleStartDate': SaleStartDate, 'SaleEndDate': SaleEndDate, 'BidOpenTime': BidOpenTime, 'BidGuaranteCash': BidGuaranteCash, 'ItemId': ItemTypeId, 'InviteBidId': InviteBidTypeId }] }), success: function (jsonResult) { $('#InfoDisplay').hide();//编号信息隐藏 $('#EvaluationBid').show();//评标方法区域显示 //主内容区域标题改为设置评标办法 $('#MainContent').panel({ title: '设置评标办法' }); //评标办法的第一步的文字字体设为红色 $('#firstStep').css({ color: 'red' }) }, error: function (data) { $.messager.alert('提示', '填写项目信息失败!', 'warning'); return; } }); } else if (currentTitle == '设置评标办法') { if ($('#comboEvaluationMethod').combobox('getText') == '') { return false; } if (saveFlag == false) { return; } //获得评标办法的Id var BidRecordId = $('#InviteBidId').val(); //获得招标编号 //点击下一步响应滚动条 $("#li3").removeClass("ui-step-active"); //将活动节点移除 $("#li3").addClass("ui-step-done"); //增加一个完成的节点 $("#li4").removeClass("ui-step-line"); //移除一个线 $("#li4").addClass("ui-step-active"); //增加一个活跃着的节点 $("#btnback").show(); ControlContent('#FinishFile'); //提交评标办法 $.ajax({ type: 'POST', url: '/InviteBid/UpdateBidZRecord/?JudgeBidId=' + JudgeBidId + '&BidRecordId=' + BidRecordId, //data: JudgeBidId, success: function (jsonResult) { }, error: function (data) { $.messager.alert('提示', '评标办法提交失败!', 'warning'); return; } }); //提交修改分值后的表格中的内容 //获得表格中的所有行 var allRows = $('#tg').treegrid('getRoots'); //获得行数 var rowsCount = allRows.length; //声明一个数组 var arrayJudgeItems = []; //循环遍历所有行,把每一行的记录作为一个对象存到数组中 for (i = 0; i < rowsCount; i++) { //获得第i行记录 var Row = allRows[i]; var rowIndex = $('#tg').treegrid('getRowIndex', Row) + 2; //实例化一个评分项目对象 var BidJudgeTable = { RowIndex: rowIndex, JudgeItemName: Row.JudgeItemName, JudgeItemContent: Row.JudgeItemContent, Score: Row.Score }; //在数组中添加对象 arrayJudgeItems.push(BidJudgeTable); } //提交数据 $.ajax({ type: 'POST', async: false, url: '/InviteBid/ReceiveBidJudgeTable', contentType: 'application/json', //必须有,表示提交的数据类型 data: JSON.stringify(arrayJudgeItems), success: function (result) { //alert("success"); }, error: function (data) { //alert("error"); } }); $('#EvaluationBid').hide(); $('#btnnext').hide(); $('#FinishFile').show(); $('#MainContent').panel({ title: '生成招标文件' }); } else if (currentTitle == '生成招标文件') { } }); /* *用来控制上一页和下一页的页面转换---周洲---2015年11月15日 *summary:控制主体页面的显示和隐藏 *param: 参数showid:要显示的页面的div的id,如"#BidInfo" */ function ControlContent(showid) { //主体内容页面的id数组 var stepContents = new Array("#BidInfo", "#InfoDisplay", "#EvaluationBid", "#FinishFile"); //循环遍历数组中的div的id值,如果为当前步骤,则将页面内容设为显示,其余设为隐藏 var contentIndex;//数组中元素的索引值 for (contentIndex in stepContents) { var stepContent = stepContents[contentIndex];//获得元素的值 if (showid == stepContent) { $(stepContent).show();//显示 } else { $(stepContent).hide();//隐藏 } } } //点击上一步按钮+进度条效果---周洲--2015年11月15日 $("#btnback").bind("click", function () { //根据当前标题,决定上一步是什么 var currentTitle = $('#MainContent').panel('options').title; switch (currentTitle) { case "生成招标编号": $("#li2").removeClass("ui-step-active"); $("#li2").addClass("ui-step-line"); $("#li1").removeClass("ui-step-done"); $("#li1").addClass("ui-step-active"); $("#currentTitle").text("填写项目信息"); ControlContent('#BidInfo'); $("#btnback").hide(); $('#btnnext').show(); $('#MainContent').panel({ title: '填写项目信息' }); break; case "设置评标方法": $("#li3").removeClass("ui-step-active"); $("#li3").addClass("ui-step-line"); $("#li2").removeClass("ui-step-done"); $("#li2").addClass("ui-step-active"); $("#currentTitle").text("生成招标编号"); ControlContent('#InfoDisplay'); $('#btnnext').show(); $('#MainContent').panel({ title: '生成招标编号' }); break; case "生成招标文件": $("#li4").removeClass("ui-step-active"); $("#li4").addClass("ui-step-line"); $("#li3").removeClass("ui-step-done"); $("#li3").addClass("ui-step-active"); $("#currentTitle").text("设置评标方法"); ControlContent('#EvaluationBid'); $('#btnnext').show(); $('#MainContent').panel({ title: '设置评标方法' }); break; default: } });
視圖部分我只展示進度條:
@*步骤条*@ <div class="row" style="margin-top:3%"> <div class="col-md-2" ></div> @* 步骤条所在区域*@ <div class="col-md-8"> @*步骤条*@ <ol class="ui-step ui-step-4"> <li id="li1" class="ui-step-start ui-step-active" > <div class="ui-step-line">-</div> <div id="d1" class="ui-step-icon"> <i class="iconfont"></i> <i class="ui-step-number">1</i> <span class="ui-step-text">填写项目信息</span> </div> </li> <li id="li2" class="ui-step-line"> <div class="ui-step-line">-</div> <div class="ui-step-icon"> <i class="iconfont"></i> <i class="ui-step-number">2</i> <span class="ui-step-text">生成招标编号</span> </div> </li> <li id="li3" class="ui-step-line"> <div class="ui-step-line">-</div> <div class="ui-step-icon"> <i class="iconfont"></i> <i class="ui-step-number">3</i> <span class="ui-step-text">设置评标方法</span> </div> </li> <li id="li4" class="ui-step-end"> <div class="ui-step-line">-</div> <div class="ui-step-icon"> <i class="iconfont"></i> <i class="ui-step-number">4</i> <span class="ui-step-text">生成招标文件</span> </div> </li> </ol> </div> <div class="col-md-2"></div> </div>
新增進度條需要引用的css樣式:
@*进度条需要引用的文件*@ @* AliceUI基础样式 *@ <link href="../../Content/base-master/src/base.css" rel="stylesheet" /> @* 步骤条样式 *@ <link href="../../Content/step-master/step.css" rel="stylesheet" /> @*AliceUI图标字体*@ <link href="../../Content/iconfont-master/index.css" rel="stylesheet" />
以上所述是小逼跟大家介紹JQuery+EasyUI輕鬆達成步驟條效果,希望對大家有幫助!