修复(resume): 修改简历
This commit is contained in:
parent
f40ea2e284
commit
3e498ffbea
12
.dumi/layouts/index.tsx
Normal file
12
.dumi/layouts/index.tsx
Normal file
@ -0,0 +1,12 @@
|
||||
// .dumi/theme/layout.tsx(本地主题) 或 src/layout.tsx(主题包)
|
||||
import React from 'react';
|
||||
import Layout from 'dumi-theme-default/es/layout';
|
||||
|
||||
export default ({ children, ...props }) => (
|
||||
<Layout {...props}>
|
||||
<>
|
||||
<button>反馈</button>
|
||||
{children}
|
||||
</>
|
||||
</Layout>
|
||||
);
|
32
.dumi/theme/layout.tsx
Normal file
32
.dumi/theme/layout.tsx
Normal file
@ -0,0 +1,32 @@
|
||||
// .dumi/theme/layout.tsx(本地主题) 或 src/layout.tsx(主题包)
|
||||
import React, { useEffect } from 'react';
|
||||
import Layout from 'dumi-theme-default/es/layout';
|
||||
|
||||
export default ({ children, ...props }) => {
|
||||
const { history } = props;
|
||||
|
||||
useEffect(() => {
|
||||
const header = document.querySelector('.__dumi-default-navbar')
|
||||
const cont = document.querySelector('.__dumi-default-layout-content')
|
||||
const lo = document.querySelector('.__dumi-default-layout')
|
||||
|
||||
if (location.hash === '#/resume' && lo) {
|
||||
|
||||
cont.style.position = 'relative'
|
||||
cont.style.top = '-64px'
|
||||
header.style.display = 'none'
|
||||
} else {
|
||||
cont.style.position = 'relative'
|
||||
cont.style.top = '0'
|
||||
header.style.display = 'flex'
|
||||
}
|
||||
},[location.hash])
|
||||
|
||||
return (
|
||||
<Layout {...props}>
|
||||
<>
|
||||
{children}
|
||||
</>
|
||||
</Layout>
|
||||
)
|
||||
};
|
@ -9,36 +9,42 @@ group:
|
||||
|
||||
# 💊 Q&A
|
||||
|
||||
## 通过浏览器打开https后,无法再次打开http链接?
|
||||
## 页面弹框之后请求一直失败?
|
||||
|
||||
可能是因为手机插件类似 ADB 将弹框事件拦截了,关闭或加入白名单就好了
|
||||
|
||||
## 通过浏览器打开 https 后,无法再次打开 http 链接?
|
||||
|
||||
请将下面这串代码删除,删干净一点:
|
||||
|
||||
```javascript
|
||||
<meta http-equiv ="Content-Security-Policy" content="upgrade-insecure-requests">
|
||||
```
|
||||
|
||||
|
||||
## 阿里云 oss 上传
|
||||
|
||||
|
||||
### 创建bucket
|
||||
### 创建 bucket
|
||||
|
||||

|
||||
|
||||
### 设置跨域规则
|
||||
|
||||

|
||||
### 创建 RAM 用户
|
||||
|
||||
### 创建 RAM 用户
|
||||
|
||||
> 这一步的作用是分担风险,不要直接用主账号去登录
|
||||
|
||||
并给该用户分配调用 STS 服务 AssumeRole 接口的权限,这样待会儿后端就能以该用户的身份给前端分配 STS 凭证了:
|
||||

|
||||
|
||||
### 创建用户角色
|
||||
|
||||
该角色即有权限在前端调用 aliyun-oss SDK 上传文件的用户角色,例如我们创建一个只有上传权限的角色,命名为 uploader
|
||||

|
||||
接下来我们需要给该角色分配权限,可以通过创建一条权限策略并分配给角色,该权限策略里面只包含了上传文件、分片上传相关的权限:
|
||||

