From 9fc2eb0ae37415f07d4006c1e8eb262090ff522a Mon Sep 17 00:00:00 2001 From: zhengxinonly Date: Tue, 24 May 2022 18:53:37 +0800 Subject: [PATCH] =?UTF-8?q?style(jinja2):=E4=BF=AE=E6=94=B9=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=9A=84=E5=A4=8D=E7=94=A8=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/admin/base.html | 48 -- templates/admin/common/footer.html | 14 +- templates/admin/department/dept.html | 453 +++++++++-------- templates/admin/department/dept_add.html | 227 +++++---- templates/admin/department/dept_edit.html | 227 ++++----- templates/admin/file/photo.html | 501 +++++++++--------- templates/admin/file/photo_add.html | 107 ++-- templates/admin/logs_temp/main.html | 137 ++--- templates/admin/rights/rights.html | 547 ++++++++++---------- templates/admin/rights/rights_add.html | 299 +++++------ templates/admin/rights/rights_edit.html | 361 ++++++------- templates/admin/roles/roles.html | 460 ++++++++--------- templates/admin/roles/roles_add.html | 159 +++--- templates/admin/roles/roles_edit.html | 176 +++---- templates/admin/roles/roles_power.html | 142 +++--- templates/admin/users/profile.html | 539 ++++++++++---------- templates/admin/users/profile_avatar.html | 232 ++++----- templates/admin/users/users.html | 593 +++++++++++----------- templates/admin/users/users_add.html | 168 +++--- templates/admin/users/users_edit.html | 207 ++++---- templates/index/admin_index.html | 46 +- templates/index/index.html | 14 +- templates/index/login.html | 72 +-- templates/index/welcome.html | 188 +++---- 24 files changed, 2954 insertions(+), 2963 deletions(-) delete mode 100644 templates/admin/base.html diff --git a/templates/admin/base.html b/templates/admin/base.html deleted file mode 100644 index 49ade2e..0000000 --- a/templates/admin/base.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - {#页面标题#} - {% block title %} - Pear Admin Flask - {% endblock %} - - - - - {# 头部导入的 Script,主要为样式 #} - {% block header_script %} - - {% endblock %} - -{#pear 后台边框#} - - -{#页面的主题内容,用于页面进行改写#} -{% block body %} - -{% endblock %} - -{# 当前页面需要依赖的 JavaScript #} -{% block footer_script %} - - - - -{% endblock %} -{# 当前页面自己编写的 JavaScript #} -{% block models_script %} -{% endblock %} - - \ No newline at end of file diff --git a/templates/admin/common/footer.html b/templates/admin/common/footer.html index 95923d4..abf3d53 100644 --- a/templates/admin/common/footer.html +++ b/templates/admin/common/footer.html @@ -1,2 +1,14 @@ - \ No newline at end of file + + \ No newline at end of file diff --git a/templates/admin/department/dept.html b/templates/admin/department/dept.html index 14cbce1..244cdf7 100644 --- a/templates/admin/department/dept.html +++ b/templates/admin/department/dept.html @@ -1,249 +1,254 @@ -{% extends 'admin/base.html' %} -{% block title %} + + + 部门新增 -{% endblock %} - - -{% block body %} - {#搜索框布局#} -
-
-
-
- -
- {#部门信息搜索字段#} - -
- {#查询按钮--需要触发layui事件#} - - {#重置按钮#} - + {% include 'admin/common/header.html' %} + +{#搜索框布局#} +
+
+ +
+ +
+ {#部门信息搜索字段#} +
- -
+ {#查询按钮--需要触发layui事件#} + + {#重置按钮#} + +
+
-
-
- {#表格字段渲染#} -
-
+
+
+
+ {#表格字段渲染#} +
-{% endblock %} +
-{% block models_script %} - {#表格工具栏,需要在表格中绑定,且需要自定义事件#} - - {#操作字段,需要在表格中使用#} - - {#表格内的切换按钮#} - + {% endif %} + +{#操作字段,需要在表格中使用#} + +{#表格内的切换按钮#} + - + + - /*切换选择状态*/ - form.on('switch(dept_enable)', function (obj) { - let operate - if (obj.elem.checked) { - operate = 1 - } else { - operate = 0 - } - let loading = layer.load() - $.ajax({ - url: '/api/v1/dept/department/' + this.value + '/status', - data: JSON.stringify({ deptId: this.value, operate: operate }), - dataType: 'json', - contentType: 'application/json', - type: 'put', - success: function (result) { - layer.close(loading) - if (result.success) { - popup.success(result.message) - } else { - popup.failure(result.message) - } - }, - }) - }) - window.toolbar_add = function () { - layer.open({ - type: 2, - title: '新增', - shade: 0.1, - area: ['450px', '500px'], /*新增窗口的大小*/ - content: '/dept/add', /*新增窗口从那里来*/ - }) - } - window.tool_edit = function (obj) { - layer.open({ - type: 2, - title: '修改', - shade: 0.1, - area: ['450px', '500px'], - content: MODULE_PATH + 'edit?deptId=' + obj.data['deptId'], /*编辑修改窗口从那里来*/ - }) - } - window.tool_remove = function (obj) { - layer.confirm('确定要删除该部门', { icon: 3, title: '提示' }, function (index) { - layer.close(index) - let loading = layer.load() - $.ajax({ - url: '/api/v1/dept/department/' + obj.data['deptId'], - dataType: 'json', - type: 'delete', - success: function (result) { - layer.close(loading) - if (result.success) { - popup.success(result.message, function () { - obj.del() - }) - } else { - popup.failure(result.message) - } - }, - }) - }) - } - }) - -{% endblock %} diff --git a/templates/admin/department/dept_add.html b/templates/admin/department/dept_add.html index b40cf1e..9ced9d8 100644 --- a/templates/admin/department/dept_add.html +++ b/templates/admin/department/dept_add.html @@ -1,127 +1,130 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 部门管理 -{% endblock %} - - -{% block body %} -
-
-
-
- -
-
    -
    + 部门新增 + + + + + {% include 'admin/common/header.html' %} + + +
    +
    +
    + +
    +
      -
      - -
      - -
      +
      +
      + +
      +
      -
      - -
      - -
      +
      +
      + +
      +
      -
      - -
      - -
      +
      +
      + +
      +
      -
      - -
      - -
      +
      +
      + +
      +
      -
      - -
      - - -
      +
      +
      + +
      + +
      -
      - -
      - -
      +
      +
      + +
      +
      -
      - -
      - -
      +
      +
      + +
      +
      -
      -
      - - -
      +
      +
      +
      + +
      - -{% endblock %} +
      + -{% block models_script %} - -{% endblock %} \ No newline at end of file + /*添加数据 表单组件,提交按钮之后触发的事件*/ + form.on('submit(dept-save)', function(data) { + $.ajax({ + url: '/api/v1/dept/department/', + data: JSON.stringify(data.field), + dataType: 'json', + contentType: 'application/json', + type: 'post', + success: function(result) { + if (result.success) { + layer.msg(result.message, {icon: 1, time: 1000}, function() { + parent.layer.close(parent.layer.getFrameIndex(window.name)); + parent.render(); + }); + } else { + layer.msg(result.message, {icon: 2, time: 1000}); + } + }, + }); + return false; + }); + }); + + + diff --git a/templates/admin/department/dept_edit.html b/templates/admin/department/dept_edit.html index b8c56f0..844d89f 100644 --- a/templates/admin/department/dept_edit.html +++ b/templates/admin/department/dept_edit.html @@ -1,127 +1,124 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 部门修改 -{% endblock %} + {% include 'admin/common/header.html' %} + + +
      +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + - -{% block body %} - -
      -
      -
      - -
      - -
      +
      -
      - -
      - -
      +
      +
      + +
      +
      -
      - -
      - -
      -
      -
      - -
      - -
      -
      -
      - -
      - -
      -
      -
      - -
      - - - -
      -
      -
      - -
      - -
      -
      -
      - -
      +
      +
      + +
      -
      -
      -
      - - -
      +
      +
      +
      + +
      - -{% endblock %} +
      + +{% include 'admin/common/footer.html' %} + -{% endblock %} + // 修改数据 当点击更新之后,获取数据 + form.on('submit(dept-update)', function(data) { + $.ajax({ + url: '/api/v1/dept/department/' + data.field.deptId, + data: JSON.stringify(data.field), + dataType: 'json', + contentType: 'application/json', + type: 'put', + success: function(result) { + if (result.success) { + layer.msg(result.message, {icon: 1, time: 1000}, function() { + parent.layer.close(parent.layer.getFrameIndex(window.name));//关闭当前页 + parent.render(); + }); + } else { + layer.msg(result.message, {icon: 2, time: 1000}); + } + }, + }); + return false; + }); + }); + + + diff --git a/templates/admin/file/photo.html b/templates/admin/file/photo.html index 6caedaa..9e9aec9 100644 --- a/templates/admin/file/photo.html +++ b/templates/admin/file/photo.html @@ -1,266 +1,267 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 图片上传 -{% endblock %} + {% include 'admin/common/header.html' %} + -{% block body %} -
      -
      -
      -
      + +
      +
      +
      -{% endblock %} +
      -{% block models_script %} - - - + + -{% endblock %} \ No newline at end of file + }); + + + diff --git a/templates/admin/file/photo_add.html b/templates/admin/file/photo_add.html index 14f33c1..4887d34 100644 --- a/templates/admin/file/photo_add.html +++ b/templates/admin/file/photo_add.html @@ -1,59 +1,58 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 新增图片 -{% endblock %} - -{% block body %} -
      -
      -
      -
      -
      - 新增图片 -
      -
      -
      - - - -
      -
      -
      + {% include 'admin/common/header.html' %} + + +
      +
      +
      +
      +
      + 新增图片 +
      +
      +
      + + + +
      +
      -{% endblock %} +
      - -{% block models_script %} - -{% endblock %} \ No newline at end of file +{% include 'admin/common/footer.html' %} + + + diff --git a/templates/admin/logs_temp/main.html b/templates/admin/logs_temp/main.html index b1d2e97..1086d4a 100644 --- a/templates/admin/logs_temp/main.html +++ b/templates/admin/logs_temp/main.html @@ -1,84 +1,85 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 日志 + {% include 'admin/common/header.html' %} -{% endblock %} + + - -{% block body %} -
      -
      -
      -
        -
      • 登录日志
      • -
      • 访问日志
      • -
      -
      -
      -
      -
      -
      -
      -
      +
      +
      +
      +
        +
      • 登录日志
      • +
      • 访问日志
      • +
      +
      +
      +
      +
      +
      +
      -{% endblock %} +
      -{% block models_script %} - - + + + -{% endblock %} \ No newline at end of file + table.render({ + parseData: parserTableData, + elem: '#log-login-table', + url: MODULE_PATH + 'login_log', + page: true, + cols: get_columns(), + skin: 'line', + toolbar: false, + }); + }); + + + diff --git a/templates/admin/rights/rights.html b/templates/admin/rights/rights.html index c052e6b..b093ce9 100644 --- a/templates/admin/rights/rights.html +++ b/templates/admin/rights/rights.html @@ -1,283 +1,282 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 权限 -{% endblock %} - - -{% block body %} -
      -
      -
      -
      - -
      - -
      - - + {% include 'admin/common/header.html' %} + + +
      +
      + +
      + +
      +
      - -
      + + +
      +
      -
      -
      -
      -
      +
      +
      +
      +
      -{% endblock %} +
      -{% block models_script %} - - - + + -{% endblock %} + }, + { + field: 'enable', title: '是否可用', templet: (d) => { + // TODO 修改禁用启动逻辑 + return ``; + }, + }, + {field: 'sort', title: '排序'}, + {title: '操作', templet: '#tool', width: 150, align: 'center'}, + ], + ]; + + treetable.render({ + treeColIndex: 1, + treeSpid: 0, + treeIdName: 'powerId', + treePidName: 'parentId', + skin: 'line', + method: 'post', + treeDefaultClose: true, + toolbar: '#toolbar', + elem: '#tables', + url: '/api/v1/rights/rights', + page: false, + cols: get_columns(), + }); + + form.on('submit(power_query)', function(data) { + var keyword = data.field.powerName; + var $tds = $('#tables').next('.treeTable').find('.layui-table-body tbody tr td'); + if (!keyword) { + $tds.css('background-color', 'transparent'); + layer.msg('请输入关键字', {icon: 5}); + return; + } + var searchCount = 0; + $tds.each(function() { + $(this).css('background-color', 'transparent'); + if ($(this).text().indexOf(keyword) >= 0) { + $(this).css('background-color', 'rgba(250,230,160,0.5)'); + if (searchCount === 0) { + $('body,html').stop(true); + $('body,html').animate({scrollTop: $(this).offset().top - 150}, 500); + } + searchCount++; + } + }); + if (searchCount === 0) { + layer.msg('没有匹配结果', {icon: 5}); + } else { + treetable.expandAll('#tables'); + } + return false; + }); + + table.on('tool(tables)', function(obj) { + if (obj.event === 'tool-remove') { + window.tool_remove(obj); + } else if (obj.event === 'tool-edit') { + window.tool_edit(obj); + } + }); + + table.on('toolbar(tables)', function(obj) { + if (obj.event === 'toolbar-add') { + window.toolbar_add(); + } else if (obj.event === 'refresh') { + window.refresh(); + } else if (obj.event === 'toolbar-remove') { + window.toolbar_remove(obj); + } + }); + + form.on('switch(tool-switch)', function(obj) { + let operate; + if (obj.elem.checked) { + operate = 1; /*启用*/ + } else { + operate = 0; /*禁用*/ + } + let loading = layer.load(); + $.ajax({ + url: '/api/v1/rights/power/' + this.value + '/status', + data: JSON.stringify({powerId: this.value, operate: operate}), + dataType: 'json', + contentType: 'application/json', + type: 'put', + success: function(result) { + layer.close(loading); + if (result.success) { + popup.success(result.message); + } else { + popup.failure(result.message); + } + }, + }); + }); + + window.toolbar_add = function() { + layer.open({ + type: 2, + title: '新增', + shade: 0.1, + area: ['450px', '500px'], + content: '/rights/add', + }); + }; + + window.tool_edit = function(obj) { + layer.open({ + type: 2, + title: '修改', + shade: 0.1, + area: ['450px', '500px'], + content: '/rights/power/' + obj.data['powerId'], + }); + }; + window.tool_remove = function(obj) { + layer.confirm('确定要删除该权限', {icon: 3, title: '提示'}, function(index) { + layer.close(index); + let loading = layer.load(); + $.ajax({ + url: '/api/v1/rights/power/' + obj.data['powerId'], + dataType: 'json', + type: 'delete', + success: function(result) { + layer.close(loading); + if (result.success) { + popup.success(result.message, function() { + console.log(obj); + obj.del(); + }); + } else { + popup.failure(result.message); + } + }, + }); + }); + }; + + window.toolbar_remove = function(obj) { + let data = table.checkStatus(obj.config.id).data; + if (data.length === 0) { + layer.msg('未选中数据', { + icon: 3, + time: 1000, + }); + return false; + } + var ids = []; + var hasCheck = table.checkStatus('tables'); + var hasCheckData = hasCheck.data; + if (hasCheckData.length > 0) { + $.each(hasCheckData, function(index, element) { + ids.push(element.id); + }); + } + layer.confirm('确定要删除选中权限', { + icon: 3, + title: '提示', + }, function(index) { + layer.close(index); + let loading = layer.load(); + $.ajax({ + url: '/api/v1/rights/rights', + data: {ids: ids}, + dataType: 'json', + type: 'delete', + success: function(result) { + layer.close(loading); + if (result.success) { + popup.success(result.msg, function() { + console.log(obj); + obj.del(); + }); + } else { + popup.failure(result.msg); + } + }, + }); + }); + }; + + iconPicker.render({ + // 选择器,推荐使用input + elem: '#add_icon', + // 数据类型:fontClass/unicode,推荐使用fontClass + type: 'fontClass', + // 是否开启搜索:true/false + search: true, + // 是否开启分页 + page: true, + // 每页显示数量,默认12 + limit: 12, + // 点击回调 + click: function(data) { + console.log(data); + }, + }); + }); + + + \ No newline at end of file diff --git a/templates/admin/rights/rights_add.html b/templates/admin/rights/rights_add.html index 4b7169b..c6846b0 100644 --- a/templates/admin/rights/rights_add.html +++ b/templates/admin/rights/rights_add.html @@ -1,170 +1,171 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 权限 -{% endblock %} - -{% block body %} -
      -
      + {% include 'admin/common/header.html' %} + + + +
      +
      -
      -
      - -
      -
        -
        +
        + +
        +
          -
          - -
          - -
          +
          +
          + +
          +
          -
          - -
          - -
          +
          +
          + +
          +
          -
          - -
          - - - -
          +
          +
          + +
          + + +
          -
          - -
          - -
          +
          +
          + +
          +
          -
          - -
          - -
          +
          +
          + +
          +
          -
          - -
          - -
          +
          +
          + +
          +
          -
          - -
          - -
          +
          +
          + +
          +
          -
          -
          - - -
          +
          +
          +
          + +
          - -{% endblock %} +
          + -{% block models_script %} - + + - iconPicker.render({ - // 选择器,推荐使用input - elem: '#icon', - // 数据类型:fontClass/unicode,推荐使用fontClass - type: 'fontClass', - // 是否开启搜索:true/false - search: true, - // 是否开启分页 - page: true, - // 每页显示数量,默认12 - limit: 12, - // 点击回调 - click: function (data) { - console.log(data) - }, - }) - }) - -{% endblock %} \ No newline at end of file diff --git a/templates/admin/rights/rights_edit.html b/templates/admin/rights/rights_edit.html index c5b10d5..cf6dfe3 100644 --- a/templates/admin/rights/rights_edit.html +++ b/templates/admin/rights/rights_edit.html @@ -1,203 +1,204 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 权限编辑 -{% endblock %} + {% include 'admin/common/header.html' %} + + -{% block body %} -
          -
          -
          -
          - -
          - -
          + +
          +
          +
          + +
          +
          -
          - -
          -
            -
            +
            +
            + +
            +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              - - - -
              +
              +
              + +
              + + +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              -
              - - -
              +
              +
              +
              + +
              - +
              + -{% endblock %} -{% block models_script %} - -{% endblock %} \ No newline at end of file + window.init("{{ power.type }}"); + }); + + + \ No newline at end of file diff --git a/templates/admin/roles/roles.html b/templates/admin/roles/roles.html index 8b69edc..aebf9ce 100644 --- a/templates/admin/roles/roles.html +++ b/templates/admin/roles/roles.html @@ -1,252 +1,254 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 角色管理 -{% endblock %} + {% include 'admin/common/header.html' %} + -{% block body %} -
              -
              -
              -
              - -
              - -
              - -
              - -
              - - + +
              +
              + +
              + +
              +
              - -
              + +
              + +
              + + +
              +
              -
              -
              -
              -
              +
              +
              +
              +
              -{% endblock %} +
              -{% block models_script %} - - - - + + + + + - }) - -{% endblock %} \ No newline at end of file diff --git a/templates/admin/roles/roles_add.html b/templates/admin/roles/roles_add.html index f4a3754..d15b4b3 100644 --- a/templates/admin/roles/roles_add.html +++ b/templates/admin/roles/roles_add.html @@ -1,91 +1,94 @@ -{% extends 'admin/base.html' %} -{% block title %} + + + 角色新增 -{% endblock %} + {% include 'admin/common/header.html' %} + -{% block body %} -
              -
              -
              -
              - -
              - -
              + + +
              +
              +
              + +
              +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              - - -
              +
              +
              + +
              + +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              -
              - - -
              +
              +
              +
              + +
              - -{% endblock %} +
              + -{% block models_script %} - + + - form.on('submit(role-save)', function (data) { - $.ajax({ - url: '/api/v1/roles/role/', - data: JSON.stringify(data.field), - dataType: 'json', - contentType: 'application/json', - type: 'post', - success: function (result) { - if (result.success) { - layer.msg(result.message, { icon: 1, time: 1000 }, function () { - parent.layer.close(parent.layer.getFrameIndex(window.name))//关闭当前页 - parent.layui.table.reload('tables') - }) - } else { - layer.msg(result.message, { icon: 2, time: 1000 }) - } - }, - }) - return false - }) - }) - -{% endblock %} \ No newline at end of file diff --git a/templates/admin/roles/roles_edit.html b/templates/admin/roles/roles_edit.html index a7709f9..9b33f7f 100644 --- a/templates/admin/roles/roles_edit.html +++ b/templates/admin/roles/roles_edit.html @@ -1,104 +1,104 @@ -{% extends 'admin/base.html' %} -{% block title %} + + + 角色编辑 -{% endblock %} - -{% block body %} -
              -
              + {% include 'admin/common/header.html' %} + + + +
              +
              -
              -
              - -
              - -
              +
              + +
              +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              - - -
              +
              +
              + +
              + +
              -
              - -
              - -
              +
              +
              + +
              +
              -
              - -
              +
              +
              + +
              -
              -
              -
              - - -
              +
              +
              +
              + +
              - -{% endblock %} +
              + +{% include 'admin/common/footer.html' %} + -{% endblock %} \ No newline at end of file + form.on('submit(role-update)', function(data) { + $.ajax({ + url: '/api/v1/roles/role/' + data.field.roleId, + data: JSON.stringify(data.field), + dataType: 'json', + contentType: 'application/json', + type: 'put', + success: function(result) { + if (result.success) { + layer.msg(result.message, {icon: 1, time: 1000}, function() { + parent.layer.close(parent.layer.getFrameIndex(window.name));//关闭当前页 + parent.layui.table.reload('tables'); + }); + } else { + layer.msg(result.message, {icon: 2, time: 1000}); + } + }, + }); + return false; + }); + }); + + + diff --git a/templates/admin/roles/roles_power.html b/templates/admin/roles/roles_power.html index 598bbe4..957499d 100644 --- a/templates/admin/roles/roles_power.html +++ b/templates/admin/roles/roles_power.html @@ -1,82 +1,84 @@ -{% extends 'admin/base.html' %} -{% block title %} + + + 角色授权 -{% endblock %} + {% include 'admin/common/header.html' %} + -{% block body %} -
              -
              + + +
              +
              -
              -
                -
                +
                  -
                  -
                  - - -
                  +
                  +
                  +
                  + +
                  - -{% endblock %} +
                  + -{% block models_script %} - -{% endblock %} \ No newline at end of file + }); + + + diff --git a/templates/admin/users/profile.html b/templates/admin/users/profile.html index 0bfa5e2..6cf852d 100644 --- a/templates/admin/users/profile.html +++ b/templates/admin/users/profile.html @@ -1,6 +1,6 @@ -{% extends 'admin/base.html' %} - -{% block title %} + + + 个人中心 -{% endblock %} + {% include 'admin/common/header.html' %} + + - -{% block body %} -
                  - {# 左侧栏 #} -
                  - {# 个人信息卡片 #} -
                  -
                  -
                  - -

                  {{ user_info.realname }}

                  -

                  China , 中国

                  +
                  + {# 左侧栏 #} +
                  + {# 个人信息卡片 #} +
                  +
                  +
                  + -
                  -
                  - {{ user_info.remark }} +

                  {{ user_info.realname }}

                  +

                  China , 中国

                  - {# 登录信息卡片 #} -
                  -
                  - 登录记录 -
                  -
                  -
                    - {% for log in user_logs %} -
                  • - {{ log.url }} - {{ log.create_time }} -
                  • - {% endfor %} -
                  +
                  + {{ user_info.remark }} +
                  +
                  + {# 登录信息卡片 #} +
                  +
                  + 登录记录 +
                  +
                  +
                    + {% for log in user_logs %} +
                  • + {{ log.url }} + {{ log.create_time }} +
                  • + {% endfor %} +
                  +
                  +
                  +
                  + {# 右侧栏 #} +
                  + {# 个人信息卡片 #} +
                  +
                  个人信息
                  +
                  +
                  +
                  +
                  +
                  + +
                  + +
                  + +
                  +
                  +
                  + +
                  + +
                  +
                  + +
                  + +
                  + +
                  +
                  +
                  +
                  + + +
                  +
                  +
                  +
                  +
                  - {# 右侧栏 #} -
                  - {# 个人信息卡片 #} -
                  -
                  个人信息
                  -
                  -
                  -
                  -
                  -
                  - -
                  - -
                  - -
                  -
                  -
                  - -
                  - -
                  -
                  - -
                  - -
                  - -
                  -
                  -
                  -
                  - - -
                  -
                  -
                  -
                  -
                  -
                  -
                  + {# 个人文章记录 #} +
                  +
                  + 我的文章
                  - {# 个人文章记录 #} -
                  -
                  - 我的文章 -
                  -
                  -
                  -
                  -
                  -
                  -
                  - +
                  +
                  +
                  +
                  +
                  +
                  + +
                  +
                  +
                  为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习?
                  +
                  + “Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
                  -
                  -
                  为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习?
                  -
                  - “Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~ -
                  -
                  2020-06-12        评论 5 点赞 12 - 转发 - 4 -
                  +
                  2020-06-12        评论 5 点赞 12 + 转发 + 4
                  -
                  -
                  - +
                  +
                  +
                  + +
                  +
                  +
                  为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习?
                  +
                  + “Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
                  -
                  -
                  为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习?
                  -
                  - “Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~ -
                  -
                  2020-06-12        评论 5 点赞 12 - 转发 - 4 -
                  +
                  2020-06-12        评论 5 点赞 12 + 转发 + 4
                  -
                  -
                  - +
                  +
                  +
                  + +
                  +
                  +
                  为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习?
                  +
                  + “Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
                  -
                  -
                  为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习?
                  -
                  - “Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~ -
                  -
                  2020-06-12        评论 5 点赞 12 - 转发 - 4 -
                  +
                  2020-06-12        评论 5 点赞 12 + 转发 + 4
                  -
                  -
                  - +
                  +
                  +
                  + +
                  +
                  +
                  为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习?
                  +
                  + “Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
                  -
                  -
                  为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习?
                  -
                  - “Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~ -
                  -
                  2020-06-12        评论 5 点赞 12 - 转发 - 4 -
                  +
                  2020-06-12        评论 5 点赞 12 + 转发 + 4
                  @@ -184,134 +183,134 @@
                  - -