首页
关于
文章打赏记录
搜索
1
小记一次本站从EM转移到Typecho
199 阅读
2
欢迎使用 Typecho
149 阅读
3
HTML5+Ajax上传文件
114 阅读
4
layui之树形组件使用
105 阅读
5
vue路由跳转的四种方式
105 阅读
诗于远方
学无止境
物尽其用
闲言碎语
登录
搜索
标签搜索
vue
小群
累计撰写
6
篇文章
累计收到
2
条评论
首页
栏目
诗于远方
学无止境
物尽其用
闲言碎语
页面
关于
文章打赏记录
搜索到
6
篇与
的结果
2022-11-02
【夜读】遇事最重要的4种能力
生活中,我们会遇到很多问题,如何处理这些问题能反映出一个人的水平,也决定着生活走向。今晚的夜读,我们和大家分享4种遇事时最重要的能力。自我更新的能力 一成不变,只会将自己困在原地;懂得自我更新,生活才会是丰盛灿烂的模样。 在遇到困难时,我们不能一味地用过去的经验来判断现在的事情,正确的做法应该是更新自己的观念,适时采取应变之策。 世界每分每秒都在变化,如果你的思维停滞不前,那么就是在退步。一个人只有像电脑更新系统一样,不断更新自己的思维方式,才能具备解决现实问题的能力和实力。稳住情绪的能力 每个人的生活中,都会遇到不如意的事,真正的困难其实不只有远方的高山,还有鞋子里的一粒沙。限制前进脚步的,往往是自己焦虑慌乱的情绪。 遇上麻烦,自乱阵脚,只会迷失航向,满盘皆输;唯有沉着冷静,凡事不慌,才能逐浪而行,挺立潮头。 遇事别着急,稳住自己,从容做事,不过分担心和恐惧,才能更好地掌控自己的生活,主导自己的人生。找准问题的能力 能否找准问题,是解决事情的关键。若无法探寻到问题的根源,则如同老驴推磨,只能原地打转。 有人说,发现问题和解决问题同样重要,把问题准确地找出来,可能就已经解决一半。 风不会凭地而起,雨不会凭空而落。清晰地找到问题所在,是破局的关键。揪出根结、对症下药,事情才可能迎刃而解。懂得变通的能力 有时候,一条路走到尽头看似无路可走,但其实只需拐个弯就能豁然开朗。要知道,很多选择其实没有对错之分,懂得变通也是一种前进。变通不是放弃,而是寻找更好地解决问题的办法。 有句话说“当你不再固执己见,多从不同角度思考问题,就会发现适时的变通可以让看似棘手的僵局迎刃而解”。 我们每个人都需要不断地根据形势,调整自己的节奏和行动。不墨守成规、不拘泥一格,放下执念、学会变通,才能不负过往、无畏向前。
2022年11月02日
39 阅读
0 评论
0 点赞
2022-03-18
vue路由跳转的四种方式
vue路由跳转有四种方式router-linkthis.$router.push() (函数里面调用)this.$router.replace() (用法同push)this.$router.go(n)一、不带参1.1 router-link<router-link :to="{name:'home'}"> <router-link :to="{path:'/home'}"> //name,path都行, 建议用name // 注意:router-link中链接如果是'/'开始就是从根路由开始,如果开始不带'/',则从当前路由开始。1.2 this.$router.push()this.$router.push('/home') this.$router.push({name:'home'}) this.$router.push({path:'/home'})1.3 this.$router.replace() (用法同push)二、带参2.1 router-link<router-link :to="{name:'home', params: {id:1}}"> // params传参数 (类似post) // 路由配置 path: "/home/:id" 或者 path: "/home:id" // 不配置path ,第一次可请求,刷新页面id会消失 // 配置path,刷新页面id会保留 // html 取参 $route.params.id // script 取参 this.$route.params.id <router-link :to="{name:'home', query: {id:1}}"> // query传参数 (类似get,url后面会显示参数) // 路由可不配置 // html 取参 $route.query.id // script 取参 this.$route.query.id2.2 this.$router.push(query传参this.$router.push({name:'home',query: {id:'1'}}) this.$router.push({path:'/home',query: {id:'1'}}) // html 取参 $route.query.id // script 取参 this.$route.query.id params传参 this.$router.push({name:'home',params: {id:'1'}}) // 只能用 name // 路由配置 path: "/home/:id" 或者 path: "/home:id" , // 不配置path ,第一次可请求,刷新页面id会消失 // 配置path,刷新页面id会保留 // html 取参 $route.params.id // script 取参 this.$route.params.id2.3 this.$router.replace() (用法同push)this.$router.go(n)向前或者向后跳转n个页面,n可为正整数或负整数区别:this.$router.push 跳转到指定url路径,并想history栈中添加一个记录,点击后退会返回到上一个页面this.$router.replace 跳转到指定url路径,但是history栈中不会有记录,点击返回会跳转到上上个页面 (就是直接替换了当前页面)this.$router.go(n) 向前或者向后跳转n个页面,n可为正整数或负整数
2022年03月18日
105 阅读
0 评论
0 点赞
2022-02-06
layui之树形组件使用
下载:https://gitee.com/kevin402502/layui-authtree演示:http://authtree.wj2015.com/教程:https://blog.csdn.net/weixin_37933545/article/details/101037358 《layui 扩展 authtree 无限级权限控制树》为前端页面引入layui树形组件第一步:为权限树提供容器注意:id="LAY-auth-tree-index" 是整颗树的容器,需要包含在 form.layui-form > div.layui-form-item > div.layui-input-block 中,否则依照 layui 的规则无法渲染多选框添加代码: <div class="layui-form-item"> <label class="layui-form-label">选择权限</label> <div class="layui-input-block"> <div id="LAY-auth-tree-index"></div> </div> </div>例子:<form class="layui-form"> <div class="layui-form-item"> <label class="layui-form-label">角色名称</label> <div class="layui-input-block"> <input class="layui-input" type="text" name="name" placeholder="请输入角色名称" /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">选择权限</label> <div class="layui-input-block"> <div id="LAY-auth-tree-index"></div> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" type="submit" lay-submit lay-filter="LAY-auth-tree-submit">提交</button> <button class="layui-btn layui-btn-primary" type="reset">重置</button> </div> </div> </form>第二步:下载源码并引入插件如果使用 layuiadmin,则只需要将插件(extends/authtree.js)放到 controller/下,然后 layui.use 即可,或者可以放在 lib/extend 中,只不过需要改 config.js非 layuiadmin 初始化如下:layui.config({ base: 'extends/', }).extend({ authtree: 'authtree', });第三步:异步获取权限数据并渲染render 传递的第一个参数,即为树的目标容器,这也是以后操作这颗树的重要标志listConvert 是 authtree 提供的内置函数,可以将普通的列表数据转换为 权限树需要的数据结构,如有此需求请查看该函数对应文档layui.use(['authtree', 'form', 'layer'], function(){ var $ = layui.$; var authtree = layui.authtree; var form = layui.form; var layer = layui.layer; // 一般来说,权限数据是异步传递过来的 $.ajax({ url: 'tree.json', dataType: 'json', success: function(res){ let trees = authtree.listConvert(res.data.list, { primaryKey: 'id' ,startPid: 0 ,parentKey: 'pid' ,nameKey: 'name' ,valueKey: 'id' ,checkedKey: res.data.checkedId ,disabledKey: res.data.disabledId }); // 如果后台返回的不是树结构,请使用 authtree.listConvert 转换 authtree.render('#LAY-auth-tree-index', trees, { layfilter: 'lay-check-auth', autowidth: true, }); } //监听提交 form.on('submit(saveBtn)', function (data) { let field = data.field field['menu_id'] = authtree.getChecked('#LAY-auth-tree-index') $.post('save',field,res => { if (res.status == 0) return layer.msg(res.msg) }) return false; }); });php后台无限分类的三种方式来自--https://blog.csdn.net/u012442504/article/details/107924836/** * @Description: 无限极分类一 * @Author: Yang * @param $data 数据库数据 * @param int $parent_id 父级ID * @return array */ function getTree1($data, $parent_id = 0) { $tree = array(); foreach ($data as $k => $v) { if ($v["parent_id"] == $parent_id) { unset($data[$k]); if (!empty($data)) { $children = getTree1($data, $v["id"]); if (!empty($children)) { $v["_child"] = $children; } } $tree[] = $v; } } return $tree; } /** * @Description: 无限极分类二 * @Author: Yang * @param $data 数据库数据 * @param int $parent_id 父级ID * @param int $level 等级 * @return array */ function getTree2($data, $parent_id = 0, $level = 0) { static $tree = array(); foreach ($data as $k => $v) { if ($v["parent_id"] == $parent_id) { $v["level"] = $level; $tree[] = $v; getTree2($data, $v["id"], $level + 1); } } return $tree; } /** * @Description: 无限分类三:面包屑导航 * @Author: Yang * @param $data 数据库数据 * @param $id 分类ID * @return array */ function getCrumbsBar($data, $id) { static $tree = array(); foreach ($data as $k => $v) { if ($v["id"] == $id) { getCrumbsBar($data, $v["parent_id"]); $tree[] = $v; } } return $tree; }附件:https://blog.csdn.net/weixin_43345943/article/details/97485813 《layui后台管理系统 - 权限树表格》https://blog.csdn.net/weixin_37933545/article/details/101037358 《layui 扩展 authtree 无限级权限控制树》https://blog.csdn.net/u012442504/article/details/107924836 《php后台无限分类的三种方式》
2022年02月06日
105 阅读
0 评论
0 点赞
2022-02-02
HTML5+Ajax上传文件
HTML部分input类型设为file:<label for="img_input"></label> <input id="img_input" type="file"/>如果想上传多文件,可添加multiple<input type="file" name="img" multiple="multiple" />用accept="MIME_type"限制提交的文件类型,用逗号隔开的 MIME 类型列表(服务器端也要最好类型检测双保险),如:<input type="file" accept="image/gif, image/jpeg" /> <input type="file" accept="image/*"/>获取文件内容JavaScript:var file = document.getElementById('fileToUpload').files[0];jQuery:var file = $("#img_input").prop("files")[0];实用案例:layui.use(['form'], function () { let form = layui.form, layer = layui.layer, $ = layui.$; //监听提交 form.on('submit(saveBtn)', function (data) { let field = data.field, form_data = new FormData(); for (let key in field) form_data.append(key, field[key]) form_data.append('video', $("#video_input").prop("files")[0]) $.ajax({ type: "POST", url: "save", dataType : "json", processData: false, // 注意:让jQuery不要处理数据 contentType: false, // 注意:让jQuery不要设置contentType data: form_data }).success(function(res) { if (res.status != 1) return layer.msg(res.msg) layer.msg(res.msg, () => { parent.layer.close(parent.layer.getFrameIndex(window.name)); }) }).fail(function(msg) { console.log(msg); }); return false; }); });参考文章:HTML5+Ajax上传文件《https://segmentfault.com/a/1190000004538728》html ajax 上传文件到服务器,Ajax文件异步上传,Html5实现 《https://blog.csdn.net/weixin_29698317/article/details/117876591》
2022年02月02日
114 阅读
0 评论
0 点赞
2021-10-26
小记一次本站从EM转移到Typecho
大概是半个月前,我就有了改变本站想法了。WP搭建的站点,给我的体验始终不是那么友好,尤其是进入后台。遇到了现在使用的JOE主题,我再也忍不住要转移到Typecho了。跟随主题作者的开发与测试,主题日渐成熟,功能也算是免费开源中最强大的了。Typecho的特点是轻快,但后端的体验也不太好,于是我花了一些时间做了一款后端美化插件WangStyle,搭配JOE主题算是圆满了。下面就本次转移做一点小记录,成长是要留痕迹的,不然随着年龄的增长容易忘记。准备工作1、有了想转移的想法后,我搜遍全网,刚开始还花了50元买了一套前端主题ArmxMod,又花了35元买了一套后端美化插件Apex,给我的反馈是后悔了。2、遇见了JOE这款开源免费的主题,作者很勤奋,刚开始日更不少于五次,慢慢的主题成熟稳定了,我也就下定了决心。3、从WP转移到Typecho,万事俱备时,我差点放弃了。原因是我用的云主机的数据库不支持远程连接,在安装Typecho配置时通不过。无奈啊,我只能通过本地安装的方式完成,然后打包上传源码,导入数据库。幸运的是成功了,这算是投机取巧吧。整理过程1、以前也经常转来转去的,所以积累了一点经验,本次的整理还算顺利吧。2、从WP导入的数据库,文件上传的路径是不同的,所以需要手动执行一次如下代码,目的是让文章中的图片或文件能正常显示。UPDATE typecho_contents SET text = REPLACE(text,'WP上传路径','Typecho上传路径');3、对应WP程序的创建页面的新建页面,预防搜索引擎收录丢失,以前是什么地址现在就要什么地址,所以这里还要设置伪静态,配置固定链接。以Apache为例,我的伪静态配置文件的内容是:<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteBase / RewriteRule . /index.php [L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>Typecho的永久固定链接设置是勾选其他,采用/{cid}.html的方式。必须插件1、后端美化插件WangStyle,技术太渣了,是折腾了好几天才弄出来的。2、评论邮件通知插件LoveKKComment3、数据导入插件WordpressToTypecho其他事项1、友联暂时未整理完。2、文章内容的排版估计也是乱的。3、感谢JOE主题作者的无私奉献。
2021年10月26日
199 阅读
0 评论
0 点赞
1
2