目录
1.3、contractManageSrht_dialog_selectContract.jsp
此处以开票申请的选合同带出经营负责人为例
一、前端Jsp
1.1、弹框的前端界面
<div id="_xform_fdContrantNoId" _xform_type="dialog">
<xform:dialog propertyId="fdContrantNoId" propertyName="fdContrantNoName" showStatus="edit" required="true" subject="${lfn:message('contract-manage:contractManageKpsq.fdContrantNo')}" style="width:95%;">
dialogSelect(false,'contract_manage_srht_selectContract','fdContrantNoId','fdContrantNoName');
</xform:dialog>
</div>
注: 此处弹框对应的是对应模块的form_option.js文件,拿着contract_manage_srht_selectContract去搜就行
1.2、form_option.js
contract_manage_srht_selectContract: {
modelName: 'com.landray.kmss.contract.manage.model.ContractManageSrht',
sourceUrl: '/contract/manage/contract_manage_srht/contractManageSrhtData.do?method=selectContract'
},
dialogLinks: [{
idField: 'fdDkmx_Form[*].fdContrantNoId',
nameField: 'fdDkmx_Form[*].fdContrantNoName',
dialog: 'contract_manage_srht_selectContract',
inputs: [],
outputs: [{
'key': 'fdHtmc',
'value': 'fdDkmx_Form[*].fdHtmc'
},{
'key': 'contractAmount',
'value': 'fdDkmx_Form[*].fdHtje'
},{
'key': 'receivedAmount',
'value': 'fdDkmx_Form[*].fdYhke'
},{
'key': 'fdProjectId',
'value': 'fdDkmx_Form[*].fdProjectNoId'
},{
'key': 'fdProjectName',
'value': 'fdDkmx_Form[*].fdProjectNoName'
},{
'key': 'fdXmmc',
'value': 'fdDkmx_Form[*].fdXmmc'
},{
'key': 'fdJfdw.fdId',
'value': 'fdDkmx_Form[*].fdOwnerId'
},{
'key': 'fdJfdw.fdName',
'value': 'fdDkmx_Form[*].fdOwnerName'
},{
'key': 'fdJyfzr.fdId',
'value': 'fdAccountsPeopleId'
},{
'key': 'fdJyfzr.fdName',
'value': 'fdAccountsPeopleName'
}]
},
注:拿着刚才弹框对应的 contract_manage_srht_selectContract到此页面来搜
sourceUrl:对应的是后端的Action里查出来的数据供前端带数据使用
outputs:输出对应的属性到页面上的指定字段
1.3、contractManageSrht_dialog_selectContract.jsp
<%@ page language="java" contentType="text/json; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ include file="/sys/ui/jsp/common.jsp" %>
<list:data>
<list:data-columns var="contractManageSrht" list="${queryPage.list}" varIndex="status" custom="false">
<list:data-column property="fdId" />
<list:data-column property="fdHtbh" title="${lfn:message('contract-manage:contractManageSrht.fdHtbh')}" />
<list:data-column col="index">
${status+1}
</list:data-column>
<list:data-column property="fdHtmc" title="${lfn:message('contract-manage:contractManageSrht.fdHtmc')}" />
<list:data-column property="fdHtje" />
<list:data-column property="fdYskje" />
<list:data-column col="contractAmount">
<c:out value="${contractManageSrht.contractAmount == null ? '' : contractManageSrht.contractAmount}" />
</list:data-column>
<list:data-column col="invoicedAmount">
<c:out value="${contractManageSrht.invoicedAmount == null ? '' : contractManageSrht.invoicedAmount}" />
</list:data-column>
<list:data-column col="amountRecovered">
<c:out value="${contractManageSrht.amountRecovered == null ? '' : contractManageSrht.amountRecovered}" />
</list:data-column>
<list:data-column col="receivedAmount">
<c:out value="${contractManageSrht.receivedAmount == null ? '' : contractManageSrht.receivedAmount}" />
</list:data-column>
<list:data-column property="fdProjectId" />
<list:data-column property="fdProjectName" />
<list:data-column property="fdXmmc" />
<list:data-column property="fdJfdw.fdId" />
<list:data-column property="fdJfdw.fdName" />
<list:data-column property="fdJyfzr.fdId"/>
<list:data-column property="fdJyfzr.fdName"/>
</list:data-columns>
<%-- 分页信息生成 --%>
<list:data-paging page="${queryPage}" />
</list:data>
注:想要选择合同后成功带出属性到指定的字段,还需要在此页面配置获取的字段
二、后端
public ActionForward selectContract(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
TimeCounter.logCurrentTime("selectContract", true, getClass());
KmssMessages messages = new KmssMessages();
try {
String s_pageno = request.getParameter("pageno");
String s_rowsize = request.getParameter("rowsize");
String keyWord = request.getParameter("q._keyword");
int pageno = 0;
int rowsize = SysConfigParameters.getRowSize();
if (s_pageno != null && s_pageno.length() > 0) {
pageno = Integer.parseInt(s_pageno);
}
if (s_rowsize != null && s_rowsize.length() > 0) {
rowsize = Integer.parseInt(s_rowsize);
}
//当前登录人所属机构
List<String> orgIds = new ArrayList<>();
if(UserUtil.getUser().getFdParentOrg()!=null){
orgIds.add(UserUtil.getUser().getFdParentOrg().getFdId());
}
List<SysOrgElement> fdPosts = UserUtil.getUser().getFdPosts();
for (SysOrgElement fdPost : fdPosts) {
if(fdPost.getFdParentOrg()!=null){
orgIds.add(fdPost.getFdParentOrg().getFdId());
}
}
HQLInfo hqlInfo = new HQLInfo();
hqlInfo.setPageNo(pageno);
hqlInfo.setRowSize(rowsize);
String where = "";
if (StringUtil.isNotNull(keyWord)) {
where += "(contractManageSrht.fdHtbh like :fdHtbh";
hqlInfo.setParameter("fdHtbh", "%" + keyWord + "%");
where += " or contractManageSrht.fdHtmc like :fdHtmc";
hqlInfo.setParameter("fdHtmc", "%" + keyWord + "%");
where += ")";
}
//String sql = StringUtil.linkString(where, " and ", " contractManageSrht.docStatus = 30 ");
String sql = StringUtil.linkString(where, " and ", " contractManageSrht.docStatus in ('11','20','30') ");
sql += " and contractManageSrht.fdYfdw.fdId in (:org) ";
hqlInfo.setParameter("org",orgIds);
hqlInfo.setWhereBlock(StringUtil.linkString(sql," and "," contractManageSrht.docIsNewVersion=1 "));
hqlInfo.setOrderBy("case when contractManageSrht.fdHtmc like '%公共费用%' then 0 else 1 end, contractManageSrht.fdHtmc asc, contractManageSrht.docCreateTime desc");
HQLHelper.by(request).buildHQLInfo(hqlInfo, ContractManageSrht.class);
// 暂时去除数据权限过滤
hqlInfo.setAuthCheckType(SysAuthConstant.AUTH_CHECK_NONE);
Page page = getServiceImp(request).findPage(hqlInfo);
List<ContractManageSrht> list = page.getList();
DecimalFormat df=new DecimalFormat("0.00");
for (ContractManageSrht contractManageSrht : list) {
//合同金额
contractManageSrht.setContractAmount(df.format(contractManageSrht.getFdHtje()!=null?contractManageSrht.getFdHtje():0.00));
//已开票额
if(contractManageSrht.getFdYkp()!=null){
contractManageSrht.setInvoicedAmount(df.format(contractManageSrht.getFdYkp()!=null?contractManageSrht.getFdYkp():0.00));
}
//已开收据额
if(contractManageSrht.getFdReceipt()!=null){
contractManageSrht.setAmountRecovered(df.format(contractManageSrht.getFdReceipt()!=null?contractManageSrht.getFdReceipt():0.00));
}
//已收款金额
if(contractManageSrht.getFdYskje()!=null){
contractManageSrht.setReceivedAmount(df.format(contractManageSrht.getFdYskje()!=null?contractManageSrht.getFdYskje():0.00));
}
}
request.setAttribute("queryPage", page);
} catch (Exception e) {
messages.addError(e);
}
TimeCounter.logCurrentTime("selectContract", false, getClass());
if (messages.hasError()) {
KmssReturnPage.getInstance(request).addMessages(messages).addButton(KmssReturnPage.BUTTON_CLOSE).save(request);
return mapping.findForward("failure");
} else {
return mapping.findForward("selectContract");
}
}
注:此方法就是刚才在sourceUrl配置的方法,查出来需要的数据并返给前端
三、 如何把数据再带到另一个引入的页面
此处以项目计划调整单的工程阶段带出项目布置的数据为例
<table class="tb_normal" width="100%">
<c:import url="/measure/manage/common/common_info_project_layout.jsp">
<c:param name="showStatus" value="edit"/>
</c:import>
</table>
如上所示,在前端 edit 页面引入其它的页面,想要把弹框的数据带入这个 edit 界面上
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ include file="/resource/jsp/common.jsp"%>
<c:set var="fdTechPersonId" value="" />
<c:set var="fdTechPersonName" value="" />
<c:set var="fdScrName" value="" />
<c:set var="fdReportInspectorName" value="" />
<c:set var="fdMapInspectorName" value="" />
<c:set var="fdHdrName" value="" />
<c:set var="fdPzrName" value="" />
<c:forEach var="fdTechPerson" items="${projectLayout.fdTechPerson}" >
<c:set var="fdTechPersonName" value="${fdTechPersonName};${fdTechPerson.fdName}" />
<c:set var="fdTechPersonId" value="${fdTechPersonId};${fdTechPerson.fdId}" />
</c:forEach>
<c:forEach var="fdScr" items="${projectLayout.fdScr}" >
<c:set var="fdScrName" value="${fdScrName};${fdScr.fdName}" />
</c:forEach>
<c:forEach var="fdReportInspector" items="${projectLayout.fdReportInspector}" >
<c:set var="fdReportInspectorName" value="${fdReportInspectorName};${fdReportInspector.fdName}" />
</c:forEach>
<c:forEach var="fdMapInspector" items="${projectLayout.fdMapInspector}" >
<c:set var="fdMapInspectorName" value="${fdMapInspectorName};${fdMapInspector.fdName}" />
</c:forEach>
<c:forEach var="fdHdr" items="${projectLayout.fdHdr}" >
<c:set var="fdHdrName" value="${fdHdrName};${fdHdr.fdName}" />
</c:forEach>
<c:forEach var="fdPzr" items="${projectLayout.fdPzr}" >
<c:set var="fdPzrName" value="${fdPzrName};${fdPzr.fdName}" />
</c:forEach>
<tr>
<td class="td_normal_title" width="15%">
主导科室
</td>
<td width="35%">
<div _xform_type="text">
<xform:text value="${scProduceRws.fdCjy.fdId}" property="fdLeadDeptId" showStatus="noShow" style="width:95%;"/>
<xform:text value="${scProduceRws.fdCjy.fdName}" property="fdLeadDept" showStatus="${param.showStatus == 'edit' ? 'readOnly' : param.showStatus}" style="width:95%;"/>
</div>
</td>
<td class="td_normal_title" width="15%">
项目负责人
</td>
<td width="35%">
<div _xform_type="text">
<xform:text value="${projectLayout.fdXmfzr.fdId}" property="fdXmfzrId" showStatus="noShow" style="width:95%;"/>
<xform:text value="${projectLayout.fdXmfzr.fdName}" property="fdXmfzrName" showStatus="${param.showStatus == 'edit' ? 'readOnly' : param.showStatus}" style="width:95%;"/>
</div>
</td>
</tr>
<tr>
<td class="td_normal_title" width="15%">
${lfn:message('measure-manage:measureManageProjectLayout.fdTechPerson')}
</td>
<td width="35%">
<%-- 技术负责人--%>
<div _xform_type="text">
<xform:text value="${fdTechPersonId != '' ? fdTechPersonId.substring(1) : fdTechPersonId}" property="fdTechPersonId" showStatus="noShow" style="width:95%;"/>
<xform:text value="${fdTechPersonName != '' ? fdTechPersonName.substring(1) : fdTechPersonName}" property="fdTechPersonName" showStatus="${param.showStatus == 'edit' ? 'readOnly' : param.showStatus}" style="width:95%;" />
</div>
</td>
<td class="td_normal_title" width="15%">
审查人
</td>
<td width="35%">
<div _xform_type="text">
<xform:text value="${fdScrName != '' ? fdScrName.substring(1) : fdScrName}" property="fdScrName" showStatus="${param.showStatus == 'edit' ? 'readOnly' : param.showStatus}" style="width:95%;"/>
</div>
</td>
</tr>
<tr>
<td class="td_normal_title" width="15%">
报告检查员
</td>
<td width="35%">
<div _xform_type="text">
<xform:text value="${fdReportInspectorName != '' ? fdReportInspectorName.substring(1) : fdReportInspectorName}" property="fdReportInspectorName" showStatus="${param.showStatus == 'edit' ? 'readOnly' : param.showStatus}" style="width:95%;"/>
</div>
</td>
<td class="td_normal_title" width="15%">
地形图检查员
</td>
<td width="35%">
<div _xform_type="text">
<xform:text value="${fdMapInspectorName != '' ? fdMapInspectorName.substring(1) : fdMapInspectorName}" property="fdMapInspectorName" showStatus="${param.showStatus == 'edit' ? 'readOnly' : param.showStatus}" style="width:95%;"/>
</div>
</td>
</tr>
<tr>
<td class="td_normal_title" width="15%">
核定人
</td>
<td width="35%">
<div _xform_type="text">
<xform:text value="${fdHdrName != '' ? fdHdrName.substring(1) : fdHdrName}" property="fdHdrName" showStatus="${param.showStatus == 'edit' ? 'readOnly' : param.showStatus}" style="width:95%;"/>
</div>
</td>
<td class="td_normal_title" width="15%">
批准人
</td>
<td width="35%">
<div _xform_type="dialog">
<xform:text value="${fdPzrName != '' ? fdPzrName.substring(1) : fdPzrName}" property="fdPzrName" showStatus="${param.showStatus == 'edit' ? 'readOnly' : param.showStatus}" style="width:95%;"/>
</div>
</td>
</tr>
<script>
if (${param.showStatus == 'edit'}) {
$KMSSValidation();
}
</script>
form_option.js 中的 outputs 属性的 value 对应的如上所示的这个页面的 property