1.表单字段去边框
<script></script>
<style>
/*e8*/
.e8_os{
min-width:95% !important;
}
.e8_outScroll{
border:none;
}
select {
line-height: 22px;
height: 22px;
background: none;
border: none;
min-width: 95%;
}
/* e8 明细表斑马线 */
.excelDetailTable tr:nth-child(2n+3) td {
background: #f7f7f7!important;
}
.excelDetailTable tr:nth-child(2n+3) td:first-child , .excelDetailTable tr:nth-child(2n+3) td:last-child {
background:transparent !important;
}
.excelDetailTable tr:nth-child(2n+3) td input{
background: #f7f7f7!important;
}
/* e9样式-明细表斑马线条纹 */
tr.detail_even_row td{
background: #FAFAFA!important;
}
tr.detail_even_row td:first-child{
background: transparent !important;
}
tr.detail_even_row td:last-child{
background: transparent !important;
}
tr.detail_even_row td .wf-input{
background: #FAFAFA!important;
}
.excelDetailTable tr td:first-child{
border-top-color: #efefef!important;
border-left-color: #efefef!important;
}
.excelDetailTable tr td:last-child{
border-top-color: #efefef!important;
border-right-color: #efefef!important;
}
.excelDetailTable tr:nth-child(2n+2) td {
background: transparent !important;
}
.excelDetailTable tr:nth-child(2n+2) td input{
background: transparent !important;
}
/* 样式-下拉框长度 */
.wea-select{
width: 95%
}
/*选择框宽度*/
.wea-select ,.ant-select-selection{
width: 95%;
border-style: none;
}
/*浏览框去边框,调整宽度*/
.wea-associative-search {
border-style: none;
min-width: 95% !important;
}
/* e9样式结束*/
/*通用圆角样式*/
.ysyj{
height:15px;
width:100%;
background:#ffffff!important;
border: 1px solid #ffffff!important;
border-top-right-radius:9px;
}
.zxyj{
height:15px;
width:100%;
background:#ffffff!important;
border: 1px solid #ffffff!important;
border-bottom-left-radius:9px;
}
.yxyj{
height:15px;
width:100%;
background:#ffffff!important;
border: 1px solid #ffffff!important;
border-bottom-right-radius:9px;
}
.zsyj{
height:15px;
width:100%;
background:#ffffff!important;
border: 1px solid #ffffff!important;
border-top-left-radius:9px;
}
/*单行文本去背景*/
input.InputStyle,
input.Inputstyle,
input.inputStyle,
input.inputstyle,
.excelMainTable input[type="text"],
.excelMainTable input[type="password"],
.e8_innerShowContent,
.excelMainTable textarea,
.sbHolder {
/*border: 1px solid #F2F2F2 !important;*/
border: none;
background: none;
}
/* 修复 input 框 Chrome 自动填充屎黄色背景 */
input:-webkit-autofill,.excelMainTable input:-webkit-autofill:hover,.excelMainTable input:-webkit-autofill:focus,.excelMainTable input:-webkit-autofill:active {
-webkit-transition-delay: 99999s;
-webkit-transition: color 99999s ease-out, background-color 99999s ease-out;
}
</style>
2.隐藏流程图、流程状态、相关资源
//方法一
WfForm.registerAction(WfForm.ACTION_TABCONFIG,function(tabs){
tabs = tabs.filter(function(item){
return item.key!='status'&& item.key!='pic'&& item.key!='resource'////这里隐藏的是pc流程图,移动端使用 item.key!='picture'
});
return tabs;
});
//方法二
window.WfForm.overrideTabDatas = function(tabs) {
tabs = tabs.filter(function(item){
return item.key!='resource' && item.key!='status' &&item.key!="picture"; //这里隐藏的是移动端流程图,pc端使用item.key!='pic'
});
return tabs;
}
3.代码块开发明细下载按钮
代码块中开发一个下载明细的按钮,参考代码:
需要通过代码中开发实现,实现方法如下,仅供参考:
WfForm.proxyFieldComp("field222", "<a href='/api/workflow/reqform/dowloadTemplate?requestid="+wfform.getBaseInfo().requestid+"&workflowid="+wfform.getBaseInfo().workflowid+"&nodeid="+wfform.getBaseInfo().nodeid+"&modeid="+wfform.getGlobalStore().commonParam.modeid+"'>下载明细</a>", "1,2,3");
4.手机号、身份证格式校验
<script>
//field12708
WfForm.bindFieldChangeEvent("field12708", function(obj,id,value){
if(!isMobile(value)){
alert("手机格式不正确!")
WfForm.changeFieldValue("field12708", {value:""});
}
});
function isMobile (mobile) {
return /^1[3-9]\d{9}$/.test(mobile)
}
WfForm.bindDetailFieldChangeEvent("field27583",function(id,rowIndex,value){
if(!(/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(value))){
alert("身份证号码填写有误,请仔细核对后重新输入!");
window.setTimeout(function(){
WfForm.changeFieldValue("field27583",{value:""});
}, 10);
}
});
</script>
5.密级期限字段赋值
wfform.getGlobalStore().setSecLevelInfo({secLevel:"1",secValidity:'40年'})
6.当明细中存在某个值时修改主表字段
<script>
WfForm.bindDetailFieldChangeEvent("field11040",function(id,rowIndex,value){
var flag = "0";
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
var fieldMark = "field11040_"+rowIndex; //遍历明细行字段
var fieldvalue = WfForm.getFieldValue(fieldMark);
if(fieldvalue==5){
flag = "1";
}
}
}
if(flag=="1"){
WfForm.changeFieldValue("field9049", {value:"0"});
}else{
WfForm.changeFieldValue("field9049", {value:"1"});
}
});
</script>
7.每个月三号不允许提交上个月的流程
WfForm.registerCheckEvent(WfForm.OPER_SUBMIT,function(callback){
var starDate = WfFform.getFieldValue('fieldxxx');
var lastMonth = new Date(starDate).getMonth;
var nowMonth = new Date().getMonth();
if(new Date().getDay()>3&&nowMonth>lastMonth){//如果当前时间超过了4号,且表单上的日期是上个月
wfform.showConfirm("超过规定时间不许提交")
}else{
callback();
}
});
8.限制明细主表日期字段只能选当月
<script>
function getFirstDay(){
var y = new Date().getFullYear(); //获取年份
var m = new Date().getMonth() + 1; //获取月份
var d = '01'
m = m < 10 ? '0' + m : m; //月份补 0
return [y,m,d].join("-")
}
function getLastDay(){
var y = new Date().getFullYear(); //获取年份
var m = new Date().getMonth() + 1; //获取月份
var d = new Date(y, m, 0).getDate(); //获取当月最后一日
m = m < 10 ? '0' + m : m; //月份补 0
d = d < 10 ? '0' + d : d; //日数补 0
return [y,m,d].join("-")
}
//明细表
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
WfForm.controlDateRange("field6893_"+index, getFirstDay(), getLastDay()); //明细字段,限定当月
});
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
var fieldMark = "field6893_"+rowIndex; //遍历明细行字段
WfForm.controlDateRange(fieldMark, getFirstDay(), getLastDay()); //明细字段,限定当月
}
}
//主表
WfForm.controlDateRange("field6894", getFirstDay(), getLastDay()); //主表字段,限定当月
</script>
9.根据主表下拉框的值隐藏明细表列
第一步先在html模板上给需要动态显隐的列设置自定义属性class,这里使用的rq2示例。
//表单加载的时候执行
var value = WfForm.getFieldValue("field22857");
if(value==0){
jQuery(".rq2").hide();
}else{
jQuery(".rq2").show();
}
//字段值改变的时候执行
WfForm.bindFieldChangeEvent("field22857", function(obj,id,value){
if(value==0){
jQuery(".rq2").hide();
}else{
jQuery(".rq2").show();
}
});
//点击新增行执行
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
var value = WfForm.getFieldValue("field22857");
if(value==0){
jQuery(".rq2").hide();
}else{
jQuery(".rq2").show();
}
});
10.给浏览按钮赋值
//获取文本字段或浏览按钮主键值
var fieldvalue1 = WfForm.getFieldValue("field110");
//获取浏览按钮specialobj
var fieldvalue2 = mobx.toJS(wfform.getFieldValueObj("field110").specialobj);
//获取到的内容可直接作为其他浏览按钮赋值使用的specialobj,如:
WfForm.changeFieldValue("field11_2", {
value: fieldvalue1,
specialobj:fieldvalue2
});
11.根据明细不同的值修改字段颜色
WfForm.bindDetailFieldChangeEvent("field14088",function(id,rowIndex,value){
if(value<60){
$("#field14088_"+rowIndex).css("color","red").css("font-weight","bold");
}else{
$("#field14088_"+rowIndex).css("color","black").css("font-weight","unset");
}
});
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
var value = WfForm.getFieldValue("field14088_"+rowIndex);
if(value<60){
$("#field14088_"+rowIndex).css("color","red").css("font-weight","bold");
}
}
}
12.明细表浏览按钮赋值给主表多浏览按钮
var values ='';
var specialobjs = [];
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
var fieldMark = "field8345_"+rowIndex; //遍历明细行字段
var fieldvalue1 = WfForm.getFieldValue(fieldMark);
var fieldvalue2 = mobx.toJS(wfform.getFieldValueObj(fieldMark).specialobj);
values = values+','+fieldvalue1;
specialobjs = specialobjs.concat(fieldvalue2);
}
}
console.log(values);
console.log(specialobjs);
//获取到的内容可直接作为其他浏览按钮赋值使用的specialobj,如:
WfForm.changeFieldValue("field8344", {
value: values,
specialobj:specialobjs
});
13.找到明细中最大的那个数并赋值给主表字段
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
var detialData = [];
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
var fieldMark = "field111_"+rowIndex; //遍历明细行字段
var fieldvalue = Number(WfForm.getFieldValue(fieldMark));
detialData.push(fieldvalue);
}
}
var max = Math.max.apply(null,detialData);
WfForm.changeFieldValue("field123", {value:max});
14.明细表存在重复禁止提交
WfForm.registerCheckEvent(WfForm.OPER_SUBMIT,function(callback){
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
var map = new Map();
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
var fieldvalue = WfForm.getFieldValue("field9082_"+rowIndex);
if(map.has(fieldvalue)){
alert("差旅明细时间重复禁止提交");
return;
}
map.set(fieldvalue);
}
}
callback();
});
15.获取附件名称
mobx.toJS(wfform.getFieldValueObj(“field209”).specialobj).filedatas.shift().filename
16.根据选项给日期加天数(每个选项对应固定天数)
WfForm.bindFieldChangeEvent("field27555,field27556", function(obj,id,value){
var fieldvalue1 = Number(WfForm.getFieldValue("field27555"));//资产类别
var fieldvalue2 = WfForm.getFieldValue("field27556");//使用日期
var dateTime=new Date(fieldvalue2);
if(fieldvalue1==0){
dateTime=dateTime.setDate(dateTime.getDate()+1);
}else if(fieldvalue1==1){
dateTime=dateTime.setDate(dateTime.getDate()+2);
}
dateTime=new Date(dateTime);
dateTime = formtDate(dateTime);
WfForm.changeFieldValue("field110", {//有效日期
value: dateTime,
specialobj:[
{id:dateTime,name:dateTime}
]
});
});
function formtDate(date){
var Y = date.getFullYear();
var M = dateTime.getMonth()>0?dateTime.getMonth()+1:"0"+dateTime.getMonth()+1;
var D = dateTime.getDate()>0?dateTime.getDate():"0"+dateTime.getDate();
return Y+"-"+M+"-"+D;
}
17.根据主表字段控制明细表字段显示属性
changeFieldAttr();
WfForm.bindFieldChangeEvent("field12738", function(obj,id,value){
changeFieldAttr();
});
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(rowIndex){
var fieldvalue = WfForm.getFieldValue("field27555");
if(fieldvalue==0){
WfForm.changeFieldAttr("field10901_"+rowIndex, 1); //字段修改为只读
WfForm.changeFieldAttr("field10244_"+rowIndex, 1); //字段修改为只读
}else{
WfForm.changeFieldAttr("field10901_"+rowIndex, 3); //字段修改为必填
WfForm.changeFieldAttr("field10244_"+rowIndex, 3); //字段修改为必填
}
});
function changeFieldAttr(){
var fieldvalue = WfForm.getFieldValue("field27555");
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(fieldvalue==0){
WfForm.changeFieldAttr("field10901_"+rowIndex, 1); //字段修改为只读
WfForm.changeFieldAttr("field10244_"+rowIndex, 1); //字段修改为只读
}else{
WfForm.changeFieldAttr("field10901_"+rowIndex, 3); //字段修改为必填
WfForm.changeFieldAttr("field10244_"+rowIndex, 3); //字段修改为必填
}
}
}
18.根据明细表字段控制当前行是否显示
//字段值改变的时候执行
WfForm.bindDetailFieldChangeEvent("field27583",function(id,rowIndex,value){
var fieldvalue = WfForm.getFieldValue("field110_"+rowIndex);
if(fieldvalue==0){
WfForm.controlDetailRowDisplay("detail_1", rowIndex, true); //明细隐藏
}else{
WfForm.controlDetailRowDisplay("detail_1", rowIndex, false); //明细显示
}
});
//表单重新加载的时候执行,用于保存、明细导入后执行
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
var fieldvalue = WfForm.getFieldValue("field110_"+rowIndex);
if(fieldvalue==0){
WfForm.controlDetailRowDisplay("detail_1", rowIndex, true); //明细隐藏
}else{
WfForm.controlDetailRowDisplay("detail_1", rowIndex, false); //明细显示
}
}
19.根据明细字段控制另一个明细字段显示属性
WfForm.bindDetailFieldChangeEvent("field27583",function(id,rowIndex,value){
var fieldvalue = WfForm.getFieldValue("field27583_"+rowIndex);
if(fieldvalue==0){
WfForm.changeFieldAttr("field10901_"+rowIndex, 1); //字段修改为只读
WfForm.changeFieldAttr("field10244_"+rowIndex, 1); //字段修改为只读
}else{
WfForm.changeFieldAttr("field10901_"+rowIndex, 3); //字段修改为必填
WfForm.changeFieldAttr("field10244_"+rowIndex, 3); //字段修改为必填
}
});
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
var fieldvalue = WfForm.getFieldValue("field27583_"+rowIndex);
if(fieldvalue==0){
WfForm.changeFieldAttr("field10901_"+rowIndex, 1); //字段修改为只读
WfForm.changeFieldAttr("field10244_"+rowIndex, 1); //字段修改为只读
}else{
WfForm.changeFieldAttr("field10901_"+rowIndex, 3); //字段修改为必填
WfForm.changeFieldAttr("field10244_"+rowIndex, 3); //字段修改为必填
}
}
20.根据主表日期限制明细日期可选范围
var fieldvalue2 = WfForm.getFieldValue("field27556");//使用日期
var newDate = getNewDate(fieldvalue2);
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
var fieldMark = "field111_"+rowIndex; //遍历明细行字段
WfForm.controlDateRange(fieldMark, fieldvalue2, newDate); //明细字段
}
}
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
var fieldvalue2 = WfForm.getFieldValue("field27556");//使用日期
var newDate = getNewDate(fieldvalue2);
var fieldMark = "field111_"+index; //遍历明细行字段
WfForm.controlDateRange(fieldMark, fieldvalue2, newDate); //明细字段
}); //下标从1开始,明细1添加行触发事件,注册函数入参为新添加行下标
WfForm.bindFieldChangeEvent("field27556", function(obj,id,value){
var fieldvalue2 = WfForm.getFieldValue("field27556");//使用日期
var newDate = getNewDate(fieldvalue2);
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
var fieldMark = "field111_"+rowIndex; //遍历明细行字段
WfForm.controlDateRange(fieldMark, fieldvalue2, newDate); //明细字段
}
}
});
function getNewDate(fieldvalue2){
var dateTime=new Date(fieldvalue2);
dateTime=dateTime.setDate(dateTime.getDate()+5);
dateTime=new Date(dateTime);
dateTime = formtDate(dateTime);
return dateTime;
}
function formtDate(date){
var Y = date.getFullYear();
var M = dateTime.getMonth()>0?dateTime.getMonth()+1:"0"+dateTime.getMonth()+1;
var D = dateTime.getDate()>0?dateTime.getDate():"0"+dateTime.getDate();
return Y+"-"+M+"-"+D;
}
21.隐藏明细新增删除按钮
<style>
//隐藏新增按钮
i#addbutton0 {
display: none;
}
//隐藏删除按钮
i#delbutton0 {
display: none;
}
</style>
22.给自定义字段赋值明细序号
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
WfForm.changeFieldValue("field111_"+rowIndex, {value:i});
}
}
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
WfForm.changeFieldValue("field111_"+rowIndex, {value:i});
}
}
});
23.ajax请求jsp
<script>
var sql = "";
jQuery.ajax({
type: "POST",
url: "/workflow/demo.jsp",
async: false,
dataType: "json",
data: {"sql": sql},
success: function(data) {
//回调成功执行...
alert(data);
},
error: function (e) {
console.log("网络异常");
alert(e);
}
});
</script>
demo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="net.sf.json.JSONArray" %>
<%@ page import="net.sf.json.JSONObject" %>
<%
JSONArray arr = new JSONArray();
//业务逻辑...
out.print(arr.toString());
%>
24.浮动图不受页面内容影响,固定在页面底部某处(盖章效果)代码块示例
插入浮动图片,并插入下面代码块,浮动图片居与页面底部对齐,不受内容长度影响
<style>
.excelTempDiv .floatImgTd {
position: inherit !important;
}
.excelTempDiv .floatImgTd .floatImg{
top:inherit !important;
bottom:0px; !important
}
.excelMainTable {
position: relative;
}
</style>
25.打印自定义页眉名称、打印另存为pdf自定义pdf名称
插入下面代码到打印模板中,自行拼接内容,可自定义页眉、打印另存为pdf名称
jQuery(document).ready(function(){
WfForm.registerCheckEvent(WfForm.OPER_PRINTPREVIEW, function(callback){
document.title = '自定义内容'
callback();
});
});
评论 (0)