泛微流程表单通用功能代码块整理

        本文旨在记录使用泛微OA开发过程中用到的一些模块,会随着深入使用继续补充,分享出来。如有问题欢迎讨论~

1、泛微流程表单新增模态窗

<div>
  <div id="myModal" class="modal">
  	<!-- 弹窗内容 -->
    <div class="modal-content">
      <span class="close">&times;</span>
      <p>弹窗中的文本...</p>
    </div>
  </div>
</div>

<script>

var htmlDom=document.getElementById('testBtn') //根据设置的id改写
var btn=document.createElement('button'); // 创建button元素
btn.innerText="弹窗按钮";   // 设置button的显示文本
  btn.onclick=function() {
    modal.style.display = "block";
}
htmlDom.appendChild(btn); // 在元素中添加一个子元素button
  // 获取弹窗
var modal = document.getElementById('myModal');

// 获取 <span> 元素,用于关闭弹窗
var span = document.querySelector('.close');

// 点击 <span> (x), 关闭弹窗
span.onclick = function() {
    modal.style.display = "none";
}
 
// 在用户点击其他地方时,关闭弹窗
window.onclick = function(event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
}
</script>

<style>
  /* 弹窗 (background) */
.modal {
    display: none; /* 默认隐藏 */
    position: fixed; /* 固定定位 */
    z-index: 1; /* 设置在顶层 */
    left: 0;
    top: 0;
    width: 100%; 
    height: 100%;
    overflow: auto; 
    background-color: rgb(0,0,0); 
    background-color: rgba(0,0,0,0.4); 
}

/* 弹窗内容 */
.modal-content {
    background-color: #fefefe;
    margin: 15% auto; 
    padding: 20px;
    border: 1px solid #888;
    width: 80%; 
}

/* 关闭按钮 */
.close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

.close:hover,
.close:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
</style>

2、根据字符串创建Dom结构

//使用字符串创建dom
//params:
//type:外层创建dom的类型
//arg:要创建dom结构的字符串
//返回值:字符串创建的Dom node
function parseDom(type, arg) {
  var objE = document.createElement(type);
  objE.innerHTML = arg;
  return objE.childNodes;
};

3、根据属性值(attributes)查找Dom结点

//根据属性值查找Dom结点
//params:
//tag:欲查找的Html标签名
//dataAttr:欲查找的属性值名称
//reg:正则表达式匹配规则
//返回值:目标属性值结点列表
function getElementByAttr(tag, dataAttr, reg) {
  var aElements = document.getElementsByTagName(tag);
  var aEle = [];
  for(var i = 0; i < aElements.length; i++) {
    var ele = aElements[i].getAttribute(dataAttr);
    if(reg.test(ele)) {
        aEle.push(aElements[i]);
    }
  }
  return aEle;
}

4、表单操作追加按钮

效果图:

 

function getElementByAttr(tag, dataAttr, reg) {
  var aElements = document.getElementsByTagName(tag);
  var aEle = [];
  for(var i = 0; i < aElements.length; i++) {
    var ele = aElements[i].getAttribute(dataAttr);
    if(reg.test(ele)) {
        aEle.push(aElements[i]);
    }
  }
  return aEle;
}

var divs = getElementByAttr('div', 'ecid', /@qjebvs/);
var submitBtnGroup = divs[divs.length - 1].childNodes[0]
var dropdownBtnSpanDom = submitBtnGroup.childNodes[submitBtnGroup.childNodes.length - 2]

//使用字符串创建dom
function parseDom(type, arg) {
  var objE = document.createElement(type);

  objE.innerHTML = arg;
  return objE.childNodes;

};

var newBtnText = '测试按钮' //按钮名称
var newBtnSpan = '<span style="display: inline-block; line-height: 28px; vertical-align: middle; margin-left: 10px;"><button ecid="_Route@vmt0lk_Comp@upn4fo_Button@2oxqe7@0_button@xq1ea3" title="' + newBtnText + '" type="button" class="ant-btn ant-btn-primary" onclick="testClick()"><div class="wf-req-top-button">' + newBtnText + '</div></button></span>'
var newBtnSpanDom = parseDom('span', newBtnSpan);

var testClick = function() {
  //此处书写代码逻辑
  console.log('测试按钮')
}
submitBtnGroup.insertBefore(newBtnSpanDom[0],dropdownBtnSpanDom);

 (未完待续)

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cupid_Yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值