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