近期手上有个小程序项目,UI妹纸给的对话框效果图需要自定义,因为wx.showModal无法自定义内容,例如icon图标,字体大小之类的,只能自定义一个Modal组件。

下面是自定义组件的文件:

1. dialogModal.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

Component({
properties: {
// 模态框 显示/隐藏
modalHidden: {
type: Boolean,
value: false
}, //这里定义了modalHidden属性,属性值可以在组件使用时指定.写法为modal-hidden,
showCancel: {
type: Boolean,
value: true
},
// 模态框title标题
modalTitle: {
type: String,
value: '',
},
// 模态框msg内容
modalMsg: {
type: String,
value: ''
},
// 模态框状态 1.‘’;2.‘success’;3.‘error’
modalType: {
type: String,
value: ''
}
},
methods: {
// 防止事件冒泡,阻止page滚动事件
moveD: () => { },
// modal取消点击事件
modal_cancel: function () {
// 隐藏模态框
this.setData({
modalHidden: true,
})
},
// modal确认点击事件
modal_confirm: function (e) {
this.modal_cancel();
var eventDetail = {} // detail对象,提供给事件监听函数
var eventOption = {} // 触发事件的选项
this.triggerEvent('handleConfirm');
}
}
})
阅读全文 »

在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。 – 维基百科

函数柯里化的好处在于:

  • 函数复用,提高适用性
  • 延迟执行

1.函数复用:

阅读全文 »

flex-grow、flex-shrink、flex-basis这三个属性的作用是:在flex布局中,父元素在不同宽度下,子元素是如何分配父元素的空间的。

flex-basis

该属性来设置该元素的宽度。
当然,width也可以用来设置元素宽度。如果元素上同时设置了width和flex-basis,那么flex-basis会覆盖width的值。他的默认值为auto

flex-grow

该属性来设置,当父元素的宽度大于所有子元素的宽度的和时(即父元素会有剩余空间),子元素如何分配父元素的剩余空间。默认值为0

阅读全文 »

Vue构建的大多是SPA单页面应用,但有时候在实际项目中单页面应用并不一定符合业务需求

准备工作

利用vue-cli新建项目,再执行npm install命令安装所需依赖,之后需安装新依赖glob

1
npm install --save-dev glob

修改webpack配置

阅读全文 »

后台一直都是密码登录,简直枯燥的没朋友,看见小伙伴的博客设置的是扫描二维码登录,然后请教了一番加上自己的理解,实现了小程序配合扫码登录后台

首先是要理解扫码登录的逻辑,在我看来扫码的小程序就是superadmin,扫码就能实现后台的token生成,保存到redis,发放给前端页面,所以小程序的权限设置是很重要的,这里单独新增一个表:tp_wx,存放微信账号的唯一标识,可读可写:

OPEN_ID字段就是小程序里 wx.login 方法的返回值,用户唯一标识,

阅读全文 »

  1. 小程序刚出来的时候使用过,当时炒的很火的小程序,不去试试水怎么可以,不过当时不对个人开发者开放,后来小程序对个人开发者开放后修改了部分代码并发布

  2. 当时博客前端代码是用jQuery的js框架,bootstrap的css框架,requireJS的模块化引入工具写的,后台代码由ThinkPHP3.2 + Mysql实现.

  3. 小程序需要网站HTTPS化,正好服务器是阿里云的就直接申请了证书实现了网站的SSL.

阅读全文 »

开发环境配置websocket踢人操作已实现,可上传到生产环境却出错了,
出错的原因是生产环境使用的是https,报错如下:

百度了半天找到结局方法是websocket也用SSL协议,即wss,
html页面上的ws

1
var ws = new WebSocket('ws://blog.mrabit.com');

需要替换成wss:

1
var ws = new WebSocket('wss://blog.mrabit.com');
阅读全文 »

1. 下载pm2:

1
cnpm install -g pm2

2. pm2启动项目:

1
2
3
4
5
6
# 启动项目
pm2 start /usr/share/nginx/vue-blog/src/server/bin/www
# 保存当前进程状态
pm2 save
# 生成开机自启动服务
pm2 startup
阅读全文 »
0%