使用vue-datepicker过程中遇到的一些问题 男娘i 2022-05-25 09:10 535阅读 0赞 在做vue项目中,少不了使用外部vue组件,今天在项目中使用awesome-vue中的vue-datepicker的时候,遇到了一些问题,花了一些时间终于解决了,现在给大家分享分享! 当我在github找到vue-datepicker项目的时候,按照官方文档描述,进行了vue-datepicker的安装`npm install vue-datepicker --save`,然后按照官方文档继续在项目中使用 <template> <div class="order-wrap"> <div class="order-list-choose"> <div class="order-list-option"> 开始日期: <date-picker :date="startTime" :option="option" :limit="limit"></date-picker> </div> <div class="order-list-option"> 结束日期: <date-picker :date="startTime" :option="option" :limit="limit"></date-picker> </div> </div> </div> </template> <script type="text/javascript"> import Datepicker from 'vue-datepicker'; export default { components: { Datepicker }, data () { startTime: { time: '' }, endtime: { time: '' }, option: { type: 'day', week: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'], month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], format: 'YYYY-MM-DD', placeholder: 'when?', inputStyle: { 'display': 'inline-block', 'padding': '6px', 'line-height': '22px', 'font-size': '16px', 'border': '2px solid #fff', 'box-shadow': '0 1px 3px 0 rgba(0, 0, 0, 0.2)', 'border-radius': '2px', 'color': '#5F5F5F' }, color: { header: '#ccc', headerText: '#f00' }, buttons: { ok: 'Ok', cancel: 'Cancel' }, overlayOpacity: 0.5, // 0.5 as default dismissible: true // as true as default }, timeoption: { type: 'min', week: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'], month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], format: 'YYYY-MM-DD HH:mm' }, multiOption: { type: 'multi-day', week: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'], month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], format:"YYYY-MM-DD HH:mm" }, limit: [{ type: 'weekday', available: [1, 2, 3, 4, 5] }, { type: 'fromto', from: '2016-02-01', to: '2016-02-20' }] } }, </script> 然后发现还是报错,后来在官方文档中看到了下图所示的依赖描述. ![这里写图片描述][70] 好吧,可能是moment依赖没有安装完,继续安装`npm install moment --save`,想着,这下问题该解决了吧?然而并没有。 ![这里写图片描述][70 1] 继续找问题,后来发现官方在组件注册的时候是这样写的 `components: {'date-picker': myDatepicker' }`,哦,原来不能用驼峰Datepicker 注册哦,然后我就改成了和官方一模一样的注册方式, `'date-picker': myDatepicker`。哎,谁知道竟然还继续报错,如下图: ![这里写图片描述][70 2] 真是纠结啊,看来这个外部组件用起来也没那么容易。百度这个问题搜索无果后,我只能去github上面vue-datepicker官方项目中的Issues里面寻找答案碰碰运气了,果然,有人也遇到这个问题了,看到了一位好心朋友对这个问题的回答,此时的心情是灰常激动的,哈哈哈。原来,在import的时候,还需要`import Datepicker from 'vue-datepicker/vue-datepicker-es6.vue'` 这样引入,少了后面的es6支持。问题终于解决了 ![这里写图片描述][70 3] 按理说问题解决了到这里就结束了,谁知道,又遇到一个不算问题的问题了。为啥说不算问题呢,因为vue-datepicker没有报错了,至于为啥是问题是因为 ![这里写图片描述][70 4] 啊啊啊啊啊,插件没法选中啊,点不了日期。这就悲催了,然后只能继续去找问题了。 ![这里写图片描述][70 5] 好吧,终于找到问题了,都是因为这个limit配置的问题,改成下面这样就可以了。终于能正常使用了,真是不容易啊! limit: [{ type: Array, default:function _default(){ return []; } }] [70]: /images/20220525/510d194e81ae4331a749f01ccda23793.png [70 1]: /images/20220525/e9b9e1f36ade46e2bba53452485b82e2.png [70 2]: /images/20220525/8fb1206d804c487abff97a6099bee397.png [70 3]: /images/20220525/b9e52fed38de44b98ddfbaf2c537399e.png [70 4]: /images/20220525/b54a35a8ab0042d1bb3a6152a76ba83c.png [70 5]: /images/20220525/d286c9f25f4948228c63a702401f541f.png
还没有评论,来说两句吧...