<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Gemming_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Gemming_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Gemming_]]></copyright><item><title><![CDATA[js树形数据递归转化至list生成id和parentId，和再次递归成树时产生的内存泄漏触发浏览器断点保护]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/113042746</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/113042746</guid><author>Gemming_</author><pubDate>Sat, 23 Jan 2021 14:44:17 +0800</pubDate><description><![CDATA[在项目交付时，甲方系统接入我们的子系统，甲方希望对菜单权限进行统一控制，而不是在子系统内控制，所以需要对甲方系统树形格式的菜单数据进行扁平化处理，再匹配添加我们子系统的菜单数据字段，这样已经写好的代码就不需要再改动了。
处理时遇到的问题，将树形数据处理为list遇到的问题：
treeToList(tree,pId){
	let node = {menuId:this.numId ,menu:tree[i].menu,pId:pId}
	this,menuList.push(node)
	if(tree[i]]]></description><category></category></item><item><title><![CDATA[前端通过文件流导入导出excel（兼容IE）]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/111970007</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/111970007</guid><author>Gemming_</author><pubDate>Wed, 30 Dec 2020 12:54:05 +0800</pubDate><description><![CDATA[前端通过文件流导入导出excel（兼容IE）

api文件夹内新建config.js，封装导入导出的请求方法

import axios from 'axios'

...

/*
*  上传
*  url:请求地址
*  params:参数
* */
export function fileUpload(url, params = {},loading=true) {
  return new Promise((resolve, reject) =&gt; {
    service({
        ]]></description><category></category></item><item><title><![CDATA[[Vue warn]: Invalid handler for event “click“: got undefined报错原因]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/109273915</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/109273915</guid><author>Gemming_</author><pubDate>Sun, 25 Oct 2020 15:31:35 +0800</pubDate><description><![CDATA[今天在写菜单的时候，vue中我将onClick事件写到了rander函数里渲染的方式，渲染的是菜单，有些具有children的菜单也需要点击跳转这个需求，这样写了之后，点击跳转的功能生效了，但是会报vue警告。Invalid handler for event “click”: got undefined
解决： 把点击事件的方法写道methods方法里

...]]></description><category></category></item><item><title><![CDATA[前端json格式请求文件流导出excel文件]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/108357250</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/108357250</guid><author>Gemming_</author><pubDate>Wed, 02 Sep 2020 10:27:36 +0800</pubDate><description><![CDATA[前端json格式请求文件流导出excel文件 ：
请求方法：
// http为axios封装后的方法
export function exportFile(url,data){
http.post(url,data,{
  headers: {
  'Content-type' : 'application/json;charset-UTF-8',  // 设置content-type
  'Authorization' : sessionStorage.getItem('sessionId') // 获取]]></description><category></category></item><item><title><![CDATA[根据传入字符，递归获取任意层级结构数据中对应节点属性值。]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/108356252</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/108356252</guid><author>Gemming_</author><pubDate>Wed, 02 Sep 2020 09:49:23 +0800</pubDate><description><![CDATA[后台给的树形层级结构，回显根据id获取名称name
/*
**❤**根据传入字符，递归获取任意层级结构数据中对应节点属性值。(层级结构数据最外层为[]或{}均可)
@onlyCode = 传入字符
@treeData = 树形结构数据
@code = 节点编码id，不传默认为value
@name = 节点名称name，不传默认为label
@childName = 内嵌数组对象集的属性名称，不传默认为children
*/  
const getNameFormTree = (onlyCode, tree]]></description><category></category></item><item><title><![CDATA[el-cascader联级选择器在v-for循环中获取节点对象的正确使用姿势]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/107776419</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/107776419</guid><author>Gemming_</author><pubDate>Tue, 04 Aug 2020 00:07:25 +0800</pubDate><description><![CDATA[el-cascader在v-for中使用refs.xxx.getCheckedNodes()会报getCheckedNodes is not a function ，研究了很久，终于搞出了正确姿势：
//v-for循环时要有item和index ，将index传入el-cascader的change事件：
&lt;el-row v-for(item,i) in orgList :key="index"&gt;
&lt;el-cascader ref="tree" 
@change = "checkedCh.]]></description><category></category></item><item><title><![CDATA[关于element中联级选择器el-cascader单选，选中复选框联级模态框立即消失]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/107776165</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/107776165</guid><author>Gemming_</author><pubDate>Mon, 03 Aug 2020 23:51:15 +0800</pubDate><description><![CDATA[如图，此联级选择器设置为单选，所以用户点击左侧单选框选中后，需要点击其他空白地方才选择框能消失，如果联级选择器在较小的dialog弹窗的表单中，点击其他地方，弹窗和选择器都直接消失了，用户体验非常的不友好，如果是单选的话，所以一旦选中的话，界面就没有必要显示了。想要实现选中立即隐藏这里可以使用this.$refs.[“联级选择器的ref值”].dropDownVisble = false,代码如下：
//el-cascader的change事件,saveOrgTree是联级组件的ref
checkedCh.]]></description><category></category></item><item><title><![CDATA[el-select可搜索功能，实现对输入的搜索内容进行控制]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/107574316</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/107574316</guid><author>Gemming_</author><pubDate>Sat, 25 Jul 2020 10:04:28 +0800</pubDate><description><![CDATA[今天测试提了一个bug，需求是一个下拉框，带搜索过滤功能，测试要求对输入的内容进行控制，控制其长度为20，搜索功能是不进行交互的，是前端的一个功能而已，测试要求，那就搞呗。
可以用.native获取内部input
&lt;el-select
v-model="searchForm.productId"
placehoder="请输选择产品或输入产品名字过滤"
filterable
@input.native="filterData"
clearable
ref="searchSelect"
&gt;
&lt]]></description><category></category></item><item><title><![CDATA[前端下载文件，值得借鉴]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/106442278</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/106442278</guid><author>Gemming_</author><pubDate>Sat, 30 May 2020 15:38:31 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/willingtolove/p/10686208.html#_label7_0

]]></description><category></category></item><item><title><![CDATA[前端真实面试场景]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/104707185</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/104707185</guid><author>Gemming_</author><pubDate>Fri, 06 Mar 2020 23:46:07 +0800</pubDate><description><![CDATA[今天的一个视频面试，这里写下问到的一些有印象的问题，其实还有遗漏的但是打得不好的都在这里了（公司CEO、技术、HR同时视频，HR做记录）：
自我介绍完首先是搞技术的高管问：
1.app首页加载缓存的问题怎么解决？
我：只答了一个keep-alive，面试官说这点还有很多可以聊
2. 苹果X手机的输入框，input 输入聚焦时候，input框会下滑道下面，虚拟键盘会挡住input,无法看到输入的内容...]]></description><category></category></item><item><title><![CDATA[VUE各个组件的传值]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/104162098</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/104162098</guid><author>Gemming_</author><pubDate>Mon, 03 Feb 2020 21:14:21 +0800</pubDate><description><![CDATA[VUE各个组件的传值
父给子传值
父组件可以  引入、使用 子组件，从业务上看，该父组件有可能对子组件有个性化需求，为了体现组件的灵活多变，可以通过传值实现
语法：
父组件要在子组件标签上通过属性值方式传值
&lt;子组件标签 name=value name=value name=value&gt;&lt;/子组件标签&gt;

子组件接收并应用值，具体通过props接收
&lt;!--在模板中应...]]></description><category></category></item><item><title><![CDATA[使用JS控制元素的伪元素]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/103535898</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/103535898</guid><author>Gemming_</author><pubDate>Sun, 29 Dec 2019 22:03:25 +0800</pubDate><description><![CDATA[一. 缘由：
本文源于在OSC社区中，有人提问如何用jq获取伪元素。我第一想法是强大的CSS Query应该可以获取伪元素吧。
然而事实上，CSS Query并不能。即我们不能通过(“:before”)、(“:before”)、(“:before”)、(dom).find(“:before”)或document.querySelector(“:before”)来获取:before伪元素。
为此，我...]]></description><category></category></item><item><title><![CDATA[Ajax 04 ajax全局处理器跨域请求 | JSONP的跨域实现原理|节流防抖优化|HTTP协议]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/103749918</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/103749918</guid><author>Gemming_</author><pubDate>Sat, 28 Dec 2019 23:36:47 +0800</pubDate><description><![CDATA[jQuery的全局ajax处理器

作用：用来对页面中的ajax操作进行统一设置，简化操作
常见场景：加载资源的loading功能



ajaxStart() 任意请求开始时触发内部回调

写法：

$(document).ajaxStart(function () {
  // 代码...
});



ajaxStop() 任意请求结束后触发内部回调

写法：

$(document).aj...]]></description><category></category></item><item><title><![CDATA[Ajax 03.原生Ajax使用|FormData的使用]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/103749905</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/103749905</guid><author>Gemming_</author><pubDate>Sat, 28 Dec 2019 23:33:24 +0800</pubDate><description><![CDATA[原生Ajax使用
XMLHttpRequest的基本使用
简称xhr
步骤:1.创建xhr对象
var xhr = new XMLHttpRequest();



调用xhr.open()函数
如果希望设置get请求的请求参数,需要放置在open()参数2地址的最后位置
书写格式为:地址?名=值&amp;名=值&amp;…


xhr.open('GET','http://www.liulong...]]></description><category></category></item><item><title><![CDATA[前端开发常见面试问题(二)]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/103691007</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/103691007</guid><author>Gemming_</author><pubDate>Tue, 24 Dec 2019 22:48:27 +0800</pubDate><description><![CDATA[C3的动画和jQuery动画的区别
css3 animation与jQuery animate()区别在于实现机制不同:
1.css3中的过渡和animation动画都是基于css实现机制的，属于css范畴之内，并没有涉及到任何语言操作。效率略高与jQuery中的animate()函数，但兼容性很差。
2.jQuery中的animate()函数可以简单的理解为css样式的“逐帧动画”，是css样式...]]></description><category></category></item><item><title><![CDATA[js基础知识点总结]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/103570899</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/103570899</guid><author>Gemming_</author><pubDate>Mon, 16 Dec 2019 21:49:06 +0800</pubDate><description><![CDATA[js基础知识点总结]]></description><category></category></item><item><title><![CDATA[JavaScript 常见报错解析]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/103541709</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/103541709</guid><author>Gemming_</author><pubDate>Mon, 16 Dec 2019 21:39:54 +0800</pubDate><description><![CDATA[js开发中遇到一些常见的报错信息
Uncaught TypeError: undefined is not a function
错误类型为TypeError（类型错误）;
错误产生：你希望调用一个函数，这个值却不是一个函数。
错误修复：确保函数名正确。这个错误中，错误行号能正确指示。
Uncaught ReferenceError: Invalid left-hand side in assig...]]></description><category></category></item><item><title><![CDATA[前端开发常见面试提问(一)]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/103570697</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/103570697</guid><author>Gemming_</author><pubDate>Mon, 16 Dec 2019 21:38:03 +0800</pubDate><description><![CDATA[1、CSS3 新特性有哪些？
1. 颜色：新增 RGBA，HSLA 模式
2. 文字阴影（text-shadow）
3.边框： 圆角（border-radius） 边框阴影： box-shadow
4. 盒子模型：box-sizing
5.背景：background-size 设置背景图片的尺寸 background-origin 设置背景图片的
   原点 background-clip 设置背...]]></description><category></category></item><item><title><![CDATA[Ajax02 表单和ajax结合使用|模板引擎便捷展示]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/103522250</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/103522250</guid><author>Gemming_</author><pubDate>Fri, 13 Dec 2019 10:28:52 +0800</pubDate><description><![CDATA[表单简介


表单的组成部分


form标签容器


表单域：input 标签，textarea。。select、、


提交按钮：&lt;input type = “submit”&gt;
&lt;button type = “submit”&gt;提交&lt;/button&gt;




表单操作的特点：


提交数据时会出现跳转的情况


form标签的属性


action  targ...]]></description><category></category></item><item><title><![CDATA[Ajax 01客户端和服务器 | jQuery中的ajax | 服务端接口]]></title><link>https://blog.youkuaiyun.com/Gemming_/article/details/103480777</link><guid>https://blog.youkuaiyun.com/Gemming_/article/details/103480777</guid><author>Gemming_</author><pubDate>Tue, 10 Dec 2019 18:39:08 +0800</pubDate><description><![CDATA[Ajax -网络编程
客户端和服务器的基本概念


上网的目的

获取和消费（使用）资源



客户端和服务器（服务端）

客户端：

使用服务的计算机
如果一台计算机希望成为客户端，必须安装浏览器





服务端：

提供服务的计算机
如果一台计算机希望成为服务端，必须安装特定的服务端软件



服务器
负责存放和对外提供资源的电脑，叫做服务器。
URL地址
URL中文叫统一资源定位符，用于标...]]></description><category></category></item></channel></rss>