/* * @FilePath: liao.js * @Author: 小飞侠 * @Date: 2024-03-01 09:11:24 * @LastEditors: Please set LastEditors * @LastEditTime: 2024-04-01 12:39:54 * Copyright: 2024 MinTinge CO.,LTD. All Rights Reserved. * @Descripttion: 写入你的描述 */ /** * @description: 在树形数组中找到满足条件的项 * @param {*} tree 目标数组 * @param {*} predicate 筛选函数 * @return {*} * @author: 小飞侠 * @Date: 2024-02-29 15:19:46 * @LastEditors: * @LastEditTime: Do not Edit */ function filterTreeWithjQuery(tree, predicate) { var results = []; function traverse(node) { if (predicate(node)) { results.push(node); } if (node.children && Array.isArray(node.children)) { $.each(node.children, traverse); } } $.each(tree, traverse); return results; } /** * @description: 判断一个字符串是不是数字字符串 * @param {*} str * @return {*} * @author: 小飞侠 * @Date: 2024-03-01 08:59:13 * @LastEditors: * @LastEditTime: Do not Edit */ function isNumericString(str) { const regex = /^-?\d+(\.\d+)?$/; // 匹配整数或小数,包括负数 return regex.test(str); } /** * 当使用了formatAreaInPut 后 可使用此函数获取一个由地址id组成的areaId 字符串,用,号分割 * @param {Object} field -表单。 */ function GetAreaCodeFormFileid(field, idname) { let areaCode = ""; if (isNumericString(field[`${idname}_1`])) { areaCode += `${field[`${idname}_1`]}`; if (isNumericString(field[`${idname}_2`])) areaCode += `,${field[`${idname}_2`]}`; if (isNumericString(field[`${idname}_3`])) areaCode += `,${field[`${idname}_3`]}`; } else { } return areaCode; } /** * 生成一个地址选择组件,必须绑定一个叫 areaId 的 组件 " * 会生成几个areaId-1,areaId-3,areaId-3 * @param {Object} coreHelper - 核心辅助对象,用于执行HTTP请求等操作。 */ function formatAreaInPut(coreHelper, idname, areaid = "") { let area = 0; if ((areaid !== "")&&(areaid!==null) &&(areaid!==0)) area = areaid.split(",").reverse()[0]; coreHelper.Post("Api/Tools/GetAreaCheckedList", { id: Number(area) }, function (data) { if (debug) { console.log(data); } //开启调试返回数据 var str = ""; $.each(data, function (i, n) { str += `"; }); $(`input[name='${idname}']`).after(str); //以上数据输出完,以下绑定事件 $.each(data, function (i, n) { if (i < (data.length)) { $(`select[name='${idname}_` + (i + 1) + "']").change(function () { changeareaIdArea(i + 1, data.length, idname); }); } }); }); function changeareaIdArea(i, max_i, idname) { //清除后面节点 for (var x = i + 1; x <= 6; x++) { //最多6层,足够了 $(`select[name='${idname}_` + x + "']").remove(); } var val = $(`select[name='${idname}_` + i + "']").val(); if (val != "") { //取子节点数据,然后显示下一级 coreHelper.Post("Api/Tools/GetAreaChildren", { id: val }, function (e) { if (debug) { console.log(e); } //开启调试返回数据 if (e.length > 0) { var str = ""; str += `"; $(`select[name='${idname}_` + i + "']").after(str); //以上数据输出完,以下绑定事件 $(`select[name='${idname}_` + (i + 1) + "']").change(function () { changeareaIdArea(i + 1, i + 2, idname); }); //如果有返回值,就说明省市区没有选择到最终节点 if (1 == 1) { $(`input[name='${idname}']`).val(""); } else { $(`input[name='${idname}']`).val($(`select[name='${idname}_` + i + "']").val()); } } else { $(`input[name='${idname}']`).val($(`select[name='${idname}_` + i + "']").val()); } }); } else { if (1 == 1) { $(`input[name='${idname}']`).val(""); } else { //第一级的元素就直接赋值为空就是了 if (i == 1) { $(`input[name='${idname}']`).val(""); } else { i--; $(`input[name='${idname}']`).val($(`select[name='${idname}` + i + "']").val()); } } } } } /** * 根据用户选择,格式化并更新 select 输入元素中的选项。 * @param {object} coreHelper 核心辅助对象,用于执行 post 请求等操作。 * @param {object} form 表单对象,用于重新渲染 select 元素。 * @param {string} idname select 元素的 id 名称。 */ function formatUserSelInPut(coreHelper, form, idname,selectedID="") { // 向服务器发送请求,获取用户列表 coreHelper.PostForm("Api/CommonAPI/GetUserList", { sKey: "" }, function (data) { if (debug) { console.log(data); } // 如果处于调试模式,打印返回的数据 if (data.code == 0) { // 获取指定 id 的 select 元素 var selectElement = document.getElementById(idname); // 遍历返回的用户数据,为 select 元素创建并添加新的 option 选项 for (var i = 0; i < data.data.length; i++) { var option = document.createElement('option'); option.value = data.data[i].id; if(selectedID==data.data[i].id){ option.selected=true; } option.innerHTML = data.data[i].name; selectElement.appendChild(option); } // 重新渲染 select 元素,确保新的选项生效 form.render('select'); } }) } Date.prototype.Format = function (fmt) { //author: meizz var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 }; if (/(y+)/.test(fmt)) fmt = fmt.replace( RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length) ); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace( RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length) ); return fmt; };