1. 程式人生 > >【轉】UAP studio基礎使用技巧

【轉】UAP studio基礎使用技巧

【轉載】原文來源: https://blog.csdn.net/github_34367377/article/details/82253763

Part 1

1.表格翻頁方法的重寫

me.gridView.getDataGrid().onpageindexchanged.clear();  
me.gridView.getDataGrid().onpageindexchanged.addEventListener(me.controller.pageIndexChanged);

2.獲取登陸人資訊

@RequestMapping(value = "/getuserinfo"
) public @RawResponseBody Object getuserinfo(){ Map<String, String> data = new HashMap<String, String>(); //得到使用者id,登入名 String userId = ClientContextHolder.getInstance().getClientContext().getUserID(); String name = ClientContextHolder.getInstance().getClientContext().getUserName
(); try { List<User> users = AdapterFactory.getIdentityService().getUserByIds(new String[]{userId}); User user = ((User) users.get(0)); String userName = user.getName(); String userMobile = user.getMobile(); String userEmail = user.getEmail(); Department dept =
AdapterFactory.getIdentityService().getDepartmentById(user.getBaseOrgId()); //可以去的部門的unicode 去o_org表中 判斷org_type 02省 03地市 //在前臺判斷頁面的展現即可 String departementName = dept.getName(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return WrappedResult.successWrapedResult(data); }

3.uap壓縮模式啟動

#前端展現框架是否使用除錯模式,預設為 true,生產環境下建議設定為 false

MX_DEBUGMODE=true

#前端展現框架是否使用壓縮模式載入到瀏覽器端,預設不啟用,建議生產模式啟用

MX_COMPRESSMODE=false

前者設定為false,後者設定為true即可 。

4.jquary方法的使用

jquary
find 搜尋所有與指定表示式匹配的元素。這個函式是找出正在處理的元素的後代元素的好方法。

$("p").find("span").onfocus = function(){}

可以轉化為document物件.

5.控制檯列印資訊

console.log()

6.uap錯誤日誌

window show View others 裡面的 error log 就有
D:\Users\Administrator\workspace.metadata中的.log日誌

7.uap新增log日誌檔案

1)uap專案下修改log4j.properties配置檔案,新增sql所在檔案包路徑節點及輸出方式(檔案)。

set sql log

log4j.additivity.com.sgcc.mds.lcam=false
log4j.logger.com.sgcc.mds.lcam=debug, lcam
log4j.appender.lcam=org.apache.log4j.RollingFileAppender
log4j.appender.lcam.File=${LOG_DIR}/lcam.log
log4j.appender.lcam.MaxBackupIndex=100
log4j.appender.lcam.MaxFileSize=5000000
log4j.appender.lcam.layout=org.apache.log4j.PatternLayout
log4j.appender.lcam.layout.ConversionPattern=[%d{ISO8601}][%p] %c{1}:%L)  %n    %m%n

2)模組專案新增如下log4j依賴:
3)Java類裡新增如下標紅兩行:
4)Sql生成位置新增日誌輸出程式碼:

8.uap白名單配置-越過登陸直接訪問

Applicationconfig.proerties

ISC_EXCLUDEPAGES=/sguap-client/workbench/workbench/login.jsp,\
                /mds/portal/portal/login.jsp,\
                /ImsBusiness/services,\--wsdl
                /mds/smfxjpj/isc_tree/index.jsp,\--頁面
                /mds/portal/fromMds/index.jsp

9.uap接入統一認證

ISC_ADAPTER_URL = http://192.168.0.32:7002/isc_frontmv_serv
ISC_LOGINURL = http://192.168.0.32:7002/isc_sso/login
ISC_AUTHMODE = ISC

10.uap中wsdl實現

1)配置org.codehaus.xfire白名單 modulelist的
2)applicationconfig中wsdl路徑白名單
3)config下配置xfire
4)config下配置service
http://IP地址:埠號/lcamIMS /ImsBusiness/services/MDSWebService?wsdl
5)測試新建webservice專案 匯入xfire包

String urlString = "http://localhost:9000/mds/ImsBusiness/services/MDSWebService?wsdl";
Client client;
try {
    client = new Client(new URL(urlString));
    Object[] results= client.invoke("getKPIValue", new Object[]{xml});
//  System.out.println(results[0].toString());
    for(Object o : results){
        System.out.println(o);
    }
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

11.uap中生成42位uuid

12.uap過濾器–用於審計和sql注入校驗

1)config下filter註冊
2)過濾配置
3)過濾實現

13.uap配置檔案配置常量

public static final String ISC_APPID =
		 PlatformConfigUtil.getString("ISC_APPID");

14.uap與chart圖整合

首先匯入include(/mds/gg/fusionCharts/FusionCharts.js);
1)初始化容器

me.chaichuChart = new mx.containers.Container({
            height:"250px",
            width:"650px",
//            border:"1px solid #6EC5B9",
            left: "300px",
            top:"0px",
            id :"chaichuChart"
            });

