修改页面横向滑动工具
This commit is contained in:
parent
a749fa6292
commit
019583dfd8
221
页面横向滑动.html
221
页面横向滑动.html
@ -1,221 +0,0 @@
|
||||
<script src="/myJavaScript/anime.min.js">
|
||||
</script>
|
||||
<script>
|
||||
/*
|
||||
每一步内容都必须存放在一个标签页,标签页横向排列,标签页前后各空出一列
|
||||
每个标签都要在默认的style属性上设置为opacity:0,以默认隐藏步骤内容
|
||||
每个步骤的内容默认隐藏
|
||||
方法参数为对象:{curStepFieldId:"field216855",cols:4,vars:[{tab:"tab1",cnt:"cnt1",top:1},{tab:"tab2",cnt:"cnt2",top:0}],els:["title","identifier"]}
|
||||
curStepFieldId为当前步骤字段id
|
||||
cols为表格有效范围内的列数
|
||||
vars为每个步骤对应的一组参数,vars参数组顺序与标签页DOM节点顺序一致
|
||||
其中第一组参数代表意思为:tab1为标签页class,cnt1为步骤一页面的全部内容,1表示隐藏标签页顶部标签(0表示不隐藏)
|
||||
els为其他需要在方法中将display属性还原的单元格class
|
||||
|
||||
注意:
|
||||
这个方法需要结合以下CSS样式使用,以解决明细表头的问题
|
||||
.excelDetailFixedHead {
|
||||
position: sticky !important;
|
||||
top: 0px !important;
|
||||
}
|
||||
*/
|
||||
function pageLateralSlider(obj) {
|
||||
document.getElementsByClassName("wf-req-top-button")[0].parentNode.parentNode.id = "submitBtn";
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
const steps = obj.vars.length;
|
||||
//基础判断
|
||||
if (obj.cols !== steps + 2) {
|
||||
console.log("cols数量与vars参数组数量矛盾");
|
||||
return;
|
||||
}
|
||||
let myIntv = setInterval(() => {
|
||||
//页面元素加载判断
|
||||
for (let i = 0; i < steps; i++) {
|
||||
if ($("." + obj.vars[i].tab).length === 0 || $("." + obj.vars[i].cnt).length === 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < obj.els.length; i++) {
|
||||
if ($("." + obj.els[i]).length === 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ($(".tab_top").length !== steps) {
|
||||
return;
|
||||
}
|
||||
if ($("#buttonCell").length === 0) {
|
||||
return;
|
||||
}
|
||||
if ($(".excelMainTable>colgroup col").length !== obj.cols) {
|
||||
return;
|
||||
}
|
||||
if ($(".wf-req-form").length === 0) {
|
||||
return;
|
||||
}
|
||||
if ($(".wf-req-top-button").length === 0) {
|
||||
return;
|
||||
}
|
||||
clearInterval(myIntv);
|
||||
//自适应列宽
|
||||
const screen_width = $(".wf-req-form")[0].offsetWidth;
|
||||
const padding_width = Math.floor(0.02 * screen_width);
|
||||
const content_width = screen_width - 2 * padding_width;
|
||||
$(".excelMainTable>colgroup col")[0].style.width = `${padding_width}px`;
|
||||
$(".excelMainTable>colgroup col")[obj.cols - 1].style.width = `${padding_width}px`;
|
||||
for (let i = 1; i <= steps; i++) {
|
||||
$(".excelMainTable>colgroup col")[i].style.width = `${content_width}px`;
|
||||
}
|
||||
//隐藏标签页顶部标签
|
||||
obj.vars.forEach((e, index) => {
|
||||
if (e.top === 1) {
|
||||
$(".tab_top")[index].style.display = "none";
|
||||
}
|
||||
});
|
||||
//显示其他需要还原display属性的单元格
|
||||
obj.els.forEach(e => {
|
||||
$("." + e).css("display", "");
|
||||
});
|
||||
//显示当前步骤内容
|
||||
var curStepVar = + WfForm.getFieldValue(obj.curStepFieldId);
|
||||
if (curStepVar === 0) {
|
||||
$("." + obj.vars[curStepVar].cnt).css("display", "");
|
||||
$("." + obj.vars[curStepVar].tab).css("opacity", "1");
|
||||
} else {
|
||||
let distance_0 = -curStepVar * content_width;
|
||||
obj.vars.forEach(e => {
|
||||
anime({
|
||||
targets: '.' + e.tab + '_swap',
|
||||
translateX: distance_0,
|
||||
duration: 0,
|
||||
easing: 'easeInOutQuad',
|
||||
});
|
||||
});
|
||||
$("." + obj.vars[curStepVar].cnt).css("display", "");
|
||||
$("." + obj.vars[curStepVar].tab).css("opacity", "1");
|
||||
}
|
||||
//核心功能
|
||||
$("#buttonCell").append("<span class='ant-btn preStep' style='display:none;'>上一步</span><span class='step-blank' style='display:none;'>  </span><span class='ant-btn nexStep' style='display:none;'>下一步</span>");
|
||||
if (curStepVar === 0) {
|
||||
$(".preStep").css({ "display": "none" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
} else if (curStepVar === steps - 1) {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "none" });
|
||||
$("#submitBtn").css("cssText", "display:inline-block !important;");
|
||||
} else {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "inline" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
}
|
||||
//点击事件
|
||||
var click_judg = 0;
|
||||
$(".nexStep").click(() => {
|
||||
if (click_judg === 0) {
|
||||
click_judg++;
|
||||
curStepVar++;
|
||||
obj.vars.forEach((e, index) => {
|
||||
if (index !== curStepVar) {
|
||||
anime({
|
||||
targets: '.' + e.tab + '_swap',
|
||||
translateX: - curStepVar * content_width,
|
||||
opacity: 0,
|
||||
duration: 500,
|
||||
easing: 'easeInOutQuad',
|
||||
});
|
||||
}
|
||||
});
|
||||
$("." + obj.vars[curStepVar].cnt).css("display", "");
|
||||
$("." + obj.vars[curStepVar].tab).css("opacity", '1');
|
||||
anime({
|
||||
targets: '.' + obj.vars[curStepVar].tab + '_swap',
|
||||
translateX: - curStepVar * content_width,
|
||||
opacity: [0, 1],
|
||||
duration: 500,
|
||||
easing: 'easeInOutQuad'
|
||||
});
|
||||
$("." + obj.vars[curStepVar - 1].cnt).css("display", "none");
|
||||
if (curStepVar === 0) {
|
||||
$(".preStep").css({ "display": "none" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
} else if (curStepVar === steps - 1) {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "none" });
|
||||
$("#submitBtn").css("cssText", "display:inline-block !important;");
|
||||
} else {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "inline" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
}
|
||||
WfForm.changeFieldValue(obj.curStepFieldId, { value: curStepVar });
|
||||
click_judg--;
|
||||
}
|
||||
});
|
||||
$(".preStep").click(() => {
|
||||
if (click_judg === 0) {
|
||||
click_judg++;
|
||||
curStepVar--;
|
||||
obj.vars.forEach((e, index) => {
|
||||
if (index !== curStepVar) {
|
||||
anime({
|
||||
targets: '.' + e.tab + '_swap',
|
||||
translateX: - curStepVar * content_width,
|
||||
opacity: 0,
|
||||
duration: 500,
|
||||
easing: 'easeInOutQuad',
|
||||
});
|
||||
}
|
||||
});
|
||||
$("." + obj.vars[curStepVar].cnt).css("display", "");
|
||||
$("." + obj.vars[curStepVar].tab).css("opacity", '1');
|
||||
anime({
|
||||
targets: '.' + obj.vars[curStepVar].tab + '_swap',
|
||||
translateX: - curStepVar * content_width,
|
||||
opacity: [0, 1],
|
||||
duration: 500,
|
||||
easing: 'easeInOutQuad'
|
||||
});
|
||||
$("." + obj.vars[curStepVar + 1].cnt).css("display", "none");
|
||||
if (curStepVar === 0) {
|
||||
$(".preStep").css({ "display": "none" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
} else if (curStepVar === steps - 1) {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "none" });
|
||||
$("#submitBtn").css("cssText", "display:inline-block !important;");
|
||||
} else {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "inline" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
}
|
||||
WfForm.changeFieldValue(obj.curStepFieldId, { value: curStepVar });
|
||||
click_judg--;
|
||||
}
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/*隐藏提交按钮*/
|
||||
.ant-col-xs-18>div>span:nth-of-type(1) {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/*修复明细浮动表头问题*/
|
||||
.excelDetailFixedHead {
|
||||
position: sticky !important;
|
||||
top: 0px !important;
|
||||
}
|
||||
</style>
|
363
页面横向滑动.js
Normal file
363
页面横向滑动.js
Normal file
@ -0,0 +1,363 @@
|
||||
/*
|
||||
每一步内容都必须存放在一个标签页,标签页横向排列,标签页前后各空出一列
|
||||
每个标签都要在默认的style属性上设置为opacity:0,以默认隐藏步骤内容
|
||||
每个步骤的内容默认隐藏
|
||||
方法参数为对象:
|
||||
{
|
||||
curStepFieldId: curStep_FI,
|
||||
cols: 5,
|
||||
title_class: ".title",
|
||||
title_value: ["OA开发需求", "流程开发需求", "台账开发需求"],
|
||||
vars: [{
|
||||
page: "tab1",
|
||||
cnt: "cnt1",
|
||||
top: 1,
|
||||
titleIndex: 0,
|
||||
mainTabCol: 1,
|
||||
default_tab: 5,
|
||||
tab_required_info: [
|
||||
{
|
||||
tabid: 5,
|
||||
main_feild: [xqlx_FI, cdfj_FI, ssbk_FI, glbm_FI, syjg_FI, sybm_FI, aim_FI],
|
||||
det_field: [],
|
||||
}
|
||||
],
|
||||
}],
|
||||
els: ["title"],
|
||||
}
|
||||
curStepFieldId为当前步骤字段id
|
||||
cols为表格有效范围内的列数
|
||||
title_class为流程页面标题的jQuery选择器
|
||||
title_value为所有步骤相关的标题名称
|
||||
vars为每个步骤对应的一组参数,vars参数组顺序与标签页DOM节点顺序一致
|
||||
其中第一组参数代表意思为:tab1为标签页class,cnt1为步骤一页面全部内容的统一class,top值1表示隐藏标签页顶部标签(0表示不隐藏),titleIndex值0为该标签对应的标题名称在title_value中的序号(从0开始),mainTabCol为标签页在主表中的列数(从0开始),default_tab为默认子标签,tab_required_info用于处理标签页内子标签的必填字段排查、必增明细排查
|
||||
els为其他需要在方法中将display属性还原的单元格class
|
||||
|
||||
注意:
|
||||
(1)当步骤发生变化时,需修改参数对象 sld_obj ,并执行一遍 initialization(sld_obj)的列宽设置
|
||||
(2)这个方法需要结合以下CSS样式使用,以解决明细表头的问题
|
||||
.excelDetailFixedHead {
|
||||
position: sticky !important;
|
||||
top: 0px !important;
|
||||
}
|
||||
*/
|
||||
function pageLateralSlider(sld_obj) {
|
||||
document.getElementsByClassName("wf-req-top-button")[0].parentNode.parentNode.id = "submitBtn";
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
var steps = sld_obj.vars.length;
|
||||
let myIntv1 = setInterval(() => {
|
||||
//页面元素加载判断
|
||||
for (let i = 0; i < steps; i++) {
|
||||
if ($("." + sld_obj.vars[i].page).length === 0 || $("." + sld_obj.vars[i].cnt).length === 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < sld_obj.els.length; i++) {
|
||||
if ($("." + sld_obj.els[i]).length === 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ($("#buttonCell").length === 0) {
|
||||
return;
|
||||
}
|
||||
if ($(sld_obj.title_class + " span").length === 0) {
|
||||
return;
|
||||
}
|
||||
if ($(".excelMainTable>colgroup col").length !== sld_obj.cols) {
|
||||
return;
|
||||
}
|
||||
if ($(".wf-req-form").length === 0) {
|
||||
return;
|
||||
}
|
||||
if ($(".wf-req-top-button").length === 0) {
|
||||
return;
|
||||
}
|
||||
clearInterval(myIntv1);
|
||||
//自适应列宽
|
||||
const screen_width = $(".wf-req-form")[0].offsetWidth;
|
||||
const padding_width = Math.floor(0.02 * screen_width);
|
||||
const content_width = screen_width - 2 * padding_width;
|
||||
Object.assign(sld_obj, {
|
||||
content_width: content_width,
|
||||
});
|
||||
$(".excelMainTable>colgroup col")[0].style.width = `${padding_width}px`;
|
||||
$(".excelMainTable>colgroup col")[sld_obj.cols - 1].style.width = `${padding_width}px`;
|
||||
initialization(sld_obj);
|
||||
//添加消除prompt的字段集
|
||||
Object.assign(sld_obj, {
|
||||
eraser_fis: [],
|
||||
});
|
||||
//获取当前步骤标题信息
|
||||
Object.assign(sld_obj, {
|
||||
curStep: 0,
|
||||
});
|
||||
var curStepVar = + WfForm.getFieldValue(sld_obj.curStepFieldId);
|
||||
//添加功能按钮
|
||||
$("#buttonCell").append("<span class='ant-btn preStep' style='display:none;'>上一步</span><span class='step-blank' style='display:none;'>  </span><span class='ant-btn nexStep' style='display:none;'>下一步</span>");
|
||||
//添加按钮功能
|
||||
pageLateralSliderClick(sld_obj);
|
||||
//显示其他需要还原display属性的单元格
|
||||
sld_obj.els.forEach(e => {
|
||||
$("." + e).css("display", "");
|
||||
});
|
||||
//显示当前步骤内容
|
||||
$("." + sld_obj.vars[0].cnt).css("display", "");
|
||||
$("." + sld_obj.vars[0].page).css("opacity", "1");
|
||||
$(".preStep").css({ "display": "none" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
if (curStepVar > 0) {
|
||||
for (let i = 0; i < curStepVar; i++) {
|
||||
if (i === 0) {
|
||||
$(".nexStep")[0].click();
|
||||
} else {
|
||||
setTimeout(() => {
|
||||
$(".nexStep")[0].click();
|
||||
}, i * 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
|
||||
function initialization(init_obj) {
|
||||
//设置列宽
|
||||
let useful_cols = [];
|
||||
init_obj.vars.forEach(e => {
|
||||
useful_cols.push(e.mainTabCol);
|
||||
});
|
||||
for (let i = 1; i <= init_obj.cols - 2; i++) {
|
||||
if (useful_cols.includes(i)) {
|
||||
$(".excelMainTable>colgroup col")[i].style.width = `${init_obj.content_width}px`;
|
||||
} else {
|
||||
$(".excelMainTable>colgroup col")[i].style.width = `1px`;
|
||||
}
|
||||
}
|
||||
//隐藏标签页顶部标签
|
||||
init_obj.vars.forEach(e => {
|
||||
if (e.top === 1) {
|
||||
$("." + e.page + " .tab_top")[0].style.display = "none";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function pageLateralSliderClick(clc_obj) {
|
||||
var clc_content_width = clc_obj.content_width;
|
||||
$(".nexStep").off("click");
|
||||
$(".preStep").off("click");
|
||||
//点击事件
|
||||
var click_judg = 0;
|
||||
$(".nexStep").click(() => {
|
||||
if (click_judg === 0) {
|
||||
if (showEmptyRequiredField(clc_obj) == false) {
|
||||
return;
|
||||
}
|
||||
click_judg++;
|
||||
clc_obj.curStep++;
|
||||
$(clc_obj.title_class + " span")[0].innerHTML = clc_obj.title_value[clc_obj.vars[clc_obj.curStep].titleIndex];
|
||||
let offset = (clc_obj.vars[clc_obj.curStep].mainTabCol - 1 - clc_obj.curStep);
|
||||
clc_obj.vars.forEach((e, index) => {
|
||||
if (index !== clc_obj.curStep) {
|
||||
anime({
|
||||
targets: '.' + e.page,
|
||||
translateX: - clc_obj.curStep * clc_content_width - offset,
|
||||
opacity: 0,
|
||||
duration: 500,
|
||||
easing: 'easeInOutQuad',
|
||||
complete: () => {
|
||||
$("." + e.cnt).css("display", "none");
|
||||
$("#tab_" + e.default_tab).click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$("." + clc_obj.vars[clc_obj.curStep].cnt).css("display", "");
|
||||
anime({
|
||||
targets: '.' + clc_obj.vars[clc_obj.curStep].page,
|
||||
translateX: - clc_obj.curStep * clc_content_width - offset,
|
||||
opacity: 1,
|
||||
duration: 500,
|
||||
easing: 'easeInOutQuad',
|
||||
complete: () => {
|
||||
$('.' + clc_obj.vars[clc_obj.curStep].cnt).css("display", "");
|
||||
}
|
||||
});
|
||||
if (clc_obj.curStep === 0) {
|
||||
$(".preStep").css({ "display": "none" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
} else if (clc_obj.curStep === clc_obj.vars.length - 1) {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "none" });
|
||||
$("#submitBtn").css("cssText", "display:inline-block !important;");
|
||||
} else {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "inline" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
}
|
||||
WfForm.changeFieldValue(clc_obj.curStepFieldId, { value: clc_obj.curStep });
|
||||
click_judg--;
|
||||
}
|
||||
});
|
||||
$(".preStep").click(() => {
|
||||
$(`.myprom`).remove();
|
||||
if (click_judg === 0) {
|
||||
click_judg++;
|
||||
clc_obj.curStep--;
|
||||
$(clc_obj.title_class + " span")[0].innerHTML = clc_obj.title_value[clc_obj.vars[clc_obj.curStep].titleIndex];
|
||||
let offset = (clc_obj.vars[clc_obj.curStep].mainTabCol - 1 - clc_obj.curStep);
|
||||
clc_obj.vars.forEach((e, index) => {
|
||||
if (index !== clc_obj.curStep) {
|
||||
anime({
|
||||
targets: '.' + e.page,
|
||||
translateX: - clc_obj.curStep * clc_content_width - offset,
|
||||
opacity: 0,
|
||||
duration: 500,
|
||||
easing: 'easeInOutQuad',
|
||||
complete: () => {
|
||||
$("." + e.cnt).css("display", "none");
|
||||
$("#tab_" + e.default_tab).click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$("." + clc_obj.vars[clc_obj.curStep].cnt).css("display", "");
|
||||
anime({
|
||||
targets: '.' + clc_obj.vars[clc_obj.curStep].page,
|
||||
translateX: - clc_obj.curStep * clc_content_width - offset,
|
||||
opacity: 1,
|
||||
duration: 500,
|
||||
easing: 'easeInOutQuad',
|
||||
complete: () => {
|
||||
$('.' + clc_obj.vars[clc_obj.curStep].cnt).css("display", "");
|
||||
}
|
||||
});
|
||||
if (clc_obj.curStep === 0) {
|
||||
$(".preStep").css({ "display": "none" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
} else if (clc_obj.curStep === clc_obj.vars.length - 1) {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "none" });
|
||||
$(".nexStep").css({ "display": "none" });
|
||||
$("#submitBtn").css("cssText", "display:inline-block !important;");
|
||||
} else {
|
||||
$(".preStep").css({ "display": "inline" });
|
||||
$(".step-blank").css({ "display": "inline" });
|
||||
$(".nexStep").css({ "display": "inline" });
|
||||
$("#submitBtn").css("cssText", "display:none !important;");
|
||||
}
|
||||
WfForm.changeFieldValue(clc_obj.curStepFieldId, { value: clc_obj.curStep });
|
||||
click_judg--;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function showEmptyRequiredField(serf_obj) {
|
||||
let serf_arr = serf_obj.vars[serf_obj.curStep].tab_required_info;
|
||||
for (let e of serf_arr) {
|
||||
for (let me of e.main_feild) {
|
||||
if (WfForm.getFieldValue(me) == "") {
|
||||
$(`.myprom`).remove();
|
||||
showPrompt(me, "必填字段不能空!", e.tabid);
|
||||
checkPrompt();
|
||||
if (!serf_obj.eraser_fis.includes(me)) {
|
||||
serf_obj.eraser_fis.push(me);
|
||||
WfForm.bindFieldChangeEvent(me, function (obj, id, value) {
|
||||
if (value !== "") {
|
||||
eraseFieldPrompt(me);
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (let de of e.det_field) {
|
||||
let detRows_str = WfForm.getDetailAllRowIndexStr("detail_" + de.det_id);
|
||||
if (detRows_str.length > 0) {
|
||||
let detRows_arr = detRows_str.split(",");
|
||||
for (let rowI of detRows_arr) {
|
||||
for (let de_f of de.field_id) {
|
||||
if (WfForm.getFieldValue(de_f + "_" + rowI) == "") {
|
||||
$(`.myprom`).remove();
|
||||
showPrompt(de_f, "必填字段不能空!", e.tabid, rowI);
|
||||
checkPrompt();
|
||||
if (!serf_obj.eraser_fis.includes(de_f)) {
|
||||
serf_obj.eraser_fis.push(de_f);
|
||||
WfForm.bindDetailFieldChangeEvent(de_f, function (id, rowIndex, value) {
|
||||
if (value !== "") {
|
||||
eraseFieldPrompt(de_f, rowIndex);
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (de.noEmpty == true) {
|
||||
WfForm.showMessage(de.det_name + "不能为空!", 2, 5);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function showPrompt(SP_fieldid, SP_content, SP_tabid, SP_rowIndex) {//添加提示,SP_rowIndex选填;如要填SP_rowIndex,SP_tabid必填,可填null
|
||||
if (SP_rowIndex === null || SP_rowIndex === undefined) {
|
||||
$(`.myprom_${SP_fieldid}`).remove();
|
||||
if ($(`.${SP_fieldid}_swapDiv`).length > 0) {
|
||||
$(`.${SP_fieldid}_swapDiv`).after(`<div class="prompt-box myprom myprom_${SP_fieldid}" data_tab_id=${SP_tabid}><div class="prompt-arrow" style="top: -3px;"></div><div class="prompt-content"><i class="anticon anticon-exclamation-circle"></i><span class="prompt-content-label">${SP_content}</span><span class="prompt-content-info"></span></div></div>`);
|
||||
}
|
||||
} else {
|
||||
$(`.myprom_${SP_fieldid}_${SP_rowIndex}`).remove();
|
||||
if ($(`.${SP_fieldid}_${SP_rowIndex}_swapDiv`).length > 0) {
|
||||
$(`.${SP_fieldid}_${SP_rowIndex}_swapDiv`).after(`<div class="prompt-box myprom myprom_${SP_fieldid}_${SP_rowIndex}" data_tab_id=${SP_tabid}><div class="prompt-arrow" style="top: -3px;"></div><div class="prompt-content"><i class="anticon anticon-exclamation-circle"></i><span class="prompt-content-label">${SP_content}</span><span class="prompt-content-info"></span></div></div>`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function eraseFieldPrompt(EFP_fieldid, EFP_rowIndex) {//移除提示,SP_rowIndex选填
|
||||
if (EFP_rowIndex === null || EFP_rowIndex === undefined) {
|
||||
$(`.myprom_${EFP_fieldid}`).remove();
|
||||
} else {
|
||||
$(`.myprom_${EFP_fieldid}_${EFP_rowIndex}`).remove();
|
||||
}
|
||||
}
|
||||
|
||||
function checkPrompt() {//提交前判断,先做一次if ($(".myprom").length > 0) {}判断,true则触发该方法,并禁断提交,false不执行
|
||||
let tab_id = $(".myprom")[0].getAttribute("data_tab_id");
|
||||
if (tab_id === "null" || tab_id === "undefined") {
|
||||
let scroll_to_windowTop = $(".wf-req-form-scroll")[0].getBoundingClientRect().top;//scroll框距离window顶部的距离
|
||||
let dom_to_scrollTop = $(".myprom")[0].getBoundingClientRect().top - scroll_to_windowTop;//DOM节点距离scroll框顶部的距离
|
||||
let scroll_display_height = window.innerHeight - scroll_to_windowTop;//scroll框最大显示高度
|
||||
if (dom_to_scrollTop < scroll_display_height / 4 || dom_to_scrollTop > scroll_display_height / 4 * 3) {
|
||||
$(".wf-req-form-scroll")[0].scrollTo({
|
||||
top: dom_to_scrollTop + $(".wf-req-form-scroll")[0].scrollTop - scroll_display_height / 2,
|
||||
behavior: "smooth"
|
||||
});
|
||||
}
|
||||
} else {
|
||||
$("#tab_" + tab_id)[0].click();
|
||||
let myInterval2;
|
||||
myInterval2 = setInterval(() => {
|
||||
if ($("#tab_" + tab_id + "_content").css("display") == "block") {
|
||||
clearInterval(myInterval2);
|
||||
let scroll_to_windowTop = $(".wf-req-form-scroll")[0].getBoundingClientRect().top;//scroll框距离window顶部的距离
|
||||
let dom_to_scrollTop = $(".myprom")[0].getBoundingClientRect().top - scroll_to_windowTop;//DOM节点距离scroll框顶部的距离
|
||||
let scroll_display_height = window.innerHeight - scroll_to_windowTop;//scroll框最大显示高度
|
||||
if (dom_to_scrollTop < scroll_display_height / 4 || dom_to_scrollTop > scroll_display_height / 4 * 3) {
|
||||
$(".wf-req-form-scroll")[0].scrollTo({
|
||||
top: dom_to_scrollTop + $(".wf-req-form-scroll")[0].scrollTop - scroll_display_height / 2,
|
||||
behavior: "smooth"
|
||||
});
|
||||
}
|
||||
}
|
||||
}, 50);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user