ckgl/node_modules/vant/lib/area/utils.js
2024-12-21 13:52:42 +08:00

112 lines
3.2 KiB
JavaScript

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var stdin_exports = {};
__export(stdin_exports, {
AREA_EMPTY_CODE: () => AREA_EMPTY_CODE,
INHERIT_PROPS: () => INHERIT_PROPS,
INHERIT_SLOTS: () => INHERIT_SLOTS,
formatDataForCascade: () => formatDataForCascade
});
module.exports = __toCommonJS(stdin_exports);
const AREA_EMPTY_CODE = "000000";
const INHERIT_SLOTS = [
"title",
"cancel",
"confirm",
"toolbar",
"columns-top",
"columns-bottom"
];
const INHERIT_PROPS = [
"title",
"loading",
"readonly",
"optionHeight",
"swipeDuration",
"visibleOptionNum",
"cancelButtonText",
"confirmButtonText"
];
const makeOption = (text = "", value = AREA_EMPTY_CODE, children = void 0) => ({
text,
value,
children
});
function formatDataForCascade({
areaList,
columnsNum,
columnsPlaceholder: placeholder
}) {
const {
city_list: city = {},
county_list: county = {},
province_list: province = {}
} = areaList;
const showCity = +columnsNum > 1;
const showCounty = +columnsNum > 2;
const getProvinceChildren = () => {
if (showCity) {
return placeholder.length > 1 ? [
makeOption(
placeholder[1],
AREA_EMPTY_CODE,
showCounty ? [] : void 0
)
] : [];
}
};
const provinceMap = /* @__PURE__ */ new Map();
Object.keys(province).forEach((code) => {
provinceMap.set(
code.slice(0, 2),
makeOption(province[code], code, getProvinceChildren())
);
});
const cityMap = /* @__PURE__ */ new Map();
if (showCity) {
const getCityChildren = () => {
if (showCounty) {
return placeholder.length > 2 ? [makeOption(placeholder[2])] : [];
}
};
Object.keys(city).forEach((code) => {
const option = makeOption(city[code], code, getCityChildren());
cityMap.set(code.slice(0, 4), option);
const province2 = provinceMap.get(code.slice(0, 2));
if (province2) {
province2.children.push(option);
}
});
}
if (showCounty) {
Object.keys(county).forEach((code) => {
const city2 = cityMap.get(code.slice(0, 4));
if (city2) {
city2.children.push(makeOption(county[code], code));
}
});
}
const options = Array.from(provinceMap.values());
if (placeholder.length) {
const county2 = showCounty ? [makeOption(placeholder[2])] : void 0;
const city2 = showCity ? [makeOption(placeholder[1], AREA_EMPTY_CODE, county2)] : void 0;
options.unshift(makeOption(placeholder[0], AREA_EMPTY_CODE, city2));
}
return options;
}