2)初始化資料

var params = new Object();
	params.items = new Array();
        params.items.push({
            "stratDate" : me.timeEditor3.value,
            "endDate" : me.timeEditor4.value,
            "orgNo" : me.controller.drop1_value,
            "startAge" : me.drop5.value,
            "endAge" : me.drop6.value,
            "statusCode" : me.controller.drop2_value
        });
//        debugger
        var client = new mx.rpc.RESTClient({
            async : false
        });
        client.post(chdnbfjqk.mappath("~/rest/removeHomePage/EquipPickPie3D"), 
        	JSON.stringify(params), function(result) {
            me.JsonData = result;
        });

3)放置chart

me.setChartA = function() {
        me.chart1 = new FusionCharts("/mds/gg/fusionCharts/Pie3D.swf",
                "chartA", "570", "230");
        me.chart1.setJSONData(me.JsonData);
        me.chart1.render("chaichuChart");
    }

15.uap容器新增html程式碼

獲取容器jquary物件的append方法

me.hsplit2.$panel1.append(
                "<table style='width: 100%;'><tr><td align='center'>" +
                "<div style='position: relative; float: left;width: 100%;padding-left: 33px; top:10px;'>" +
                "<div style='position: relative; float: left; margin-left: 70px;'>單位:只</div>" +
                "</div>" +
                "<div id='chartContainer1' style='width: 100%; height: 100%;'></div>" +
                "</td></tr></table>"
        );

16.表格onload方法 設定表格資料樣式

onload:me.controller._dataGrid_onload
  me._dataGrid_onload = function(e){
        var v_dataGrid = e.target;
        v_dataGrid.$e.find("table>tbody>tr>td").css({"border":"#6ec5b9 1px solid"});
        v_dataGrid.$e.find("div#body").css({"overflow-y":"auto","top":"23px"});
        v_dataGrid.$bodyTable.find("#rownumber").css("backgroundColor","#E7F8F2");
        if(v_dataGrid.displayStatisticRow){
            var statist =  v_dataGrid.$statisticRow;
            //改變統計行的樣式
            statist.css({
                 position:"absolute",
                 bottom:v_dataGrid.pageNaviBar.height,
                 border:"1px solid #1B9974"
            });
            statist.find("tr").css({"backgroundColor":"#E7F8F2"});
            statist.find("#rownumber").text("合計");
            //移除統計行
            statist.remove();
            //將統計行重新載入到grid下面
            statist.insertAfter("#grid");
            //重置grid的bottom樣式
            v_dataGrid.$grid.css("bottom",statist.height()+v_dataGrid.pageNaviBar.height);
            //統計
            var items = v_dataGrid.items;
            //申請報廢數
            var runQty = 0;
            for(var i=0;i<items.length;i++){
                runQty += items[i].getValue("appRetQty");
            }
            //設定統計值
            v_dataGrid.columns["appRetQty"].setStatisticValue(runQty);
            v_dataGrid.columns["appRetQty"].setStatisticAlign("center");
            //已報廢數
            var ybfs = 0;
            for(var i=0;i<items.length;i++){
                ybfs += items[i].getValue("finishRetQty");
            }
            //設定統計值
            v_dataGrid.columns["finishRetQty"].setStatisticValue(ybfs);
            v_dataGrid.columns["finishRetQty"].setStatisticAlign("center");
        }

17.uap匯出功能

1)匯出方法1

/**
 * 匯出Excel
 */
        //匯出時間
        var date = new Date();
        //年份
        var year = date.getFullYear();
        //月份
        var month = date.getMonth()+1;
        //第幾日
        var day = date.getDate();
        var time = year+"-"+month+"-"+day;
        //過濾條件
        var v_dataGrid = me.view.getDataGrid();
        //列名
        var columns = "";
        //列標題
        var columnCaptions = "";
        //列寬度
        var columnWidths = "";
        //檔名稱
        var fileName = "報廢數量單位分佈";
        //檔案標題
        var fileTitle = "報廢數量單位分佈";
        
        //獲取列名,列標題,列寬度
        for(var i=0;i<v_dataGrid.columns.length-1;i++){
            if(v_dataGrid.columns[i].name == v_dataGrid.primaryKey){
                continue;
            }
            columns += v_dataGrid.columns[i].name + ",";
            columnCaptions += v_dataGrid.columns[i].caption + ",";
            columnWidths +=  "100,";
        }
        columns = columns.substring(0,columns.length-1);
        columnCaptions = columnCaptions.substring(0,columnCaptions.length-1);
        columnWidths = columnWidths.substring(0,columnWidths.length-1);
        
        //查詢條件
        var filter = new Object();
        filter.orgNo = me.orgNo;
          filter.mdType = me.mdType;
          filter.bidBatchNo = me.bidBatchNo;
          filter.arriveNo = me.arriveNo;
          filter.supplierNo = me.supplierNo;
          filter.tjksrq = me.tjksrq;
          filter.tjjzrq = me.tjjzrq;
          //選中的列名
          filter.columns = me.columns;
        //匯出標記,使用它便於區分匯出還是查詢
        filter.exportFlag = true;
        //匯出 com.sgcc.mds.lcam.lcEquipRetired.LcEquipRetiredController.exportExcel
        var jsonObject = {
                id : "equipInstGuidOut",//不重複的ID
                className:"equipInstController",//相應的.java檔案        
                queryMethod:"exportExcel",//查詢方法                                            autoFilter:true,
                queryMethodParamType:1,
                columns:columns,
                columnCaptions:columnCaptions,
                columnWidths:columnWidths,
                fileName:fileName,
                fileTitle:fileTitle,
                fileTime:time,
                isMerge:"false",
                statisticCols:"appRetQty,finishRetQty",
                filter:filter
            };
        
        //匯出控制元件
        me.exportXSLUtil = new common$util.excel.ExportXSLUtils({
            jsonObject:JSON.stringify(jsonObject)
        });
        me.exportXSLUtil.exportExcel();
}

