UNPKG

vue-city-pinyin

Version:
2 lines (1 loc) 2.34 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),p=require("../../assets/city-data.json.js"),N=require("../../utils/gen-class.js"),j=require("../../hooks/useCompRef.js");require("../../node_modules/.pnpm/ts-tooltip@1.0.3_vue@3.5.13/node_modules/ts-tooltip/es/components/tooltip/index.js");const K=require("../../node_modules/.pnpm/ts-tooltip@1.0.3_vue@3.5.13/node_modules/ts-tooltip/es/components/tooltip/tooltip.vue.js"),L=a.defineComponent({name:"CitySelect",components:{Tooltip:K.default},props:{hot:{type:Boolean,default:!0},placement:{type:String,default:"bottom"},data:{type:Object,required:!0}},emits:["onChange"],setup(l,{emit:y}){var h,m;const v=a.ref(),{c:u,cx:c}=N.default("city"),g=a.ref(!1),o=a.ref(!1),i=a.ref("热门"),n=j.useCompRef(),T=e=>{var t,r;e?(t=n.value)==null||t.show():(r=n.value)==null||r.hide()},s=a.reactive({id:(h=l.data)==null?void 0:h.id,name:(m=l.data)==null?void 0:m.name});let d=["热门","ABCDE","FGHJ","KLMN","PQRST","WXYZ"];l.hot||(d=["ABCD","EFGH","JKL","MNPQ","RSTW","XYZ"],i.value="ABCD");const f={};d.forEach(e=>{e==="热门"?f[e]=["hot"]:f[e]=e.split("")});const C=a.computed(()=>f[i.value]),q=a.computed(()=>{let e="";return Object.keys(p.default).forEach(t=>{p.default[t].forEach(r=>{s.id===r.id&&(e=r.name)})}),e}),E=({type:e})=>{e==="mouseout"&&(o.value=!1),setTimeout(()=>{var t;!o.value&&v.value!==document.activeElement&&((t=n.value)==null||t.hide())},300)},M=()=>{o.value=!0},O=e=>{var t;e.type==="keypress"&&(e.returnValue=!1),(t=n.value)==null||t.show()},R=e=>{i.value=e},S=e=>C.value.includes(e),b=e=>{var t;s.id=e.id,s.name=e.name,o.value=!0,(t=n.value)==null||t.hide()};a.watch(()=>l.data,e=>{s.id=e==null?void 0:e.id,s.name=e==null?void 0:e.name},{immediate:!0}),a.watch(s,e=>{y("onChange",e)});const w=c(()=>({[u("select")]:!0})),A=c(()=>({[u("inner")]:!0})),_=c(()=>({[u("input")]:!0})),k=c(()=>({[u("panel")]:!0})),B=c(()=>({[u("tags")]:!0})),D=c(()=>({[u("items")]:!0}));return{wrapCls:w,pickerCls:A,inputCls:_,panelCls:k,tagsCls:B,itemsCls:D,cityList:p.default,inputRef:v,isMouseOver:o,panelActive:g,cityItem:s,currTag:C,tagsArr:d,tagKey:i,currCityName:q,endChoice:E,startMouseOver:M,startChoice:O,choiceTag:R,currTagIncludes:S,choiceCity:b,tooltipRef:n,clickOutside:T}}});exports.default=L;