1.获取流程节点以进行操作
PowerForm.EventAfterFormLoad = function (e, data) {
if (workflowdata && workflowdata.BookMarkCode) {
if (workflowdata.BookMarkCode == "ProjectMangerName"){
}
}
}
2.对表单中的元素进行启用,只读,将必填设为不必填
mini.get("Start_ProjStartApp.ProjectType").setReadOnly(false);
mini.get("Start_ProjStartApp.Save").enable();
mini.get("WLY_ResponsiblePersonAssignment.SupervisionUnit").setRequired(false)
mini.get("WLY_ZLGL_Acceptance.CompletionDate").setVisible(false)
3.在窗体上进行分组
var grid = mini.get("WLY_QQGL_ProphaseManagement");
grid.on("load", function () {
grid.groupBy("IsSubmit", "asc");
});
function onDrawGroup(e) {
e.cellHtml = "任务状态:" + getGroupText(e.value) + "(" + e.rows.length + "行"
+ ")";
}
function getGroupText(id) {
var GroupText = [];
jQuery.ajax({
url: "/Form/ComboxLoadData/FormStatus/",//grid加载用到的方法
cache: false,
async: false,
success: function (text) {//给部门赋值
var tmpdata = mini.decode(text);
if (tmpdata.length > 0) {
debugger;
GroupText = tmpdata;
}
}
});
for (var i = 0, l = GroupText.length; i < l; i++) {
var g = GroupText[i];
if (g.Code == id) return g.Name;
}
return "";
}
4.PowerForm.EventAfterFormLoad = function (e, data);
PowerForm.EventAfterOnBtnSave = function (e);
PowerForm.EventBeforeOnBtnFlow = function (e);
PowerForm.EventWizardData = function (e, data);
formconfig.config.joindata.currow["ProjectId"];
关闭表单不显示是否保存
closecancel = 0;
var PowerForm = new SingleForm();
$(function () {
PowerForm.Init();
});
closecancel = 0;
mini.parse();
5.暂存
var requiredArr = [];
function Staging(e) {
requiredArr = mini.findControls(function (control) {
if (control.formField == true && control.getRequired != undefined &&
control.getRequired()) {
control.setRequired(false);
return true;
}
});
PowerForm.OnBtnSave(e, false, FormParams);
}
6.文件的下载与查看
//下载,需引入js
<link href="/Scripts/plugins/uploadify/uploadify.css?v=$AppVersion" rel="stylesheet" type="text/css" />
<script src="/Scripts/plugins/uploadify/jquery.uploadify.html5.js?v=$AppVersion" type="text/javascript"></script>
<script src="/Scripts/plugins/uploadify/spark-md5.min.js?v=$AppVersion" type="text/javascript"></script>
var PowerFiles = new PowerFiles();
function Download() {
var fid_ = mini.get("WLY_ZLGL_Annex").getSelected().FId;
PowerFiles.DownloadFile(fid_);
}
//查看,FId是文件的Id
function View() {
var fid = mini.get("WLY_ZLGL_Annex").getSelected().FId;
var url = "/PowerPlat/FormXml/FileViewer.aspx?fileid=" + fid;
window.open(url);
}
7.向打开的新窗口传数据
Power.ui.dialog({
title: '提示', //对话框标题
content: "建设实施阶段工期已经超过合同约定工期是否申请授权", //对话框实体内容
modal: true, //是否创建遮罩
effect: 'zoom', //对话框显示的转场物资
position: 'center center', //对话框的位置
button: { //设置对话框的按钮组
"是": {
theme: 'primary', //按钮的主题
handler: function () { //点击按钮时的回调
var url = "/Form/AddForm/0a40f691-db53-49e7-94cb-5cc4cbcc54c0/";
mini.open({
url: url,
width: 1366,
height: 668,
showMaxButton: true,
onload: function () {
var iframe = this.getIFrameEl();
var data = {
projectId: value[1],
projectCode: value[2],
projectName: value[3],
projectType: value[4],
projectCategory: value[5]
};
iframe.contentWindow.SetData(data);
},
ondestroy: function () {
}
});
}
},
"否": function () {
}
}
});
接收数据
function SetData(data) {
data = mini.clone(data);
mini.get("WLY_ZLGL_AuthApp.ProjectId").setValue(data.projectId);
mini.get("WLY_ZLGL_AuthApp.ProjectCode").setValue(data.projectCode);
mini.get("WLY_ZLGL_AuthApp.ProjectName").setValue(data.projectName);
mini.get("WLY_ZLGL_AuthApp.ProjectType").setValue(data.projectType);
mini.get("WLY_ZLGL_AuthApp.ProjectCategory").setValue(data.projectCategory);
}
8.日期可以显示到秒加上showTime="true"
9.如果向导选择之后,页面上没有显示出来,但是数据库又存上数据了,有可能是textname没有写。
10.输入框自动搜索并代入数据
<tr>
<td>
建设项目名称
</td>
<td colspan="3">
<input id="WLY_TZGL_ProjectCooperationContract.ProjectName_JS" name="ProjectName_JS" textname="ProjectName_JS" class="mini-autocomplete" url="/Data/AutoComplete?keyword=WLY_QQGL_BusinessDevelopment_New&id=Id&text=ProjectName" popupWidth="400px" emptytext="搜索建设项目名称" required="required" onvaluechanged="onValueChanged" />
</td>
</tr>
function onValueChanged(e) {
var item = e.selected;
if (item) {
getDataJson([{
KeyWord: "WLY_QQGL_BusinessDevelopment_New",
Type: "Business",
Where: "Id='" + item.id + "'"
}], function (json) {
if (json.data.WLY_QQGL_BusinessDevelopment_New.length > 0) {
var ProjectName_JS = json.data.WLY_QQGL_BusinessDevelopment_New[0].ProjectName;
var ProjectNature_JS = json.data.WLY_QQGL_BusinessDevelopment_New[0].ProjectNature;
var Delivery = json.data.WLY_QQGL_BusinessDevelopment_New[0].DeliveryDate;
var ProjectAddress_JS = json.data.WLY_QQGL_BusinessDevelopment_New[0].ProjectAddress;
var EngineeringFundsSource = json.data.WLY_QQGL_BusinessDevelopment_New[0].FundingType;
var CustomerName = json.data.WLY_QQGL_BusinessDevelopment_New[0].CustomerName;
var CustomerContacts = json.data.WLY_QQGL_BusinessDevelopment_New[0].CustomerContact;
var CustomerPhone = json.data.WLY_QQGL_BusinessDevelopment_New[0].CustomerPhone;
mini.get("WLY_TZGL_ProjectCooperationContract.ProjectName_JS").setValue(ProjectName_JS);
mini.get("WLY_TZGL_ProjectCooperationContract.ProjectNature_JS").setValue(ProjectNature_JS);
mini.get("WLY_TZGL_ProjectCooperationContract.Delivery").setValue(Delivery);
mini.get("WLY_TZGL_ProjectCooperationContract.ProjectAddress_JS").setValue(ProjectAddress_JS);
mini.get("WLY_TZGL_ProjectCooperationContract.EngineeringFundsSource").setValue(EngineeringFundsSource);
mini.get("WLY_TZGL_ProjectCooperationContract.CustomerName").setValue(CustomerName);
mini.get("WLY_TZGL_ProjectCooperationContract.CustomerContacts").setValue(CustomerContacts);
mini.get("WLY_TZGL_ProjectCooperationContract.CustomerPhone").setValue(CustomerPhone);
}
})
}
}
11.表格上传文件
配置文件:
页面引入js
<link href="/Scripts/plugins/uploadify/uploadify.css?v=$AppVersion" rel="stylesheet" type="text/css" />
<script src="/Scripts/plugins/uploadify/jquery.uploadify.html5.js?v=$AppVersion" type="text/javascript"></script>
其中必须要有以Add结尾的id,并且这个按钮是可用的
11.打开编辑窗口操作,调用 FormFuns.OnEditViewForm
OnBtnEditForm: function (e, formid, params) {
FormFuns.OnEditViewForm(e, formid, "edit", params);
}
12.miniui 隐藏列
需要注意的是:这种两列有一个合并列头的要想隐藏只能通过数字的方式隐藏,无法通过field隐藏列。
var grid = mini.get("WLY_ZLGL_SupervisionEvaluationDtl");
//可以通过数字隐藏对应的列,起始值为1
grid.hideColumn(5);
grid.hideColumn(6);
//显示列
grid.showColumn(5);
grid.showColumn(6);
//可以通过列的field隐藏
var grid = mini.get("WLY_QQGL_ProphaseFile");
grid.hideColumn("ExpiryDate");
grid.hideColumn("FName1");
grid.hideColumn("FId1");
//显示列
grid.showColumn("FName1");
grid.showColumn("FId1");
13.下拉框展示多列
<tr>
<td>
检查内容
</td>
<td colspan="3">
<div id="WLY_AQGL_HiddenDangerCheck.CheckPosition" name="CheckPosition" class="mini-combobox" multiselect="true" required="true" showClose="true" oncloseclick="onCloseClick">
<div property="columns">
<div header="检查内容" field="Content"></div>
<div header="项目" field="text"></div>
</div>
</div>
</td>
</tr>
14.前端通过日历计算结束日期
//1 表单引用这个JS
<script src="/Scripts/PowerWeb/PlanUIView/calendarFuns.js?v=$AppVersion" type="text/javascript"></script>
//2 获取需要使用的日历规则
var a = calendarFuns.getTaskCalendar("348979ac-95d1-421b-9f64-c787751bc7d3")
//3 根据开始日期和工期计算结束日期
calendarFuns.getEndDateByCalendar(a,"2023-4-26",5)
15.表单中实现下图上传附件样式
js中的canEdit是用来控制可不可以上传文件的,可以根据具体条件控制该附件是否可以上传(true 可以,false不可以)
<td>
工程变更材料
</td>
<td colspan="3" style="text-align:center;" id="gcbgcl">
<a class="btn btn-primary" id="SignIn" name="SignIn" title="工程变更材料"
align="Right" onclick="OnBt_SignIn(this)">上传工程变更材料</a>
</td>
function OnBt_SignIn(e){
var title = e.title;
var canEdit = "true";
// if (mini.get("WLY_QQGL_SelfAssessment.PersonInChargeId").getValue() != HumanId) {
// canEdit = "false"
// }
var url = "/Form/OpenURL?url=/PowerPlat/FormXml/zh-CN/WLY_QQGL/FileOperate_QQGL.htm&KeyWord=WLY_TZGL_ChargingBudgetChange&canEdit=" + canEdit +"&thetype=" + title + "&KeyValue=" + KeyValue;
mini.open({
url: url,
width: 900,
height: 400,
showMaxButton: true,
onload: function () { },
ondestroy: function () { }
});
}
15.动态生成列
<div class="row-wrap" >
<div class="row row-hd row-hd-responsive" style="height: 100%">
<div class="col-md-12 col-hd-12">
<div class="portlet box blue" style="height: 100%;">
<div class="portlet-title">
<div class="captiontools">
<a class="mini-button blue" id="DynamicColumn.Refresh" onclick="Refresh()"><i class="fa fa-refresh"></i>刷新</a><!--刷新-->
<a class="mini-button blue" id="DynamicColumn.Export" onclick="PowerForm.OnExportDataToXls('DynamicColumn', '导出excel',null,null,'66,139,202', '255,255,255')"><i class="fa fa-sign-out"></i>导出EXCEL</a>
<!-- <a class="mini-button blue" id="DynamicColumn.Print" onclick="PowerForm.OnExportDataToPDF('DynamicColumn', 'PDF查看', null, null, '66,139,202', '255,255,255')"><i class=" fa fa-print"></i>PDF查看</a> -->
</div>
</div>
<div class="portlet-body" style="height: 100%;">
<div id="DynamicColumn" class="mini-datagrid" visible="true" style="width: 100%; height: 100%;" showPager="false" pagesize="100" summarycolumns="" fitcolumns="" multiselect="true" allowcellselect="true" >
</div>
</div>
</div>
</div>
</div>
</div>
function setDynamic(){
debugger;
var Id = getParameter("Id");
var ProductionUnitId = getParameter("ProductionUnitId")!=""?getParameter("ProductionUnitId"):"";
//动态设置列
var x=new Array();
var exec = {};
exec.KeyWord = "ps_internal_projects_fund_approval";
exec.MethodName = "getColumns";
exec.MethodParams = {};
var params = exec.MethodParams;
params.Id = Id;
params.ProductionUnitId = ProductionUnitId;
var txt = mini.encode(exec);
$.ajax({
url: "/API/Exec",
type: "POST",
data: { jsonData: txt },
//contentType: "application/json; charset=utf-8",
cache: false,
async: false,
success: function (text){
var tmp = mini.decode(text);
var data = mini.decode(tmp.data.value);
if(tmp.success){
x.push({ type: "indexcolumn", header:"序号",width:40});
x.push({ field: "Supplier_new",name:"Supplier_new", width: 160, headerAlign: "center", align :"left",header: "科目名称", editor: { type: "textbox"} });
// x.push({ field: "SubjectName", width: 120, headerAlign: "center", header: "科目名称", editor: { type: "textbox"} });
for (var i = 0; i < data.length; i++) {
x.push({
field:data[i].ResponsibleUnitName,
width: 120,
headerAlign: "center",
align:"center",
// allowSort: true,
header: data[i].ResponsibleUnitName,
// editor: { type: "textbox"},
// editor: { type: "spinner",format:"n2"},
editor:{cls:"mini-spinner",format: "n2",minValue: "0",maxValue: "999999999999999999"},
numberFormat:"n2"
});
}
}
}
});
var grids = mini.get("DynamicColumn");
grids.set({
columns: x
});
//动态设置数据
var exec = {};
exec.KeyWord = "ps_internal_projects_fund_approval";
exec.MethodName = "getProjectSettlement";
exec.MethodParams = {};
var params = exec.MethodParams;
params.Id = Id;
params.ProductionUnitId = ProductionUnitId;
var txt = mini.encode(exec);
$.ajax({
url: "/API/Exec",
type: "POST",
data: { jsonData: txt },
//contentType: "application/json; charset=utf-8",
cache: false,
async: false,
success: function (text){
// grids.mergeColumns(["SubjectType"]);
var tmp = mini.decode(text);
var data = tmp.data.value;
var obj = JSON.parse(data);
grids.setData(obj);
// grids.mergeColumns(["SubjectType"]);
grids.frozenColumns(0,1);
// var marges = [
// { rowIndex: 1, columnIndex: 0, rowSpan: 1, colSpan: 2 }
// ];
// grids.mergeCells(marges);
}
})
}
16.设计向导,树结构,让树是展开的结构,把是否懒加载设置为false。
17.鼠标悬停显示文本
function ondrawcell(e) {
var row = e.row,
column = e.column,
field = e.field,
value = e.value;
if (field == "parent_name") {
e.cellHtml = '<div id="' + row.parent_name + '" class="showCellTooltip" data-placement="bottomright">' + row.parent_name + '</div>';
}
}
var tip = new mini.ToolTip();
tip.set({
target: document,
selector: '.showCellTooltip',
onbeforeopen: function (e) {
e.cancel = false;
},
onopen: function (e) {
var el = e.element;
var id = el.id;
if (id) {
this.showLoading();
//模拟网络延迟
setTimeout(function () {
var html = "<div style='width:300px;color:blue;'><span style='text-align:left;display:block;'>" + id + ";</span><div>";
tip.setContent(html);
}, 100);
}
}
});
<style>
.showCellTooltip {
color: black;
}
</style>