修改页面横向滑动工具
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