首页
统计
赞助
留言
关于
更多
友链
壁纸
直播
Search
1
Joe — 一款个人类型Typecho主题
32,199 阅读
2
Joe开源目录程序系统
11,868 阅读
3
Typecho自定义后台编辑器功能
8,274 阅读
4
Joe主题实现自动更新
7,527 阅读
5
Joe主题自定义搭配色教程
4,435 阅读
WEB前端
CSS
React
Vue 2.0
Vue 3.0
JavaScript
TypeScript
Typecho
小程序
苹果CMS
其他
生活
登录
Search
https://78.al
累计撰写
76
篇文章
累计收到
3,727
条评论
首页
栏目
WEB前端
CSS
React
Vue 2.0
Vue 3.0
JavaScript
TypeScript
Typecho
小程序
苹果CMS
其他
生活
页面
统计
赞助
留言
关于
友链
壁纸
直播
搜索到
55
篇与
WEB前端
的结果
2021-02-20
Vue限制输入框内容只能输入金额或数字
<template> <input @input="formatValue(value)" v-model="value"> </template> <script> export default = { data(){ return { value: "" } }, methods:{ // 只允许输入数字,其他一律不允许输入 formatValue(val){ this.value = this.value.replace(/[^\d]/g, "") }, // 只允许输入金额类型,最大两位小数(如:3.88) formatValue(val){ val = val.replace(/(^\s*)|(\s*$)/g, ""); if (!val) return this.value = ""; val = val.replace(/[^\d.]/g, ""); val = val.replace(/^\./g, ""); val = val .replace(".", "$#$") .replace(/\./g, "") .replace("$#$", "."); val = val.replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); this.value = val; }, } } </script>
2021年02月20日
661 阅读
5 评论
2 点赞
2021-02-13
JS通过解构或Object.assign去合并2个对象
在封装插件的时候,经常会碰到传入参数和默认参数的问题,如果调用者没有传递参数,那么使用插件的内置属性,如果传递了,那么就设置成传递的参数,例如:这是一个弹窗插件class Dialog { constructor(options = {}) { // 插件的默认配置 const defaultOption = { title: "提示", size: "small", show: false } for (let key in options) { defaultOption[key] = options[key] } } } new Dialog({ title: '标题', size: 'mini' })传统的会使用上面的for循环,然后将默认参数里的参数替换掉,在ES6出来后,上面的写法就可以改成下面的简写第一种方式class Dialog { constructor(options = {}) { // 插件的默认配置 const defaultOption = { title: "提示", size: "small", show: false, // 通过展开运算符 ...options } } }第二种方式class Dialog { constructor(options = {}) { // 插件的默认配置 const defaultOption = { title: "提示", size: "small", show: false } // 通过Object.assign方法 const newOption = Object.assign(defaultOption, options) } }
2021年02月13日
440 阅读
0 评论
6 点赞
2021-02-08
Vue面包屑导航实现方案
例如想实现一个 首页 / 项目列表 / 我的项目 这样的面包屑1、首先在路由js文件里写上面包屑对应的名称router.jsexport default [ { path: "/", children: [ { path: "/todoList", component: TodoList, name: "todoList" meta: { breadName: "项目列表" } }, { path: "/todoList/mylist", component: MyList, name: "mylist" meta: { breadName: "我的项目" } }, ] } ]2、编写面包屑组件<template> <a-breadcrumb class="breadcrumb"> <a-breadcrumb-item v-for="(breadcrumb, index) in breadcrumbList" :key="index"> {{breadcrumb.meta.breadName}} </a-breadcrumb-item> </a-breadcrumb> </template> <script> export default { computed: { breadcrumbList () { // 先定义一个变量 用于存放计算出来的导航数组 let breadArr = [] // 获取当前页面的路由, 并将路由字符串截取第一个/, 然后组成数组 let path = this.$route.path.substr(1).split("/") // >>> ["todoList", mylist] // 获取所有页面的路由地址,通过this.$router.options拿到, 具体样子可以打印看看 const allRouter = this.$router.options.routes[0].children // 然后循环allRouter找到里面中符合的path的2个,将他们存起来 allRouter.forEach(_ => { // 判断path的每一项是否有allRouter里的某项 if (path.some(_item => _item === _.name)) { breadArr.push(_) } }) console.log(breadArr) // 打印下看看数据是否正确, 如果为两项, 并且每项里面都有meta内容, 则正确 // 因为这个数组里是没有 首页 这一项的, 我们自己手动添加一个就好, 此时用到unshift breadArr.unshift({ path: "/", meta: { breadName: "首页" } }) // 最后computed 需要return出去, return出去这个数组就好了 return breadArr } } } </script>
2021年02月08日
528 阅读
0 评论
7 点赞
2021-02-08
Vue中导出表格插件,简单实用
安装插件npm install --save xlsx在项目中使用插件<template> <div @click="exportExcel">开始导出</div> </template> <script> import XLSX from 'xlsx' export default { methods: { /* 点击导出表格事件 */ exportExcel(){ /* 假设这是后端返回的数据 */ let data = [{ itemId: 111, title: "ces", link: "aaaa" }, ....] /* 将数据重新格式化下 */ let newData = this.filterXlsx(data) console.log(newData) /* 新建空workbook,然后加入worksheet */ let ws = XLSX.utils.json_to_sheet(data) // 设置每列的宽度, 第几个对象代表第几列 ws['!cols'] = [ { 'wch': 15 }, { 'wch': 50 } ] /* 新建book */ let wb = XLSX.utils.book_new() /* 生成xlsx文件(book,sheet数据,sheet命名) */ XLSX.utils.book_append_sheet(wb, ws, '商品监控页汇总数据导出') /* 写文件(book,xlsx文件名称) */ XLSX.writeFile(wb, '商品监控页汇总数据表.xlsx') } /* 导出表格的数据 */ filterXlsx(data) { let xlsxData = [] data.forEach(item => { xlsxData.push({ 商品ID: item.itemId, 商品名称: item.title, 商品链接: item.link, }) }) return xlsxData }, } } </script>
2021年02月08日
249 阅读
0 评论
3 点赞
JS唤醒win10消息通知
2021年02月08日
443 阅读
1 评论
9 点赞
2021-02-08
// 判断浏览器是否支持唤醒 if (window.Notification) { let popNotice = () => { if (!Notification.permission === 'granted') return const notification = new Notification('阿巴阿巴', { body: '提示提示提示' }) // 点击通知的回调函数 notification.onclick = function () { window.open('https://baidu.com') notification.close() } } /* 授权过通知 */ if (Notification.permission === 'granted') { popNotice() } else { /* 未授权,先询问授权 */ Notification.requestPermission(function (permission) { popNotice() }) } }{message type="success" content="如果是WIN10系统的话,可以直接将上面代码复制到F12控制台运行"/}
2021-02-07
ElementUI表格不调用后端接口实现分页功能
<!-- 主要是使用slice对数组进行切割 --> <el-table border :data="itemList.slice((currentPage - 1) * pageSize, currentPage * pageSize)"> .... </el-table> <script> data() { return { // 所有的数据列表 itemList: [....], // 当前页码 currentPage: 1, // 分页尺寸 pageSize: 10, // 分页总数 pageTotal: 30 } } </script>
2021年02月07日
327 阅读
2 评论
10 点赞
2021-01-01
Css设置单行文本多行文本溢出隐藏并以省略号显示
单行文本溢出white-space: nowrap; text-overflow: ellipsis; overflow: hidden;两行溢出display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis;
2021年01月01日
591 阅读
2 评论
3 点赞
1
...
4
5