本文摘要
这篇文章介绍在泛微 Ecology 建模查询页面中,通过 ecodeSDK 覆写 WeaInput 组件,对指定查询路径下 placeholder 为客户电话的输入框做手机号格式校验,在 onBlur 和 onPressEnter 事件中拦截非法号码并弹出提示,同时记录了改写接口数据的无效方案,适合做建模查询前端校验的开发者参考。
效果:

ecodeSDK.overwritePropsFnQueueMapSet('WeaInput', { fn: (props) => { // 检查页面路径和placeholder条件 if (!ecodeSDK.checkLPath('/spa/cube/index.html#/main/cube/search?customid=136') || props.placeholder !== "客户电话") return;
// 针对 onBlur 和 onPressEnter 事件添加验证和处理 ['onBlur', 'onPressEnter'].forEach(event => { if (typeof props[event] === 'function') { const originalEvent = props[event]; props[event] = (e) => { if (!/^1[3-9]\d{9}$/.test(props.value)) { ModeForm.showMessage("电话号码格式错误,请输入有效的手机号码", 2, 10); return; } originalEvent(e); // 如果电话号码有效,调用原事件处理器 }; } });
// console.log('Props updated for WeaInput with placeholder check:', props); },});无效方案
// // 是否第一次打开页面// var isFirstopen = true;
// ecodeSDK.rewriteApiDataQueueSet({// fn: function fn(url, params, data) {// if (!ecodeSDK.checkLPath('/spa/cube/index.html#/main/cube/search?customid=136')) return;// if (url.indexOf("/api/ec/dev/table/datas") === -1) return;
// // 获取客户电话// var topSearchDatas = ModeList.getTopSearchDatas();// var phoneNumber = topSearchDatas[11987]; // 假设电话号码的键为 11987
// // 正则检查电话号码格式// var phoneRegex = /^1[3-9]\d{9}$/; // 以1开头,后跟10位数字// if (!phoneRegex.test(phoneNumber)) {// // 如果电话号码格式不正确,并且还没有显示过消息,则显示警告信息// if (isFirstopen) {// ModeForm.showMessage("电话号码格式错误,请输入有效的手机号码", 2, 10); // 错误信息,10秒后消失// isFirstopen = false; // 打开过页面// }// console.log(data);// data.datas = [];// }// },// desc: '客户管理客户检索手机号检查拦截'// });