<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kaiup的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kaiup</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kaiup]]></copyright><item><title><![CDATA[vue移动端实现调起摄像头扫描二维码功能]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/136658187</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/136658187</guid><author>kaiup</author><pubDate>Tue, 12 Mar 2024 17:42:27 +0800</pubDate><description><![CDATA[vue移动端实现调起摄像头扫描二维码功能]]></description><category></category></item><item><title><![CDATA[将el-dialog封装成函数调用]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/132365362</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/132365362</guid><author>kaiup</author><pubDate>Fri, 18 Aug 2023 17:04:10 +0800</pubDate><description><![CDATA[以上为简单例子，可根据场景进行优化，期望各位留言告知是否有更好的实现方法。]]></description><category></category></item><item><title><![CDATA[TypeScript基础使用教程]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/129466914</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/129466914</guid><author>kaiup</author><pubDate>Sat, 27 May 2023 22:12:57 +0800</pubDate><description><![CDATA[【代码】TypeScript基础使用教程。]]></description><category></category></item><item><title><![CDATA[uni push2.0实现消息推送(在线&离线)]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/130481005</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/130481005</guid><author>kaiup</author><pubDate>Thu, 04 May 2023 14:54:32 +0800</pubDate><description><![CDATA[没有配置应用或者没有配置应用的各平台信息，需要先新增一个应用然后在该应用中新增平台信息。找到uniPush->2.0->应用信息，配置以下信息。需要开通uniCloud服务（推荐阿里云）安卓平台需要配置以下信息（证书生成的信息）进行配置uni push2.0。厂商离线推送设置 ——，配置常见问题 ——]]></description><category></category></item><item><title><![CDATA[js判断是否为Chrome/Safari/火狐/360/搜狗浏览器等]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/127080593</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/127080593</guid><author>kaiup</author><pubDate>Tue, 27 Sep 2022 23:16:59 +0800</pubDate><description><![CDATA[使用js判断是否为Chrome/Safari/火狐/360/搜狗等浏览器]]></description><category></category></item><item><title><![CDATA[qiankun微应用的使用（vue）]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/126351395</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/126351395</guid><author>kaiup</author><pubDate>Mon, 15 Aug 2022 18:06:53 +0800</pubDate><description><![CDATA[qiankun微应用-vue微应用的使用]]></description><category></category></item><item><title><![CDATA[vue实现一个tab组件（超出可滚动自动居中）]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/125359871</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/125359871</guid><author>kaiup</author><pubDate>Sun, 19 Jun 2022 17:44:14 +0800</pubDate><description><![CDATA[vue3实现可自动滚动tab选型卡]]></description><category></category></item><item><title><![CDATA[js手写实现各种函数]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/124831881</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/124831881</guid><author>kaiup</author><pubDate>Tue, 17 May 2022 22:51:50 +0800</pubDate><description><![CDATA[Object.create()

Object.prototype._create = function(obj) {
	 if(Object.prototype.toString.call(obj) !== '[object Object]') return
	 let newObj = {}
	 newObj.__prop__ = obj
	 return newObj
}


map

Array.prototype._map = function(fn) = {
	if(typeof fn !==.]]></description><category></category></item><item><title><![CDATA[js实现文件下载功能]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/124771466</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/124771466</guid><author>kaiup</author><pubDate>Sat, 14 May 2022 18:57:45 +0800</pubDate><description><![CDATA[一、a标签下载
&lt;body&gt;
	&lt;button onClick="download()"&gt;a标签下载&lt;/button&gt;
	&lt;script&gt;
		function download(url = 'http:www.xxx.com/download?name=file.pdf', fileName = '未知文件') {
	      const a = document.createElement('a');
	      a.style.display = ']]></description><category></category></item><item><title><![CDATA[封装el-table组件]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/124375248</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/124375248</guid><author>kaiup</author><pubDate>Sun, 24 Apr 2022 09:48:50 +0800</pubDate><description><![CDATA[封装的el-table组件
&lt;template&gt;
  &lt;el-table
    border
    v-loading="loading"
    :data="tableData"
    @selection-change="selectionChange"
    style="width: 100%"&gt;
    &lt;el-table-column
      v-if="tableType"
      :type="tableType"
      width="5]]></description><category></category></item><item><title><![CDATA[el-dropdown组件实现三级菜单]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/123590994</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/123590994</guid><author>kaiup</author><pubDate>Sat, 19 Mar 2022 11:28:40 +0800</pubDate><description><![CDATA[el-dropdown组件实现三级菜单
一级菜单点击触发，二级、三级hover触发
&lt;el-dropdown trigger="click"&gt;
   &lt;span class="el-dropdown-link"&gt;
     下拉菜单&lt;i class="el-icon-arrow-down el-icon--right"&gt;&lt;/i&gt;
   &lt;/span&gt;
   &lt;el-dropdown-menu slot="dropdown"&gt;
     ]]></description><category></category></item><item><title><![CDATA[eCharts简易封装]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/120226041</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/120226041</guid><author>kaiup</author><pubDate>Fri, 10 Sep 2021 17:14:08 +0800</pubDate><description><![CDATA[思路：

将事先需要用的配置属性写到option中
再把传进来的option相对应的属性进行合并

代码：
function myCharts(el,options) {
	var myChart = echarts.init(document.getElementById(el))
	var option = {
		autoHeight:'',
		title: {
            text: '',
            left:'auto',
            subtext:'']]></description><category></category></item><item><title><![CDATA[使用eCharts实现中国地图的散点图]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/120217216</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/120217216</guid><author>kaiup</author><pubDate>Fri, 10 Sep 2021 10:50:26 +0800</pubDate><description><![CDATA[getMapChartData() {
    // 初始化echarts实例
     var myEcharts = echarts.init(document.getElementById("map-chart"));
     var option = {
         geo: {
             map: 'china',
             label: {
                 normal: {
                     show: fals]]></description><category></category></item><item><title><![CDATA[vue3组合式API基本使用]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/119085457</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/119085457</guid><author>kaiup</author><pubDate>Sun, 25 Jul 2021 19:56:40 +0800</pubDate><description><![CDATA[一、	setup入口函数
1 )  注意：setup方法中this指向undefined（原因：setup函数在创建组件之前调用)
2 ) setup参数

props：组件接收过来的属性；
content：上下文对象

3 ) content对象属性

attrs：未使用props声明接收的属性
slots：获取插槽，content.slots.default() –&gt; 获取默认插槽
emit：发送自定义事件
root
parent
refs

二、API使用

注意：每使用一个api需要先进行引入]]></description><category></category></item><item><title><![CDATA[微信小程序生成海报功能]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/117565538</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/117565538</guid><author>kaiup</author><pubDate>Fri, 04 Jun 2021 17:24:25 +0800</pubDate><description><![CDATA[微信小程序生成海报功能实际使用canvas进行绘制和生成图片
实际工作使用canvas遇到了几个问题：

获取canvas节点宽高为空
场景：canvas节点进入页面是先被隐藏且未被渲染的，点击“生成海报”按钮后在进行渲染并开始获取canvas节点，结果获取canvas节点宽高为空
解决：使用倒计时延迟200ms进行获取
在canvas中绘制base64格式图片
解决：方案在如下代码中
wx.canvasToTempFilePath生成图片报错"canvasToTempFilePath: fail canv]]></description><category></category></item><item><title><![CDATA[CSS Gird布局]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/117283749</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/117283749</guid><author>kaiup</author><pubDate>Wed, 26 May 2021 10:50:49 +0800</pubDate><description><![CDATA[以下图片列举了grid布局的所有属性

Grid布局具体使用可参考：http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html

]]></description><category></category></item><item><title><![CDATA[使用input上传图片并本地预览]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/116742453</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/116742453</guid><author>kaiup</author><pubDate>Thu, 13 May 2021 11:25:17 +0800</pubDate><description><![CDATA[话不多说上代码
&lt;div id="app"&gt;
    &lt;input @change="uploadImage" type="file"&gt;&lt;/input&gt;
    &lt;img :src="imgSrc" alt=""&gt;
&lt;/div&gt;
 &lt;script&gt;
  	var vm = new Vue({
    	el:'#app',
	    data: {
	        imgSrc: '',
	    },
	    uploadFile]]></description><category></category></item><item><title><![CDATA[mock.js简单使用]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/116193289</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/116193289</guid><author>kaiup</author><pubDate>Tue, 27 Apr 2021 11:26:17 +0800</pubDate><description><![CDATA[安装mock,js
1.script标签引入
&lt;script src="http://mockjs.com/dist/mock.js"&gt;&lt;/script&gt;

2.npm安装
在这里插入代码片

在vue中使用
1.新建test.js文件
// 引入Mock.js
import Mock from 'mockjs'

2.使用mock()方法模拟请求接口

mock() 第一个参数填写请求地址(自定义)；第二个参数是请求到的数据


模拟获取数据

// 模拟数据
let classi]]></description><category></category></item><item><title><![CDATA[小程序消息订阅]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/116130512</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/116130512</guid><author>kaiup</author><pubDate>Sun, 25 Apr 2021 15:50:42 +0800</pubDate><description><![CDATA[关于小程序消息订阅
注意：小程序消息订阅需要用户手动点击或者在支付回调中才能触发

wx.requestSubscribeMessage （小程序消息订阅消息API）


 wx.requestSubscribeMessage({	
 	 // 订阅消息模板id
      tmplIds: ['gsX938KQ7V_7YJZe_mbpA8JgBSn2v0llvkZhHVwN2lM'],
      success: (res) =&gt; {
       // 获取当前这个模板id的状态
       ]]></description><category></category></item><item><title><![CDATA[jq中ajax封装为promise]]></title><link>https://blog.youkuaiyun.com/kaiup/article/details/115018810</link><guid>https://blog.youkuaiyun.com/kaiup/article/details/115018810</guid><author>kaiup</author><pubDate>Sat, 20 Mar 2021 00:18:46 +0800</pubDate><description><![CDATA[function request(method, url, data) {
      return new Promise((resolve, reject) =&gt; {
        $.ajax({
          type: method,
          url,
          data,
          dataType: "json",
          success: (res) =&gt; {
            resolve(res)
         ]]></description><category></category></item></channel></rss>