Ten skrypt nie powinien być instalowany bezpośrednio. Jest to biblioteka dla innych skyptów do włączenia dyrektywą meta // @require https://update.greasyfork.org/scripts/493430/1370222/DFDJLAdjfldjg.js
(function () {
"use strict";
var origSend;
var origOpen;
var button;
var initialX, initialY;
var isDragging;
var input;
var isDragging1;
var initialX1, initialY1;
var offsetX1, offsetY1;
preprocessData();
//变量定义
//变量定义
var strtip = "";
var tipnum = 0;
var enable = true;
var strinput = "";
var strreport = "报告模板:\n";
var keyvalarr1 = null,
keyvalarr2 = null,
keyvalarr3 = null,
keyvalarr4 = null;
var keyvalArr;
var manufactureStr = '';
var supervisionStr = '';
var renovationStr = '';
var coverInspectionStr = '';
var nextInspectionStr = '';
var lastBrakingStr = '';
var generalInspectionStr = document
var manufactureDate = null;
var supervisionDate = null;
var renovationDate = null;
var coverInspectionDate = null;
var nextInspectionDate = null;
var lastBrakingDate = null;
var username = '';
var usernameGK = '';
var jyrq;
var zhizaorq;
var gaizaorq;
var zhidongrq;
var jiandurq;
var gkxiacijianyanriqi;
var jyrqgk;
var keyname;
var qgsf;
var regions;
var nx;
var dat;
function main() {
MyVarObject();
XiaoHe();
}
function XiaoHe() {
isItemsEmpty();
//封面信息
//封面信息
CoverInfo();
//概况信息
//概况信息
ProfileInfo();
//概况日期比较和检验记录
//概况日期比较和检验记录
DateInfo();
//检验记录
//检验记录
//验证检验结论是否正确,检验项目备注是否有填写
InspectionRecordInfo();
displayResult();
}
function MyVarObject() {
keyname = [
"JYJG1_JYJL1",
"DTBZ1",
"JYJG2_JYJL1",
"DTBZ2",
"JYJG3_JYJL1",
"DTBZ3",
"JYJG4_JYJL2",
"DTBZ4",
"JYJG5_JYJL2",
"DTBZ5",
"JYJG6_JYJL3",
"DTBZ6",
"JYJG7_JYJL4",
"DTBZ7",
"JYJG8_JYJL4",
"DTBZ8",
"JYJG9_JYJL4",
"DTBZ9",
"JYJG10_JYJL4",
"DTBZ10",
"JYJG11_JYJL5",
"DTBZ11",
"JYJG12_JYJL6",
"DTBZ12",
"JYJG13_JYJL6",
"DTBZ13",
"JYJG14_JYJL6",
"DTBZ14",
"JYJG15_JYJL6",
"DTBZ15",
"JYJG16_JYJL7",
"DTBZ16",
"JYJG17_JYJL8",
"DTBZ17",
"JYJG18_JYJL8",
"DTBZ18",
"JYJG19_JYJL9",
"DTBZ19",
"JYJG20_JYJL10",
"DTBZ20",
"JYJG21_JYJL11",
"DTBZ21",
"JYJG22_JYJL12",
"DTBZ22",
"JYJG23_JYJL12",
"DTBZ23",
"JYJG24_JYJL12",
"DTBZ24",
"JYJG25_JYJL13",
"DTBZ25",
"JYJG26_JYJL13",
"DTBZ26",
"JYJG27_JYJL13",
"DTBZ27",
"JYJG28_JYJL13",
"DTBZ28",
"JYJG29_JYJL13",
"DTBZ29",
"JYJG30_JYJL14",
"DTBZ30",
"JYJG31_JYJL14",
"DTBZ31",
"JYJG32_JYJL15",
"DTBZ32",
"JYJG33_JYJL15",
"DTBZ33",
"JYJG34_JYJL15",
"DTBZ34",
"JYJG35_JYJL16",
"DTBZ35",
"JYJG36_JYJL17",
"DTBZ36",
"JYJG37_JYJL18",
"DTBZ37",
"JYJG38_JYJL18",
"DTBZ38",
"JYJG39_JYJL18",
"DTBZ39",
"JYJG40_JYJL18",
"DTBZ40",
"JYJG41_JYJL19",
"DTBZ41",
"JYJG42_JYJL20",
"DTBZ42",
"JYJG43_JYJL21",
"DTBZ43",
"JYJG44_JYJL21",
"DTBZ44",
"JYJG45_JYJL21",
"DTBZ45",
"JYJG46_JYJL21",
"DTBZ46",
"JYJG47_JYJL22",
"DTBZ47",
"JYJG48_JYJL22",
"DTBZ48",
"JYJG49_JYJL23",
"DTBZ49",
"DTSJ503",
"JYJG50_JYJL24",
"DTBZ50",
"DTSJ504",
"JYJG51_JYJL24",
"DTBZ51",
"JYJG52_JYJL25",
"DTBZ52",
"JYJG53_JYJL26",
"DTBZ53",
"JYJG54_JYJL26",
"DTBZ54",
"JYJG55_JYJL26",
"DTBZ55",
"JYJG56_JYJL27",
"DTBZ56",
"JYJG57_JYJL27",
"DTBZ57",
"JYJG58_JYJL28",
"DTBZ58",
"JYJG59_JYJL28",
"DTBZ59",
"JYJG60_JYJL29",
"DTBZ60",
"DTSJ700",
"JYJG61_JYJL29",
"DTBZ61",
"JYJG62_JYJL29",
"DTBZ62",
"JYJG63_JYJL29",
"DTBZ63",
"JYJG64_JYJL30",
"DTBZ64",
"JYJG65_JYJL30",
"DTBZ65",
"JYJG66_JYJL30",
"DTBZ66",
"DTSJ702",
"JYJG67_JYJL31",
"DTBZ67",
"DTSJ74",
"JYJG68_JYJL31",
"DTBZ68",
"JYJG69_JYJL32",
"DTBZ69",
"JYJG70_JYJL33",
"DTBZ70",
"JYJG71_JYJL33",
"DTBZ71",
"JYJG72_JYJL34",
"DTBZ72",
"JYJG73_JYJL34",
"DTBZ73",
"JYJG74_JYJL34",
"DTBZ74",
"JYJG75_JYJL34",
"DTBZ75",
"JYJG76_JYJL35",
"DTBZ76",
"JYJG77_JYJL36",
"DTBZ77",
"JYJG78_JYJL36",
"DTBZ78",
"JYJG79_JYJL38",
"DTBZ79",
"JYJG80_JYJL39",
"DTBZ80",
"JYJG81_JYJL39",
"DTBZ81",
"JYJG82_JYJL39",
"DTBZ82",
"JYJG83_JYJL39",
"DTBZ83",
"JYJG84_JYJL40",
"DTBZ84",
"JYJG85_JYJL40",
"DTBZ85",
"JYJG86_JYJL40",
"DTBZ86",
"JYJG87_JYJL40",
"DTBZ87",
"JYJG88_JYJL41",
"DTBZ88",
"JYJG89_JYJL41",
"DTBZ89",
"JYJG90_JYJL42",
"DTBZ90",
"JYJG91_JYJL43",
"DTBZ91",
];
qgsf = {
北京市: "11",
天津市: "12",
河北省: "13",
山西省: "14",
内蒙古自治区: "15",
辽宁省: "21",
吉林省: "22",
黑龙江省: "23",
上海市: "31",
江苏省: "32",
浙江省: "33",
安徽省: "34",
福建省: "35",
江西省: "36",
山东省: "37",
河南省: "41",
湖北省: "42",
湖南省: "43",
广东省: "44",
广西壮族自治区: "45",
海南省: "46",
重庆市: "50",
四川省: "51",
贵州省: "52",
云南省: "53",
西藏自治区: "54",
陕西省: "61",
甘肃省: "62",
青海省: "63",
宁夏回族自治区: "64",
新疆维吾尔自治区: "65",
台湾省: "71",
香港特别行政区: "81",
澳门特别行政区: "82",
};
regions = {
银川市: {
银川市市辖区: {
兴庆区: {},
西夏区: {},
金凤区: {},
},
兴庆区: {},
西夏区: {},
金凤区: {},
永宁县: {},
贺兰县: {},
灵武市: {},
},
石嘴山市: {
大武口区: {},
惠农区: {},
平罗县: {},
},
吴忠市: {
利通区: {},
红寺堡区: {},
盐池县: {},
同心县: {},
青铜峡市: {},
},
固原市: {
原州区: {},
西吉县: {},
隆德县: {},
泾源县: {},
彭阳县: {},
},
中卫市: {
中卫市市辖区: {
沙坡头区: {},
},
沙坡头区: {},
中宁县: {},
海原县: {},
},
};
nx = {
宁夏回族自治区: "640000",
银川市: "640100",
银川市市辖区: "640101",
兴庆区: "640104",
西夏区: "640105",
金凤区: "640106",
永宁县: "640121",
贺兰县: "640122",
灵武市: "640181",
石嘴山市: "640200",
大武口区: "640202",
惠农区: "640205",
平罗县: "640221",
吴忠市: "640300",
利通区: "640302",
红寺堡区: "640303",
盐池县: "640323",
同心县: "640324",
青铜峡市: "640381",
固原市: "640400",
原州区: "640402",
西吉县: "640422",
隆德县: "640423",
泾源县: "640424",
彭阳县: "640425",
中卫市: "640500",
中卫市市辖区: "640501",
沙坡头区: "640502",
中宁县: "640521",
海原县: "640522",
};
keyvalarr1 = {
REPORTNO: "NTD11202405871",
使用单位名称: "宁夏永建建筑工程有限公司",
设备代码: "311010339201203353",
SHEBEILEIBIE: "曳引与强制驱动电梯",
"内部(全面)检验日期(电类定检)": "2024年04月17日",
};
keyvalarr2 = {
使用单位名称: "宁夏永建建筑工程有限公司",
使用单位组织机构代码: "916401212279302618",
"设备使用(所在)地点": "永宁县团结社区日间照料中心",
设备分类代码: "曳引驱动乘客电梯",
设备型号: "DPN35",
"产品编号(出厂编号)": "202209146",
使用证编号: "56",
安全管理人员: "张飞",
安全管理人员联系电话: "09514100765",
制造单位: "苏州德奥电梯有限公司",
制造日期: "2006年09月26日",
GZDWMC: "-",
改造监督检验日期: "-",
维保单位名称: "宁夏通宇电梯制造发展股份有限公司",
ZDSYRQ: "2023年04月",
安装监督检验日期: "2016年06月",
是否加装电梯: "否",
是否住宅电梯: "否",
"内部(全面)下次检验日期(电类定检)": "2025年04月",
电梯额定载荷: "800",
电梯运行速度: "1.5",
电梯层站: "6",
电梯站数: "6",
电梯门数: "6",
控制方式: "单台集选控制",
DTJYYJ: "《电梯监督检验和定期检验规则》(TSG T7001-2023)",
JYYQSB: "详见(2)号工具箱",
DTBZCS3: "-",
DTBZCS4: "-",
XCJYTJ: "符合",
XCAQTJ: "符合",
"内部(全面)检验结论(电类定检)": "合格",
JYRY: "",
"内部(全面)检验日期(电类定检)": "2024年04月17日",
JHRY: "",
JHRQ: "",
};
keyvalarr3 = {
JYJG1_JYJL1: "",
DTBZ1: "-",
JYJG2_JYJL1: "×",
DTBZ2: "-",
JYJG3_JYJL1: "×",
DTBZ3: "-",
JYJG4_JYJL2: "×",
DTBZ4: "-",
JYJG5_JYJL2: "√",
DTBZ5: "-",
JYJG6_JYJL3: "√",
DTBZ6: "-",
JYJG7_JYJL4: "√",
DTBZ7: "-",
JYJG8_JYJL4: "-",
DTBZ8: "-",
JYJG9_JYJL4: "√",
DTBZ9: "-",
JYJG10_JYJL4: "√",
DTBZ10: "-",
JYJG11_JYJL5: "√",
DTBZ11: "-",
JYJG12_JYJL6: "-",
DTBZ12: "-",
JYJG13_JYJL6: "-",
DTBZ13: "-",
JYJG14_JYJL6: "-",
DTBZ14: "-",
JYJG15_JYJL6: "-",
DTBZ15: "-",
JYJG16_JYJL7: "√",
DTBZ16: "-",
JYJG17_JYJL8: "-",
DTBZ17: "-",
JYJG18_JYJL8: "-",
DTBZ18: "-",
JYJG19_JYJL9: "-",
DTBZ19: "-",
JYJG20_JYJL10: "√",
DTBZ20: "-",
JYJG21_JYJL11: "√",
DTBZ21: "-",
JYJG22_JYJL12: "√",
DTBZ22: "-",
JYJG23_JYJL12: "√",
DTBZ23: "-",
JYJG24_JYJL12: "-",
DTBZ24: "-",
JYJG25_JYJL13: "√",
DTBZ25: "-",
JYJG26_JYJL13: "√",
DTBZ26: "-",
JYJG27_JYJL13: "√",
DTBZ27: "-",
JYJG28_JYJL13: "-",
DTBZ28: "-",
JYJG29_JYJL13: "√",
DTBZ29: "-",
JYJG30_JYJL14: "-",
DTBZ30: "-",
JYJG31_JYJL14: "√",
DTBZ31: "-",
JYJG32_JYJL15: "√",
DTBZ32: "-",
JYJG33_JYJL15: "-",
DTBZ33: "-",
JYJG34_JYJL15: "-",
DTBZ34: "-",
JYJG35_JYJL16: "√",
DTBZ35: "-",
JYJG36_JYJL17: "-",
DTBZ36: "-",
JYJG37_JYJL18: "√",
DTBZ37: "-",
JYJG38_JYJL18: "√",
DTBZ38: "-",
JYJG39_JYJL18: "√",
DTBZ39: "-",
JYJG40_JYJL18: "√",
DTBZ40: "-",
JYJG41_JYJL19: "-",
DTBZ41: "-",
JYJG42_JYJL20: "-",
DTBZ42: "-",
};
keyvalarr4 = {
JYJG43_JYJL21: "√",
DTBZ43: "-",
JYJG44_JYJL21: "√",
DTBZ44: "-",
JYJG45_JYJL21: "-",
DTBZ45: "-",
JYJG46_JYJL21: "√",
DTBZ46: "-",
JYJG47_JYJL22: "√",
DTBZ47: "-",
JYJG48_JYJL22: "√",
DTBZ48: "-",
JYJG49_JYJL23: "×",
DTBZ49: "-",
DTSJ503: "≤6",
JYJG50_JYJL24: "√",
DTBZ50: "-",
DTSJ504: "≤45",
JYJG51_JYJL24: "√",
DTBZ51: "-",
JYJG52_JYJL25: "√",
DTBZ52: "-",
JYJG53_JYJL26: "√",
DTBZ53: "-",
JYJG54_JYJL26: "√",
DTBZ54: "-",
JYJG55_JYJL26: "√",
DTBZ55: "-",
JYJG56_JYJL27: "√",
DTBZ56: "-",
JYJG57_JYJL27: "√",
DTBZ57: "-",
JYJG58_JYJL28: "√",
DTBZ58: "-",
JYJG59_JYJL28: "√",
DTBZ59: "-",
JYJG60_JYJL29: "√",
DTBZ60: "-",
DTSJ700: "7",
JYJG61_JYJL29: "√",
DTBZ61: "-",
JYJG62_JYJL29: "√",
DTBZ62: "-",
JYJG63_JYJL29: "√",
DTBZ63: "-",
JYJG64_JYJL30: "√",
DTBZ64: "-",
JYJG65_JYJL30: "√",
DTBZ65: "-",
JYJG66_JYJL30: "√",
DTBZ66: "-",
DTSJ702: "45",
JYJG67_JYJL31: "√",
DTBZ67: "-",
DTSJ74: "23",
JYJG68_JYJL31: "-",
DTBZ68: "-",
JYJG69_JYJL32: "√",
DTBZ69: "-",
JYJG70_JYJL33: "√",
DTBZ70: "-",
JYJG71_JYJL33: "√",
DTBZ71: "-",
JYJG72_JYJL34: "√",
DTBZ72: "-",
JYJG73_JYJL34: "√",
DTBZ73: "-",
JYJG74_JYJL34: "√",
DTBZ74: "-",
JYJG75_JYJL34: "√",
DTBZ75: "-",
JYJG76_JYJL35: "√",
DTBZ76: "-",
JYJG77_JYJL36: "-",
DTBZ77: "-",
JYJG78_JYJL36: "-",
DTBZ78: "-",
JYJG79_JYJL38: "√",
DTBZ79: "-",
JYJG80_JYJL39: "-",
DTBZ80: "-",
JYJG81_JYJL39: "√",
DTBZ81: "-",
JYJG82_JYJL39: "√",
DTBZ82: "-",
JYJG83_JYJL39: "√",
DTBZ83: "-",
JYJG84_JYJL40: "-",
DTBZ84: "-",
JYJG85_JYJL40: "-",
DTBZ85: "-",
JYJG86_JYJL40: "-",
DTBZ86: "-",
JYJG87_JYJL40: "√",
DTBZ87: "-",
JYJG88_JYJL41: "√",
DTBZ88: "-",
JYJG89_JYJL41: "√",
DTBZ89: "-",
JYJG90_JYJL42: "√",
DTBZ90: "-",
JYJG91_JYJL43: "√",
DTBZ91: "-",
};
keyvalArr = {
...keyvalarr1,
...keyvalarr2,
...keyvalarr3,
...keyvalarr4,
};
dat = replaceValuesWithFun(keyvalArr, gett);
}
function displayResult() {
if (strtip.trim() === "") {
strtip = "未发现问题";
}
input.value = strtip + "\n\n" + strinput;
strtip = "";
strinput = "";
tipnum = 0;
}
function InspectionRecordInfo() {
if (1) {
//判断关键、一般项目结论与报告结论的关系
if (1) {
// 指定的数集合
const specificNumbers = new Set([
4, 7, 9, 10, 12, 13, 18, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42,
]);
const normalNumbers = new Set([
1, 2, 3, 5, 6, 8, 11, 14, 15, 16, 17, 19, 20, 21, 22, 23, 32, 43,
]);
const symbolToCheckBHG = "×";
const symbolToCheckWCX = "-";
const symbolToCheckFJHG = "△";
//关键项目
const GJbuhegeJson = getXMKeyValues(
dat,
specificNumbers,
symbolToCheckBHG
);
//一般项目
const YBbuhegeJson = getXMKeyValues(
dat,
normalNumbers,
symbolToCheckBHG
);
//关键项目复检合格
const GJFJHGJson = getXMKeyValues(
dat,
specificNumbers,
symbolToCheckFJHG
);
//一般项目复检合格
const YBFJHGJson = getXMKeyValues(
dat,
normalNumbers,
symbolToCheckFJHG
);
if (Object.keys(GJbuhegeJson).length === 0) {
if (Object.keys(YBbuhegeJson).length === 0) {
if (gett("内部(全面)检验结论(电类定检)") != "合格") {
addstrtip("检验项目全部符合,检验结论应该为“合格”!");
}
} else if (
Object.keys(YBbuhegeJson).length +
Object.keys(YBFJHGJson).length <=
3
) {
// 初始化一个数组来存储提取的数字
const extractedNumbers = [];
// 遍历JSON对象的每个键
for (const key in YBbuhegeJson) {
// 使用正则表达式匹配"JYJL"后面的数字
const match = key.match(/JYJL(\d+)/);
if (match) {
// 如果找到了匹配项,则将数字添加到数组中
extractedNumbers.push(parseInt(match[1], 10)); // 使用parseInt将字符串转换为整数
}
}
// 如果你只想要唯一的数字,并且不关心它们在原始JSON中的顺序,可以使用Set来去除重复项
const uniqueNumbers = [...new Set(extractedNumbers)];
if (!validateString1(dat.DTBZCS3, uniqueNumbers)) {
addstrtip(
"关键项目全部符合,一般项目不符合监护使用项及整改后符合项共不超过3项,备注有误!备注模板“本记录第1、2、3项的检验结果为不符合,使用单位已经承诺采取安全措施,对电梯实行监护使用(见编号为TZS-DT-2401804的《电梯检验意见通知书》)”,考虑格式、不符合项序号、意见通知书年份等是否有误!"
);
}
if (gett("内部(全面)检验结论(电类定检)") != "整改后合格") {
addstrtip(
"关键项目全部符合,一般项目不符合监护使用及整改后符合项共不超过3项,检验结论应该为“整改后合格”!"
);
}
} else if (
Object.keys(YBbuhegeJson).length +
Object.keys(YBFJHGJson).length >
3
) {
addstrtip(
"关键项目全部符合,一般项目不符合监护使用项及整改后符合项共超过3项,一般项目都应打“×””!"
);
} else if (Object.keys(YBbuhegeJson).length > 3) {
if (gett("内部(全面)检验结论(电类定检)") != "不合格") {
addstrtip(
"关键项目全部符合,一般项目不符合共超过3项,检验结论应该为“不合格”!"
);
}
}
} else {
if (gett("内部(全面)检验结论(电类定检)") != "不合格") {
addstrtip("关键项目有不符合,检验结论应该为“不合格”!");
}
}
const xiangmuBeizuJson = checkDTBZValues(dat);
if (dat.DTBZ44 != "") {
if (Object.keys(xiangmuBeizuJson).length > 1) {
//"JYJG44_JYJL21":"√","DTBZ44":"-"对重块
addstrtip("除对重块备注外仍有检验项目备注不是空!");
}
} else if (Object.keys(xiangmuBeizuJson).length > 0) {
//"JYJG44_JYJL21":"√","DTBZ44":"-"对重块
addstrtip("除对重块备注外仍有检验项目备注不是空!");
}
}
//1-9
//"JYJG1_JYJL1":"√","DTBZ1":""
if (1) {
//1
if (dat.JYJG1_JYJL1 === "×") {
addstrtip(
"备注应说明“未注册,请持不合格报告到市民大厅办理注册后重新报检!”"
);
}
//4
if (dat.JYJG8_JYJL4 === "-") {
if (parseFloat(dat.电梯运行速度) > 1) {
addstrtip("电梯速度与缓冲器类型不匹配!");
}
}
//5
if (supervisionDate != null) {
const curdate = new Date();
if (curdate.getFullYear() - supervisionDate.getFullYear() > 14) {
if (dat.JYJG11_JYJL5 === "-") {
addstrtip("超过15年的电梯应检验第5项接地故障保护!");
}
}
if (curdate.getFullYear() - supervisionDate.getFullYear() < 15) {
if (dat.JYJG11_JYJL5 != "-") {
addstrtip("不超过15年的第5项电梯接地故障保护不需要检验!");
}
}
}
//6
//"JYJG12_JYJL6":"","DTBZ12":"","JYJG13_JYJL6":"","DTBZ13":""
//,"JYJG14_JYJL6":"","DTBZ14":"","JYJG15_JYJL6":"","DTBZ15":""
if (supervisionDate != null) {
if (supervisionDate < new Date("2017-10-01")) {
if (
dat.JYJG12_JYJL6 != "-" ||
dat.JYJG13_JYJL6 != "-" ||
dat.JYJG14_JYJL6 != "-" ||
dat.JYJG15_JYJL6 != "-"
) {
addstrtip("注意2017.10.1以前的电梯没有第6项旁路装置!");
}
}
if (supervisionDate >= new Date("2017-10-01")) {
if (
dat.JYJG12_JYJL6 === "-" ||
dat.JYJG13_JYJL6 === "-" ||
dat.JYJG14_JYJL6 === "-" ||
dat.JYJG15_JYJL6 === "-"
) {
addstrtip("注意2017.10.1以后的电梯有第6项旁路装置!");
}
}
}
//7
if (supervisionDate != null) {
if (supervisionDate < new Date("2017-10-01")) {
if (dat.JYJG16_JYJL7 != "-") {
addstrtip(
"注意2017.10.1以前的电梯不检验第7项制动器状态监测功能!"
);
}
}
if (supervisionDate >= new Date("2017-10-01")) {
if (dat.JYJG16_JYJL7 === "-") {
addstrtip(
"注意2017.10.1以后的电梯应检验第7项制动器状态监测功能!"
);
}
}
}
}
//10-19
if (1) {
//10
//10."JYJG20_JYJL10":"","DTBZ20":""
if (1) {
if (parseInt(dat.电梯层站) > 7) {
if (dat.JYJG20_JYJL10 === "-") {
addstrtip("注意提升高度大于30m需要设置第10项紧急报警装置!");
}
} else if (parseInt(dat.电梯层站) <= 7) {
if (dat.JYJG20_JYJL10 != "-") {
addstrtip(
"注意提升高度小于30m可能不需要设置第10项紧急报警装置!"
);
}
}
}
//12
//"JYJG22_JYJL12":"","DTBZ22":"","JYJG23_JYJL12":"","DTBZ23":"","JYJG24_JYJL12":"","DTBZ24":""
if (supervisionDate != null) {
if (supervisionDate < new Date('2024-04-02')) {
if (dat.JYJG22_JYJL12 != "-") {
addstrtip("未按照TSG T7001-2023监督检验的电梯,12-1不检验!");
}
}
if (supervisionDate >= new Date('2024-04-02')) {
if (dat.JYJG22_JYJL12 === "-") {
addstrtip("按照TSG T7001-2023监督检验的电梯,12-1需要检验!");
}
}
}
//13手动紧急操作装置
//JYJG28_JYJL13
if (manufactureDate != null) {
if (manufactureDate < new Date('2004-01-01')) {
if (dat.JYJG28_JYJL13 != "-") {
addstrtip(
"按照GB7588-1995及更早标准生产的电梯,如果未依据TSG T7001、2023检验,第13(4)是否不检验!"
);
}
}
if (manufactureDate >= new Date('2004-01-01')) {
if (dat.JYJG28_JYJL13 === "-") {
addstrtip(
"注意按照GB7588-2003及之后新标准生产的电梯,若带有盘车手轮,第13(4)是否应检验!"
);
}
}
if (dat.JYJG27_JYJL13 === '-') {
if (dat.JYJG28_JYJL13 != '-') {
addstrtip('若13(3)无此项,那么13(4)也应是无此项!');
}
}
if (dat.JYJG28_JYJL13 != '-') {
if (dat.JYJG27_JYJL13 === '-') {
addstrtip('若13(4)符合,那么13(3)也应是符合!');
}
}
}
//14、15
//钢丝绳、包覆带
if (1) {
if (dat.JYJG30_JYJL14 != "-" || dat.JYJG31_JYJL14 != "-") {
if (
dat.JYJG32_JYJL15 != "-" ||
dat.JYJG33_JYJL15 != "-" ||
dat.JYJG34_JYJL15 != "-"
) {
addstrtip("14、15钢丝绳和包覆带有同时勾选!");
}
}
if (supervisionDate != null) {
const curdate = new Date();
if (curdate.getFullYear() - supervisionDate.getFullYear() < 15) {
if (dat.JYJG30_JYJL14 != "-" || dat.JYJG31_JYJL14 != "-") {
addstrtip("不超过15年的电梯14项钢丝绳不需要检验!");
}
}
}
if (supervisionDate != null) {
const curdate = new Date();
if (curdate.getFullYear() - supervisionDate.getFullYear() < 15) {
if (
dat.JYJG32_JYJL15 != "-" ||
dat.JYJG33_JYJL15 != "-" ||
dat.JYJG34_JYJL15 != "-"
) {
addstrtip("不超过15年的电梯15项包覆带不需要检验!");
}
}
}
if (supervisionDate != null) {
const curdate = new Date();
if (curdate.getFullYear() - supervisionDate.getFullYear() > 14) {
if (dat.JYJG30_JYJL14 === "-" && dat.JYJG31_JYJL14 === "-") {
if (
dat.JYJG32_JYJL15 === "-" ||
dat.JYJG33_JYJL15 === "-" ||
dat.JYJG34_JYJL15 === "-"
) {
addstrtip("14、15钢丝绳和包覆带至少选一类!");
}
}
}
}
if (supervisionDate != null) {
if (supervisionDate < new Date('2024-04-02')) {
if (dat.JYJG33_JYJL15 != "-" || dat.JYJG34_JYJL15 != "-") {
addstrtip(
"未按照TSG T7001-2023监督检验的电梯,15-2、3不检验!"
);
}
}
if (supervisionDate >= new Date('2024-04-02')) {
if (dat.JYJG33_JYJL15 === "-" || dat.JYJG34_JYJL15 === "-") {
addstrtip(
"按照TSG T7001-2023监督检验的电梯,15-2、3需要检验!"
);
}
}
}
}
//16悬挂装置端部固定
if (supervisionDate != null) {
const curdate = new Date();
if (curdate.getFullYear() - supervisionDate.getFullYear() > 14) {
if (dat.JYJG35_JYJL16 === "-") {
addstrtip("超过15年的电梯应检验第16项悬挂装置端部固定!");
}
}
if (curdate.getFullYear() - supervisionDate.getFullYear() < 15) {
if (dat.JYJG35_JYJL16 != "-") {
addstrtip("不超过15年的第16项悬挂装置端部固定不需要检验!");
}
}
}
//18_JYJL18))
//速度与反绳轮
if (1) {
if (supervisionDate >= new Date("2024-04-02")) {
if (parseFloat(dat.电梯运行速度) <= 1.75) {
if (
!(
(dat.JYJG37_JYJL18 === "-" &&
dat.JYJG38_JYJL18 === "-" &&
dat.JYJG39_JYJL18 === "-" &&
dat.JYJG40_JYJL18 === "-") ||
(dat.JYJG37_JYJL18 != "-" &&
dat.JYJG38_JYJL18 != "-" &&
dat.JYJG39_JYJL18 != "-" &&
dat.JYJG40_JYJL18 != "-")
)
) {
addstrtip("2024-04-02及之后监督,速度不大于1.75,第18项全部有(采用非金属)或者无此项(采用金属)!");
}
if (dat.JYJG37_JYJL18 != "-" &&
dat.JYJG38_JYJL18 != "-" &&
dat.JYJG39_JYJL18 != "-" &&
dat.JYJG40_JYJL18 != "-") {
if (!(dat.JYJG37_JYJL18 === "√" || dat.JYJG37_JYJL18 === "△")) {
addstrtip('2024-04-02及之后监督,速度不大于1.75,第18项采用非金属反绳轮时,18(1)应为符合或整改后符合!');
}
}
} else {
if (!(dat.JYJG37_JYJL18 === "-" &&
dat.JYJG38_JYJL18 === "-" &&
dat.JYJG39_JYJL18 === "-" &&
dat.JYJG40_JYJL18 === "-")) {
addstrtip('2024-04-02及之后监督,速度大于1.75,第18项只能采用金属反绳轮!');
}
}
} else {
if (parseFloat(dat.电梯运行速度) <= 1.75) {
if (!(dat.JYJG37_JYJL18 === "-" &&
dat.JYJG38_JYJL18 === "-" &&
dat.JYJG39_JYJL18 === "-" &&
dat.JYJG40_JYJL18 === "-")) {
if (dat.JYJG39_JYJL18 != "-" &&
dat.JYJG40_JYJL18 != "-") {
if (!(dat.JYJG37_JYJL18 === "√" || dat.JYJG37_JYJL18 === "△" || dat.JYJG37_JYJL18 === "-")) {
addstrtip('2024-04-02之前监督,速度不大于1.75,第18项采用非金属反绳轮时,18(1)应为符合、整改后符合或无此项!');
}
if (!(dat.JYJG38_JYJL18 === "√" || dat.JYJG38_JYJL18 === "△" || dat.JYJG38_JYJL18 === "-")) {
addstrtip('2024-04-02之前监督,速度不大于1.75,第18项采用非金属反绳轮时,18(2)应为符合、整改后符合或无此项!');
}
} else {
addstrtip('2024-04-02之前监督,速度不大于1.75,第18项采用非金属反绳轮时,18(3)(4)都应不是无此项!');
}
}
} else {
if (!(dat.JYJG37_JYJL18 === "-" &&
dat.JYJG38_JYJL18 === "-" &&
dat.JYJG39_JYJL18 === "-" &&
dat.JYJG40_JYJL18 === "-")) {
if (dat.JYJG39_JYJL18 != "-" &&
dat.JYJG40_JYJL18 != "-") {
if (dat.JYJG37_JYJL18 != "-") {
addstrtip('2024-04-02之前监督,速度大于1.75,第18项采用非金属反绳轮时,18(1)应为无此项!');
}
if (!(dat.JYJG38_JYJL18 === "√" || dat.JYJG38_JYJL18 === "△" || dat.JYJG38_JYJL18 === "-")) {
addstrtip('2024-04-02之前监督,速度大于1.75,第18项采用非金属反绳轮时,18(2)应为符合、整改后符合或无此项!');
}
} else {
addstrtip('2024-04-02之前监督,速度大于1.75,第18项采用非金属反绳轮时,18(3)(4)都应不是无此项!');
}
}
}
}
}
}
//20-29
if (1) {
//21对重块数量或高度
//"JYJG44_JYJL21":"√","DTBZ44":"-"
if (dat.JYJG44_JYJL21 === "√") {
if (
!/^\d+(\.\d+)?\s*(块|厘米|cm|毫米|mm|米|m)$/i.test(dat.DTBZ44)
) {
addstrtip("第21(2)对重块备注信息填写错误!");
}
}
if (supervisionDate < new Date("2024-04-02")) {
if(dat.JYJG45_JYJL21!='-'){
addstrtip('注意2024.4.2之前监督检验的电梯,21(3)是否不检验!')
}
}else{
if(dat.JYJG45_JYJL21==='-'){
addstrtip('注意2024.4.2及之后监督检验的电梯,21(3)是否需要检验!')
}
}
//23轿厢语音播报系统
if (supervisionDate != null) {
if (supervisionDate < new Date('2024-04-02')) {
if (dat.JYJG49_JYJL23 != "-") {
addstrtip("未按照TSG T7001-2023监督检验的电梯,第23项不检验!");
}
}
if (supervisionDate >= new Date('2024-04-02')) {
if (dat.JYJG49_JYJL23 === "-") {
addstrtip("按照TSG T7001-2023监督检验的电梯,第23项需要检验!");
}
}
}
//24门扇间隙
if (
(dat.JYJG50_JYJL24 === "-" && dat.DTSJ503 != "-") ||
(dat.JYJG50_JYJL24 != "-" && dat.DTSJ503 === "-")
) {
addstrtip("第24项门间隙(1)测量数据与结果矛盾!");
}
if (
(dat.JYJG51_JYJL24 === "-" && dat.DTSJ504 != "-") ||
(dat.JYJG51_JYJL24 != "-" && dat.DTSJ504 === "-")
) {
addstrtip("第24项门间隙(2)测量数据与结果矛盾!");
}
if (supervisionDate != null) {
const curdate = new Date();
if (curdate.getFullYear() - supervisionDate.getFullYear() > 14) {
if (
dat.JYJG50_JYJL24 === "-" ||
dat.JYJG51_JYJL24 === "-" ||
dat.DTSJ503 === "-" ||
dat.DTSJ504 === "-"
) {
addstrtip("超过15年的电梯应检验第24项门间隙!");
} else {
if (dat.设备分类代码 === "曳引驱动乘客电梯") {
if (/^([1-9]\d*(\.\d+)?|0\.\d+)(mm|MM|毫米)?$/.test(dat.DTSJ503)) {
if (
parseFloat(dat.DTSJ503) <= 6 &&
parseFloat(dat.DTSJ503) >= 0
) {
if (dat.JYJG50_JYJL24 === "×") {
addstrtip(
"第24项门间隙(1)实测值:" + dat.DTSJ503 + "应为符合!"
);
}
} else if (parseFloat(dat.DTSJ503) > 6) {
if (dat.JYJG50_JYJL24 != "×") {
addstrtip(
"第24项门间隙(1)实测值:" +
dat.DTSJ503 +
"应为不符合!"
);
}
}
} else if (/^≤6(mm|MM|毫米)?$/.test(dat.DTSJ503)) {
if (dat.JYJG50_JYJL24 === "×") {
addstrtip(
"第24项门间隙(1)目测值:" + dat.DTSJ503 + "应为符合!"
);
}
} else {
addstrtip("第24项门间隙(1)测量值格式错误!");
}
} else if (dat.设备分类代码 === "曳引驱动载货电梯") {
if (/^([1-9]\d*(\.\d+)?|0\.\d+)(mm|MM|毫米)?$/.test(dat.DTSJ503)) {
if (
parseFloat(dat.DTSJ503) <= 10 &&
parseFloat(dat.DTSJ503) >= 0
) {
if (dat.JYJG50_JYJL24 === "×") {
addstrtip(
"第24项门间隙(1)实测值:" + dat.DTSJ503 + "应为符合!"
);
}
} else if (parseFloat(dat.DTSJ503) > 10) {
if (dat.JYJG50_JYJL24 != "×") {
addstrtip(
"第24项门间隙(1)实测值:" +
dat.DTSJ503 +
"应为不符合!"
);
}
}
} else if (/^≤10(mm|MM|毫米)?$/.test(dat.DTSJ503)) {
if (dat.JYJG50_JYJL24 === "×") {
addstrtip(
"第24项门间隙(1)目测值:" + dat.DTSJ503 + "应为符合!"
);
} else {
addstrtip("第24项门间隙(1)测量值格式错误!");
}
}
}
if (/^([1-9]\d*(\.\d+)?|0\.\d+)(mm|MM|毫米)?$/.test(dat.DTSJ504)) {
if (parseFloat(dat.DTSJ504) <= 30) {
if (dat.JYJG51_JYJL24 === "×") {
addstrtip(
"第24项门间隙(2)实测值:" + dat.DTSJ504 + "应为符合!"
);
}
} else if (
parseFloat(dat.DTSJ504) > 30 &&
parseFloat(dat.DTSJ504) <= 45
) {
if (dat.JYJG51_JYJL24 === "×") {
addstrtip(
"若为中分门,第24项门间隙(2)实测值:" +
dat.DTSJ504 +
"应为符合!"
);
} else if (dat.JYJG51_JYJL24 != "×") {
addstrtip(
"若为旁开门,第24项门间隙(2)实测值:" +
dat.DTSJ504 +
"应为不符合!"
);
}
} else {
if (dat.JYJG51_JYJL24 != "×") {
addstrtip(
"第24项门间隙(2)实测值:" + dat.DTSJ504 + "应为不符合!"
);
}
}
} else if (dat.DTSJ504 === "≤45(mm|MM|毫米)?") {
if (dat.JYJG51_JYJL24 === "×") {
addstrtip(
"第24项门间隙(2)实测值:" + dat.DTSJ504 + "应为符合!"
);
}
} else {
addstrtip("第24项门间隙(2)实测值格式错误!");
}
}
}
if (curdate.getFullYear() - supervisionDate.getFullYear() < 15) {
if (
dat.JYJG50_JYJL24 != "-" ||
dat.JYJG51_JYJL24 != "-" ||
dat.DTSJ503 != "-" ||
dat.DTSJ504 != "-"
) {
addstrtip("不超过15年的第24项门间隙不需要检验!");
}
}
}
//26门的运行和导向装置
if (supervisionDate != null) {
if (supervisionDate < new Date('2024-04-02')) {
if (dat.JYJG55_JYJL26 != "-") {
addstrtip(
"注意2024.04.02以前监督检验的电梯不检验第26项(3)层门啮合标记!"
);
}
}
if (supervisionDate >= new Date('2024-04-02')) {
if (dat.JYJG55_JYJL26 === "-") {
addstrtip(
"注意2024.04.02及以后监督检验的电梯应检验第26项(3)层门啮合标记!"
);
}
}
}
//28紧急开锁
if (supervisionDate != null) {
if (supervisionDate < new Date('2024-04-02')) {
if (dat.JYJG59_JYJL28 != "-") {
addstrtip("注意2024.04.02以前监督检验的电梯不检验第28项(2)紧急开锁!");
}
}
if (supervisionDate >= new Date('2024-04-02')) {
if (dat.JYJG59_JYJL28 === "-") {
addstrtip("注意2024.04.02及以后监督检验的电梯应检验第28项(2)紧急开锁!");
}
}
}
//29门的锁紧
//"JYJG60_JYJL29":"","DTBZ60":"","DTSJ700":"7mm","JYJG61_JYJL29":"","DTBZ61":"","JYJG62_JYJL29":"","DTBZ62":"","JYJG63_JYJL29":"","DTBZ63":""
if (
(dat.JYJG61_JYJL29 === "-" && dat.DTSJ700 != "-") ||
(dat.JYJG61_JYJL29 != "-" && dat.DTSJ700 === "-")
) {
addstrtip("第29项门锁紧(2)测量数据与结果矛盾!");
}
if (/^(>|≥|大于|大于等于)?([1-9]\d*(\.\d+)?|0\.\d+)?(mm|MM|毫米)?$/.test(dat.DTSJ700)) {
if (dat.JYJG61_JYJL29 === "√" || dat.JYJG61_JYJL29 === "△") {
if (parseFloat(dat.DTSJ700) < 7) {
addstrtip("第29项锁紧啮合深度测量数据显示结果应为不符合!");
}
}
if (dat.JYJG61_JYJL29 === "×") {
if (parseFloat(dat.DTSJ700) >= 7) {
addstrtip("第29项锁紧啮合深度测量数据显示结果应为符合!");
}
}
} else {
addstrtip("第29项锁紧啮合深度测量数值格式错误!");
}
}
//30-39
if (1) {
//31平衡系数
//DTSJ702,"JYJG67_JYJL31":"","DTBZ67":"","DTSJ74":"","JYJG68_JYJL31":"","DTBZ68":""
if (1) {
if (
(dat.JYJG67_JYJL31 === "-" && dat.DTSJ702 != "-") ||
(dat.JYJG67_JYJL31 != "-" && dat.DTSJ702 === "-")
) {
addstrtip("第31项平衡系数(1)测量数据与结果矛盾!");
}
if (
(dat.JYJG68_JYJL31 === "-" && dat.DTSJ74 != "-") ||
(dat.JYJG68_JYJL31 != "-" && dat.DTSJ74 === "-")
) {
addstrtip("第31项平衡系数(2)测量数据与结果矛盾!");
}
if (dat.JYJG90_JYJL42 != "-") {
if (/^([1-9]\d*(\.\d+)?|0\.\d+)$/.test(dat.DTSJ702)) {
if (dat.JYJG67_JYJL31 === "√" || dat.JYJG67_JYJL31 === "△") {
if (
parseFloat(dat.DTSJ702) < 40 ||
parseFloat(dat.DTSJ702) > 50
) {
addstrtip("第31项平衡系数(1)测量数据显示结果应为不符合!");
}
}
if (dat.JYJG67_JYJL31 === "×") {
if (
parseFloat(dat.DTSJ702) >= 40 &&
parseFloat(dat.DTSJ702) <= 50
) {
addstrtip("第31项平衡系数(1)测量数据显示结果应为符合!");
}
}
if (dat.JYJG67_JYJL31 === "-") {
addstrtip("第31项平衡系数(1)测量数据与结果矛盾!");
}
if (dat.JYJG67_JYJL31 === "×") {
const rs32_34 =
dat.JYJG69_JYJL32 !== "-" ||
dat.JYJG70_JYJL33 !== "-" ||
dat.JYJG71_JYJL33 !== "-" ||
dat.JYJG72_JYJL34 !== "-" ||
dat.JYJG73_JYJL34 !== "-" ||
dat.JYJG74_JYJL34 !== "-" ||
dat.JYJG75_JYJL34 !== "-";
const rs35_39 =
dat.JYJG76_JYJL35 !== "-" ||
dat.JYJG77_JYJL36 !== "-" ||
dat.JYJG78_JYJL36 !== "-" ||
dat.JYJG79_JYJL38 !== "-" ||
dat.JYJG80_JYJL39 !== "-" ||
dat.JYJG81_JYJL39 !== "-" ||
dat.JYJG82_JYJL39 !== "-" ||
dat.JYJG83_JYJL39 !== "-";
const rs40_43 =
dat.JYJG84_JYJL40 !== "-" ||
dat.JYJG85_JYJL40 !== "-" ||
dat.JYJG86_JYJL40 !== "-" ||
dat.JYJG87_JYJL40 !== "-" ||
dat.JYJG88_JYJL41 !== "-" ||
dat.JYJG89_JYJL41 !== "-" ||
dat.JYJG90_JYJL42 !== "-" ||
dat.JYJG91_JYJL43 !== "-";
if (rs32_34 || rs35_39 || rs40_43) {
addstrtip("平衡系数不合格,第32-43项应为“-”!");
}
}
} else {
addstrtip("第31项平衡系数(1)测量数值格式错误!");
}
const phxs2 = document
.getElementById("1701504018295d212")
.innerText.trim();
if (phxs2 != "-" || dat.JYJG68_JYJL31 != "-") {
addstrtip("制动试验时只进行第31项(1)的检验!");
}
} else {
if (dat.DTSJ702 != "-" || dat.JYJG67_JYJL31 != "-") {
addstrtip("没有制动试验时只进行第31项(2)的检验!");
}
const phxs22 = document
.getElementById("1701504018295d212")
.innerText.trim();
if (/^([1-9]\d*(\.\d+)?|0\.\d+)$/.test(phxs22)) {
if (dat.JYJG68_JYJL31 === "√" || dat.JYJG68_JYJL31 === "△") {
if (parseFloat(phxs22) < 40 || parseFloat(phxs22) > 50) {
addstrtip("第31项平衡系数(2)测量数据显示结果应为不符合!");
}
}
if (dat.JYJG68_JYJL31 === "×") {
if (parseFloat(phxs22) >= 40 && parseFloat(phxs22) <= 50) {
addstrtip("第31项平衡系数(2)测量数据显示结果应为符合!");
}
}
if (dat.JYJG68_JYJL31 === "-") {
addstrtip("第31项平衡系数(2)测量数据与结果矛盾!");
}
if (dat.JYJG68_JYJL31 === "×") {
const rs32_34 =
dat.JYJG69_JYJL32 !== "-" ||
dat.JYJG70_JYJL33 !== "-" ||
dat.JYJG71_JYJL33 !== "-" ||
dat.JYJG72_JYJL34 !== "-" ||
dat.JYJG73_JYJL34 !== "-" ||
dat.JYJG74_JYJL34 !== "-" ||
dat.JYJG75_JYJL34 !== "-";
const rs35_39 =
dat.JYJG76_JYJL35 !== "-" ||
dat.JYJG77_JYJL36 !== "-" ||
dat.JYJG78_JYJL36 !== "-" ||
dat.JYJG79_JYJL38 !== "-" ||
dat.JYJG80_JYJL39 !== "-" ||
dat.JYJG81_JYJL39 !== "-" ||
dat.JYJG82_JYJL39 !== "-" ||
dat.JYJG83_JYJL39 !== "-";
const rs40_43 =
dat.JYJG84_JYJL40 !== "-" ||
dat.JYJG85_JYJL40 !== "-" ||
dat.JYJG86_JYJL40 !== "-" ||
dat.JYJG87_JYJL40 !== "-" ||
dat.JYJG88_JYJL41 !== "-" ||
dat.JYJG89_JYJL41 !== "-" ||
dat.JYJG90_JYJL42 !== "-" ||
dat.JYJG91_JYJL43 !== "-";
if (rs32_34 || rs35_39 || rs40_43) {
addstrtip("平衡系数不合格,第32-43项应为“-”!");
}
}
} else {
if (/^40(%)?-50$/.test(phxs22)) {
if (dat.JYJG68_JYJL31 === "×") {
addstrtip('第31项平衡系数(2)"40-50"表明结果应为符合!');
}
} else {
addstrtip("第31项平衡系数(2)测量数值格式错误!");
}
}
}
}
}
//39 上行超速保护
//"JYJG80_JYJL39":"","DTBZ80":"","JYJG81_JYJL39":"","DTBZ81":"","JYJG82_JYJL39":"","DTBZ82":"","JYJG83_JYJL39":"","DTBZ83":""
if (manufactureDate != null) {
if (manufactureDate < new Date('2004-01-01')) {
if (
dat.JYJG80_JYJL39 != "-" ||
dat.JYJG81_JYJL39 != "-" ||
dat.JYJG82_JYJL39 != "-" ||
dat.JYJG83_JYJL39 != "-"
) {
addstrtip("注意2004.1.1之前生产的电梯,上行超速保护是否不检验!");
}
}
if (manufactureDate >= new Date('2004-01-01')) {
if (
dat.JYJG80_JYJL39 === "-" ||
dat.JYJG81_JYJL39 === "-" ||
dat.JYJG83_JYJL39 === "-"
) {
addstrtip(
"注意2004.1.1之后生产的电梯,上行超速保护是否需要检验!"
);
}
}
}
//40-43
if (1) {
//40 轿厢意外移动
//40."JYJG84_JYJL40":"","DTBZ84":"","JYJG85_JYJL40":"","DTBZ85":"","JYJG86_JYJL40":"","DTBZ86":"","JYJG87_JYJL40":"","DTBZ87":""
if (manufactureDate != null) {
if (manufactureDate < new Date('2016-07-01')) {
if (
dat.JYJG84_JYJL40 != "-" ||
dat.JYJG85_JYJL40 != "-" ||
dat.JYJG86_JYJL40 != "-" ||
dat.JYJG87_JYJL40 != "-"
) {
addstrtip(
"注意2016.7.1之前生产的电梯,轿厢意外移动是否不检验!"
);
}
}
if (manufactureDate >= new Date('2016-07-01')) {
if (
dat.JYJG84_JYJL40 === "-" ||
dat.JYJG85_JYJL40 === "-" ||
dat.JYJG87_JYJL40 === "-"
) {
addstrtip(
"注意2016.7.1之后生产的电梯,轿厢意外移动是否需要检验!"
);
}
}
}
if (manufactureDate != null) {
if (manufactureDate >= new Date('2004-01-01') && manufactureDate < new Date('2016-07-01')) {
if (dat.JYJG86_JYJL40 != "-") {
addstrtip('注意制造于2004.01.01至2016.07.01的电梯,UCMP40(3)是否应为无此项!')
}
}
if (manufactureDate >= new Date('2016-07-01')) {
if (dat.JYJG82_JYJL39 != dat.JYJG86_JYJL40) {
addstrtip('注意制造于2016.07.01以后的电梯,上行超速保护39(3)和UCMP40(3)是否应相同,若确实采用了不同的制动装置,可忽略!')
}
}
}
//42 125制动试验
//"JYJG90_JYJL42":"","DTBZ90":""
if (lastBrakingDate != null) {
if (lastBrakingDate.getFullYear() === new Date().getFullYear()) {
if (dat.JYJG90_JYJL42 === "-") {
addstrtip("最近制动试验是在今年,第42项应为符合!");
}
}
if (lastBrakingDate.getFullYear() != new Date().getFullYear()) {
if (dat.JYJG90_JYJL42 != "-") {
addstrtip("最近制动试验不在今年,第42项应为“-”!");
}
}
}
}
}
}
function StringToDate(str) {
var strDate = str.split(" ");
var strDatepart = strDate[0].split("-");
var dtDate = new Date(strDatepart[0], strDatepart[1] - 1, strDatepart[2]);
return dtDate;
}
function YearMonthToYearMonthDay(str) {
if (str.length === 7) {
str = str.concat("-01");
}
return str.trim();
}
function ZifuchuanIsDate(strdate) {
//isNaN(strdate)返回为false则是日期格式;排除data为纯数字的情况(此处不考虑只有年份的日期,如‘2020)
if (isNaN(strdate) && !isNaN(Date.parse(strdate))) {
return true;
} else {
return false;
}
}
function addstrtip(str) {
strtip = strtip.concat("\n");
tipnum = tipnum + 1;
strtip = strtip.concat(tipnum.toString());
strtip = strtip.concat("、");
strtip = strtip.concat(str);
}
function isNormalInteger(str) {
var n = Math.floor(Number(str));
return n !== Infinity && String(n) === str && n >= 0;
}
function isValidSBDMFormat(text) {
// 完整的正则表达式,匹配格式:(3110|3120) + 数组中的值 + 2000到2100之间的年份 + 五位数字顺序号
const regex = /^(3110|3120)\d{6}(\d{4})\d{6}$/;
// 首先判断基本的格式匹配
if (regex.test(text)) {
const match = text.match(regex);
if (match) {
var year = parseInt(match[2], 10);
if (year >= 2000 && year <= 2100) {
return true;
} else {
return false;
}
}
} else {
return false;
}
}
// 解析日期,如果没有具体的日,则默认为月的第一天
function parseDate(dateStr) {
const dateRegex = /^(\d{4})年(\d{1,2})月(\d{1,2})?日?$/;
const match = dateStr.match(dateRegex);
if (!match) {
return null;
}
const year = parseInt(match[1], 10);
const month = parseInt(match[2], 10) - 1;
const day = match[3] ? parseInt(match[3], 10) : 1;
return new Date(year, month, day);
}
//根据监督检验日期验证某一年是检验还是检测,并给出该年具体检验检测日期
//接收一个监督检验日期字符串
function elevatorInspectionStr(supervisionDateStr, queryYear) {
const dateRegex = /^(\d{4})年(\d{1,2})月/; // 正则表达式用于解析年份和月份
const match = supervisionDateStr.match(dateRegex);
if (match) {
const supervisionYear = parseInt(match[1], 10);
const supervisionMonth = parseInt(match[2], 10);
const inspectionYears = [1, 4, 7, 9, 11, 13, 15]; // 检验规则年份
let inspectionDates = [];
// 生成检验日期
inspectionYears.forEach((year) => {
if (supervisionYear + year <= queryYear) {
inspectionDates.push(supervisionYear + year);
}
});
// 处理超过15年后每年都检验的情况
if (queryYear - supervisionYear > 15) {
for (let year = supervisionYear + 16; year <= queryYear; year++) {
inspectionDates.push(year);
}
}
// 判断查询年份需要的操作
if (inspectionDates.includes(queryYear)) {
return { result: "检验", year: queryYear, month: supervisionMonth };
} else {
return { result: "检测", year: queryYear, month: supervisionMonth };
}
} else {
return { result: "错误", year: 0, month: 0 };
}
}
//根据监督检验日期验证某一年是检验还是检测,并给出该年份后下次检验日期
//接收监督检验日期和验证日期date类对象
function elevatorInspection(supervisionDate, queryDate) {
if (supervisionDate >= queryDate) {
return { result: "错误", date: null };
}
if (
new Date(
queryDate.getFullYear(),
supervisionDate.getMonth(),
supervisionDate.getDate()
) < new Date(2023, 3, 1)
) {
// 输出结果
return {
result: "检验",
date: new Date(
queryDate.getFullYear() + 1,
supervisionDate.getMonth(),
supervisionDate.getDate()
),
};
} else {
const supervisionYear = supervisionDate.getFullYear();
const supervisionMonth = supervisionDate.getMonth();
const queryYear = queryDate.getFullYear();
const inspectionIntervals = [1, 4, 7, 9, 11, 13, 15]; // 定期检验的间隔年份
let inspectionYears = new Set();
// 生成所有定期检验的年份
for (let year = supervisionYear; year <= queryYear + 15; year++) {
if (
year - supervisionYear > 15 ||
inspectionIntervals.includes(year - supervisionYear)
) {
inspectionYears.add(year);
}
}
// 确定查询年份是否是检验年份
let inspectionStatus = inspectionYears.has(queryYear) ? "检验" : "检测";
// 计算下一次检验的年份
let nextInspectionYear = [...inspectionYears].find(
(year) => year > queryYear
);
// 创建下次检验日期的Date对象
let nextInspectionDate = nextInspectionYear
? new Date(nextInspectionYear, supervisionMonth, 1)
: null;
// 输出结果
return { result: inspectionStatus, date: nextInspectionDate };
}
}
function isValidSYDJFormat(text) {
// 完整的正则表达式,匹配格式:(3110|3120) + 数组中的值 + 2000到2100之间的年份 + 五位数字顺序号
const regex = /^(3110|3120)\d{6}(\d{4})\d{6}$/;
// 首先判断基本的格式匹配
if (regex.test(text)) {
const match = text.match(regex);
if (match) {
var year = parseInt(match[2], 10);
if (year >= 2000 && year <= 2100) {
return true;
} else {
return false;
}
}
} else {
return false;
}
}
function calculateBrakeDate(initialDate, queryDate) {
const brakeIntervalBefore2024 = 5; // 2024年4月1日之前的制动间隔
const brakeIntervalAfter2024 = 6; // 2024年4月1日及以后的制动间隔
let resultDate = new Date(initialDate.getTime());
let resultDatetemp = null;
let currentYear = 0;
while (resultDate <= queryDate) {
resultDatetemp = new Date(resultDate.getTime());
currentYear = resultDate.getFullYear();
// 如果检验日期在2013年1月1日之前,第一次制动日期是2018年
if (resultDate < new Date(2013, 0, 1)) {
resultDate.setFullYear(2018);
}
// 如果检验日期在2013年1月1日及之后,2019.4.1之前,第一次制动日期隔5年做
else if (resultDate < new Date(2019, 3, 1)) {
resultDate.setFullYear(currentYear + brakeIntervalBefore2024);
}
// 如果检验日期在2019年4月1日及之后,第一次制动日期隔6年做
else {
resultDate.setFullYear(currentYear + brakeIntervalAfter2024);
}
}
return resultDatetemp;
}
// 检查项目的键值对
function getXMKeyValues(jsonData, specificNumbers, symbolToCheck) {
const regex = /^JYJG(\d+)_JYJL(\d+)$/;
let validKeyValues = {};
for (let key in jsonData) {
const match = key.match(regex);
if (match) {
const value = jsonData[key];
const number = parseInt(match[2], 10);
if (value === symbolToCheck && specificNumbers.has(number)) {
validKeyValues[key] = value;
}
}
}
return validKeyValues;
}
// 检查键值对是否符合条件
function checkDTBZValues(jsonData) {
const regex = /^DTBZ(\d+)$/;
let results = [];
for (let key in jsonData) {
const match = key.match(regex);
if (match) {
const number = parseInt(match[1], 10);
if (number >= 1 && number <= 91) {
if (jsonData[key] !== "") {
results.push({ key, value: jsonData[key] });
}
}
}
}
return results;
}
// 封面前得到后
function getdtt(label) {
var labelEl = Array.from(document.getElementsByTagName("span")).find(
(el) => el.textContent === label
);
var widgetFieldEl = labelEl.parentElement;
while (!widgetFieldEl.classList.contains("widget-field")) {
widgetFieldEl = widgetFieldEl.parentElement;
}
return widgetFieldEl.nextElementSibling.innerText.trim();
}
// 表格前得到后
function gethtt(label) {
var labelEl = Array.from(document.getElementsByTagName("td")).find(
(el) => el.textContent.trim() === label
);
return labelEl.nextElementSibling.innerText.trim();
}
// 直接得到
function getdt(label) {
var labelEl = Array.from(document.getElementsByTagName("span")).find(
(el) => el.textContent === label
);
var widgetFieldEl = labelEl.parentElement;
while (!widgetFieldEl.classList.contains("widget-field")) {
widgetFieldEl = widgetFieldEl.parentElement;
}
return widgetFieldEl.innerText.trim();
}
// 获取表格对应值
function getht(label) {
var labelEl = Array.from(document.getElementsByTagName("td")).find(
(el) => el.textContent.trim() === label
);
return labelEl.innerText.trim();
}
// 假设这段HTML代码已经在页面上加载
// 定义一个函数来根据label的文本内容找到对应的span元素并获取其文本
function gett(labelText) {
// 使用XPath选择器来找到包含特定文本的label元素
var label = document.evaluate(
"//label[contains(., '" + labelText + "')]",
document,
null,
XPathResult.FIRST_ORDERED_NODE_TYPE,
null
).singleNodeValue;
// 如果找到了label元素,则寻找它后面的span元素
if (label) {
var span = label.nextElementSibling; // 获取label元素的下一个兄弟元素
if (span && span.classList.contains("widget-content")) {
// 确保找到的元素是我们要的span
return span.textContent || span.innerText; // 获取span元素的文本内容
}
}
return null; // 如果没有找到,返回null
}
function replaceValuesWithFun(jn, fun) {
// 遍历JSON对象的所有键
for (var key in jn) {
if (jn.hasOwnProperty(key)) {
// 获取当前键对应的值
var value = jn[key];
// 使用提供的函数fun处理键名,并获取返回值
var funResult = fun(key);
// 如果fun返回的不是null,则用fun的返回值替换原值
if (funResult !== null) {
jn[key] = funResult;
}
}
}
// 返回修改后的JSON对象
return jn;
}
function validateAndExplainCode(input) {
// 正则表达式匹配形式“详见(JD101)号工具箱”,并仅提取最后两位数字
const regex =
/^详见((JD\d{1}\d{2}|SZSJD\d{2}|WZJD\d{2}|ZWJD\d{2}|GYJD\d{2}))号工具箱$/;
const match = input.match(regex);
if (!match) {
return { isValid: false, message: "输入格式不正确。" };
}
// 提取编码部分
const code = match[1];
let department = "";
// 只提取最后两位数字
let sequence = parseInt(code.slice(-2), 10); // 使用slice(-2)直接从字符串末尾取最后两个字符
// 根据编码解释其含义
if (/^JD1\d{2}$/.test(code)) {
department = "机电一部";
if (sequence > 10)
return { isValid: false, message: "机电一部顺序号超出范围。" };
} else if (/^JD2\d{2}$/.test(code)) {
department = "机电二部";
if (sequence < 1 || sequence > 4)
return { isValid: false, message: "机电二部顺序号超出范围。" };
} else if (/^JD3\d{2}$/.test(code)) {
department = "机电三部";
if (sequence > 8)
return { isValid: false, message: "机电三部顺序号超出范围。" };
} else if (/^SZSJD\d{2}$/.test(code)) {
department = "石嘴山分院";
if (sequence > 3)
return { isValid: false, message: "石嘴山分院顺序号超出范围。" };
} else if (/^WZJD\d{2}$/.test(code)) {
department = "吴忠分院";
if (sequence > 3)
return { isValid: false, message: "吴忠分院顺序号超出范围。" };
} else if (/^ZWJD\d{2}$/.test(code)) {
department = "中卫分院";
if (sequence > 3)
return { isValid: false, message: "中卫分院顺序号超出范围。" };
} else if (/^GYJD\d{2}$/.test(code)) {
department = "固原分院";
if (sequence > 3)
return { isValid: false, message: "固原分院顺序号超出范围。" };
} else {
return { isValid: false, message: "未知的编码部分。" };
}
return {
isValid: true,
message: `本次检验使用了${department}:${code},序号为${sequence}的工具箱。`,
};
}
function validateString(str) {
// 获取当前年份的后两位
const currentYearSuffix = new Date().getFullYear().toString().slice(-2);
// 正则表达式匹配中文全角或英文半角的小括号
const regex =
/^本记录第([\d+、,]+)项的检验结果为不符合使用单位已经承诺采取安全措施,对电梯实行监护使用(见编号为TZS-DT-${currentYearSuffix}\d{5}的《电梯检验意见通知书》)$/;
const match = str.match(regex);
if (!match) {
// 如果不匹配,直接返回false
return false;
}
// 提取并分割数字字符串
const numbersStr = match[1];
const numbers = numbersStr
.split(/[\d+、,]+/)
.filter((n) => n !== "")
.map(Number);
// 验证数字是否在1到43的范围内
const isValidNumbers = numbers.every((num) => num >= 1 && num <= 43);
// 验证XX4是否符合格式
const xx4Match = str.match(/TZS-DT-${currentYearSuffix}(\d{5})/);
const isValidXX4 = xx4Match && xx4Match[1].length === 5;
// 返回最终验证结果
return isValidNumbers && isValidXX4;
}
//不符合项序号也验证
function validateString1(str, ssz) {
// 将数组 ssz 转换成字符串并用顿号连接,同时支持中文和英文逗号
const items = ssz.join("[、,]");
// 构建正则表达式的动态部分,用于匹配 "第XX1、XX2、XX3项"
const itemPattern = `第${items}项`;
// 获取当前年份的最后两位
const year = new Date().getFullYear().toString().slice(-2);
// 定义正则表达式,匹配整个字符串
// 注意:此处假设XX4的格式是 "TZS-DT-" 后跟 7 位数字,其中前两位是年份
// 添加对中英文小括号的支持
const regex = new RegExp(
`^本记录${itemPattern}的检验结果为不符合[,,]使用单位已经承诺采取安全措施[,,]对电梯实行监护使用[((]见编号为TZS-DT-${year}\\d{5}的《电梯检验意见通知书》[))]$`
);
// 测试字符串是否符合正则表达式
return regex.test(str);
}
//通过全国统一社会信用代码得到所在省份名称
function getProvinceByKeyValue(code, jsonData) {
// 确保字符串长度为18
if (code.length !== 18) {
return "";
}
// 获取第3到4位的子字符串
const keyValue = code.substring(2, 4);
// 查找qg对象中对应的键名
for (const province in jsonData) {
if (jsonData[province] === keyValue) {
return province; // 返回找到的键名(省份名)
}
}
// 如果没有找到对应的键,返回错误信息
return "";
}
//对全国统一社会信用代码进行校验,有问题,和实际计算有差异
function isValidUnifiedSocialCreditCode(code) {
// 权重数组
const weights = [
1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28,
];
// 校验码对应表
const checkCodes = "0123456789ABCDEFGHJKLMNPQRTUWXY";
// 字符到数字的映射,大写字母按照顺序映射,不包括I、O、S、V、Z
const charToNumberMap = {
A: 10,
B: 11,
C: 12,
D: 13,
E: 14,
F: 15,
G: 16,
H: 17,
J: 18,
K: 19,
L: 20,
M: 21,
N: 22,
P: 23,
Q: 24,
R: 25,
T: 26,
U: 27,
W: 28,
X: 29,
Y: 30,
};
// 确保统一社会信用代码长度为18位
if (code.length !== 18) {
return false;
}
// 计算加权和
let sum = 0;
for (let i = 0; i < 17; i++) {
const char = code.charAt(i);
let charCode;
if (!isNaN(char)) {
// 如果是数字,直接转换
charCode = parseInt(char, 10);
} else {
// 如果是字母,通过映射转换
charCode = charToNumberMap[char];
if (charCode === undefined) {
// 如果字母不在映射中(如I、O、S、V、Z),则代码无效
return false;
}
}
sum += charCode * weights[i];
}
// 计算校验码
const remainder = sum % 31;
const expectedCheckCode = checkCodes.charAt(remainder);
// 校验最后一位是否匹配
const actualCheckCode = code.charAt(17).toUpperCase();
return expectedCheckCode === actualCheckCode;
}
// 函数用于判断18位字符串中第3到8位是否是nx对象中某个键的值,并返回对应的键名
function findKeyFromCode(str, jsonData) {
// 将给定字符串中的第3到8位提取出来
var code = str.substr(2, 6);
// 循环遍历 JSON 数据,查找匹配的键名
for (var key in jsonData) {
if (jsonData.hasOwnProperty(key)) {
if (jsonData[key] === code) {
return key;
}
}
}
// 如果没有找到匹配的键名,返回空字符串
return "";
}
function checkRegionContainment(a, b) {
// 检查b是否直接是a
if (a === b) {
return true;
}
// 寻找a和b所在的最高级区域
const aRegion = findRegion(a, regions);
const bRegion = findRegion(b, regions);
if (!aRegion || !bRegion) {
return false; // 如果a或b没有找到对应的区域,返回false
}
// 判断b所在的区域是否包含a所在的区域
return isInRegion(a, b, regions);
}
// 递归地在regions中查找key所在的区域
function findRegion(key, region) {
if (region.hasOwnProperty(key)) {
return region; // 如果找到了key,返回包含它的区域对象
}
// 遍历当前区域的所有子区域
for (const subKey in region) {
if (region[subKey] instanceof Object) {
const result = findRegion(key, region[subKey]);
if (result) return result;
}
}
return null; // 如果没有找到,返回null
}
//验证为空
//验证为空
function isItemsEmpty() {
//封面
if (1) {
if (getdtt("使用单位:") === "") {
addstrtip("使用单位名称为空!");
//highlightedFields.push(ddh('使用单位:'))
}
if (getdtt("设备代码:") === "") {
addstrtip("设备代码为空!");
}
if (getdtt("设备类别:") === "") {
addstrtip("设备类别为空!");
}
if (getdtt("检验日期:") === "") {
addstrtip("封面检验日期为空!");
}
}
//概况
if (1) {
if (gethtt("使用单位名称") === "") {
addstrtip("概况使用单位名称为空!");
}
if (gethtt("统一社会信用代码") === "") {
addstrtip("统一社会信用代码为空!");
}
if (gethtt("安装地点") === "") {
addstrtip("安装地点为空!");
}
if (gethtt("设备品种") === "") {
addstrtip("设备品种为空!");
}
if (gethtt("产品型号") === "") {
addstrtip("产品型号为空!");
}
if (gethtt("产品编号") === "") {
addstrtip("产品编号为空!");
}
if (gethtt("单位内编号") === "") {
addstrtip("单位内编号为空!");
}
if (gethtt("使用登记证编号") === "") {
addstrtip("使用登记证编号为空!");
}
if (gethtt("安全管理人员") === "") {
addstrtip("安全管理人员为空!");
}
if (gethtt("电话") === "") {
addstrtip("安全管理人员联系电话为空!");
}
if (gethtt("制造单位名称") === "") {
addstrtip("制造单位名称为空!");
}
if (gethtt("制造日期") === "") {
addstrtip("制造日期为空!");
}
if (gethtt("改造单位名称") === "") {
addstrtip("改造单位名称为空!");
}
if (gethtt("改造日期") === "") {
addstrtip("改造日期为空!");
}
if (gethtt("维护保养单位名称") === "") {
addstrtip("维保单位名称为空!");
}
if (gethtt("最近一次制动试验确认日期") === "") {
addstrtip("最近一次制动试验确认日期为空!");
}
if (gethtt("监督检验日期") === "") {
addstrtip("监督检验日期为空!");
}
if (gethtt("是否加装电梯") === "") {
addstrtip("是否加装电梯信息为空!");
}
if (gethtt("是否住宅电梯") === "") {
addstrtip("是否住宅电梯信息为空!");
}
if (gethtt("下次检验日期") === "") {
addstrtip("下次检验日期为空!");
}
if (gethtt("额定载重量") === "") {
addstrtip("电梯额定载荷为空!");
}
if (gethtt("额定速度") === "") {
addstrtip("电梯运行速度为空!");
}
if (dat.电梯层站 === "") {
addstrtip("电梯层站为空!");
}
if (dat.电梯站数 === "") {
addstrtip("电梯站数为空!");
}
if (dat.电梯门数 === "") {
addstrtip("电梯门数为空!");
}
if (gethtt("控制方式") === "") {
addstrtip("控制方式为空!");
}
if (gethtt("检验依据") === "") {
addstrtip("检验依据为空!");
}
if (gethtt("主要检验仪器设备") === "") {
addstrtip("主要检验仪器设备为空!");
}
if (getdt("XCJYTJ") === "") {
addstrtip("现场检验条件为空!");
}
if (getdt("XCAQTJ") === "") {
addstrtip("现场安全条件为空!");
}
if (getdt("内部(全面)检验结论(电类定检)") === "") {
addstrtip("检验结论为空!");
}
if (getdt("内部(全面)检验日期(电类定检)") === "") {
addstrtip("概况检验日期为空!");
}
}
//1-5
if (1) {
if (gett("JYJG1_JYJL1") === "") {
addstrtip("第1项第1个检验结果为空!");
}
if (gett("JYJG2_JYJL1") === "") {
addstrtip("第1项第2个检验结果为空!");
}
if (gett("JYJG3_JYJL1") === "") {
addstrtip("第1项第3个检验结果空!");
}
if (gett("JYJG4_JYJL2") === "") {
addstrtip("第2项第1个检验结果空!");
}
if (gett("JYJG5_JYJL2") === "") {
addstrtip("第2项第2个检验结果空!");
}
if (gett("JYJG6_JYJL3") === "") {
addstrtip("第3项第1个检验结果空!");
}
if (gett("JYJG7_JYJL4") === "") {
addstrtip("第4项第1个检验结果空!");
}
if (gett("JYJG8_JYJL4") === "") {
addstrtip("第4项第2个检验结果空!");
}
if (gett("JYJG9_JYJL4") === "") {
addstrtip("第4项第3个检验结果空!");
}
if (gett("JYJG10_JYJL4") === "") {
addstrtip("第4项第4个检验结果空!");
}
if (gett("JYJG11_JYJL5") === "") {
addstrtip("第5项第1个检验结果空!");
}
}
//6-10
if (1) {
if (gett("JYJG12_JYJL6") === "") {
addstrtip("第6项第1个检验结果为空!");
}
if (gett("JYJG13_JYJL6") === "") {
addstrtip("第6项第2个检验结果为空!");
}
if (gett("JYJG14_JYJL6") === "") {
addstrtip("第6项第3个检验结果为空!");
}
if (gett("JYJG15_JYJL6") === "") {
addstrtip("第6项第4个检验结果为空!");
}
if (gett("JYJG16_JYJL7") === "") {
addstrtip("第7项第1个检验结果为空!");
}
if (gett("JYJG17_JYJL8") === "") {
addstrtip("第8项第1个检验结果为空!");
}
if (gett("JYJG18_JYJL8") === "") {
addstrtip("第8项第2个检验结果为空!");
}
if (gett("JYJG19_JYJL9") === "") {
addstrtip("第9项第1个检验结果为空!");
}
if (gett("JYJG20_JYJL10") === "") {
addstrtip("第10项第1个检验结果为空!");
}
}
//11-15
if (1) {
if (gett("JYJG21_JYJL11") === "") {
addstrtip("第11项第1个检验结果为空!");
}
if (gett("JYJG22_JYJL12") === "") {
addstrtip("第12项第1个检验结果为空!");
}
if (gett("JYJG23_JYJL12") === "") {
addstrtip("第12项第2个检验结果为空!");
}
if (gett("JYJG24_JYJL12") === "") {
addstrtip("第12项第3个检验结果为空!");
}
if (gett("JYJG25_JYJL13") === "") {
addstrtip("第13项第1个检验结果为空!");
}
if (gett("JYJG26_JYJL13") === "") {
addstrtip("第13项第2个检验结果为空!");
}
if (gett("JYJG27_JYJL13") === "") {
addstrtip("第13项第3个检验结果为空!");
}
if (gett("JYJG28_JYJL13") === "") {
addstrtip("第13项第4个检验结果为空!");
}
if (gett("JYJG29_JYJL13") === "") {
addstrtip("第13项第5个检验结果为空!");
}
if (gett("JYJG30_JYJL14") === "") {
addstrtip("第14项第1个检验结果为空!");
}
if (gett("JYJG31_JYJL14") === "") {
addstrtip("第14项第2个检验结果为空!");
}
if (gett("JYJG32_JYJL15") === "") {
addstrtip("第15项第1个检验结果为空!");
}
if (gett("JYJG33_JYJL15") === "") {
addstrtip("第15项第2个检验结果为空!");
}
if (gett("JYJG34_JYJL15") === "") {
addstrtip("第15项第3个检验结果为空!");
}
}
//16-20
if (1) {
if (gett("JYJG35_JYJL16") === "") {
addstrtip("第16项第1个检验结果为空!");
}
if (gett("JYJG36_JYJL17") === "") {
addstrtip("第17项第1个检验结果为空!");
}
if (gett("JYJG37_JYJL18") === "") {
addstrtip("第18项第1个检验结果为空!");
}
if (gett("JYJG38_JYJL18") === "") {
addstrtip("第18项第2个检验结果为空!");
}
if (gett("JYJG39_JYJL18") === "") {
addstrtip("第18项第3个检验结果为空!");
}
if (gett("JYJG40_JYJL18") === "") {
addstrtip("第18项第4个检验结果为空!");
}
if (gett("JYJG41_JYJL19") === "") {
addstrtip("第19项第1个检验结果为空!");
}
if (gett("JYJG42_JYJL20") === "") {
addstrtip("第20项第1个检验结果为空!");
}
}
//21-25
if (1) {
if (gett("JYJG43_JYJL21") === "") {
addstrtip("第21项第1个检验结果为空!");
}
if (gett("JYJG44_JYJL21") === "") {
addstrtip("第21项第2个检验结果为空!");
}
if (gett("JYJG45_JYJL21") === "") {
addstrtip("第21项第3个检验结果为空!");
}
if (gett("JYJG46_JYJL21") === "") {
addstrtip("第21项第4个检验结果为空!");
}
if (gett("JYJG47_JYJL22") === "") {
addstrtip("第22项第1个检验结果为空!");
}
if (gett("JYJG48_JYJL22") === "") {
addstrtip("第22项第2个检验结果为空!");
}
if (gett("JYJG49_JYJL23") === "") {
addstrtip("第23项第1个检验结果为空!");
}
if (gett("JYJG50_JYJL24") === "") {
addstrtip("第24项第1个检验结果为空!");
}
if (gett("JYJG51_JYJL24") === "") {
addstrtip("第24项第2个检验结果为空!");
}
if (gett("JYJG52_JYJL25") === "") {
addstrtip("第25项第1个检验结果为空!");
}
}
//26-30
if (1) {
if (gett("JYJG53_JYJL26") === "") {
addstrtip("第26项第1个检验结果为空!");
}
if (gett("JYJG54_JYJL26") === "") {
addstrtip("第26项第2个检验结果为空!");
}
if (gett("JYJG55_JYJL26") === "") {
addstrtip("第26项第3个检验结果为空!");
}
if (gett("JYJG56_JYJL27") === "") {
addstrtip("第27项第1个检验结果为空!");
}
if (gett("JYJG57_JYJL27") === "") {
addstrtip("第27项第2个检验结果为空!");
}
if (gett("JYJG58_JYJL28") === "") {
addstrtip("第28项第1个检验结果为空!");
}
if (gett("JYJG59_JYJL28") === "") {
addstrtip("第28项第2个检验结果为空!");
}
if (gett("JYJG60_JYJL29") === "") {
addstrtip("第29项第1个检验结果为空!");
}
if (gett("JYJG61_JYJL29") === "") {
addstrtip("第29项第2个检验结果为空!");
}
if (gett("JYJG62_JYJL29") === "") {
addstrtip("第29项第3个检验结果为空!");
}
if (gett("JYJG63_JYJL29") === "") {
addstrtip("第29项第4个检验结果为空!");
}
if (gett("JYJG64_JYJL30") === "") {
addstrtip("第30项第1个检验结果为空!");
}
if (gett("JYJG65_JYJL30") === "") {
addstrtip("第30项第2个检验结果为空!");
}
if (gett("JYJG66_JYJL30") === "") {
addstrtip("第30项第3个检验结果为空!");
}
}
//31-35
if (1) {
if (gett("JYJG67_JYJL31") === "") {
addstrtip("第31项第1个检验结果为空!");
}
if (gett("JYJG68_JYJL31") === "") {
addstrtip("第31项第2个检验结果为空!");
}
if (gett("JYJG69_JYJL32") === "") {
addstrtip("第32项第1个检验结果为空!");
}
if (gett("JYJG70_JYJL33") === "") {
addstrtip("第33项第1个检验结果为空!");
}
if (gett("JYJG71_JYJL33") === "") {
addstrtip("第33项第2个检验结果为空!");
}
if (gett("JYJG72_JYJL34") === "") {
addstrtip("第34项第1个检验结果为空!");
}
if (gett("JYJG73_JYJL34") === "") {
addstrtip("第34项第2个检验结果为空!");
}
if (gett("JYJG74_JYJL34") === "") {
addstrtip("第34项第3个检验结果为空!");
}
if (gett("JYJG75_JYJL34") === "") {
addstrtip("第34项第4个检验结果为空!");
}
if (gett("JYJG76_JYJL35") === "") {
addstrtip("第35项第1个检验结果为空!");
}
}
//36-40
if (1) {
if (gett("JYJG77_JYJL36") === "") {
addstrtip("第36项第1个检验结果为空!");
}
if (gett("JYJG78_JYJL36") === "") {
addstrtip("第37项第1个检验结果为空!");
}
if (gett("JYJG79_JYJL38") === "") {
addstrtip("第38项第1个检验结果为空!");
}
if (gett("JYJG80_JYJL39") === "") {
addstrtip("第39项第1个检验结果为空!");
}
if (gett("JYJG81_JYJL39") === "") {
addstrtip("第39项第2个检验结果为空!");
}
if (gett("JYJG82_JYJL39") === "") {
addstrtip("第39项第3个检验结果为空!");
}
if (gett("JYJG83_JYJL39") === "") {
addstrtip("第39项第4个检验结果为空!");
}
if (gett("JYJG84_JYJL40") === "") {
addstrtip("第40项第1个检验结果为空!");
}
if (gett("JYJG85_JYJL40") === "") {
addstrtip("第40项第2个检验结果为空!");
}
if (gett("JYJG86_JYJL40") === "") {
addstrtip("第40项第3个检验结果为空!");
}
if (gett("JYJG87_JYJL40") === "") {
addstrtip("第40项第4个检验结果为空!");
}
}
//41-43
if (1) {
if (gett("JYJG88_JYJL41") === "") {
addstrtip("第41项第1个检验结果为空!");
}
if (gett("JYJG89_JYJL41") === "") {
addstrtip("第41项第2个检验结果为空!");
}
if (gett("JYJG90_JYJL42") === "") {
addstrtip("第42项第1个检验结果为空!");
}
if (gett("JYJG91_JYJL43") === "") {
addstrtip("第43项第1个检验结果为空!");
}
}
//检验项目中的数值
if (1) {
/* if (gett(DTSJ503) === "") {
addstrtip("第24项(1)测量值为空!");
} */
if (dat.DTSJ503 === "") {
addstrtip("第24项(1)测量值为空!");
}
/* if (gett(DTSJ504) === "") {
addstrtip("第24项(2)测量值为空!");
} */
if (dat.DTSJ504 === "") {
addstrtip("第24项(2)测量值为空!");
}
/* if (gett(DTSJ700) === "") {
addstrtip("第29项(2)测量值为空!");
} */
if (dat.DTSJ700 === "") {
addstrtip("第29项(2)测量值为空!");
}
/* if (gett(DTSJ702) === "") {
addstrtip("第31项(1)测量值为空!");
} */
if (dat.DTSJ702 === "") {
addstrtip("第31项(1)测量值为空!");
}
/* if (gett(DTSJ74) === "") {
addstrtip("第31项(2)测量值为空!");
} */
if (dat.DTSJ74 === "") {
addstrtip("第31项(2)测量值为空!");
}
}
}
function CoverInfo() {
username = document
.getElementById("1581261202417784a")
.innerText.trim();
if (!/^[\u4e00-\u9fa5\(\)\(\)]{1,39}$/g.test(username)) {
addstrtip("注意封面使用单位名称!");
}
usernameGK = document
.getElementById("1555396405619039a")
.innerText.trim();
if (username != usernameGK) {
addstrtip("封面与概况使用单位名称不一致!");
}
//设备代码
if (1) {
if (gett("设备代码") != "-") {
const regex = /^(3110|3120)\d{5,6}(\d{4})\d{5,6}$/;
if (regex.test(gett("设备代码"))) {
const sbdmfm = gett("设备代码").match(/^(\d{4})(\d{14}|\d{16})$/);
if (
/^3110$/.test(sbdmfm[1]) &&
!/^曳引驱动乘客电梯$/.test(gett("设备分类代码"))
) {
addstrtip('封面设备代码3110表示"曳引驱动乘客电梯"!');
}
if (
/^3120$/.test(sbdmfm[1]) &&
!/^曳引驱动载货电梯$/.test(gett("设备分类代码"))
) {
addstrtip('封面设备代码3120表示"曳引驱动载货电梯"!');
}
} else {
addstrtip("封面设备代码格式错误!");
}
}
}
if (!/^曳引与强制驱动电梯$/.test(gett("SHEBEILEIBIE"))) {
addstrtip("封面设备类别错误!");
}
jyrq = document
.getElementById("1710387041337455d")
.innerText.trim()
.replace(/年|月|日/g, "-")
.slice(0, -1); //封面检验日期
jyrq = YearMonthToYearMonthDay(jyrq);
if (
/^\d{4}年\d{1,2}月\d{1,2}日$/.test(
document.getElementById("1710387041337455d").innerText.trim()
)
) {
} else {
addstrtip("封面检验日期格式为xxxx年xx月xx日");
}
if (!ZifuchuanIsDate(jyrq)) {
addstrtip("封面检验日期格式错误!");
}
}
function ProfileInfo() {
if (!/^-$/.test(gett("使用单位组织机构代码"))) {
if (!/^[^IOZSV]{18}$/.test(gett("使用单位组织机构代码"))) {
addstrtip("统一社会信用代码错误!");
} else {
let sf = getProvinceByKeyValue(gett("使用单位组织机构代码"), qgsf);
let nxdm = findKeyFromCode(gett("使用单位组织机构代码"), nx);
let sfs = gett("使用单位组织机构代码").substring(2, 4);
let nxdms = gett("使用单位组织机构代码").substring(2, 8);
if (sf === "") {
addstrtip("统一社会信用代码3、4位省份信息错误!");
} else if (sf != "宁夏回族自治区") {
addstrtip('统一社会信用代码3、4位:"' + sfs + '"显示省份为:' + sf);
} else {
if (nxdm === "") {
addstrtip("统一社会信用代码第3到8位行政区划代码错误!");
} else {
if (nxdm != "宁夏回族自治区") {
if (!dat["设备使用(所在)地点"].includes(nxdm)) {
if (!checkRegionContainment(nxdm, dat["设备使用(所在)地点"])) {
addstrtip(
'注意使用单位统一社会信用代码注册地:"' +
nxdm +
'"是否不在设备所在地!'
);
} else {
addstrtip(
'统一社会信用代码第3到8位:"' +
nxdms +
'"显示使用单位在' +
nxdm
);
}
}
}
}
}
}
}
if (!/^(曳引驱动乘客电梯|曳引驱动载货电梯)$/.test(gett("设备分类代码"))) {
addstrtip("设备品种错误!");
}
if (gett("设备型号") != "不明") {
if (!/^[a-zA-Z0-9./\\_\-()()\s]+$/gi.test(gett("设备型号"))) {
addstrtip("注意型号!");
}
}
if (gett("设备型号") === "-") {
addstrtip("产品型号找不到的填“不明”");
}
if (gett("产品编号(出厂编号)") != "不明") {
if (!/^[a-zA-Z0-9./\\_\-()()]+$/gi.test(gett("产品编号(出厂编号)"))) {
addstrtip("注意产品编号!");
}
}
if (gett("产品编号(出厂编号)") === "-") {
addstrtip("产品编号找不到的填“不明”");
}
//使用登记证编号
if (1) {
if (gett("使用证编号") != "-") {
if (isValidSYDJFormat(gett("使用证编号"))) {
const sbdmfm = gett("使用证编号").match(/^(\d{4})*$/);
if (
/^3110$/.test(sbdmfm[1]) &&
!/^曳引驱动乘客电梯$/.test(gett("设备分类代码"))
) {
addstrtip('使用登记证编号3110表示"曳引驱动乘客电梯"!');
}
if (
/^3120$/.test(sbdmfm[1]) &&
!/^曳引驱动载货电梯$/.test(gett("设备分类代码"))
) {
addstrtip('使用登记证编号3120表示"曳引驱动载货电梯"!');
}
} else {
const regex = /^梯(11|12)[宁](A|B|C|D|E)\d{5}[\(\(]\d{2}[\)\)]$/;
// 首先判断基本的格式匹配
if (regex.test(gett("使用证编号"))) {
const match = gett("使用证编号").match(regex);
if (match) {
if (
/^11$/.test(match[1]) &&
!/^曳引驱动乘客电梯$/.test(gett("设备分类代码"))
) {
addstrtip('使用登记证编号11表示"曳引驱动乘客电梯"!');
}
if (
/^12$/.test(match[1]) &&
!/^曳引驱动载货电梯$/.test(gett("设备分类代码"))
) {
addstrtip('使用登记证编号12表示"曳引驱动载货电梯"!');
}
let checkA_E=checkStringContainsLocation(match[2],dat["设备使用(所在)地点"],regions);
if(checkA_E.contains){
}else{
if(checkA_E.azdstrContains===null&&checkA_E.zcdstrRepresents!=null){
addstrtip('注意设备所在地:'+dat["设备使用(所在)地点"]+'可能不在使用登记证注册地:'+checkA_E.zcdstrRepresents+'!');
}
}
// if (/^A$/.test(match[2])) {
// addstrtip('使用登记证注册地在银川!');
// }
// if (/^B$/.test(match[2])) {
// addstrtip('使用登记证注册地在石嘴山!');
// }
// if (/^C$/.test(match[2])) {
// addstrtip('使用登记证注册地在吴忠!');
// }
// if (/^D$/.test(match[2])) {
// addstrtip('使用登记证注册地在固原!');
// }
// if (/^E$/.test(match[2])) {
// addstrtip('使用登记证注册地在中卫!');
// }
}
} else {
addstrtip('注意是否使用登记证编号错误!');
}
}
}
}
if (!/^[\u4e00-\u9fa5]{2,4}$/g.test(gett("安全管理人员"))) {
addstrtip("注意安全管理人员!");
}
if (!/^(1[3-9]\d{9}|\d{4}-?\d{7})$/g.test(gett("安全管理人员联系电话"))) {
addstrtip("安全管理人员电话不正确!");
}
//制造、改造单位及日期
if (1) {
if (!/^[\u4e00-\u9fa5\(\)\(\)]{1,39}$/g.test(gett("制造单位"))) {
addstrtip("注意制造单位名称!");
}
if (gett("制造日期") === "-") {
addstrtip("制造日期查不到填“不明”!");
} else {
if (gett("制造日期") != "不明") {
zhizaorq = document
.getElementById("1555396405618f688")
.innerText.trim()
.replace(/年|月|日/g, "-")
.slice(0, -1); // 封面检验日期
jyrq = YearMonthToYearMonthDay(jyrq);
if (!ZifuchuanIsDate(jyrq)) {
addstrtip("制造日期格式错误!");
}
}
}
if (gett("GZDWMC") != '-') {
if (!/^[\u4e00-\u9fa5\(\)\(\)]{1,39}$/g.test(gett("GZDWMC"))) {
addstrtip("注意改造单位名称!");
}
}
if (gett("改造监督检验日期") === "不明") {
addstrtip("未进行改造或查不出改造日期填“-”!");
}
if (
/^-$/g.test(gett("GZDWMC")) &&
!/^-$/g.test(gett("改造监督检验日期"))
) {
addstrtip("注意改造单位名称与改造日期的关系!");
}
if (
!/^-$/g.test(gett("GZDWMC")) &&
/^-$/g.test(gett("改造监督检验日期"))
) {
addstrtip("注意改造单位名称与改造日期的关系!");
}
if (!/^-$/g.test(gett("改造监督检验日期"))) {
gaizaorq = document
.getElementById("1710388733083adc5")
.innerText.trim()
.replace(/年|月|日/g, "-")
.slice(0, -1); //封面检验日期
gaizaorq = YearMonthToYearMonthDay(gaizaorq);
if (!ZifuchuanIsDate(gaizaorq)) {
addstrtip("改造日期格式错误!");
}
}
}
if (!/^[\u4e00-\u9fa5\(\)\(\)]{1,39}$/g.test(gett("维保单位名称"))) {
addstrtip("注意维保单位名称!");
}
zhidongrq = document
.getElementById("1710148356446ba4c")
.innerText.trim()
.replace(/年|月|日/g, "-")
.slice(0, -1); //封面检验日期
zhidongrq = YearMonthToYearMonthDay(zhidongrq);
if (!ZifuchuanIsDate(zhidongrq)) {
addstrtip("最近一次制动试验确认日期格式错误!");
}
jiandurq = document
.getElementById("17101483999266548")
.innerText.trim()
.replace(/年|月|日/g, "-")
.slice(0, -1); //封面检验日期
jiandurq = YearMonthToYearMonthDay(jiandurq);
if (!ZifuchuanIsDate(jiandurq)) {
addstrtip("监督日期格式错误!");
}
if (!/^(是|否)$/.test(gett("是否加装电梯"))) {
addstrtip("是否加装错误!");
}
if (!/^(是|否)$/.test(gett("是否住宅电梯"))) {
addstrtip("是否住宅错误!");
}
gkxiacijianyanriqi = document
.getElementById("171038882039234f4")
.innerText.trim()
.replace(/年|月|日/g, "-")
.slice(0, -1); //下次检验日期
if (
!/^\d{4}年\d{2}月$/.test(gett("内部(全面)下次检验日期(电类定检)"))
) {
addstrtip("下次检验日期精确到月!");
}
gkxiacijianyanriqi = YearMonthToYearMonthDay(gkxiacijianyanriqi);
if (!ZifuchuanIsDate(gkxiacijianyanriqi)) {
addstrtip("下次检验日期格式错误!");
}
//额定载荷与速度
if (1) {
if (!/^([1-9]\d*(\.\d+)?|0\.\d+)$/.test(gett("电梯额定载荷"))) {
addstrtip("额定载荷错误!");
}
if (!/^([1-9]\d*(\.\d+)?|0\.\d+)$/.test(gett("电梯运行速度"))) {
addstrtip("额定速度错误!");
}
if (/^曳引驱动乘客电梯$/.test(gett("设备分类代码"))) {
const standardLoads = [450, 630, 800, 825,1000, 1050, 1250, 1350, 1600];
if (!standardLoads.includes(parseFloat(gett("电梯额定载荷")))) {
addstrtip(
"额定载荷不是常见量450, 630, 800, 825,1000, 1250,1350, 1600!"
);
}
const standardSpeeds = [1, 1.5, 1.6, 1.75, 2, 2.5];
if (!standardSpeeds.includes(parseFloat(gett("电梯运行速度")))) {
addstrtip("额定速度不是常见量1, 1.5, 1.6,1.75, 2, 2.5!");
}
}
if (/^曳引驱动载货电梯$/.test(gett("设备分类代码"))) {
const standardLoads = [1000, 1250, 1600, 2000, 3000];
if (!standardLoads.includes(parseFloat(gett("电梯额定载荷")))) {
addstrtip("额定载荷不是常见量1000, 1250, 1600, 2000, 3000!");
}
const standardSpeeds = [0.5];
if (!standardSpeeds.includes(parseFloat(gett("电梯运行速度")))) {
addstrtip("额定速度不是常见量0.5!");
}
}
}
//层站门数
if (1) {
const dtcz = document
.getElementById("1591338788552be31")
.innerText.trim(); //dt.电梯层站
const dtzs = document
.getElementById("15554041568959913")
.innerText.trim(); //dt.电梯站数
const dtms = document
.getElementById("1555404248649fa78")
.innerText.trim(); //dt.电梯门数
if (
!(
isNormalInteger(dtcz) &&
isNormalInteger(dtzs) &&
isNormalInteger(dtms)
)
) {
addstrtip("层站门数不是正整数!");
}
if (
parseInt(dtcz) < parseInt(dtzs) ||
parseInt(dtzs) * 2 < parseInt(dtms)
) {
addstrtip("注意层站门数是否合理!");
}
}
//控制方式
if (1) {
const validControlTypes = [
"集选控制",
"信号控制",
"单台集选控制",
"两台并联控制",
"多台群组控制",
];
if (!validControlTypes.includes(gett("控制方式"))) {
addstrtip(
"控制方式不是常见控制:集选控制,信号控制,单台集选控制,两台并联控制,多台群组控制!"
);
}
}
//工具箱
if (1) {
const gjxjh = validateAndExplainCode(gett("JYYQSB"));
let tip = gjxjh.message;
let fixtip = "";
if (gjxjh.isValid) {
const regex =
/^详见((JD\d{1}\d{2}|SZSJD\d{2}|WZJD\d{2}|ZWJD\d{2}|GYJD\d{2}))号工具箱$/;
const match = gett("JYYQSB").match(regex);
const code = match[1];
if (!checkAreaForDepartmentPrefix(code, dat["设备使用(所在)地点"])) {
fixtip="注意" + code + "的仪器是否在其检验区域范围内使用!";
}
let tipp=tip+fixtip
addstrtip(tip+fixtip)
}else{
addstrtip("工具箱填写错误!参考模板:“详见()号工具箱”")
}
}
//检验现场条件及安全确认
if (1) {
if (!/^符合$/.test(gett("XCJYTJ"))) {
addstrtip("检验现场条件确认不是“符合”!");
}
if (!/^符合$/.test(gett("XCAQTJ"))) {
addstrtip("检验现场安全确认不是“符合”!");
}
if (!/^合格$/.test(gett("内部(全面)检验结论(电类定检)"))) {
addstrtip("检验结论不是“合格”!");
}
if (
/^不符合$/.test(gett("XCJYTJ")) &&
/^合格$/.test(gett("内部(全面)检验结论(电类定检)"))
) {
addstrtip("检验结论与检验现场条件确认矛盾!");
}
if (
/^不符合$/.test(gett("XCAQTJ")) &&
/^合格$/.test(gett("内部(全面)检验结论(电类定检)"))
) {
addstrtip("检验结论与检验现场安全确认矛盾!");
}
}
//报告结论与下次检验日期的关系
if (1) {
if (
/^[合格,整改后合格]$/.test(gett("内部(全面)检验结论(电类定检)"))
) {
if (
document.getElementById("1710387041337455d").innerText.trim() ===
"-"
) {
addstrtip("报告结论合格应该有下次检验日期!");
}
}
if (/^不合格$/.test(gett("内部(全面)检验结论(电类定检)"))) {
if (
document.getElementById("1710387041337455d").innerText.trim() !==
"-"
) {
addstrtip("报告结论不合格下次检验日期为“-”!");
}
}
}
jyrqgk = document
.getElementById("1710387111107bbd2")
.innerText.trim()
.replace(/年|月|日/g, "-")
.slice(0, -1);
jyrqgk = YearMonthToYearMonthDay(jyrqgk);
if (!ZifuchuanIsDate(jyrqgk)) {
addstrtip("概况检验日期格式错误!");
}
}
function DateInfo() {
//封面检验日期 概况检验日期 改造日期
//制造日期
//最近一次制动日期 监督日期
//下次检验日期
//制造日期 <= 监督日期 < 改造日期 <= 封面检验日期 < 下次检验日期
//监督日期 < 最近一次制动日期 <= 封面检验日期
manufactureStr = gett("制造日期");
supervisionStr = gett("安装监督检验日期");
renovationStr = gett("改造监督检验日期");
// 封面检验日期
coverInspectionStr = document
.getElementById("1710387041337455d")
.innerText.trim();
// 下次检验日期
nextInspectionStr = gett("内部(全面)下次检验日期(电类定检)");
// 最近制动日期
lastBrakingStr = gett("ZDSYRQ");
//概况检验日期
generalInspectionStr = document
.getElementById("1710387111107bbd2")
.innerText.trim();
// 验证封面检验日期和概况检验日期相同
if (coverInspectionStr !== generalInspectionStr) {
addstrtip("封面检验日期和概况检验日期不一致!");
}
// 解析所有日期
manufactureDate = parseDate(manufactureStr);
supervisionDate = parseDate(supervisionStr);
renovationDate = parseDate(renovationStr);
coverInspectionDate = parseDate(coverInspectionStr);
nextInspectionDate = parseDate(nextInspectionStr);
lastBrakingDate = parseDate(lastBrakingStr);
if (1) {
//与当前日期进行比较
if (1) {
const now = new Date();
const oneMonthInMillis = 30 * 24 * 60 * 60 * 1000; // 30天转换为毫秒
const diff = now - coverInspectionDate;
if (!(diff >= 0 && diff < oneMonthInMillis)) {
addstrtip("注意是否封面检验日期超出当前日期前一个月范围!");
}
if (manufactureDate != null && manufactureDate >= now) {
addstrtip("注意是否制造日期大于当前日期!");
}
if (supervisionDate != null && supervisionDate >= now) {
addstrtip("注意是否监督日期大于当前日期!");
}
if (renovationDate != null && renovationDate >= now) {
addstrtip("注意是否改造日期大于当前日期!");
}
if (coverInspectionDate != null && coverInspectionDate > now) {
addstrtip("注意是否检验日期大于当前日期!");
}
if (lastBrakingDate != null && lastBrakingDate > now) {
addstrtip("注意是否制动日期大于当前日期!");
}
}
// 验证日期逻辑顺序
if (1) {
if (manufactureDate != null && supervisionDate != null) {
if (!(manufactureDate <= supervisionDate)) {
addstrtip("注意是否制造日期在监督日期之后!");
}
}
if (supervisionDate != null && renovationDate != null) {
if (!(supervisionDate <= renovationDate)) {
addstrtip("注意是否监督日期在改造日期之后!");
}
}
if (renovationDate != null && coverInspectionDate != null) {
if (!(renovationDate <= coverInspectionDate)) {
addstrtip("注意是否改造日期在检验日期之后!");
}
}
if (coverInspectionDate != null && nextInspectionDate != null) {
if (!(coverInspectionDate <= nextInspectionDate)) {
addstrtip("注意是否检验日期在下次检验日期之后!");
}
}
if (supervisionDate != null && lastBrakingDate != null) {
let supervisionDatetemp = new Date(supervisionDate.getFullYear(), supervisionDate.getMonth(), 1);
if (!(supervisionDatetemp <= lastBrakingDate)) {
addstrtip("注意是否监督检验日期在最近制动日期之后!");
}
}
if (lastBrakingDate != null && coverInspectionDate != null) {
if (!(lastBrakingDate <= coverInspectionDate)) {
addstrtip("注意是否最近制动日期在检验日期之后!");
}
}
}
// 如果封面设备代码有填写,验证和解析设备代码中的年份,与制造日期和监督日期比较
if (1) {
const serialRegex = /^(3110|3120)\d{5}(\d{4})\d{5}$/;
const matchSerial = gett("设备代码").match(serialRegex);
if (matchSerial) {
// 提取年份
const yearFromSerial = parseInt(matchSerial[2], 10);
if (manufactureDate != null) {
// 判断序列号中的年份是否在制造日期之前
if (yearFromSerial > manufactureDate.getFullYear()) {
addstrtip(
"封面设备代码中的年份" + matchSerial[2] + "不应在制造日期之后"
);
}
}
if (supervisionDate != null && manufactureDate === null) {
// 判断序列号中的年份是否在监督日期之前
if (yearFromSerial > supervisionDate.getFullYear()) {
addstrtip(
"封面设备代码中的年份" + matchSerial[2] + "不应在监督日期之后"
);
}
}
}
}
//如果使用登记证编号形如梯11宁A12345(19),则验证其年份与制造监督日期的关系
if (1) {
const regexsy =
/^梯(11|12)[宁](A|B|C|D|E)\d{5}[\(\(](\d{2})[\)\)]$/;
const matchsy = gett("使用证编号").match(regexsy);
if (matchsy) {
// 提取两位数年份并转换为四位数
const yearShort = parseInt(matchsy[3], 10);
const yearFull =
yearShort >= 0 && yearShort <= 99 ? 2000 + yearShort : yearShort;
// 创建年份的Date对象,并与传入的日期对象比较
//const yearDate = new Date(yearFull, 0); // 0 是一月份
if (supervisionDate != null) {
// 判断序列号中的年份是否在制造日期之前
if (yearFull < supervisionDate.getFullYear()) {
addstrtip(
"使用登记证编号中的年份" + matchsy[3] + "在监督检验日期之前"
);
}
}
if (manufactureDate != null && supervisionDate === null) {
// 判断序列号中的年份是否在监督日期之前
if (yearFull < manufactureDate.getFullYear()) {
addstrtip(
"使用登记证编号中的年份" + matchsy[3] + "在制造检验日期之前"
);
}
}
}
}
//如果使用登记证编号形如31106523252023562563,则验证其年份与制造监督日期的关系
if (1) {
const regexsyy = /^(3110|3120)\d{6}(\d{4})\d{6}$/;
const matchsyy = gett("使用证编号").match(regexsyy);
if (matchsyy) {
// 提取两位数年份并转换为四位数
const year = parseInt(matchsyy[2], 10);
//const yearDate = new Date(year, 0); // 0 是一月份
if (supervisionDate != null) {
// 判断序列号中的年份是否在制造日期之前
if (year < supervisionDate.getFullYear()) {
addstrtip(
"使用登记证编号中的年份" + matchsyy[2] + "在监督检验日期之前"
);
}
}
if (manufactureDate != null && supervisionDate === null) {
// 判断序列号中的年份是否在监督日期之前
if (year < manufactureDate.getFullYear()) {
addstrtip(
"使用登记证编号中的年份" + matchsyy[2] + "在制造检验日期之前"
);
}
}
}
}
//验证最近一次制动日期是否合理
if (1) {
if (supervisionDate != null && coverInspectionDate != null) {
let lastBrakingDateCal = calculateBrakeDate(
supervisionDate,
new Date(
coverInspectionDate.getFullYear(),
supervisionDate.getMonth(),
supervisionDate.getDate()
)
);
if (lastBrakingDate != null && lastBrakingDateCal != null) {
if (
lastBrakingDateCal.getFullYear() !=
lastBrakingDate.getFullYear() ||
lastBrakingDateCal.getMonth() != lastBrakingDate.getMonth()
) {
const zjzdjc = elevatorInspection(
supervisionDate,
lastBrakingDateCal
);
let jyztstr = "";
if (lastBrakingDateCal < new Date(2024, 3, 1)) {
jyztstr = "检验";
} else {
jyztstr = zjzdjc.result;
}
addstrtip(
"注意最近一次制动日期是否应为:" +
lastBrakingDateCal.getFullYear() +
"年" +
(lastBrakingDateCal.getMonth() + 1).toString() +
"月,该日期属于" +
jyztstr +
"年份。"
);
}
}
}
}
//验证本次下次检验日期是否合理
if (supervisionDate != null && coverInspectionDate != null) {
const yanzhengre = elevatorInspection(
supervisionDate,
coverInspectionDate
);
if (yanzhengre.result != "错误") {
if (
!(
yanzhengre.date.getFullYear() ===
nextInspectionDate.getFullYear() &&
yanzhengre.date.getMonth() === nextInspectionDate.getMonth()
)
) {
addstrtip(
"注意下次检验日期是否应该是" +
yanzhengre.date.getFullYear() +
"年" +
(yanzhengre.date.getMonth() + 1).toString() +
"月。"
);
}
if (yanzhengre.result === "检测") {
addstrtip(
coverInspectionDate.getFullYear() +
"年" +
(supervisionDate.getMonth() + 1).toString() +
"月应该进行检测,下次检验日期是:" +
yanzhengre.date.getFullYear() +
"年" +
(yanzhengre.date.getMonth() + 1).toString() +
"月"
);
}
if (yanzhengre.result === "检验") {
// addstrtip(
// "下次检验日期是:" +
// yanzhengre.date.getFullYear() +
// "年" +
// (yanzhengre.date.getMonth() + 1).toString() +
// "月"
// );
}
}
}
}
}
function preprocessData() {
// 保存原始的XMLHttpRequest.send方法
origSend = XMLHttpRequest.prototype.send;
// 覆盖原始的send方法
XMLHttpRequest.prototype.send = function (body) {
if (
this._url.includes(
"http://111.51.123.233:8088/intf/report/itemJson/save"
)
) {
// 检查URL,确保它是你想要拦截的
//console.log('Sent data:', body);
//start
// 解析数据
try {
const parsedData = parseCustomUrlEncodedData(body);
//console.log('结构化:',parsedData);
//XiaoHe(parsedData);
} catch (error) {
console.error("解析数据时发生错误:", error);
}
//end
// var data = JSON.parse(body);
// 你可以在这里添加更多的逻辑来处理捕获的数据
}
// 调用原始的send方法
origSend.call(this, body);
};
// 覆盖原始的XMLHttpRequest.open方法来捕获请求的URL
origOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function (method, url) {
this._url = url; // 将URL附加到XHR对象上,以便后续使用
origOpen.apply(this, arguments);
};
button = document.createElement("button");
button.innerText = "审核系统";
button.title = "点击进行审核"; // 添加一个提示,当鼠标悬停在按钮上时显示
button.style.position = "fixed"; // 使用 fixed 定位以便按钮始终停留在视口内
button.style.right = window.innerWidth / 15 + "px"; // 距离视口右边四分之一窗口宽度
button.style.bottom = window.innerHeight / 15 + "px"; // 距离视口底部四分之一窗口高度
button.style.cursor = "grab"; // 更改鼠标样式,表示可以拖动
// 添加样式
button.style.fontSize = "16px"; // 字体大小
button.style.color = "#ffffff"; // 字体颜色
button.style.backgroundColor = "#add8e6"; // 背景颜色
button.style.border = "none"; // 无边框
button.style.borderRadius = "5px"; // 边框圆角
button.style.padding = "10px 20px"; // 内边距
button.style.transition = "background-color 0.3s ease"; // 背景色过渡效果
// 可选:添加鼠标悬停效果
button.onmouseover = function () {
this.style.backgroundColor = "#87CEEB"; // 鼠标悬停时背景色稍深一些
};
button.onmouseout = function () {
this.style.backgroundColor = "#add8e6"; // 鼠标离开时恢复为原来的浅蓝色
};
// 初始化拖动逻辑
isDragging = false;
button.onmousedown = function (e) {
initialX = e.clientX - button.getBoundingClientRect().right;
initialY = e.clientY - button.getBoundingClientRect().bottom;
isDragging = true;
document.onmousemove = function (e) {
if (!isDragging) return;
var newX = e.clientX - initialX;
var newY = e.clientY - initialY;
button.style.right = window.innerWidth - newX + "px";
button.style.bottom = window.innerHeight - newY + "px";
};
document.onmouseup = function () {
isDragging = false;
document.onmousemove = null;
document.onmouseup = null;
};
e.preventDefault();
return false;
};
// 拖动函数
function drag(e) {
if (!isDragging) return;
// 计算按钮的新位置
var newX = e.clientX - initialX;
var newY = e.clientY - initialY;
// 应用新的位置
button.style.left = newX + "px";
button.style.top = newY + "px";
// 阻止默认事件和冒泡
e.preventDefault();
return false;
}
// 停止拖动函数
function stopDragging() {
// 取消全局的mousemove和mouseup事件绑定
document.onmousemove = null;
document.onmouseup = null;
// 标记为不再拖动
isDragging = false;
}
// 初始化按钮样式
Object.assign(button.style, {
fontSize: "16px",
zIndex: 1000,
borderRadius: "50%",
backgroundColor: "#FF8C00",
boxShadow: "0 4px 8px 0 rgba(0, 0, 0, 0.2)",
padding: "15px 32px",
cursor: "grab",
transition: "all 0.3s ease",
outline: "none",
border: "none",
color: "white",
textTransform: "uppercase",
fontWeight: "bold",
});
// 将按钮添加到文档中
document.body.appendChild(button);
button.onclick = function (e) {
main();
};
//拖动
if (1) {
//随意拖动,可编辑,不可以动态调整大小
if (1) {
input = document.createElement("TEXTAREA");
input.id = "information";
input.name = "information";
// 设置基本样式
input.style.width = "320px";
input.style.height = "400px";
input.style.resize = "none"; // 禁止用户调整大小
input.style.position = "absolute"; // 初始时使用绝对定位
input.style.left = window.innerWidth / 15 + "px"; // 初始时靠左
input.style.top = window.innerWidth / 4 + "px"; // 初始时靠上
input.style.zIndex = 100; // 确保它显示在其它元素之上
input.style.backgroundColor = "#add8e6"; // 浅蓝色背景
// 可选:添加鼠标悬停效果
input.onmouseover = function () {
this.style.backgroundColor = "#87CEEB"; // 鼠标悬停时背景色稍深一些
};
input.onmouseout = function () {
this.style.backgroundColor = "#add8e6"; // 鼠标离开时恢复为原来的浅蓝色
};
// 标记拖动状态
isDragging1 = false;// 用于记录鼠标相对于textarea的偏移量
// 右键按下时开始拖动
input.onmousedown = function (e) {
if (e.button === 2) {
// 右键
e.preventDefault(); // 阻止默认行为
// 记录鼠标按下时的位置
initialX1 = e.clientX - parseInt(input.style.left, 10);
initialY1 = e.clientY - parseInt(input.style.top, 10);
// 记录鼠标相对于textarea的偏移量
offsetX1 = e.clientX - input.offsetLeft;
offsetY1 = e.clientY - input.offsetTop;
// 标记为正在拖动
isDragging1 = true;
// 绑定鼠标移动和释放事件
document.onmousemove = drag1;
document.onmouseup = stopDrag1;
}
};
// 鼠标移动时拖动textarea
function drag1(e) {
if (!isDragging1) return;
// 计算新的位置
var newX = e.clientX - offsetX1;
var newY = e.clientY - offsetY1;
// 限制textarea不超出视口
newX = Math.max(
0,
Math.min(newX, window.innerWidth - input.offsetWidth)
);
newY = Math.max(
0,
Math.min(newY, window.innerHeight - input.offsetHeight)
);
// 更新textarea的位置
input.style.left = newX + "px";
input.style.top = newY + "px";
}
// 停止拖动
function stopDrag1() {
// 标记为不再拖动
isDragging1 = false;
// 移除鼠标移动和释放事件的绑定
document.onmousemove = null;
document.onmouseup = null;
}
// 将textarea添加到文档中
document.body.appendChild(input);
// 设置textarea的美观样式
Object.assign(input.style, {
border: "2px solid #ccc", // 添加边框
borderRadius: "10px", // 使用更平滑的圆角
backgroundColor: "white",
padding: "10px", // 增加内边距
boxShadow: "0 0 5px rgba(0, 0, 0, 0.1)", // 添加阴影
fontSize: "16px",
overflow: "auto", // 当内容超出时显示滚动条
});
}
}
function parseCustomUrlEncodedData(dataString) {
const parts = dataString.split("&");
const objects = [];
parts.forEach((part) => {
const [key, encodedValue] = part.split("=");
const decodedValue = decodeURIComponent(encodedValue);
const parsedValue = JSON.parse(decodedValue);
objects.push(parsedValue);
});
let mergedObject = {};
objects.forEach((obj) => {
Object.assign(mergedObject, obj);
});
return mergedObject;
}
}
function checkAreaForDepartmentPrefix(bumenstr, areastr) {
const departmentPrefixes = [
'JD1', 'JD2', 'JD3',
'SZSJD', 'WZJD', 'ZWJD', 'GYJD'
];
const departmentMappings = {
'JD1': ['金凤区', '宁东'],
'JD2': ['西夏区', '永宁县'],
'JD3': ['兴庆区', '贺兰县'],
'SZSJD': ['大武口区', '惠农区', '平罗县'],
'WZJD': ['利通区', '红寺堡区', '盐池县', '同心县', '铜峡市'],
'ZWJD': ['沙坡头区', '中宁县', '海原县'],
'GYJD': ['原州区', '西吉县', '隆德县', '泾源县', '彭阳县']
};
// 检查bumenstr是否包含任意部门前缀
for (let prefix of departmentPrefixes) {
if (bumenstr.includes(prefix)) {
// 获取对应的区域数组
const areas = departmentMappings[prefix];
// 遍历对应区域,检查areastr是否包含任意一个
for (let area of areas) {
if (areastr.includes(area)) {
return true; // 如果包含,返回true
}
}
}
}
return false; // 如果不包含,返回false
}
function checkStringContainsLocation(zcdstr, azdstr, regions) {
// 创建一个映射表,将字母映射到对应的地级市
const cityMapping = {
'A': '银川市',
'B': '石嘴山市',
'C': '吴忠市',
'D': '固原市',
'E': '中卫市'
};
// 检查`azdstr`中是否包含`zcdstr`对应的地名或其子地名
function checkLocation(city, str) {
// 检查是否直接包含城市名
if (str.includes(city)) {
return city;
}
// 遍历城市的子地名
for (let district in regions[city]) {
if (str.includes(district)) {
return district;
}
// 如果有更深层级的地名,也进行检查
if (regions[city][district] && typeof regions[city][district] === 'object') {
for (let subDistrict in regions[city][district]) {
if (str.includes(subDistrict)) {
return subDistrict;
}
}
}
}
return null;
}
// 转换zcdstr为对应的地名
let targetCity = cityMapping[zcdstr];
if (!targetCity) {
return {
contains: false,
zcdstrRepresents: null,
azdstrContains: null
};
}
// 检查azdstr是否包含目标地名或其子地名
let containedLocation = checkLocation(targetCity, azdstr);
let result = {
contains: containedLocation !== null,
zcdstrRepresents: targetCity,
azdstrContains: containedLocation
};
return result;
}
})();