WXL
昨天 c80bc467a41daa6cbae4e5515a300a8ca98cfeaa
1
"use strict";const e=require("../../common/vendor.js");if(!Array){e.resolveComponent("u-picker")()}Math;const a={__name:"index",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue","change"],setup(a,{expose:s,emit:n}){const t=a,o=n,u=e.ref(!1),l=e.ref([[],[],[]]),c=e.ref(null),i=e.ref([]),r=e.ref(new Map),d=e.ref(new Map),m=e.computed(()=>{const{sheng:e,shi:a,qu:s}=t.modelValue;return e&&a&&s?`${e} ${a} ${s}`:e&&a?`${e} ${a}`:e||""}),f=async()=>{try{const a=await e.index.$uapi.get("/project/dict/treeselect");200===a.code&&a.data?v(a.data):console.error("获取地区数据失败",a)}catch(a){console.error("地区数据接口异常",a)}},v=e=>{i.value=[],r.value.clear(),d.value.clear(),e.forEach(e=>{const a=e.areaname,s=e.areacode,n=[];e.subarea&&e.subarea.length&&e.subarea.forEach(e=>{const a=e.areaname,s=e.areacode,t=[];e.subarea&&e.subarea.length&&e.subarea.forEach(e=>{t.push({name:e.areaname,code:e.areacode})}),d.value.set(s,t),n.push({name:a,code:s,districts:t})}),i.value.push({name:a,code:s,cities:n}),r.value.set(s,n)});const a=i.value.map(e=>e.name);l.value=[a,[],[]]},p=e=>{const{columnIndex:a,value:s,index:n,picker:t=c.value}=e;if(0===a){const e=i.value[n];if(e&&e.cities){const a=e.cities.map(e=>e.name);t.setColumnValues(1,a),t.setColumnValues(2,[])}else t.setColumnValues(1,[]),t.setColumnValues(2,[])}else if(1===a){const a=e.values[0]?i.value.findIndex(a=>a.name===e.values[0]):-1;if(-1!==a){const e=i.value[a].cities[n];if(e&&e.districts){const a=e.districts.map(e=>e.name);t.setColumnValues(2,a)}else t.setColumnValues(2,[])}else t.setColumnValues(2,[])}},h=async()=>{u.value=!0,await e.nextTick$1();const a=c.value;if(!a)return;const{sheng:s,shi:n,qu:o}=t.modelValue;if(s){const e=i.value.findIndex(e=>e.name===s);if(-1!==e){const s=i.value[e];a.setIndexes([e,0,0]);const t=s.cities.map(e=>e.name);if(a.setColumnValues(1,t),n){const t=s.cities.findIndex(e=>e.name===n);if(-1!==t){a.setIndexes([e,t,0]);const n=s.cities[t],u=n.districts.map(e=>e.name);if(a.setColumnValues(2,u),o){const s=n.districts.findIndex(e=>e.name===o);-1!==s&&a.setIndexes([e,t,s])}}}}else a.setColumnValues(1,[]),a.setColumnValues(2,[]),a.setIndexes([0,0,0])}else a.setColumnValues(1,[]),a.setColumnValues(2,[]),a.setIndexes([0,0,0])},x=e=>{const{value:a,indexes:s}=e,n=a[0],t=a[1],l=a[2],c=i.value.find(e=>e.name===n);if(c){const e=c.cities.find(e=>e.name===t),a=e?e.districts.find(e=>e.name===l):null,s={sheng:c.name,shi:e?e.name:"",qu:a?a.name:"",provinceCode:c.code,cityCode:e?e.code:"",districtCode:a?a.code:""};o("update:modelValue",s),o("change",s)}u.value=!1};return s({refresh:f}),e.onMounted(()=>{f()}),(a,s)=>({a:e.t(m.value||"请选择省/市/区"),b:m.value?"":1,c:e.o(h),d:e.sr(c,"f382f3ce-0",{k:"pickerRef"}),e:e.o(x),f:e.o(p),g:e.o(e=>u.value=!1),h:e.p({show:u.value,columns:l.value,keyName:"name",title:"选择地区"}),i:e.gei(a,"")})}},s=e._export_sfc(a,[["__scopeId","data-v-f382f3ce"]]);wx.createComponent(s);