|
||||
|
||||
```javascript
|
||||
// 策略内容
|
||||
{
|
||||
@ -64,27 +70,28 @@ group:
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
然后,把该策略赋予 uploader 角色
|
||||

|
||||
|
||||
|
||||
### node 代码实现
|
||||
|
||||
```javascript
|
||||
const OSS = require('ali-oss');
|
||||
const STS = OSS.STS;
|
||||
|
||||
const sts = new STS({
|
||||
accessKeyId: process.env.ALIYUN_OSS_RULE_ASSUMER_ACCESS_KEY,
|
||||
accessKeySecret: process.env.ALIYUN_OSS_RULE_ASSUMER_ACCESS_KEY_SECRET
|
||||
accessKeySecret: process.env.ALIYUN_OSS_RULE_ASSUMER_ACCESS_KEY_SECRET,
|
||||
});
|
||||
|
||||
async function getCredential(req, res, next) {
|
||||
try {
|
||||
const { credentials } = await sts.assumeRole(
|
||||
'acs:ram::1582938330607257:role/uploader', // role arn
|
||||
'acs:ram::1582938330607257:role/uploader', // role arn
|
||||
null, // policy
|
||||
15 * 60, // expiration
|
||||
'web-client' // session name
|
||||
'web-client', // session name
|
||||
);
|
||||
req.result = credentials;
|
||||
next();
|
||||
@ -92,9 +99,9 @@ async function getCredential(req, res, next) {
|
||||
next(err);
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
### OSS报错大全
|
||||
|
||||
### OSS 报错大全
|
||||
|
||||
1. AccessDeniedError: You have no right to access this object because of bucket acl
|
||||
> 看下配置的bucket 策略内容对不对
|
||||
> 看下配置的 bucket 策略内容对不对
|
||||
|
@ -91,6 +91,16 @@ learna publish
|
||||
| lerna create | 新建 package |
|
||||
| lerna publish | 发布 |
|
||||
|
||||
### 🌰
|
||||
|
||||
```js
|
||||
lerna exec [--scope <package包名(package.json中的name)>] -- <command> [..args]
|
||||
|
||||
# 举个例子
|
||||
lerna exec -- rm -rf node_modules # 删除所有package下的node_modules
|
||||
lerna exec --scope @yh-imooc-cli-dev/core -- rm -rf node_modules # 碰到scope,说明定位到@yh-imooc-cli-dev/cor包下(注意:--scope后面写的是包名),然后删除当前子包下的node_modules
|
||||
```
|
||||
|
||||
## 官方文档
|
||||
|
||||
[http://www.febeacon.com/lerna-docs-zh-cn/](http://www.febeacon.com/lerna-docs-zh-cn/)
|
||||
|
@ -32,6 +32,10 @@
|
||||
text-align: left;
|
||||
color: #d1d1d1;
|
||||
}
|
||||
a {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
.content {
|
||||
position: relative;
|
||||
|
@ -1,21 +1,16 @@
|
||||
import React, { useEffect } from 'react';
|
||||
|
||||
|
||||
import styles from './css/index.less'
|
||||
|
||||
export default () => {
|
||||
export default (props) => {
|
||||
|
||||
useEffect(() =>{
|
||||
const header = document.querySelector('.__dumi-default-navbar')
|
||||
const cont = document.querySelector('.__dumi-default-layout-content')
|
||||
|
||||
cont.style['position'] = 'relative'
|
||||
cont.style['top'] = '-64px'
|
||||
header.style.display = 'none'
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className={styles.resume}>
|
||||
<p className="last-modified"> 最后更新时间:2022年05月</p>
|
||||
<p className="last-modified"><a onClick={() => location.replace('/')} >回首页</a> 最后更新时间:2022年05月</p>
|
||||
<div className="content">
|
||||
<header className="content-hd">
|
||||
<section className="title">
|
||||
@ -36,6 +31,7 @@ export default () => {
|
||||
<li><a href="https://j710328466.github.io" target="_blank"><span className="contact-link">https://j710328466.github.io</span><i className="iconfont icon-homepage"></i></a></li>
|
||||
<li><a href="https://github.com/j710328466" target="_blank"><span className="contact-link">github.com/j710328466</span><i className="iconfont icon-github"></i></a></li>
|
||||
<li><a href="mailto:710328466@qq.com" target="_blank"><span className="contact-link">710328466@qq.com</span><i className="iconfont icon-email"></i></a></li>
|
||||
<li><a href="#" target="_blank"><span className="contact-link">极简主义·热爱生活</span><i className="iconfont icon-email"></i></a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</header>
|
||||
@ -52,7 +48,7 @@ export default () => {
|
||||
<header className="item-hd">
|
||||
<span className="item-time">2017.10 ~ 2020.03</span>
|
||||
<a className="btn item-more" href="http://jimistore.com" target="_blank" title="工作经历">官网</a>
|
||||
<h3 className="item-name">杭州早稻科技有限公司</h3>
|
||||
<h3 className="item-name" style={{ float: 'right' }}>早稻科技</h3>
|
||||
</header>
|
||||
</div>
|
||||
<div className="item">
|
||||
@ -61,10 +57,9 @@ export default () => {
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>项目负责人</strong><strong>前端开发</strong>
|
||||
负责优化旧版官网,针对之前用户体验差的基础上向领导提出优化引入服务端渲染框架<em>nextJs</em>,使用<em>antd</em>作为官网辅助样式,使用<em>ant Motion</em>作为动画库,并使用<em>Pm2</em>部署在服务器上,该项目属于公司<em>第一个node项目</em>,对于公司前端具有一定的里程碑意义。
|
||||
<strong>前端开发</strong>
|
||||
负责优化旧版官网,针对之前用户体验差的基础上向领导提出优化引入服务端渲染框架<em>nextJs</em>,使用<em>antd</em>作为官网辅助样式,使用<em>ant Motion</em>作为动画库,并使用<em>Pm2</em>部署在服务器上,该项目属于公司<em>第一个node端搭建项目</em>,对于公司node后端化具有一定的里程碑意义。
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div className="item">
|
||||
@ -73,10 +68,10 @@ export default () => {
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>项目负责人</strong><strong>前端开发</strong>
|
||||
从最初版本的<em>gulp</em>版本使用<em>Webpack</em>重新搭建脚手架将资源优化到更节约,并引入<em>typescript</em>
|
||||
强制规范开发规范,使代码更易读更容易维护,其中开发过的<em>月饼大作战</em>和<em>约会大乱斗</em>
|
||||
两款小游戏使用了大量<em>css样式</em>,趣味性颇受领导好评。
|
||||
<strong>Owner</strong><strong>前端开发</strong>
|
||||
从最初版本的<em>gulp</em>版本使用<em>Webpack</em>重新搭建脚手架将资源优化到更节约,后期引入<em>typescript</em>
|
||||
强制规范开发规范,使代码更易维护,其中开发过的<em>月饼大作战</em>和<em>约会大乱斗</em>
|
||||
两款小游戏使用了大量<em>css样式</em>,趣味性颇受好评。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -86,7 +81,7 @@ export default () => {
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>项目负责人</strong><strong>前端开发</strong>
|
||||
<strong>前端开发</strong>
|
||||
该活动依赖于公司最底层工具库,并服务于活动开发,主要作用是为了统一管理优化在活动开发时使用的多端约定的函数方法,该工具包使用<em>typescript</em>规范开发,并放置于公司私有npm仓库中维护,内容包括但不限于:<em>登录授权</em>、
|
||||
<em>分享</em>、<em>语音验证</em><em>验证码登录</em>、<em>获取验证码</em>等等...
|
||||
</p>
|
||||
@ -105,6 +100,110 @@ export default () => {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="section-bd">
|
||||
<div className="item item-main">
|
||||
<header className="item-hd">
|
||||
<span className="item-time">2020.03 ~ 2021.03</span>
|
||||
<h3 className="item-name" style={{ float: 'right' }}>佰钧成科技-天猫精灵事业部</h3>
|
||||
</header>
|
||||
</div>
|
||||
<div className="item">
|
||||
<header className="item-hd">
|
||||
<h3 className="item-name"><i className="iconfont icon-dot"></i> 天猫精灵内测平台 · Umi、reactJs、midway、antd、ts</h3>
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>Owner</strong>
|
||||
负责该平台的bug维护,功能开发,使用的技术为阿里技术栈:<em>cuz</em>(已开源但体验效果不佳),后重构升级为<em>Umi</em> + <em>midway</em>(eggjs前身)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="item">
|
||||
<header className="item-hd">
|
||||
<h3 className="item-name"><i className="iconfont icon-dot"></i> 天猫精灵安全服务中心 · umi、reactJs、midway、antd、ts</h3>
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>前端开发</strong>
|
||||
用户数据采集、用户画像、用户数据申请、内外数据合作评审、数据使用要求规范等业务相关的聚合平台。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="item">
|
||||
<header className="item-hd">
|
||||
<h3 className="item-name"><i className="iconfont icon-dot"></i> 天猫精灵售后服务中心 · umi、antd-mobile-v2、midway、ts</h3>
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>Owner</strong><strong>前端开发</strong>
|
||||
属于天猫精灵app端,帮助中心项目,具体满足的需求为:用户售后申请或者是在使用app时问题反馈到运营同学,记录并解决问题。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="item">
|
||||
<header className="item-hd">
|
||||
<h3 className="item-name"><i className="iconfont icon-dot"></i> 数字制造服务平台 · nextJs、antd、midway、ts</h3>
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>前端开发</strong>
|
||||
将线上的客户需求提出,运营团队评估,结果交付在线上实现流转的最小闭环(属于beta阶段产品)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="section-bd">
|
||||
<div className="item item-main">
|
||||
<header className="item-hd">
|
||||
<span className="item-time">2021.03 ~ 2022.02</span>
|
||||
<h3 className="item-name" style={{ float: 'right' }}>宇泛智能科技</h3>
|
||||
</header>
|
||||
</div>
|
||||
<div className="item">
|
||||
<header className="item-hd">
|
||||
<h3 className="item-name"><i className="iconfont icon-dot"></i> 蓝色荣耀 · Umi、reactJs、antd、ts、yapi</h3>
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>Owner</strong><strong>前端开发</strong>
|
||||
属于供对接甲方使用的平台、将智慧工地概念应用落地的闭环式解决方案,功能包括:签署合同、工人打卡、安全监控、发放薪资、设备监控...
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="item">
|
||||
<header className="item-hd">
|
||||
<h3 className="item-name"><i className="iconfont icon-dot"></i> 数据可视化大屏 · easyV-UI、reactJs、yapi</h3>
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>Owner</strong><strong>前端开发</strong>
|
||||
杭州湾开发商对接项目,供客户将智慧工地部分系统功能通过可视化图表方式展示在数据大屏上,功能包括:升降机大屏、安全帽、扬尘设备、工人进出场记录、在场人员统计...等
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="item">
|
||||
<header className="item-hd">
|
||||
<h3 className="item-name"><i className="iconfont icon-dot"></i> Toucan-UI · Echart、G2/plot、react、ts、dumi、lerna</h3>
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>Owner</strong><strong>前端开发</strong>
|
||||
toucan-UI 属于二期数据大屏的自研产物,弥补了一期数据大屏功能上的不完善与可维护性差的缺陷,有三部分组件:<em>meta 元组件</em>、<em>chart 图表组件</em>、<em>bizs 业务组件</em> 构成
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="item">
|
||||
<header className="item-hd">
|
||||
<h3 className="item-name"><i className="iconfont icon-dot"></i> UU中心 · electron、antd、Oss、ts、umi</h3>
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
<strong>前端开发</strong>
|
||||
基于 <em>electron</em> 的桌面端应用,功能包含各种提升前端效能的应用,包括有:OSS 资源上传平台、物料库、波塞冬集成埋点、uniubi-ui、uniubi-lib...等(部分应用属于推广阶段)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div className="content-right">
|
||||
@ -117,7 +216,7 @@ export default () => {
|
||||
<div className="section-bd">
|
||||
<ul className="section-list">
|
||||
<li><p className="section-content"><i className="iconfont icon-dot"></i>
|
||||
掌握Web前端开发基本技能,熟悉<strong>W3C标准</strong>、<strong>HTML</strong>、<strong>CSS</strong>、<strong>UI重构</strong>、<strong>页面布局</strong>,重视<strong>页面交互</strong>与<strong>用户体验</strong>。
|
||||
熟悉<strong>JavaScript</strong>、<strong>HTML</strong>、<strong>CSS</strong>开发规范、<strong>UI重构</strong>、<strong>页面布局</strong>,重视<strong>页面交互</strong>与<strong>用户体验</strong>。
|
||||
</p></li>
|
||||
<li><p className="section-content"><i className="iconfont icon-dot"></i>
|
||||
对<strong>JavaScript</strong>、各类<strong>UI组件库</strong>、<strong>JS类库</strong>、<strong>模板引擎</strong>、<strong>MV*框架</strong>、<strong>工程化工具</strong>等有着较熟练的实践和较深刻的感悟。
|
||||
@ -131,9 +230,6 @@ export default () => {
|
||||
<li><p className="section-content"><i className="iconfont icon-dot"></i>
|
||||
熟练使用<strong>Git</strong>进行版本控制和代码托管、<strong>Markdown</strong>进行文档编写,了解项目常规开发流程、<strong>开发调试</strong>技巧、<strong>发布部署</strong>步骤,掌握<strong>类Unix</strong>服务器基本运维能力。
|
||||
</p></li>
|
||||
<li><p className="section-content"><i className="iconfont icon-dot"></i>
|
||||
以极简主义作为人生信仰,喜欢美好的事物和创造美好的事物,对新潮的事物和技术充满好奇,热爱学习,热爱生活,乐于和他人沟通与交流。
|
||||
</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
@ -151,7 +247,7 @@ export default () => {
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
作为 nicecoder 项目发起人,该项目包含各个技术栈的工具库,为帮助他人提高工作效率,减少重复工作,目前成熟的工具有:
|
||||
nicecoder 项目发起维护人,该项目包含各个技术栈的工具库,内容正在不断完善中,旨在提高工作效率,减少重复工作,目前成熟的工具有:
|
||||
<em>@nicecode/changelog</em><em>@nicecode/lint</em><em>@nicecode/commit</em><em>@nicecode/tools</em>...等
|
||||
</p>
|
||||
</div>
|
||||
@ -174,7 +270,7 @@ export default () => {
|
||||
</header>
|
||||
<div className="item-bd">
|
||||
<p className="section-content">
|
||||
之前觉得websocket挺有意思,就想试着玩一下,所以就做了这个项目,它前端使用了<em>Vue全家桶</em>开发,<em>muse-Ui</em>作为UI框架,<em>axios</em>作为接口请求工具,后端使用了<em>socket.io</em>库开发。
|
||||
<em>Vue全家桶</em>开发,<em>muse-Ui</em>作为UI框架,<em>axios</em>作为接口请求工具,后端使用了<em>socket.io</em>库搭配 express 开发。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user