<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a1997bcd的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a1997bcd</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a1997bcd]]></copyright><item><title><![CDATA[公式编辑器组件代码]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/149051454</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/149051454</guid><author>a1997bcd</author><pubDate>Tue, 01 Jul 2025 17:37:24 +0800</pubDate><description><![CDATA[这是一个可视化公式编辑器组件，主要功能包括： 组件结构： 变量池：展示可搜索的变量列表，支持点击插入 规则池：提供运算符/函数按钮和文本编辑区 底部按钮：清空、取消和确认功能 核心功能： 变量管理：从API获取变量并支持搜索过滤 规则编辑：插入变量/运算符/函数到文本区域 历史记录：实现撤销/重做功能 数据流：通过props接收初始值，emit返回结果 技术实现： 使用Vue3+Element Plus构建 通过computed实现变量搜索过滤 历史记录数组跟踪操作状态 响应式布局设计 适用场景：物联网设备]]></description><category></category></item><item><title><![CDATA[Vue3+ element 实现导入导出]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/148924326</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/148924326</guid><author>a1997bcd</author><pubDate>Thu, 26 Jun 2025 14:04:11 +0800</pubDate><description><![CDATA[若有数据，则将返回的数据包装成Blob对象，设置好对应的文件类型（适用于 Excel 文件格式），然后生成一个包含当前时间戳的唯一文件名，创建一个临时的 URL 对象，再通过downloadFile函数实现实际的文件下载操作，最后向用户提示导出成功的消息，告知用户数据已成功导出。界面反馈：整个导入导出过程中，充分利用了ElMessage组件在各个关键操作节点（如下载成功、上传失败、无数据可导出、导出成功等）向用户展示相应的提示信息，使得用户能够清晰地了解操作的执行结果情况，保证了良好的用户交互体验。]]></description><category></category></item><item><title><![CDATA[vue3+element-plus 组件功能实现 上传功能]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/148923959</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/148923959</guid><author>a1997bcd</author><pubDate>Thu, 26 Jun 2025 13:58:42 +0800</pubDate><description><![CDATA[接着调用后端DeviceModelApi的importAlarms方法进行文件上传，并处理返回结果：从返回消息中解析出成功导入和失败的记录数量，根据失败数量获取错误列表（如果有），最后通过导入对话框组件的引用调用updateImportResult方法更新导入对话框中显示的导入结果信息，包括总数、成功数、失败数、错误列表以及文件类型标识等内容。支持导入特定格式（.xlsx、.csv）且大小不超过 10M 的文件，能展示导入数据的统计情况并提供预览功能，方便用户在正式导入前查看文件内容。]]></description><category></category></item><item><title><![CDATA[wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch() 区别]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/134506132</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/134506132</guid><author>a1997bcd</author><pubDate>Mon, 20 Nov 2023 13:55:17 +0800</pubDate><description><![CDATA[wx.navigateBack() : 关闭当前页面，返回上一页面或多级页面。可通过getCurrentPages() 获取当前的页面栈，决定需要返回几层。wx.redirectTo() :  关闭当前页面，跳转到应用内的某个页面。wx.navigateTo() : 保留当前页面，跳转到应用内的某个页面。wx.switchTab()  :  跳转到 TabBar 页面，并关闭其他所有非 tabBar 页面。wx.reLaunch() :  关闭所有页面，打开到应用的某个页面。]]></description><category></category></item><item><title><![CDATA[小程序this.data和setData 区别]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/134506090</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/134506090</guid><author>a1997bcd</author><pubDate>Mon, 20 Nov 2023 13:53:20 +0800</pubDate><description><![CDATA[小程序 直接使用this.data.key = value 是 不能更新到视图当中的。必须使用 this.setData({ key ： value }) 来更新值。]]></description><category></category></item><item><title><![CDATA[vue项目微信JSSDK使用]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/126489282</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/126489282</guid><author>a1997bcd</author><pubDate>Tue, 23 Aug 2022 17:25:51 +0800</pubDate><description><![CDATA[所有需要使用 JS-SDK 的页面必须先注入配置信息，否则将无法调用（同一个 url 仅需调用一次，对于变化 url 的SPA的web app可在每次 url 变化时进行调用,目前 Android 微信客户端不支持 pushState 的H5新特性，所以使用 pushState 来实现web app的页面会导致签名失败，此问题会在Android6.2中修复）。对于用户触发时才调用的接口，则可以直接调用，不需要放在 ready 函数中。调用成功时：“xxx:ok” ，其中 xxx 为调用的接口名。]]></description><category></category></item><item><title><![CDATA[微信小程序调用地图和跟据经纬度打开手机地图导航]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/125678045</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/125678045</guid><author>a1997bcd</author><pubDate>Fri, 08 Jul 2022 14:42:54 +0800</pubDate><description><![CDATA[第一步：输入地址位置
第二步：展示地址信息
第三步：调用地图API 打开手机地图 导航去当前位置]]></description><category></category></item><item><title><![CDATA[【无标题】小程序使用vant weapp van-dropdown-menu 滚动穿透处理]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/125575669</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/125575669</guid><author>a1997bcd</author><pubDate>Sat, 02 Jul 2022 17:46:26 +0800</pubDate><description><![CDATA[在使用vant weapp 的下拉组件遇到了滚动穿透处理在列表页面增加
弹窗打开
弹窗关闭]]></description><category></category></item><item><title><![CDATA[计算一个具体时间到当前时间的年月日时分秒]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/124827513</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/124827513</guid><author>a1997bcd</author><pubDate>Tue, 17 May 2022 18:42:41 +0800</pubDate><description><![CDATA[let dayTime = '2022-05-15 19:47' // 年
    let timeVal = new Date(dayTime.replace(/-/g, "/")).getTime();
    //时间戳时间格式化(毫秒)
    function dates(timeStamp) {
      let second = 1000; 
      let minute = second * 60;
      let hour = minute * 60;
      let day]]></description><category></category></item><item><title><![CDATA[正常时间转成时间戳，时间戳和当前时间比较]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/124808288</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/124808288</guid><author>a1997bcd</author><pubDate>Mon, 16 May 2022 21:10:48 +0800</pubDate><description><![CDATA[发布后的前120秒，都显示1分钟前；例如：1分钟前
120秒到1小时内，都显示n分钟前； 例如：2分钟前，3分钟前 …  58分钟前，59分钟前
1小时到24小时内，都显示n小时前；例如：小时前，2小时前 …  23小时前，24小时前
大于24小时又小于48小时的情况需要判断，这个时间段是否属于昨天的范畴还是前天的范畴； 属于昨天就显示“昨天”，属于前天就显示前天；例如：昨天，前天
大于48小时后直接统计显示当前日期，例如：1月1日，1月2日 … 2月27日，2月28日
超过当年显示n年n月n日，例如：20]]></description><category></category></item><item><title><![CDATA[js获取两个日期的月份]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/123375607</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/123375607</guid><author>a1997bcd</author><pubDate>Wed, 09 Mar 2022 13:47:36 +0800</pubDate><description><![CDATA[创建两个日期
	var endTime = '2021-09';
	var startTime = '2021-02';
	拆分创建的变量的 年月日
	endTime = endTime.split('-');
	获得月份
	endTime = parseInt(endTime[0]) * 12 + parseInt(endTime[1]);
	startTime = startTime.split('-');
	startTime = parseInt(startTime[0]) * 12 + pars.]]></description><category></category></item><item><title><![CDATA[小程序 web-view url带参]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/123334208</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/123334208</guid><author>a1997bcd</author><pubDate>Mon, 07 Mar 2022 16:55:04 +0800</pubDate><description><![CDATA[先在要跳转的地方用encodeURIComponent，

在webview.js取到值以后再decodeURIComponent

例子：

&lt;view class="info-show top-info" bindtap="goUser"  data-url="{{userUrl}}"&gt;
      &lt;text class="center-word"&gt;《用户协议》&lt;/text&gt;
    &lt;/view&gt;
goUser(e){
    var listarl ]]></description><category></category></item><item><title><![CDATA[时间戳转成正常时间补0处理]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/123108034</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/123108034</guid><author>a1997bcd</author><pubDate>Thu, 24 Feb 2022 11:28:10 +0800</pubDate><description><![CDATA[timestampToTime(timestamp) {
      var date = new Date(timestamp); //时间戳为10位需*1000，时间戳为13位的话不需乘1000
      var Y = date.getFullYear() + "-";
      var M =
        (date.getMonth() + 1 &lt; 10
          ? "0" + (date.getMonth() + 1)
          : date.getMonth]]></description><category></category></item><item><title><![CDATA[vue里的锚点定位]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/122606269</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/122606269</guid><author>a1997bcd</author><pubDate>Thu, 20 Jan 2022 18:30:39 +0800</pubDate><description><![CDATA[例子代码
&lt;template&gt;
  &lt;div class="hello"&gt;
    &lt;div class="all" &gt;
      &lt;div class="left"&gt;
        &lt;el-timeline&gt;
          &lt;el-timeline-item v-for="(fatherItem, index) in allData" :key="index"&gt;
            &lt;a @click="jump(]]></description><category></category></item><item><title><![CDATA[vue 组件切换 保持组件的状态 keep-alive]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/120890896</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/120890896</guid><author>a1997bcd</author><pubDate>Thu, 21 Oct 2021 17:29:35 +0800</pubDate><description><![CDATA[如果你选择了一篇文章，切换到 Archive 标签，然后再切换回 Posts，是不会继续展示你之前选择的文章的。这是因为你每次切换新标签的时候，Vue 都创建了一个新的 currentTabComponent 实例。
重新创建动态组件的行为通常是非常有用的，但是在这个案例中，我们更希望那些标签的组件实例能够被在它们第一次被创建的时候缓存下来。为了解决这个问题，我们可以用一个  keep-alive  元素将其动态组件包裹起来

&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt.]]></description><category></category></item><item><title><![CDATA[单个数组的数组对象去重]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/120511997</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/120511997</guid><author>a1997bcd</author><pubDate>Mon, 27 Sep 2021 16:46:00 +0800</pubDate><description><![CDATA[//删除的方法
deteleObject(obj) {
      var uniques = [];
      var stringify = {};
      for (var i = 0; i &lt; obj.length; i++) {
          var keys = Object.keys(obj[i]);
          keys.sort(function(a, b) {
              return (Number(a) - Number(b));
     ]]></description><category></category></item><item><title><![CDATA[把彩色照片用css样式改成灰色照片]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/119926250</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/119926250</guid><author>a1997bcd</author><pubDate>Thu, 26 Aug 2021 10:44:14 +0800</pubDate><description><![CDATA[&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta charset="utf-8" /&gt;
		&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
		&lt;title&gt;彩色照片改灰色&lt;/title&gt;
		&lt;style type="text/css"&gt;
			.img-hui{
				-webkit-fil]]></description><category></category></item><item><title><![CDATA[js 数组对象获取某项值在数组里]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/119738217</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/119738217</guid><author>a1997bcd</author><pubDate>Mon, 16 Aug 2021 17:34:29 +0800</pubDate><description><![CDATA["customDetails":[
			{
				"code":"-1",
				"colorCode":"-1",
				"content":"已淘汰",
				"contentChild":"",
				"name":"淘汰",
				"stepCode":"003"
			},
			{
				"code":"102",
				"colorCode":"",
				"content":"筛选通过",
				"contentChild":"",
				"name":"筛选通过",]]></description><category></category></item><item><title><![CDATA[微信小程序多选实现]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/118525143</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/118525143</guid><author>a1997bcd</author><pubDate>Tue, 06 Jul 2021 17:17:46 +0800</pubDate><description><![CDATA[微信小程序多选实现
wxml:
 &lt;ul class="ul-ls"&gt;
                &lt;li wx:for="{{infoList}}" wx:key='this' data-index='{{index}}'
                    class='li-con {{item.isSelected? "onlist" : ""}}' data-index="{{index}}"
                    data-id="{{item}}" ]]></description><category></category></item><item><title><![CDATA[发光的button]]></title><link>https://blog.youkuaiyun.com/a1997bcd/article/details/118222408</link><guid>https://blog.youkuaiyun.com/a1997bcd/article/details/118222408</guid><author>a1997bcd</author><pubDate>Fri, 25 Jun 2021 15:45:08 +0800</pubDate><description><![CDATA[&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;

	&lt;head&gt;
		&lt;meta charset="UTF-8"&gt;
		&lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
		&lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
		&lt;title&gt;button&..]]></description><category></category></item></channel></rss>