136 lines
6.2 KiB
JavaScript
136 lines
6.2 KiB
JavaScript
//------搜索相关字段开始
|
||
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); // 清空所有勾选项
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------------------------------------------搜索功能结束
|