"use strict";
const components_cityselect_utils_province = require("./utils/province.js");
const components_cityselect_utils_city = require("./utils/city.js");
const components_cityselect_utils_area = require("./utils/area.js");
const common_vendor = require("../../common/vendor.js");
const _sfc_main = {
  props: {
    // 通过双向绑定控制组件的弹出与收起
    value: {
      type: Boolean,
      default: true
    },
    // 默认显示的地区，可传类似["河北省", "秦皇岛市", "北戴河区"]
    defaultRegion: {
      type: Array,
      default() {
        return [];
      }
    },
    // 默认显示地区的编码，defaultRegion和areaCode同时存在，areaCode优先，可传类似["13", "1303", "130304"]
    areaCode: {
      type: Array,
      default() {
        return [];
      }
    },
    // 是否允许通过点击遮罩关闭Picker
    maskCloseAble: {
      type: Boolean,
      default: true
    },
    // 弹出的z-index值
    zIndex: {
      type: [String, Number],
      default: 0
    }
  },
  data() {
    return {
      cityValue: "",
      isChooseP: false,
      //是否已经选择了省
      province: 0,
      //省级下标
      provinces: components_cityselect_utils_province.provinceData,
      isChooseC: false,
      //是否已经选择了市
      city: 0,
      //市级下标
      citys: components_cityselect_utils_city.cityData[0],
      isChooseA: false,
      //是否已经选择了区
      area: 0,
      //区级下标
      areas: components_cityselect_utils_area.areaData[0][0],
      tabsIndex: 0
    };
  },
  mounted() {
    this.init();
  },
  computed: {
    isChange() {
      return this.tabsIndex > 1;
    },
    genTabsList() {
      let tabsList = [{
        name: "请选择"
      }];
      if (this.isChooseP) {
        tabsList[0]["name"] = this.provinces[this.province]["label"];
        tabsList[1] = {
          name: "请选择"
        };
      }
      if (this.isChooseC) {
        tabsList[1]["name"] = this.citys[this.city]["label"];
        tabsList[2] = {
          name: "请选择"
        };
      }
      if (this.isChooseA) {
        tabsList[2]["name"] = this.areas[this.area]["label"];
      }
      return tabsList;
    },
    uZIndex() {
      return this.zIndex ? this.zIndex : 99;
    }
  },
  methods: {
    open() {
      this.$refs.popup.open();
    },
    init() {
      if (this.areaCode.length == 3) {
        this.setProvince("", this.areaCode[0]);
        this.setCity("", this.areaCode[1]);
        this.setArea("", this.areaCode[2]);
      } else if (this.defaultRegion.length == 3) {
        this.setProvince(this.defaultRegion[0], "");
        this.setCity(this.defaultRegion[1], "");
        this.setArea(this.defaultRegion[2], "");
      }
    },
    setProvince(label = "", value = "") {
      this.provinces.map((v, k) => {
        if (value ? v.value == value : v.label == label) {
          this.provinceChange(k);
        }
      });
    },
    setCity(label = "", value = "") {
      this.citys.map((v, k) => {
        if (value ? v.value == value : v.label == label) {
          this.cityChange(k);
        }
      });
    },
    setArea(label = "", value = "") {
      this.areas.map((v, k) => {
        if (value ? v.value == value : v.label == label) {
          this.isChooseA = true;
          this.area = k;
        }
      });
    },
    close() {
      this.$refs.popup.close();
    },
    tabsChange(index) {
      this.tabsIndex = index;
    },
    provinceChange(param) {
      this.isChooseP = true;
      this.isChooseC = false;
      this.isChooseA = false;
      this.province = param.name;
      this.citys = components_cityselect_utils_city.cityData[param.name];
      this.tabsIndex = 1;
    },
    cityChange(param) {
      this.isChooseC = true;
      this.isChooseA = false;
      this.city = param.name;
      this.areas = components_cityselect_utils_area.areaData[this.province][param.name];
      this.tabsIndex = 2;
    },
    areaChange(param) {
      this.isChooseA = true;
      this.area = param.name;
      let result = {};
      result.province = this.provinces[this.province];
      result.city = this.citys[this.city];
      result.area = this.areas[this.area];
      this.$emit("city-change", result);
      this.close();
    }
  }
};
if (!Array) {
  const _easycom_uv_tabs2 = common_vendor.resolveComponent("uv-tabs");
  const _easycom_uv_icon2 = common_vendor.resolveComponent("uv-icon");
  const _easycom_uv_cell2 = common_vendor.resolveComponent("uv-cell");
  const _easycom_uv_cell_group2 = common_vendor.resolveComponent("uv-cell-group");
  const _easycom_uv_popup2 = common_vendor.resolveComponent("uv-popup");
  (_easycom_uv_tabs2 + _easycom_uv_icon2 + _easycom_uv_cell2 + _easycom_uv_cell_group2 + _easycom_uv_popup2)();
}
const _easycom_uv_tabs = () => "../../uni_modules/uv-tabs/components/uv-tabs/uv-tabs.js";
const _easycom_uv_icon = () => "../../uni_modules/uv-icon/components/uv-icon/uv-icon.js";
const _easycom_uv_cell = () => "../../uni_modules/uv-cell/components/uv-cell/uv-cell.js";
const _easycom_uv_cell_group = () => "../../uni_modules/uv-cell/components/uv-cell-group/uv-cell-group.js";
const _easycom_uv_popup = () => "../../uni_modules/uv-popup/components/uv-popup/uv-popup.js";
if (!Math) {
  (_easycom_uv_tabs + _easycom_uv_icon + _easycom_uv_cell + _easycom_uv_cell_group + _easycom_uv_popup)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  return common_vendor.e({
    a: $props.value
  }, $props.value ? {
    b: common_vendor.sr("tabs", "6511adfd-1,6511adfd-0"),
    c: common_vendor.o($options.tabsChange),
    d: common_vendor.p({
      lineColor: "#a0cd63",
      list: $options.genTabsList,
      scrollable: true,
      current: $data.tabsIndex
    })
  } : {}, {
    e: common_vendor.f($data.provinces, (item, index, i0) => {
      return common_vendor.e({
        a: $data.isChooseP && $data.province === index
      }, $data.isChooseP && $data.province === index ? {
        b: "6511adfd-4-" + i0 + "," + ("6511adfd-3-" + i0),
        c: common_vendor.p({
          size: "34",
          color: "#a0cd63",
          name: "checkbox-mark"
        })
      } : {}, {
        d: index,
        e: common_vendor.o($options.provinceChange, index),
        f: "6511adfd-3-" + i0 + ",6511adfd-2",
        g: common_vendor.p({
          title: item.label,
          arrow: false,
          name: index
        })
      });
    }),
    f: $data.isChooseP
  }, $data.isChooseP ? {
    g: common_vendor.f($data.citys, (item, index, i0) => {
      return common_vendor.e({
        a: $data.isChooseC && $data.city === index
      }, $data.isChooseC && $data.city === index ? {
        b: "6511adfd-7-" + i0 + "," + ("6511adfd-6-" + i0),
        c: common_vendor.p({
          size: "34",
          color: "#a0cd63",
          name: "checkbox-mark"
        })
      } : {}, {
        d: index,
        e: common_vendor.o($options.cityChange, index),
        f: "6511adfd-6-" + i0 + ",6511adfd-5",
        g: common_vendor.p({
          title: item.label,
          arrow: false,
          name: index
        })
      });
    })
  } : {}, {
    h: $data.isChooseC
  }, $data.isChooseC ? {
    i: common_vendor.f($data.areas, (item, index, i0) => {
      return common_vendor.e({
        a: $data.isChooseA && $data.area === index
      }, $data.isChooseA && $data.area === index ? {
        b: "6511adfd-10-" + i0 + "," + ("6511adfd-9-" + i0),
        c: common_vendor.p({
          size: "34",
          color: "#a0cd63",
          name: "checkbox-mark"
        })
      } : {}, {
        d: index,
        e: common_vendor.o($options.areaChange, index),
        f: "6511adfd-9-" + i0 + ",6511adfd-8",
        g: common_vendor.p({
          title: item.label,
          arrow: false,
          name: index
        })
      });
    })
  } : {}, {
    j: $options.isChange ? 1 : "",
    k: common_vendor.sr("popup", "6511adfd-0"),
    l: common_vendor.o($options.close),
    m: common_vendor.p({
      mode: "bottom",
      popup: false,
      mask: true,
      closeable: true,
      ["safe-area-inset-bottom"]: true,
      ["close-icon-color"]: "#ffffff",
      ["z-index"]: $options.uZIndex,
      maskCloseAble: $props.maskCloseAble
    })
  });
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
