[Style details]

This commit is contained in:
CPunisher 2020-06-22 13:12:00 +08:00
parent 9c0b6bf177
commit 45cc9d65f9
11 changed files with 68 additions and 61 deletions

View File

@ -1,6 +1,6 @@
import React from "react"; import React from "react";
import '../Qrcode.css'; import '../Qrcode.css';
import {handleLink} from "../../utils/gaHelper"; import LinkTrace from "../link/LinkTrace";
const currentYear = new Date().getFullYear(); const currentYear = new Date().getFullYear();
@ -9,34 +9,43 @@ const PartFooter = () => (
<div className="Qr-Centered Qr-footer note-font"> <div className="Qr-Centered Qr-footer note-font">
<div> <div>
<strong>作者</strong>&emsp; <strong>作者</strong>&emsp;
<a onClick={ (e) => handleLink(e.target.href) } <LinkTrace
href="https://blog.ciaochaos.com/" href="https://blog.ciaochaos.com/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank">ciaochaos target="_blank">ciaochaos
</a>&emsp; </LinkTrace>&emsp;
<a onClick={ (e) => handleLink(e.target.href) } href="https://github.com/CPunisher/" <LinkTrace
href="https://github.com/CPunisher/"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank">CPunisher target="_blank">CPunisher
</a> </LinkTrace>
<span className="gray">&ensp;&ensp;</span> <span className="gray">&ensp;&ensp;</span>
<span><a onClick={ (e) => handleLink(e.target.href) } href="https://www.yuque.com/qrbtf/docs/contact" rel="noopener noreferrer" target="_blank">联系我们</a><span className="gray">&ensp;&ensp;</span></span> <span><LinkTrace href="https://www.yuque.com/qrbtf/docs/contact"
<span><a onClick={ (e) => handleLink(e.target.href) } href="https://www.yuque.com/qrbtf/docs/coop" rel="noopener noreferrer" target="_blank">合作咨询</a></span> rel="noopener noreferrer" target="_blank">联系我们</LinkTrace><span
className="gray">&ensp;&ensp;</span></span>
<span><LinkTrace href="https://www.yuque.com/qrbtf/docs/coop"
rel="noopener noreferrer" target="_blank">合作咨询</LinkTrace></span>
</div> </div>
<div className="Qr-footer-part"> <div className="Qr-footer-part">
<strong>更多产品</strong>&emsp; <strong>更多产品</strong>&emsp;
<span><a onClick={ (e) => handleLink(e.target.href) } href="https://mdnice.com" rel="noopener noreferrer" target="_blank">mdnice 公众号排版</a><span className="gray">&ensp;&ensp;</span></span> <span><LinkTrace href="https://mdnice.com" rel="noopener noreferrer"
<span><a onClick={ (e) => handleLink(e.target.href) } href="https://urlify.cn/" rel="noopener noreferrer" target="_blank">Urlify 短链接</a><span className="gray">&ensp;&ensp;</span></span> target="_blank">mdnice 公众号排版</LinkTrace><span className="gray">&ensp;&ensp;</span></span>
<span><a onClick={ (e) => handleLink(e.target.href) } href="https://imgkr.com/" rel="noopener noreferrer" target="_blank">imgkr 图壳图床</a><span className="gray">&ensp;&ensp;</span></span> <span><LinkTrace href="https://urlify.cn/" rel="noopener noreferrer"
<span><a onClick={ (e) => handleLink(e.target.href) } href="https://blog.ciaochaos.com/mpmath/" rel="noopener noreferrer" target="_blank">mpMath 公众号公式插件</a></span> target="_blank">Urlify 短链接</LinkTrace><span className="gray">&ensp;&ensp;</span></span>
<span><LinkTrace href="https://imgkr.com/" rel="noopener noreferrer"
target="_blank">imgkr 图壳图床</LinkTrace><span className="gray">&ensp;&ensp;</span></span>
<span><LinkTrace href="https://blog.ciaochaos.com/mpmath/"
rel="noopener noreferrer" target="_blank">mpMath 公众号公式插件</LinkTrace></span>
</div> </div>
<div className="Gray"> <div className="Gray">
Copyright © {currentYear} QRBTF. 保留所有权利<br /> Copyright © {currentYear} QRBTF. 保留所有权利<br/>
<a onClick={ (e) => handleLink(e.target.href) } href="http://www.beian.miit.gov.cn/" rel="noopener noreferrer" target="_blank"> <LinkTrace href="http://www.beian.miit.gov.cn/"
rel="noopener noreferrer" target="_blank">
ICP 19005869 ICP 19005869
</a> </LinkTrace>
</div> </div>
</div> </div>
</div> </div>

View File

@ -2,7 +2,7 @@ import React from 'react';
import './App.css'; import './App.css';
import LinkButton from "../link/LinkButton"; import LinkButton from "../link/LinkButton";
import GitHubButton from 'react-github-btn' import GitHubButton from 'react-github-btn'
import {handleLink} from "../../utils/gaHelper"; import LinkTrace from "../link/LinkTrace";
const PartMore = () => ( const PartMore = () => (
<div className="Qr-titled-nobg"> <div className="Qr-titled-nobg">
@ -12,11 +12,11 @@ const PartMore = () => (
<div className="Qr-article"> <div className="Qr-article">
<p><GitHubButton className="github-btn" href="https://github.com/ciaochaos/qrbtf" data-icon="octicon-star" data-size="large" data-show-count="true" aria-label="Star ciaochaos/qrbtf on GitHub">Star</GitHubButton></p> <p><GitHubButton className="github-btn" href="https://github.com/ciaochaos/qrbtf" data-icon="octicon-star" data-size="large" data-show-count="true" aria-label="Star ciaochaos/qrbtf on GitHub">Star</GitHubButton></p>
<h2>最新消息</h2> <h2>最新消息</h2>
<p><b>2020.6.11</b><br/>QRBTF React 组件发布快在你的应用中引入 react-qrbtf <a onClick={ (e) => handleLink(e.target.href) } href='https://github.com/cpunisher/react-qrbtf' rel="noopener noreferrer" target="_blank">访问项目</a></p> <p><b>2020.6.11</b><br/>QRBTF React 组件发布快在你的应用中引入 react-qrbtf <LinkTrace href='https://github.com/cpunisher/react-qrbtf' rel="noopener noreferrer" target="_blank">访问项目</LinkTrace></p>
<p><b>2020.5.23</b><br/>网站开源啦<a onClick={ (e) => handleLink(e.target.href) } href='https://github.com/ciaochaos/qrbtf' rel="noopener noreferrer" target="_blank">点击访问</a> 我们的 Github。期待你也来参与设计、开发给个 Star 支持一下不?查看文章 <a onClick={ (e) => handleLink(e.target.href) } href='https://mp.weixin.qq.com/s/GFEMCWQu3e2qhTuBabnHmQ' rel="noopener noreferrer" target="_blank">QRBTF 开源啦来写个二维码样式吧</a></p> <p><b>2020.5.23</b><br/>网站开源啦<LinkTrace href='https://github.com/ciaochaos/qrbtf' rel="noopener noreferrer" target="_blank">点击访问</LinkTrace> 我们的 Github。期待你也来参与设计、开发给个 Star 支持一下不?查看文章 <LinkTrace href='https://mp.weixin.qq.com/s/GFEMCWQu3e2qhTuBabnHmQ' rel="noopener noreferrer" target="_blank">QRBTF 开源啦来写个二维码样式吧</LinkTrace></p>
<p><b>2020.5.22</b><br/>新增 C2 样式下载计数好像还不太稳定普通二维码上传颜色选择背景图片上传输入提示桌面端横向滚动提示</p> <p><b>2020.5.22</b><br/>新增 C2 样式下载计数好像还不太稳定普通二维码上传颜色选择背景图片上传输入提示桌面端横向滚动提示</p>
<h2>为什么要做一个二维码生成器</h2> <h2>为什么要做一个二维码生成器</h2>
<p>看这里<a onClick={ (e) => handleLink(e.target.href) } href='https://mp.weixin.qq.com/s/_Oy9I9FqPXhfwN9IUhf6_g' rel="noopener noreferrer" target="_blank">如何制作一个漂亮的二维码</a> </p> <p>看这里<LinkTrace href='https://mp.weixin.qq.com/s/_Oy9I9FqPXhfwN9IUhf6_g' rel="noopener noreferrer" target="_blank">如何制作一个漂亮的二维码</LinkTrace> </p>
<h2>这个生成器的特别之处在哪里</h2> <h2>这个生成器的特别之处在哪里</h2>
<p>普通的二维码样式单一不能与环境较好的融合这一个生成器有着 <b>丰富的参数化样式基于 SVG 的二维码生成能力</b> SVG </p> <p>普通的二维码样式单一不能与环境较好的融合这一个生成器有着 <b>丰富的参数化样式基于 SVG 的二维码生成能力</b> SVG </p>
<h2>如何使用</h2> <h2>如何使用</h2>

View File

@ -1,12 +1,12 @@
import React from "react"; import React from "react";
import PropTypes from 'prop-types' import PropTypes from 'prop-types'
import '../Qrcode.css'; import '../Qrcode.css';
import {handleLink} from "../../utils/gaHelper"; import LinkTrace from "./LinkTrace";
const LinkButton = ({ href, value }) => ( const LinkButton = ({ href, value }) => (
<a onClick={ (e) => handleLink(href) } href={href} rel="noopener noreferrer" target="_blank"> <LinkTrace href={href} rel="noopener noreferrer" target="_blank">
<button className="dl-btn">{value}</button> <button className="dl-btn">{value}</button>
</a> </LinkTrace>
) )
LinkButton.propTypes = { LinkButton.propTypes = {

View File

@ -0,0 +1,12 @@
import React from 'react';
import {handleLink} from "../../utils/gaHelper";
const LinkTrace = (props) => {
return (
<a onClick={(e) => handleLink(props.href)} {...props}>
{props.children}
</a>
)
}
export default LinkTrace;

View File

@ -3,6 +3,7 @@ import {ParamTypes} from "../../constant/ParamTypes";
import {getTypeTable, QRPointType} from "../../utils/qrcodeHandler"; import {getTypeTable, QRPointType} from "../../utils/qrcodeHandler";
import {createRenderer} from "../style/Renderer"; import {createRenderer} from "../style/Renderer";
import {rand} from "../../utils/util"; import {rand} from "../../utils/util";
import LinkTrace from "../link/LinkTrace";
function listPoints(qrcode, params) { function listPoints(qrcode, params) {
if (!qrcode) return [] if (!qrcode) return []
@ -215,7 +216,7 @@ function getParamInfoRandRound() {
]; ];
} }
export const RendererRect= createRenderer({ export const RendererRect = createRenderer({
listPoints: listPoints, listPoints: listPoints,
getParamInfo: getParamInfoRect, getParamInfo: getParamInfoRect,
}); });
@ -229,3 +230,16 @@ export const RendererRandRound = createRenderer({
listPoints: listPoints, listPoints: listPoints,
getParamInfo: getParamInfoRandRound, getParamInfo: getParamInfoRandRound,
}); });
RendererRect.detail = (
<p>生成矩形<LinkTrace href="https://zh.wikipedia.org/wiki/QR%E7%A2%BC">二维码</LinkTrace></p>
);
RendererRound.detail = (
<p>生成圆形二维码</p>
);
RendererRandRound.detail = (
<p>生成随机点圆形二维码</p>
);

View File

@ -2,7 +2,6 @@ import React from "react";
import {ParamTypes} from "../../constant/ParamTypes"; import {ParamTypes} from "../../constant/ParamTypes";
import {getTypeTable, QRPointType} from "../../utils/qrcodeHandler"; import {getTypeTable, QRPointType} from "../../utils/qrcodeHandler";
import {createRenderer} from "../style/Renderer"; import {createRenderer} from "../style/Renderer";
import {rand} from "../../utils/util";
function listPoints(qrcode, params) { function listPoints(qrcode, params) {
if (!qrcode) return [] if (!qrcode) return []

View File

@ -2,7 +2,6 @@ import React from "react";
import {ParamTypes} from "../../constant/ParamTypes"; import {ParamTypes} from "../../constant/ParamTypes";
import {getTypeTable, QRPointType} from "../../utils/qrcodeHandler"; import {getTypeTable, QRPointType} from "../../utils/qrcodeHandler";
import {createRenderer} from "../style/Renderer"; import {createRenderer} from "../style/Renderer";
import {rand} from "../../utils/util";
function listPoints(qrcode, params) { function listPoints(qrcode, params) {
if (!qrcode) return [] if (!qrcode) return []

View File

@ -6,7 +6,7 @@ function calClassName(selected) {
return 'Qr-item'; return 'Qr-item';
} }
const Style = ({ value, renderer, selected, onSelected }) => ( const Style = ({ value, renderer, selected, details, onSelected }) => (
<div className={calClassName(selected)} <div className={calClassName(selected)}
onMouseDown={onSelected}> onMouseDown={onSelected}>
<div className="Qr-item-image"> <div className="Qr-item-image">
@ -17,6 +17,9 @@ const Style = ({ value, renderer, selected, onSelected }) => (
<div className="Qr-item-detail"> <div className="Qr-item-detail">
{value} {value}
</div> </div>
<div className="Qr-item-detail">
{details}
</div>
</div> </div>
); );

View File

@ -20,6 +20,7 @@ function saveDB(state, type, updateDownloadData) {
value: value value: value
} }
} }
return {}
}), }),
history: state.history history: state.history
}, () => { }, () => {

View File

@ -39,6 +39,7 @@ const mapStateToProps = state => ({
return { return {
value: style.value, value: style.value,
selected: state.selectedIndex === index, selected: state.selectedIndex === index,
details: style.renderer.detail,
renderer: <RendererViewer rendererType={style.renderer} index={index} setParamInfo={setParamInfo}/> renderer: <RendererViewer rendererType={style.renderer} index={index} setParamInfo={setParamInfo}/>
} }
}) })

View File

@ -199,37 +199,6 @@ QRCode.prototype = {
return pattern; return pattern;
}, },
createMovieClip : function(target_mc, instance_name, depth) {
let qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);
let cs = 1;
this.make();
for (let row = 0; row < this.modules.length; row++) {
let y = row * cs;
for (let col = 0; col < this.modules[row].length; col++) {
let x = col * cs;
let dark = this.modules[row][col];
if (dark) {
qr_mc.beginFill(0, 100);
qr_mc.moveTo(x, y);
qr_mc.lineTo(x + cs, y);
qr_mc.lineTo(x + cs, y + cs);
qr_mc.lineTo(x, y + cs);
qr_mc.endFill();
}
}
}
return qr_mc;
},
setupTimingPattern : function() { setupTimingPattern : function() {
for (let r = 8; r < this.moduleCount - 8; r++) { for (let r = 8; r < this.moduleCount - 8; r++) {