Config下
後臺controller

/**
 * 匯出表格
 * @param params 查詢條件
 * @param p_request
 * @return QueryResultObject 列表資料
 */
    @RequestMapping("/exportExcel")
    public @ItemResponseBody
    QueryResultObject exportExcel(@QueryRequestParam("params") RequestCondition params,HttpServletRequest p_request){
        return query(params);
    }

2)匯出方法2

me.btn_daochu_click = function(){
        var itemCount = me.view._dataGrid.itemCount;
        if(itemCount==0){
             mx.indicate("info","無查詢結果,查詢後再進行操作!");
             return;
        }/*else if(itemCount>2000){
            mx.indicate("info","資料量過大,請縮小查詢範圍!");
            return;
        }*/else{
            var pathName = window.document.location.pathname;
            var projectName = pathName.substring(0,pathName.substr(1).indexOf('/')+1);
            var baseUrl = projectName+"/zczt/test/Zc_Servlet?" +
            "wd="+wd+"&rmv_reason="+me.view.drop1.value+"&type_code="+me.view.drop2.value+"&OrgNo="+me.view.drop3.value
               +"&asset_sort="+me.view.drop4.value+"&bid_batch_name="+me.view.drop5.value+"&arrive_no="+me.view.drop6.value+"&biaozhiwei="+"chqk"+
               "&supplier_no="+me.view.drop7.value+"&stat_ymQS="+me.view.timeEditor8.value+"&stat_ymJZ="+me.view.timeEditor9.value;
//            window.location.href = baseUrl;
            var httpurl=sheiBeizk.mappath(baseUrl);
            window.open(httpurl,
                    "顯示視窗","height=1px, width=1px, top=10000px, left=100px, toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, status=no");
        }
};

18.uap下載功能

Uap專案下webcontent下建資料夾放下載內容 servlet實現

19.tab中text自適應屬性

“max-width” : “100%”

Part 2

一.uap初級使用

1. 佈局控制元件

建立一個佈局控制元件主要包括以下步驟:
1)匯入所需的js類。
2)建立例項。
3)將例項新增到容器中。

1.1 上下分割窗口布局

//1.匯入類程式碼
$import("mx.containers.HSplit"); 
//2. 建立例項
me.hsplit = new mx.containers.HSplit({
    rows:300, auto“ ,//視窗的兩部分大小
    borderThick:0px”//設定邊框粗細
});
//3.將例項新增到容器中
me.addControl(me.hsplit);

1.2 左右分割窗口布局

//1.匯入類程式碼
$import("mx.containers.VSplit"); 
//2. 建立例項
me.vsplit = new mx.containers.VSplit({
    cols:300, auto“ //視窗的兩部分大小
});
//3.將例項新增到容器中
me.addControl(me.vsplit);
**vsplit整體左邊距設定,和左邊框線的設定
me.vSplit2 = new mx.containers.VSplit({
             cols:"12%,88%",
             width:"50%",
             top:"0%",
             position:"absolute",
             borderThick:2
         });
vsplit整體左邊距設定,和左邊框線的設定
me.vSplit2.setLeft("50%");
me.vSplit2.$panel1[0].style.borderLeftWidth = "1px";

1.3 手風琴式選單

//1.匯入類程式碼
$import("mx.containers.Accordion");
//2. 建立選單例項
me.accordion = new mx.containers.Accordion(
    { 
        "height":"60%", 
        "width":"20%",
        panels:[ 
           { title: "綜合評價", name: "zhpj" }, 
           { title: "參建隊伍", name: "cjdw" } 
           ],
        onselectionchanged:me.controller.accordionChanged
    }
);        
//3.將例項新增到容器中
me.addControl(me.accordion);
me.addControl.appendPanel({name:"panel3", title:"面板3"});
var text = new