[Top] angular - 仿github - NgResume

  • 前端框架 angular+layui
  • 后端框架 thinkphp3.2
  • 数据库 mysql
  • 测试账户密码都是 test
  • 本来想做了一个简单的简历展示系统,做着做着感觉做成博客了,前台页面风格仿照 github,后台页面风格仿照 typecho 。
  • 未做移动端兼容,懒,不想做了。
  • 登录后可查看页面信息,测试账号无任何修改权限。
  • 文章编辑使用了 Markdown 编辑器 editor.md 。
  • 分页使用的 tm.pagination 。

  翻  牌  子

[Top] 小程序 - xiaowiba

前言

是的!xiaowiba 小程序版 先已震撼发布!
功能什么的很简单,就是展示博客文章内容。边学边做,无聊的时候写点。
写起来感觉和 vue 好像。
大概 5 天时间搞了出来并通过审核发布,兼职前端的我表示页面样式未来一定会慢慢优化的。
哈哈~

20180831 V1.0.1

  • 展示标签为xcx的文章
  • 展示关于我页面
  • 上拉刷新,下拉加载更多
  • 使用Towxml解析文章详情页面

MUI - 动态生成多个picker

html

<div class="form-picker-container"
 id="a"
 data-layer="1"
 data-setData='[{"value":"加重","text":"加重"},{"value":"减轻","text":"减轻"},{"value":"无变化","text":"无变化"}]'>
 <span>请选择</span>
</div>

  翻  牌  子

《新喜剧之王》、《流浪地球》满分

“你觉得你有机会吗?”
“我有。”
“你永远都没有!”
“永远是多远啊?”
“永远就是从现在直到宇宙毁灭!懂了吗?”
“噢……我知道了”
“那你现在决定怎么办?”
“我还是回家耕地吧……”
“你这样是不可以的,你不用管我说什么,继续努力,你一定会成功的!”
——《新喜剧之王》


“北京市交通第三区提醒您”
“道路千万条”
“安全第一条”
“开车不规范”
“亲人两行泪”
——《流浪地球》

git - 分支

git branch
git status
git checkout -b re-v1.0.1
git branch
git push origin re-v1.0.1:re-v1.0.1
git push origin --delete re-v1.0.1

git常用命令

gitea

博客服务器快到期了,续费了几年,忽然发现阿里云在搞活动。(这不是个广告)
1年1核1G的ecs只要293,果断买了一台。
既然又闲置了一台服务器,那么用它来干吗呢。
可以自己搭建VPN,但是服务器是阿里云的,GG
可以搞个挖矿机,但是&%¥#,GG
可以挂点广告,有点浪费,GG
可以搞个色情网站,但是
&%¥#,GG
可以再搞个博客网站,累了,不折腾了,GG
要不搞个代码托管工具吧,OK,开搞。

  翻  牌  子

JS - 解决图片压缩 + IOS下拍照图片翻转问题

核心代码

var file = document.getElementById('#file');
//获取的图片文件
var fileList = file.files;
/**************************************************************************************************/
// 压缩图片需要的一些元素和对象
var reader = new FileReader();
var img = new Image();
// 缩放图片需要的canvas
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
//图片大小
var fileSize = fileList[0].size;
reader.readAsDataURL(fileList[0]);
reader.onload = function(e) {
    //e.target.result就是图片的base64地址信息
    img.src = e.target.result;
};
img.onload = function(e) {
    EXIF.getData(img, function() {
        var Orientation = EXIF.getTag(this, 'Orientation');
        console.log('方向:' + Orientation);
        console.log('大小:' + fileSize/(1024*1024));
        var wph = (img.height*1)/(img.width*1);
        var hpw = wph.toFixed(2)*1;
        var square = 700;   //定义画布的大小,也就是图片压缩之后的像素
        var imageWidth = 0;    //压缩图片的大小
        var imageHeight = 0;
        var offsetX = 0;
        var offsetY = 0;
        var hsquare = Math.ceil(square*hpw);
        var u = navigator.userAgent;
        var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
        if(isiOS){
            if(Orientation === 6){
                canvas.width = hsquare;
                canvas.height = square;
                context.clearRect(0, 0, hsquare, square);
            }else if(Orientation === 8){
                canvas.width = hsquare;
                canvas.height = square;
            }else{
                canvas.width = square;
                canvas.height = hsquare;
                context.clearRect(0, 0, square, hsquare);
            }
        }else{
            canvas.width = square;
            canvas.height = hsquare;
            context.clearRect(0, 0, square, hsquare);
        }
        if(isiOS){
            var degree;
            switch(Orientation){
                case 3:
                    degree = 180;
                    imageWidth = -square;
                    imageHeight = -hsquare;
                    break;
                case 6:
                    degree = 90;
                    imageWidth = square;
                    imageHeight = -hsquare;
                    break;
                case 8:
                    degree = 270;
                    imageWidth = -square;
                    imageHeight = hsquare;
                    break;
                default:
                    degree = 0;
                    imageWidth = square;
                    imageHeight = hsquare;
            }
            context.rotate(degree * Math.PI / 180.0);
        }else{
            if (img.width > img.height) {
                imageWidth = square;
                imageHeight = hsquare;
                offsetX = - Math.round((imageWidth - square) / 2);
            } else {
                imageHeight = hsquare;
                imageWidth = square;
                offsetY = - Math.round((imageHeight - hsquare) / 2);
            }
        }
        context.drawImage(this, offsetX, offsetY, imageWidth, imageHeight);
        //压缩处理得到的base64
        var blob = canvas.toDataURL('image/jpeg', 1.0);
        //base64转blob
        var blobs = toBlob(blob);
    });
});
//base64转blob
function toBlob(urlData) {
    var bytes = window.atob(urlData.split(',')[1]);
    // 去掉url的头,并转换为byte
    // 处理异常,将ascii码小于0的转换为大于0
    var ab = new ArrayBuffer(bytes.length);
    var ia = new Uint8Array(ab);
    for (var i = 0; i < bytes.length; i++) {
        ia[i] = bytes.charCodeAt(i);
    }
    return new Blob([ab],{type : 'image/jpeg'});
}

  翻  牌  子