liaoxujun@qq.com
2024-03-22 d856b2d3c85f39a2908de47ad1934e34805591e4
CoreCms.Net.Web.Admin/wwwroot/views/liao.js
@@ -1,13 +1,14 @@
/*
 * @FilePath: liao.js
 * @Author: 小飞侠
 * @Date: 2024-02-29 15:07:28
 * @Date: 2024-03-01 09:11:24
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2024-02-29 15:17:32
 * @LastEditTime: 2024-03-21 09:47:04
 * Copyright: 2024  MinTinge CO.,LTD. All Rights Reserved.
 * @Descripttion: 通用函数库
 * @Descripttion: 写入你的描述
 */
/**
 * @description:  在树形数组中找到满足条件的项
@@ -48,3 +49,111 @@
  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  的 组件   <input type="hidden"name="areaId"  >"
 * 会生成几个areaId-1,areaId-3,areaId-3
 * @param {Object} coreHelper - 核心辅助对象,用于执行HTTP请求等操作。
 */
function formatAreaInPut(coreHelper,idname,areaid="") {
  let area=0;
  if(areaid!=="")
   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 += `<select lay-ignore name='${idname}_` + (i + 1) + "' dep='" + (i + 1) + "'  class='select-address'>";
        str += "<option value='' >请选择</option>";
        $.each(n.list, function (h, z) {
            if (n.hasOwnProperty('info') && n.info?.id == z.id) {
                str += "<option value='" + z.id + "' selected='selected'>" + z.name + "</option>";
            } else {
                str += "<option value='" + z.id + "' >" + z.name + "</option>";
            }
        });
        str += "</select>";
    });
    $(`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 lay-ignore name='${idname}_` + (i + 1) + "' dep='" + (i + 1) + "'  class='select-address'>";
                str += "<option value='' >请选择</option>";
                $.each(e, function (h, z) {
                    str += "<option value='" + z.id + "' >" + z.name + "</option>";
                });
                str += "</select>";
                $(`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());
            }
        }
    }
}
}