2 lines
2.6 KiB
Java
2 lines
2.6 KiB
Java
import{e as Y,h as M,o as P,C as V,z as j,f as C,B as A,u as B,c as N,A as O,Q as T,R as z,J as I,G as J,r as u,n as g}from"./vue-vendor-DNhG1Cve.js";import{as as s,aO as E,av as G,dU as K,aK as h}from"./index-X7Y8jykP.js";import{useRuleFormItem as Q}from"./useFormItem-b_EqFlJz.js";import{m as U}from"./dayjs-jnKD3YGS.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./index-aCD42OrZ.js";import"./quarterOfYear-BU2sPnff.js";import"./index-J2mOtM3w.js";const $=["onClick"],oe=Y({__name:"JDatePickerMultiple",props:{value:s.string.def(""),placeholder:s.string.def("请选择日期"),separator:s.string.def(","),format:s.string.def("YYYY-MM-DD"),valueFormat:s.string.def("YYYY-MM-DD"),disabled:s.bool.def(!1),popContainer:s.string.def(""),disabledDate:{type:Function,default:void 0}},emits:["change","update:value"],setup(i,{emit:k}){const a=i,p=k,b=E(),y=u([]),[,,,c]=Q(a,"value","change",y),f=u(null),D=u(),d=u(!1),o=u([]);M(()=>a.value,e=>{if(!e)o.value=[];else{const t=String(e).split(a.separator).map(r=>r&&r.trim()).filter(r=>!!r),n=new Set(t);o.value=Array.from(n)}},{immediate:!0});const w=N(()=>o.value.map(e=>{const t=h(e,a.valueFormat);return t.isValid()?t.format(a.format):e}));function m(e){var t;return a.popContainer?K(e,a.popContainer):(t=f.value)!=null?t:e==null?void 0:e.parentNode}function _(){a.disabled||(d.value=!0)}function F(e){d.value=e}function S(e){const t=e.format(a.valueFormat);return o.value.includes(t)}function x(e){if(a.disabled||a.disabledDate&&a.disabledDate(e))return;const t=e.format(a.valueFormat),n=o.value.indexOf(t);n>=0?o.value.splice(n,1):o.value.push(t),v(),g(()=>{d.value=!0})}function R(e){const t=[];for(const r of e){const l=h(r,a.format);l.isValid()&&t.push(l.format(a.valueFormat))}const n=new Set(t);o.value=Array.from(n),v()}function v(){const e=o.value.join(a.separator);p("change",e),p("update:value",e),g(()=>{c&&c.onFieldChange&&c.onFieldChange()})}return P(()=>{}),(e,t)=>{const n=G,r=U;return j(),V("div",{class:"j-date-multiple",ref_key:"wrapperRef",ref:f},[C(n,A({value:w.value,mode:"multiple",placeholder:i.placeholder,disabled:i.disabled,allowClear:"",open:!1,getPopupContainer:m},B(b),{onChange:R,onClick:_}),null,16,["value","placeholder","disabled"]),C(r,{ref_key:"pickerRef",ref:D,value:void 0,open:d.value,getPopupContainer:m,inputReadOnly:!0,allowClear:!1,disabledDate:i.disabledDate,format:i.format,showToday:!1,onOpenChange:F,class:"hidden-picker",popupClassName:"j-date-multiple-popup"},{dateRender:O(({current:l})=>[T("div",{class:I(["ant-picker-cell-inner jdm-cell",{"is-selected":S(l)}]),onClick:z(q=>x(l),["stop","prevent"])},J(l.date()),11,$)]),_:1},8,["open","disabledDate","format"])],512)}}});export{oe as default};
|