新上传
新上传
This commit is contained in:
parent
6e6aac066e
commit
d757586b4b
190
明细搜索功能函数V1.js
Normal file
190
明细搜索功能函数V1.js
Normal file
@ -0,0 +1,190 @@
|
||||
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------搜索功能开始
|
||||
/*all_search_field_id 为模糊搜索字段id, search_obj 为搜索对象。
|
||||
search_obj 中的 detail_field_id 为搜索对象在明细中的字段id, search_field_id 为搜索对象的搜索字段id, control_field_id 为控制搜索字段可选范围的字段id,控制功能只针对浏览框
|
||||
search_field_id 与 control_field_id 均为主表字段,均允许值为 undefined
|
||||
当 search_field_id 为 undefined 时,表示该搜索对象仅为模糊搜索的对象,无需精准搜索
|
||||
当 control_field_id 为 undefined 时,表示该搜索对象的搜索字段可选范围不受明细已有值的影响
|
||||
当type: 'displayValue' // 指定获取显示值,这个代表是浏览框或者下拉框;type: 'rawValue' // 指定获取值,这个代表文本,显示值和实际值一致
|
||||
***如需控制浏览框搜索字段的可选范围,需在泛微对该浏览框做相应的选择范围设置,一般为数据id属于 control_field_id 字段值的范围!!!
|
||||
***当前代码不支持对明细多选字段的搜索功能!!!
|
||||
*/
|
||||
var searchDetailNum = 1; // 搜索明细序号设置
|
||||
var basic_info = {//搜索字段初始化
|
||||
all_search_field_id: 'field200841',//模糊搜索字段,此字段搜索search_obj里的detail_field_id对应字段内容的显示值均为:
|
||||
search_obj: [
|
||||
{
|
||||
detail_field_id: 'field198856',//证件号码
|
||||
search_field_id: 'field200844',
|
||||
control_field_id: undefined,
|
||||
type: 'rawValue' // 文本显示和实际值一致
|
||||
},
|
||||
{
|
||||
detail_field_id: 'field199842',//姓名
|
||||
search_field_id: 'field205846',
|
||||
control_field_id: 'field200344',
|
||||
type: 'displayValue' // 浏览框
|
||||
},
|
||||
{
|
||||
detail_field_id: 'field201352',//身份标签
|
||||
search_field_id: 'field200845',
|
||||
control_field_id: undefined,
|
||||
type: 'displayValue' // 浏览框
|
||||
},
|
||||
{
|
||||
detail_field_id: 'field198858',//部门
|
||||
search_field_id: 'field223429',
|
||||
control_field_id: undefined,
|
||||
type: 'displayValue' // 浏览框
|
||||
},
|
||||
{
|
||||
detail_field_id: 'field198857',//机构
|
||||
search_field_id: 'field223430',
|
||||
control_field_id: undefined,
|
||||
type: 'displayValue' // 浏览框
|
||||
}
|
||||
]
|
||||
}
|
||||
basic_info.search_obj.forEach(function (search) {
|
||||
if (search.search_field_id) {
|
||||
WfForm.changeFieldValue(search.search_field_id, { value: "" });//清空搜索字段
|
||||
}
|
||||
});
|
||||
WfForm.changeFieldValue(basic_info.all_search_field_id, { value: "" });//清空模糊搜索字段
|
||||
WfForm.bindFieldChangeEvent(basic_info.all_search_field_id, function (obj, id, value) {//模糊搜索
|
||||
detailSearch(basic_info.all_search_field_id, value);
|
||||
});
|
||||
$(".wf-input-" + basic_info.all_search_field_id).keydown(function (event) {//模糊搜索
|
||||
let value = event.target.value;
|
||||
detailSearch(basic_info.all_search_field_id, value);
|
||||
}); //搜索区间触发
|
||||
// 生成字段变化事件绑定字符串
|
||||
function getFieldChangeEventIds() {
|
||||
return basic_info.search_obj
|
||||
.filter(field => field.search_field_id) // 只保留有 search_field_id 的字段
|
||||
.map(field => field.search_field_id) // 提取 search_field_id
|
||||
.join(","); // 拼接成逗号分隔的字符串,生成类似:field188336,field193852,field201846
|
||||
}
|
||||
WfForm.bindFieldChangeEvent(
|
||||
getFieldChangeEventIds(), // 动态生成的字段 ID 字符串
|
||||
function (obj, id, value) {
|
||||
detailSearch(id, value);
|
||||
}
|
||||
);
|
||||
$(".wf-input-" + basic_info.search_obj[0].search_field_id).keydown(function (event) {//证件号码
|
||||
let value = event.target.value;
|
||||
detailSearch(basic_info.search_obj[0].search_field_id, value);
|
||||
});
|
||||
//明细搜索函数
|
||||
function detailSearch(fieldid, value) {
|
||||
Arrtmp = [];
|
||||
if (fieldid == basic_info.all_search_field_id) {//---------------------------------------------------------------------模糊搜索
|
||||
var search = {};
|
||||
var rowArr = WfForm.getDetailAllRowIndexStr("detail_" + searchDetailNum).split(",");
|
||||
rowArr.forEach(rowIndex => {
|
||||
if (rowIndex !== "") {
|
||||
let fieldValues = [];
|
||||
basic_info.search_obj.forEach(field => {
|
||||
if (field.detail_field_id) {
|
||||
let fieldId = field.detail_field_id + "_" + rowIndex;
|
||||
let fieldType = field.type;
|
||||
let value;
|
||||
if (fieldType == 'rawValue') {//实际值和显示值一致,如文本框
|
||||
value = WfForm.getFieldValue(fieldId);
|
||||
} else if (fieldType == 'displayValue') {//浏览框
|
||||
value = WfForm.getBrowserShowName(fieldId);
|
||||
}
|
||||
fieldValues.push(value);
|
||||
}
|
||||
});
|
||||
let tmp = fieldValues.join(";") + ";";
|
||||
// 以分号分隔存入值
|
||||
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_" + searchDetailNum, "all", false);
|
||||
} else {
|
||||
WfForm.controlDetailRowDisplay("detail_" + searchDetailNum, "all", true); // 全部隐藏
|
||||
WfForm.controlDetailRowDisplay("detail_" + searchDetailNum, Arrtmp.join(), false); // 显示符合条件的行
|
||||
}
|
||||
WfForm.checkDetailRow("detail_" + searchDetailNum, "", true); // 清空所有勾选项
|
||||
} else {
|
||||
// 生成明细对象
|
||||
var search = {};
|
||||
var rowArr = WfForm.getDetailAllRowIndexStr("detail_" + searchDetailNum).split(",");
|
||||
// 遍历所有明细行
|
||||
rowArr.forEach(rowIndex => {
|
||||
if (rowIndex !== "") {
|
||||
var detailObj = {};
|
||||
// 遍历 search_obj 获取每个字段的实际值,并存入 detailObj
|
||||
basic_info.search_obj.forEach(field => {
|
||||
if (field.detail_field_id) {
|
||||
var fieldId = field.detail_field_id + "_" + rowIndex;
|
||||
var fieldValue = WfForm.getFieldValue(fieldId); // 获取实际值
|
||||
detailObj[field.detail_field_id] = {
|
||||
value: fieldValue,
|
||||
detail_field_id: field.detail_field_id // 关联 detail_field_id
|
||||
};
|
||||
}
|
||||
});
|
||||
detailObj.rowIndex = rowIndex;
|
||||
search[rowIndex] = detailObj;
|
||||
}
|
||||
});
|
||||
// 生成搜索值对象
|
||||
var searchValues = {};
|
||||
basic_info.search_obj.forEach(field => {
|
||||
if (field.search_field_id) {
|
||||
let searchFieldId = field.search_field_id;
|
||||
let searchValue = WfForm.getFieldValue(searchFieldId); // 获取实际值
|
||||
let type = field.type; // 获取字段的类型
|
||||
searchValues[field.detail_field_id] = { value: searchValue, type: type }; // 用 detail_field_id 作为键
|
||||
}
|
||||
});
|
||||
// 遍历每个明细行,判断是否匹配
|
||||
Object.keys(search).forEach(key => {
|
||||
let detail = search[key];
|
||||
let isMatch = true;
|
||||
// 遍历每个字段进行匹配
|
||||
basic_info.search_obj.forEach(field => {
|
||||
if (field.detail_field_id) {
|
||||
let searchField = searchValues[field.detail_field_id];
|
||||
let detailValue = detail[field.detail_field_id].value;
|
||||
if (searchField.type == 'rawValue') {
|
||||
// 部分匹配
|
||||
isMatch = isMatch && (!searchField.value || detailValue.includes(searchField.value));
|
||||
} else if (searchField.type == 'displayValue') {
|
||||
// 完整匹配,但处理多个逗号分隔的值
|
||||
let searchValuesArray = searchField.value.split(',').map(v => v.trim());
|
||||
isMatch = isMatch && (!searchField.value || searchValuesArray.includes(detailValue));
|
||||
}
|
||||
}
|
||||
});
|
||||
if (isMatch) {
|
||||
Arrtmp.push(detail.rowIndex);
|
||||
}
|
||||
});
|
||||
// 显示符合条件的明细行
|
||||
if (Object.values(searchValues).every(v => !v.value.trim())) {
|
||||
WfForm.controlDetailRowDisplay("detail_" + searchDetailNum, "all", false); // 显示所有明细行
|
||||
} else {
|
||||
WfForm.controlDetailRowDisplay("detail_" + searchDetailNum, "all", true); // 全部隐藏
|
||||
WfForm.controlDetailRowDisplay("detail_" + searchDetailNum, Arrtmp.join(), false); // 显示符合条件的行
|
||||
}
|
||||
WfForm.checkDetailRow("detail_" + searchDetailNum, "", true); // 清空所有勾选项
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------搜索功能结束
|
136
未设置函数前的代码.js
Normal file
136
未设置函数前的代码.js
Normal file
@ -0,0 +1,136 @@
|
||||
//------搜索相关字段开始
|
||||
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); // 清空所有勾选项
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------------搜索功能结束
|
35
查询列表改变背景色.js
Normal file
35
查询列表改变背景色.js
Normal file
@ -0,0 +1,35 @@
|
||||
<script type="text/javascript">
|
||||
function applyRowColoring() {
|
||||
var rows = document.querySelectorAll('tr.ant-table-row-level-0');
|
||||
|
||||
rows.forEach(row => {
|
||||
var value10 = parseFloat(row.querySelector('td:nth-child(10) span').textContent);
|
||||
var value11 = parseFloat(row.querySelector('td:nth-child(11) span').textContent);
|
||||
var leaveType = row.querySelector('td:nth-child(6) span').textContent;
|
||||
|
||||
var difvalue = value10 - value11;
|
||||
|
||||
// 检查当前背景色是否已设置
|
||||
var currentColor = row.style.backgroundColor;
|
||||
|
||||
if (leaveType === '年假' || leaveType === '调休') {
|
||||
if (difvalue < -20 && currentColor !== 'green') {
|
||||
row.style.backgroundColor = 'green';
|
||||
} else if (difvalue >= -20 && difvalue < -10 && currentColor !== 'blue') {
|
||||
row.style.backgroundColor = 'blue';
|
||||
} else if (difvalue >= -10 && difvalue <= 10 && currentColor !== '') {
|
||||
row.style.backgroundColor = ''; // 不变
|
||||
} else if (difvalue > 10 && difvalue <= 20 && currentColor !== 'orange') {
|
||||
row.style.backgroundColor = 'orange';
|
||||
} else if (difvalue > 20 && currentColor !== 'red') {
|
||||
row.style.backgroundColor = 'red';
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 定时器每200毫秒执行一次
|
||||
setInterval(function() {
|
||||
applyRowColoring();
|
||||
}, 200);
|
||||
</script>
|
Loading…
x
Reference in New Issue
Block a user