2 lines
6.0 KiB
Java
2 lines
6.0 KiB
Java
import{e as H,h as te,x as ne,C as w,z as f,f as B,y as E,A as F,H as j,c as L,R as z,u as D,J as M,r as k,B as K,O as ae,P as se,Q as V,F as N,D as x,G as le,T as ie,a5 as oe,a3 as ce,n as re,w as ue,K as de}from"./vue-vendor-DNhG1Cve.js";import{cj as ve,b0 as fe,aO as Q,aG as he,fV as pe,au as U,as as C,aP as ge}from"./index-X7Y8jykP.js";import{r as T,p as me,b as G}from"./areaDataUtil-XMUQ61Vi.js";import ye from"./index-Cw819OkH.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./pcaUtils-DD1r5iUJ.js";import"./useMaxLevel-DE205ncc.js";import"./index-BuONesFs.js";const Ce={class:"cascader-menus"},Le=["onClick"],be={class:"cascader-menu-item-content"},_e=" / ",we=4,ke=H({name:"JCascader",inheritAttrs:!1,__name:"JCascader",props:{value:{default:()=>[]},options:{default:()=>[]},showLastLevelOnly:{type:Boolean,default:!1}},emits:["change","update:value"],setup(n,{emit:O}){const d=n,p=O,r=Q(),R=L(()=>{var t;return String((t=r.placeholder)!=null?t:"请选择")}),h=L(()=>!!r.disabled),b=k(),A=k(),c=k(!1),_=k([]),e=k({left:"0",top:"0"});function a(t){return Array.isArray(t)?t:[]}function i(t){var s;return!!((s=t.children)!=null&&s.length)}function S(t,s){var u;const l=[];let o=t;for(const P of s){const v=o.find($=>$.value===P);if(!v)break;l.push(v.label),o=(u=v.children)!=null?u:[]}return l}const g=L(()=>{var l,o;const t=a(d.value);if(!t.length)return"";const s=S((l=d.options)!=null?l:[],t);return d.showLastLevelOnly?(o=s.at(-1))!=null?o:"":s.join(_e)}),m=L(()=>c.value?_.value:a(d.value)),y=L(()=>{var u,P;const t=m.value,s=(u=d.options)!=null?u:[],l=[];let o=s;for(let v=0;v<=t.length&&o.length&&(l.push(o),v<t.length&&t[v]!==void 0);v++){const $=o.find(ee=>ee.value===t[v]);o=(P=$==null?void 0:$.children)!=null?P:[]}return l});function W(t,s){return m.value[s]===t.value}function Y(t,s){const l=m.value;return s<l.length-1?l[s]===t.value:l[s]===t.value&&!i(t)}function q(t,s){const l=c.value?[..._.value]:a(d.value).slice();l.length=s,l.push(t.value),i(t)?_.value=l:(p("change",l),p("update:value",l),c.value=!1)}function X(){h.value||(c.value=!c.value)}function Z(){p("change",[]),p("update:value",[]),c.value=!1}function J(t){var l,o;const s=t.target;!s||!document.body.contains(s)||(l=b.value)!=null&&l.contains(s)||(o=A.value)!=null&&o.contains(s)||(c.value=!1)}function I(){if(!b.value)return;const t=b.value.getBoundingClientRect();e.value={left:`${t.left}px`,top:`${t.bottom+we}px`}}return te(c,t=>{t?(_.value=a(d.value).slice(),re(()=>{I(),setTimeout(()=>document.addEventListener("click",J,!0),0)})):document.removeEventListener("click",J,!0)}),ne(()=>{document.removeEventListener("click",J,!0)}),(t,s)=>(f(),w("div",{class:"cascader",ref_key:"rootRef",ref:b},[B(D(he),K({value:g.value,placeholder:R.value,readonly:"",disabled:h.value},D(r),{class:{"cascader-input-open":c.value},onClick:X}),{suffix:F(()=>[g.value&&!h.value?(f(),w("span",{key:0,class:"ant-input-clear-icon ant-input-clear-icon-has-suffix",role:"button",tabindex:"-1",onClick:z(Z,["stop"]),onMousedown:s[0]||(s[0]=z(()=>{},["prevent"]))},[B(D(ve))],32)):j("",!0),B(D(fe),{class:M(["cascader-arrow",{"is-open":c.value}])},null,8,["class"])]),_:1},16,["value","placeholder","disabled","class"]),(f(),E(ce,{to:"body"},[B(oe,{name:"cascader-dropdown"},{default:F(()=>[ae(V("div",{ref_key:"dropdownRef",ref:A,class:"cascader-dropdown cascader-dropdown-placement",style:ie(e.value)},[V("div",Ce,[(f(!0),w(N,null,x(y.value,(l,o)=>(f(),w("div",{key:o,class:"cascader-menu"},[(f(!0),w(N,null,x(l,u=>(f(),w("div",{key:u.value,class:M(["cascader-menu-item",{"is-active":W(u,o),"is-selected":Y(u,o)}]),onClick:P=>q(u,o)},[V("span",be,le(u.label),1),i(u)?(f(),E(D(pe),{key:0,class:"cascader-menu-item-arrow"})):j("",!0)],10,Le))),128))]))),128))])],4),[[se,c.value]])]),_:1})]))],512))}}),Oe=U(ke,[["__scopeId","data-v-2905ab8b"]]),Ae=H({name:"JAreaLinkage",components:{JCascader:Oe,Cascader:ye},inheritAttrs:!1,props:{value:C.oneOfType([C.object,C.array,C.string]),displayLevel:C.oneOf(["province","city","region","all"]),showArea:C.bool.def(!0),saveCode:C.oneOf(["province","city","region","all"]).def("all")},emits:["options-change","change","update:value"],setup(n,{emit:O}){const d=L(()=>n.displayLevel==="province"||n.displayLevel==="city"||n.displayLevel==="region"),p=Q(),r=k([]),R=L(()=>{if(n.displayLevel){if(n.displayLevel==="all")return T;if(n.displayLevel==="province")return me;if(n.displayLevel==="city")return G;if(n.displayLevel==="region")return T}else return n.showArea?T:G});ue(()=>{n.value?b():r.value=[]});function h(e,a){if(!e&&e!==0)return[];const i=String(e).trim();if(!i)return[];const S=i.length>=2?i.substring(0,2)+"0000":i,g=i.length>=4?i.substring(0,4)+"00":null,m=i.length>=6?i:null,y=[S];return g&&g!==S&&y.push(g),m&&m!==g&&y.push(m),a==="province"?y.slice(0,1):a==="city"?y.slice(0,2):y}function b(){let e=n.value?n.value:[];if(e&&typeof e=="string"&&e!="null"&&e!="undefined"){const a=e.split(",");if(n.displayLevel){const i=a[0];r.value=h(i,n.displayLevel)}else r.value=A(a)}else if(ge(e))if(e.length)if(n.displayLevel)if(e.length>=2){const a=n.displayLevel==="province"?1:n.displayLevel==="city"?2:Math.min(3,e.length);r.value=e.slice(0,a)}else{const a=e[0];r.value=h(a,n.displayLevel)}else r.value=A(e);else r.value=[]}function A(e){let a=[];if(n.saveCode==="region"){const i=e[0];a=[`${i.substring(0,2)}0000`,`${i.substring(0,2)}${i.substring(2,4)}00`,i]}else if(n.saveCode==="city"){const i=e[0];a=[`${i.substring(0,2)}0000`,i]}else n.saveCode==="province"?a=[e[0]]:a=e;return a}const c=e=>{let a=e;a&&(n.saveCode==="all"||(a=e.join(","))),O("change",a),O("update:value",a)};function _(e){if(e!=null&&e.length){let a=[];n.saveCode==="region"?a=[e[e.length-1]]:n.saveCode==="city"?a=[e[1]]:n.saveCode==="province"?a=[e[0]]:a=e,c(a)}else c(e)}return{cascaderValue:r,attrs:p,regionData:T,getOptions:R,handleChange:_,showLastLevelOnly:d}}});function Pe(n,O,d,p,r,R){const h=de("JCascader");return f(),E(h,K(n.attrs,{value:n.cascaderValue,showLastLevelOnly:n.showLastLevelOnly,options:n.getOptions,onChange:n.handleChange}),null,16,["value","showLastLevelOnly","options","onChange"])}const Ee=U(Ae,[["render",Pe]]);export{Ee as default};
|