| | |
| | | <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all"> |
| | | <script src="../../layuiadmin/layui/layui.js"></script> |
| | | <script src="../../layuiadmin/HideButton.js"></script> |
| | | <script src="../../../layuiadmin/soulTable.slim.js"></script> |
| | | <script src="../../../layuiadmin/PageTitle.js"></script> |
| | | <script src="../../layuiadmin/soulTable.slim.js"></script> |
| | | <script src="../../layuiadmin/PageTitle.js"></script> |
| | | |
| | | <style type="text/css"> |
| | | input.layui-input.layui-unselect { |
| | |
| | | <div class="layui-inline"> |
| | | <span>æ´å¤</span> |
| | | </div> |
| | | </div> |
| | | <!--<div class="layui-inline"> |
| | | <label class="layui-form-label">åæ®ç±»å</label> |
| | | <div class="layui-input-block"> |
| | | <select name="HBillType" id="HBillType"> |
| | | <option value="">ææ</option> |
| | | <option value="ZHXJ">䏿¶æ¾è´§å</option> |
| | | <option value="ZHSJ">䏿¶å½è¿å</option> |
| | | </select> |
| | | </div> |
| | | </div>--> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">åæ®å·</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" class="layui-input ForFilteringSchemes" name="HBillNo" id="HBillNo"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">å¶å人</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" class="layui-input ForFilteringSchemes" name="HCreateBy" id="HCreateBy"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-inline"> |
| | | <span>å
¶ä»æ¡ä»¶></span> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">å¼å§æ¶é´</label> |
| | | <div class="layui-input-block"> |
| | |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i> |
| | | </button> |
| | | <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">éç½®</button> |
| | | <!--æ¾ç¤ºå½åè¿æ»¤æ¹æ¡--> |
| | | <!--æ¾ç¤ºå½åè¿æ»¤æ¹æ¡--> |
| | | <div class="layui-inline" style="margin-left:5px;"> |
| | | <div style="text-align:center;font-size:15px;font-weight:bold;color:#fc9393" id="HFilterScheme_Now"></div> |
| | | </div> |
| | |
| | | <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent" id="ColContent"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row" style="margin-top:5px"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">è¿æ»¤</label> |
| | | <div class="layui-input-block"> |
| | | <select name="ColName1" id="ColName1" lay-filter="ColName1" style="width:190px;"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <select name="Comparator1" id="Comparator1" lay-filter="Comparator1" style="width:190px;"> |
| | | <option value="0" selected="selected"></option> |
| | | <option value="=">=</option> |
| | | <option value=">=">>=</option> |
| | | <option value=">">></option> |
| | | <option value="<="><=</option> |
| | | <option value="<"><</option> |
| | | <option value="<>"><></option> |
| | | <option value="7">å
å«</option> |
| | | <option value="8">å·¦å
å«</option> |
| | | <option value="9">å³å
å«</option> |
| | | <option value="10">ä¸å
å«</option> |
| | | </select> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <input type="text" class="layui-input" value="" name="ColContent1" id="ColContent1"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row" style="margin-top:5px"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">è¿æ»¤</label> |
| | | <div class="layui-input-block"> |
| | | <select name="ColName2" id="ColName2" lay-filter="ColName2" style="width:190px;"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <select name="Comparator2" id="Comparator2" lay-filter="Comparator2" style="width:190px;"> |
| | | <option value="0" selected="selected"></option> |
| | | <option value="=">=</option> |
| | | <option value=">=">>=</option> |
| | | <option value=">">></option> |
| | | <option value="<="><=</option> |
| | | <option value="<"><</option> |
| | | <option value="<>"><></option> |
| | | <option value="7">å
å«</option> |
| | | <option value="8">å·¦å
å«</option> |
| | | <option value="9">å³å
å«</option> |
| | | <option value="10">ä¸å
å«</option> |
| | | </select> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <input type="text" class="layui-input" value="" name="ColContent2" id="ColContent2"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <table class="" id="mainTable" lay-filter="mainTable"></table> |
| | | <div id="page" style="position: relative; bottom: 0;"></div> |
| | | <script type="text/html" id="toolbarDemo"> |
| | | <div class="layui-btn-container"> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_LookDown" id="btn_LookDown"><i class="layui-icon layui-icon-export"></i>导åº</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_AddNew" id="AddNew"><i class="layui-icon layui-icon-add-1"></i>æ°å¢</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill" id="ShowBill"><i class="layui-icon layui-icon-edit"></i>ç¼è¾</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill" id="DeleteBill"><i class="layui-icon layui-icon-delete"></i>å é¤</button> |
| | | <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-getCheckData" id="getCheckData"><i class="layui-icon layui-icon-tips"></i>é¢è§</button>--> |
| | | <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-reload" id="reload"><i class="layui-icon layui-icon-refresh"></i>å·æ°</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-confirm" id="btn_confirm"><i class="layui-icon layui-icon-ok-circle"></i>确认</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-back" id="btn_back"><i class="layui-icon layui-icon-close-fill"></i>驳å</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-details" id="details"><i class="layui-icon layui-icon-form"></i>详æ
</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-generate" id="generate"><i class="layui-icon layui-icon-file"></i>çæéè´§å</button>--> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CheckBill" id="CheckBill"><i class="layui-icon layui-icon-form"></i>å®¡æ ¸</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-confirm" id="btn_confirm"><i class="layui-icon layui-icon-ok-circle"></i>确认</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-back" id="btn_back"><i class="layui-icon layui-icon-close-fill"></i>驳å</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-details" id="details"><i class="layui-icon layui-icon-form"></i>详æ
</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-generate" id="generate"><i class="layui-icon layui-icon-file"></i>çæéè´§å</button>--> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CheckBill" id="CheckBill"><i class="layui-icon layui-icon-form"></i>å®¡æ ¸</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_AbandonCheck" id="AbandonCheck"><i class="layui-icon layui-icon-form"></i>åå®¡æ ¸</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CloseBill" id="set_CloseBill"><i class="layui-icon layui-icon-form"></i>å
³é</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CancelCloseBill" id="set_CancelCloseBill"><i class="layui-icon layui-icon-form"></i>åå
³é</button> |
| | |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_SaveScheme" id="set_SaveScheme"><i class="layui-icon layui-icon-template"></i>ä¿åæ¹æ¡</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ReadScheme" id="set_ReadScheme"><i class="layui-icon layui-icon-set"></i>è¯»åæ¹æ¡</button> |
| | | <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-exit" id="exit"><i class="layui-icon layui-icon-return"></i>éåº</button> |
| | | |
| | | </div> |
| | | </script> |
| | | </form> |
| | |
| | | |
| | | //æ¥è¯¢æ¡ä»¶ |
| | | var sWhere = ""; |
| | | var page = 1;//åé¡µæ°æ® |
| | | var size = 50; |
| | | var option = []; |
| | | var ins; |
| | | var HModName = "Sb_EquipDotCheckBillList"; |
| | | |
| | | |
| | |
| | | var HPageTitle = get_PageTitle(HModuleType) == "" ? document.title : get_PageTitle(HModuleType); |
| | | //#endregion |
| | | |
| | | var titleData = ["hmainid", "hsubid", "设å¤ID", "å
é¨åæ®å·", "ç¹æ£é¡¹ç®ID", "è´è´£äººID", "设å¤ç¹æ£è§ç¨ID", "HBillType"];//ä¸éè¦æ¾ç¤ºçåæ®µ 坿©å± |
| | | var titleData = ["hmainid", "hsubid", "设å¤ID", "å
é¨åæ®å·", "ç¹æ£é¡¹ç®ID", "è´è´£äººID", "设å¤ç¹æ£è§ç¨ID", "HBillType", "sorderid","HShiftsID"];//ä¸éè¦æ¾ç¤ºçåæ®µ 坿©å± |
| | | |
| | | //#region ãè¿æ»¤æ¹æ¡ã |
| | | |
| | | //è¿æ»¤æ¡ä»¶çclassç±» |
| | | //è¿æ»¤æ¡ä»¶çclassç±» |
| | | var HClassTag = "ForFilteringSchemes"; |
| | | //模ååç§°ï¼ä¸æçï¼ æ¯ä¸ªæ¨¡å页é¢é½éè¦ä¿®æ¹ |
| | | window.HModuleName = "设å¤ç¹æ£è®°å½åå表"; |
| | |
| | | //éåºæé® |
| | | case 'btn-exit': Pub_Close(2); |
| | | break; |
| | | case 'btn_LookDown': get_Export(); |
| | | break; |
| | | //å设置 |
| | | case 'set_HideColumn': get_HideColumn(); |
| | | break; |
| | |
| | | }); |
| | | //æ¥è¯¢æé® |
| | | form.on('submit(btnSearch)', function (data) { |
| | | get_FastQuery(); |
| | | if (page != 1) { |
| | | $("#page a:eq(1)").get(0).click();//ç¹å»å页æ 第ä¸é¡µ |
| | | } else { |
| | | get_FastQuery(); |
| | | } |
| | | }); |
| | | //ç½®æé® |
| | | form.on('submit(btnReSearch)', function (data) { |
| | |
| | | //åå§åè¡¨æ ¼ |
| | | set_InitGrid(); |
| | | //æ¥è¯¢ |
| | | get_Display(sWhere); |
| | | //get_Display(sWhere); |
| | | //æ¥è¯¢å½åç»å½ç¨æ·ææ²¡æå¨å½å模å设置é»è®¤è¿æ»¤æ¹æ¡ |
| | | get_DefaultModule(); |
| | | } |
| | |
| | | elem: '#mainTable' |
| | | , toolbar: '#toolbarDemo' |
| | | , height: 'full-50' |
| | | , page: true |
| | | , page: false |
| | | , cellMinWidth: 90 |
| | | , limit: 50 |
| | | , limits: [50, 500, 5000, 20000] |
| | |
| | | , { field: 'å
³éç±»å', title: 'å
³éç±»å', width: 200 } |
| | | ]] |
| | | }; |
| | | optionPage = { |
| | | elem: 'page', //注æï¼è¿éç page æ¯ IDï¼ä¸ç¨å # å· |
| | | count: 10000, //æ°æ®æ»æ°ï¼ä»æå¡ç«¯å¾å° |
| | | limit: 50, |
| | | limits: [50, 500, 5000, 50000], |
| | | layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], |
| | | jump: function (obj, first) { |
| | | |
| | | //馿¬¡ä¸æ§è¡ |
| | | if (!first) { |
| | | //do something |
| | | page = obj.curr; |
| | | size = obj.limit; |
| | | get_FastQuery(); |
| | | } |
| | | } |
| | | } |
| | | laypage.render(optionPage); |
| | | } |
| | | |
| | | //#region ç¹å»è¡éä¸é«äº® |
| | |
| | | var ajaxLoad = layer.load(); |
| | | //è¿å
¥é¡µé¢æ¾ç¤ºçç¼åå表 |
| | | $.ajax({ |
| | | //h_v_Sb_EquipDotCheckBillList |
| | | url: GetWEBURL() + '/Sb_EquipDotCheckBill/GetEquipDotCheckBillList', |
| | | type: "GET", |
| | | async: false, |
| | |
| | | case 'double': |
| | | case 'Decimal': |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 120, totalRow: true }); |
| | | break; |
| | | break; |
| | | default: |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 }); |
| | | } |
| | |
| | | } |
| | | } |
| | | table.render(option); |
| | | |
| | | ins = table.render(option); |
| | | //å·æ°è¡¨æ ¼æ°æ® |
| | | DisPlay_HideColumn(); |
| | | |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | //#region å页æ¥è¯¢ |
| | | function get_DisplayPage(sWhere) { |
| | | var ajaxLoad = layer.load(); |
| | | $.ajax({ |
| | | url: GetWEBURL() + '/Sb_EquipDotCheckBill/GetEquipDotCheckBillListPage', |
| | | type: "GET", |
| | | data: { "sWhere": sWhere, "user": sessionStorage["HUserName"], "page": page, "size": size }, |
| | | success: function (data1) { |
| | | option.limit = size;//æ¹åè¡¨æ ¼é¡µå¤§å° |
| | | if (data1.code == 1) { |
| | | optionPage.count = data1.count;//æ¹ååè¡¨æ°æ®æ»æ° |
| | | var data = []; |
| | | var col = []; |
| | | //ç»ç©ºçæ°ç»èµå¼ |
| | | for (var key in data1.list) { |
| | | //卿è·åå表ææåå |
| | | data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType }); |
| | | //è·åä¸éè¦æ¾ç¤ºçåï¼Hå¼å¤´çå䏿¾ç¤ºï¼ |
| | | var patrn = new RegExp(/^h/i); |
| | | if (patrn.test(data1.list[key].ColmCols)) { |
| | | titleData[key] = data1.list[key].ColmCols; |
| | | } |
| | | } |
| | | //å¨å表左边添å å¾éæ¡ |
| | | col.push({ type: 'checkbox', fixed: 'left', totalRowText: 'å计' }); |
| | | for (var i = 0; i < data.length; i++) { |
| | | if ($.inArray(data[i].name, titleData) > -1) { |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //éèidå |
| | | } |
| | | else { |
| | | switch (data[i].Type) { |
| | | //int |
| | | case 'DateTime': |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 160 }); |
| | | break; |
| | | case 'Decimal': |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, width: 140, totalRow: true }); |
| | | break; |
| | | case 'Int32': |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, width: 140, totalRow: true }); |
| | | break; |
| | | default: |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, width: 140 }); |
| | | } |
| | | } |
| | | } |
| | | |
| | | columns = col; |
| | | option.cols = [col]; |
| | | option.data = data1.data; |
| | | option.totalRow = true; |
| | | laypage.render(optionPage); |
| | | //å·æ°è¡¨æ ¼æ°æ® |
| | | DisPlay_HideColumn(); |
| | | |
| | | layer.close(ajaxLoad); |
| | | if ($("#ColName option").length < 1) { |
| | | ColFilter(); |
| | | } |
| | | |
| | | } else { |
| | | layer.close(ajaxLoad); |
| | | layer.alert(data1.code + data1.Message, { icon: 5 }); |
| | | } |
| | | }, error: function () { |
| | | layer.close(ajaxLoad); |
| | | layer.alert("æ¥å£è¯·æ±å¤±è´¥!", { icon: 5 }); |
| | | } |
| | | }); |
| | | } |
| | | //#endregion |
| | | |
| | | //æ°å¢ |
| | | function set_AddNew() { |
| | | layer.open({ |
| | |
| | | var Comparator = $("#Comparator").val() |
| | | var ColContent = $("#ColContent").val(); |
| | | |
| | | var ColName1 = $("#ColName1").val();//å¤éæ¡ |
| | | var Comparator1 = $("#Comparator1").val() |
| | | var ColContent1 = $("#ColContent1").val(); |
| | | var ColName2 = $("#ColName2").val();//å¤éæ¡ |
| | | var Comparator2 = $("#Comparator2").val() |
| | | var ColContent2 = $("#ColContent2").val(); |
| | | |
| | | if (ColName != 0 && Comparator != 0) { |
| | | var com = ""; |
| | | switch (Comparator) { |
| | |
| | | } |
| | | sWhere += " and " + ColName + " " + com; |
| | | } |
| | | if (ColName1 != 0 && Comparator1 != 0) { |
| | | var com1 = ""; |
| | | switch (Comparator1) { |
| | | case "7": |
| | | com1 = "like'%" + ColContent1 + "%'"; |
| | | break; |
| | | case "8": |
| | | com1 = "like'%" + ColContent1 + "'"; |
| | | break; |
| | | case "9": |
| | | com1 = "like'" + ColContent1 + "%'"; |
| | | break; |
| | | case "10": |
| | | com1 = "not like'%" + ColContent1 + "%'"; |
| | | break; |
| | | default: |
| | | com1 = "" + Comparator1 + "'" + ColContent1 + "'"; |
| | | break; |
| | | } |
| | | sWhere += " and " + ColName1 + " " + com1; |
| | | } |
| | | if (ColName2 != 0 && Comparator2 != 0) { |
| | | var com2 = ""; |
| | | switch (Comparator2) { |
| | | case "7": |
| | | com2 = "like'%" + ColContent2 + "%'"; |
| | | break; |
| | | case "8": |
| | | com2 = "like'%" + ColContent2 + "'"; |
| | | break; |
| | | case "9": |
| | | com2 = "like'" + ColContent2 + "%'"; |
| | | break; |
| | | case "10": |
| | | com2 = "not like'%" + ColContent2 + "%'"; |
| | | break; |
| | | default: |
| | | com2 = "" + Comparator + "'" + ColContent + "'"; |
| | | break; |
| | | } |
| | | sWhere += " and " + ColName2 + " " + com2; |
| | | } |
| | | if (HBillNo) { |
| | | sWhere += " and åæ®å· like '%" + HBillNo + "%'"; |
| | | } |
| | |
| | | if (EndHCreateDate) { |
| | | sWhere += " and CONVERT(varchar(100),æ¥æ, 23) <= '" + EndHCreateDate + "'"; |
| | | } |
| | | get_Display(sWhere); |
| | | //get_Display(sWhere); |
| | | //æ°æ®åºå页 |
| | | get_DisplayPage(sWhere); |
| | | sWhere = "";//è°ç¨æ¥å£åæ¸
空sWhereç¼å |
| | | } |
| | | //éç½®è¿æ»¤æ¡ä»¶æ¹æ³ |
| | |
| | | $("#ColContent").val(""); |
| | | $("#ColName").val("0"); |
| | | $("#Comparator").val("0"); |
| | | $("#ColContent2").val(""); |
| | | $("#ColName2").val("0"); |
| | | $("#Comparator2").val("0"); |
| | | $("#ColContent1").val(""); |
| | | $("#ColName1").val("0"); |
| | | $("#Comparator1").val("0"); |
| | | form.render('select'); |
| | | |
| | | sWhere = ""; |
| | |
| | | data: { "HInterID": HInterID, "Type": num, "user": sessionStorage["HUserName"] }, |
| | | success: function (result) { |
| | | if (result.count == 1) { |
| | | get_FastQuery(); |
| | | layer.msg(result.Message, { icon: 1 }); |
| | | layer.close(wait); |
| | | } else { |
| | |
| | | else { |
| | | layer.msg("è¯·éæ©ä¸æ¡æ°æ®!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //å·æ° |
| | | function get_Refresh() { |
| | | set_ClearQuery(); |
| | | get_Display(sWhere); |
| | | //get_Display(sWhere); |
| | | get_DisplayPage(sWhere); |
| | | } |
| | | |
| | | //#region 导åºExecel |
| | | function get_Export() { |
| | | var data = option.data |
| | | |
| | | table.exportFile(ins.config.id, data, "xls"); |
| | | } |
| | | //#endregion |
| | | |
| | | //éèå设置 |
| | | function get_HideColumn() { |
| | |
| | | }) |
| | | } |
| | | |
| | | //åææ¾ç¤ºä¸ææ¡ |
| | | |
| | | //#region åææ¾ç¤ºä¸ææ¡ |
| | | function ColFilter() { |
| | | var Organization = '<option value="0" selected="selected" ></option>'; |
| | | for (var i = 1; i < option.cols[0].length; i++) { |
| | |
| | | } |
| | | $("#ColName").empty(); |
| | | $("#ColName").append(Organization); |
| | | $("#ColName1").empty(); |
| | | $("#ColName1").append(Organization); |
| | | $("#ColName2").empty(); |
| | | $("#ColName2").append(Organization); |
| | | form.render('select'); |
| | | } |
| | | //#endregion |
| | | //#endregion |
| | | |
| | | //#region ãè¿æ»¤æ¹æ¡ã |
| | |
| | | for (var i = 0; i < Filter.length; i++) { |
| | | HFilterIdList = Filter[i].id; //è¿æ»¤æ¡ä»¶ID |
| | | HFilterIdLists += Filter[i].id + ","; //è¿æ»¤æ¡ä»¶ID(æ¼æ¥) |
| | | HValue += $("#" + HFilterIdList).val() + ","; //è¿æ»¤æ¡ä»¶ä¸è¾å
¥çå¼ |
| | | HValue += $("#" + HFilterIdList).val() + ","; //è¿æ»¤æ¡ä»¶ä¸è¾å
¥çå¼ |
| | | HElement_type += document.getElementById(HFilterIdList).tagName + ",";//éè¿æ ç¾idè·åæ ç¾ç±»å |
| | | } |
| | | |