123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- "use strict";
- const common_vendor = require("../../../common/vendor.js");
- if (!Array) {
- const _easycom_su_toolbar2 = common_vendor.resolveComponent("su-toolbar");
- const _easycom_su_popup2 = common_vendor.resolveComponent("su-popup");
- (_easycom_su_toolbar2 + _easycom_su_popup2)();
- }
- const _easycom_su_toolbar = () => "../su-toolbar/su-toolbar.js";
- const _easycom_su_popup = () => "../su-popup/su-popup.js";
- if (!Math) {
- (_easycom_su_toolbar + _easycom_su_popup)();
- }
- const _sfc_main = {
- __name: "su-region-picker",
- props: {
- show: {
- type: Boolean,
- default: false
- },
- // "取消"按钮的颜色
- cancelColor: {
- type: String,
- default: "#6666"
- },
- // "确定"按钮的颜色
- confirmColor: {
- type: String,
- default: "var(--ui-BG-Main)"
- },
- // 取消按钮的文字
- cancelText: {
- type: String,
- default: "取消"
- },
- // 确认按钮的文字
- confirmText: {
- type: String,
- default: "确认"
- }
- },
- emits: ["confirm", "cancel", "change"],
- setup(__props, { emit: __emit }) {
- const areaData = common_vendor.index.getStorageSync("areaData");
- const getSizeByNameLength = (name) => {
- let length = name.length;
- if (length <= 7)
- return "";
- if (length < 9) {
- return "font-size:28rpx";
- } else {
- return "font-size: 24rpx";
- }
- };
- const state = common_vendor.reactive({
- currentIndex: [0, 0, 0],
- moving: false
- // 列是否还在滑动中,微信小程序如果在滑动中就点确定,结果可能不准确
- });
- const emits = __emit;
- const provinceList = areaData;
- const cityList = common_vendor.computed(() => {
- return areaData[state.currentIndex[0]].children;
- });
- const districtList = common_vendor.computed(() => {
- var _a;
- return (_a = cityList.value[state.currentIndex[1]]) == null ? void 0 : _a.children;
- });
- const pickstart = () => {
- state.moving = true;
- };
- const pickend = () => {
- state.moving = false;
- };
- const onCancel = () => {
- emits("cancel");
- };
- const change = (e) => {
- if (state.currentIndex[0] === e.detail.value[0] && state.currentIndex[1] === e.detail.value[1]) {
- state.currentIndex[2] = e.detail.value[2];
- return;
- } else {
- if (state.currentIndex[0] !== e.detail.value[0]) {
- e.detail.value[1] = 0;
- }
- e.detail.value[2] = 0;
- state.currentIndex = e.detail.value;
- }
- emits("change", state.currentIndex);
- };
- const onConfirm = (event = null) => {
- if (state.moving)
- return;
- let index = state.currentIndex;
- let province = provinceList[index[0]];
- let city = cityList.value[index[1]];
- let district = districtList.value[index[2]];
- let result = {
- province_name: province.name,
- province_id: province.id,
- city_name: city.name,
- city_id: city.id,
- district_name: district.name,
- district_id: district.id
- };
- if (event)
- emits(event, result);
- };
- return (_ctx, _cache) => {
- return {
- a: common_vendor.o(onCancel),
- b: common_vendor.o(($event) => onConfirm("confirm")),
- c: common_vendor.p({
- cancelColor: __props.cancelColor,
- confirmColor: __props.confirmColor,
- cancelText: __props.cancelText,
- confirmText: __props.confirmText,
- title: "选择区域"
- }),
- d: common_vendor.f(common_vendor.unref(provinceList), (province, k0, i0) => {
- return {
- a: common_vendor.t(province.name),
- b: common_vendor.s(getSizeByNameLength(province.name)),
- c: province.id
- };
- }),
- e: common_vendor.f(cityList.value, (city, k0, i0) => {
- return {
- a: common_vendor.t(city.name),
- b: common_vendor.s(getSizeByNameLength(city.name)),
- c: city.id
- };
- }),
- f: common_vendor.f(districtList.value, (district, k0, i0) => {
- return {
- a: common_vendor.t(district.name),
- b: common_vendor.s(getSizeByNameLength(district.name)),
- c: district.id
- };
- }),
- g: state.currentIndex,
- h: common_vendor.o(change),
- i: common_vendor.o(pickstart),
- j: common_vendor.o(pickend),
- k: common_vendor.o(onCancel),
- l: common_vendor.p({
- show: __props.show,
- round: "20"
- })
- };
- };
- }
- };
- const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-124df58f"], ["__file", "D:/zx/mall-front-app/sheep/ui/su-region-picker/su-region-picker.vue"]]);
- wx.createComponent(Component);
|