【轉】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