ZhangQiangEcologyKit/未设置函数前的代码.js
2024-12-03 09:50:46 +08:00

136 lines
6.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//------搜索相关字段开始
var fuzzySearchFI = "field201846";//模糊搜索
var nameFI = "field204845";//姓名搜索
var numberFI = "field201848";//证件号码搜索
var tagFI = "field201849";//身份标签搜索
var dtnameFI = "field188336";//明细姓名搜索
var dtnumberFI = "field193852";//明细证件号码搜索
var dttagFI = "field201845";//明细身份标签搜索
//--------------------------------------------------------------------------------清空搜索字段的值开始
WfForm.changeFieldValue("field194398", { value: "" });//批量修改开关
WfForm.changeFieldValue("field194399", { value: "" });//只显示勾选项
WfForm.changeFieldValue(fuzzySearchFI, { value: "" });//模糊搜索
WfForm.changeFieldValue(nameFI, { value: "" });//姓名搜索
WfForm.changeFieldValue(numberFI, { value: "" });//证件号码搜索
WfForm.changeFieldValue(tagFI, { value: "" });//身份标签搜索
//--------------------------------------------------------------------------------清空搜索字段的值结束
//------搜索相关字段结束
//---------------------------------------------------------------------------------------------------------搜索功能
WfForm.bindFieldChangeEvent(fuzzySearchFI, function (obj, id, value) {//模糊搜索
showAndClose(fuzzySearchFI, value);
});
$(".wf-input-" + fuzzySearchFI).keydown(function (event) {//模糊搜索
let value = event.target.value;
showAndClose(fuzzySearchFI, value);
});
//搜索区间触发
//姓名,证件号码,人员标签 "field200843,field200844,field200845",
WfForm.bindFieldChangeEvent(
nameFI + "," + numberFI + "," + tagFI,
function (obj, id, value) {
showAndClose(id, value);
}
);
$(".wf-input-" + numberFI).keydown(function (event) {//证件号码
let value = event.target.value;
showAndClose(numberFI, value);
});
function showAndClose(fieldid, value) {
Arrtmp = [];
if (fieldid == fuzzySearchFI) {//---------------------------------------------------------------------模糊搜索
var search = {};
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for (var i = 0; i < rowArr.length; i++) {
var rowIndex = rowArr[i];
if (rowIndex !== "") {
var name = dtnameFI + "_" + rowIndex; //姓名
var zjnum = dtnumberFI + "_" + rowIndex; //证件号码
var sfbq = dttagFI + "_" + rowIndex; //身份标签
let tmp =
WfForm.getBrowserShowName(name) +
";" +
WfForm.getFieldValue(zjnum) +
";" +
WfForm.getBrowserShowName(sfbq) +
";";
//以逗号分隔获取浏览按钮字段显示值
search[rowIndex] = tmp;
}
}
let tmp = value.trim().split(" ");
if (tmp[0].length > 0) {
tmp = tmp.filter((i) => i && i.trim());
}
tmp.forEach((item) => {
let regex = new RegExp(item);
Object.keys(search).forEach((e) => {
if (regex.test(search[e])) {
Arrtmp.push(e);
}
});
});
if (value.trim() === "") {
// 如果value为空显示所有明细行
WfForm.controlDetailRowDisplay("detail_1", "all", false);
} else {
WfForm.controlDetailRowDisplay("detail_1", "all", true); // 全部隐藏
WfForm.controlDetailRowDisplay("detail_1", Arrtmp.join(), false); // 显示符合条件的行
}
WfForm.checkDetailRow("detail_1", "", true); // 清空所有勾选项
} else {
var search = {};
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
rowArr.forEach(rowIndex => {
if (rowIndex !== "") {
var name = dtnameFI + "_" + rowIndex; //姓名
var zjnum = dtnumberFI + "_" + rowIndex; //证件号码
var sfbq = dttagFI + "_" + rowIndex; //身份标签
var nameValue = WfForm.getFieldValue(name);
var zjnumValue = WfForm.getFieldValue(zjnum);
var sfbqValue = WfForm.getFieldValue(sfbq);
var detailObj = {
name: nameValue,
zjnum: zjnumValue,
sfbq: sfbqValue,
rowIndex: rowIndex
};
search[rowIndex] = detailObj;
}
});
let name = WfForm.getFieldValue(nameFI);//姓名
let zjnum = WfForm.getFieldValue(numberFI);//证件号码
let sfbq = WfForm.getFieldValue(tagFI);//身份标签
// 遍历每个明细行,判断是否匹配
Object.keys(search).forEach(key => {
let detail = search[key];
// 检查姓名是否匹配
let nameMatches = !name || name.includes(detail.name);
// 检查证件号码是否匹配
let tmp = zjnum.trim().split(" ").filter(i => i && i.trim());
let zjnumMatches = !zjnum || tmp.some(item => {
let regex = new RegExp(item);
return regex.test(detail.zjnum);
});
// 如果证件号码为空,直接设置为匹配
if (!zjnum) {
zjnumMatches = true;
}
// 检查身份标签是否匹配
let sfbqMatches = !sfbq || sfbq.includes(detail.sfbq);
// 如果所有条件都匹配,则添加到结果数组
if (nameMatches && zjnumMatches && sfbqMatches) {
Arrtmp.push(detail.rowIndex);
}
});
// console.log("符合条件的明细行是", Arrtmp);
// 显示符合条件的明细行
if (!name && !zjnum && !sfbq) {
WfForm.controlDetailRowDisplay("detail_1", "all", false); // 显示所有明细行
} else {
WfForm.controlDetailRowDisplay("detail_1", "all", true); // 全部隐藏
WfForm.controlDetailRowDisplay("detail_1", Arrtmp.join(), false); // 显示符合条件的行
}
WfForm.checkDetailRow("detail_1", "", true); // 清空所有勾选项
}
}
//---------------------------------------------------------------------------------------------------------搜索功能结束