import React, { Component } from 'react'; import 'antd-mobile/dist/antd-mobile.less'; import styles from './index.less'; import router from 'umi/router'; import html2canvas from 'html2canvas'; import { Toast } from 'antd-mobile'; class DnaXt extends Component { constructor(props) { super(props); this.state = { flag: false, imgUri: null, geneDom: '' }; } componentWillMount = () => {}; componentDidMount = () => { let geneCode = this.props.ckuCertificate.geneCode || '' if(geneCode == '')return let colorList = ['188, 159, 233','29, 207, 238', '127, 144, 254', '218, 140, 67', '127, 223, 114', '205, 91, 190', '109, 201, 217', '234, 85, 89', '34, 144, 140', '239, 217, 119', '177, 82, 87', '74, 183, 144', '86, 101, 155', '202, 47, 28', '35, 193, 43', '161, 80, 206', '39, 145, 255', '34, 221, 129', '0, 237, 255', '128, 188, 0', '40, 155, 192', '243, 122, 73', '181, 82, 77', '111, 74, 246', '53, 179, 200', '64, 117, 187'] let n = 0 let num = 26 let width = 32 let gene let geneDom = '' gene = this.setGene(geneCode) gene = gene.split('') for (let i = 0; i < num; i++) { geneDom += '

' for (let j = 0; j < 6; j++) { n += 1 let t = gene[n]; if (isNaN(t)) { t = j + 2 } let opacity = this.setOpactiy(t) geneDom+="" } geneDom += '

' } this.setState({ geneDom: geneDom }) }; componentWillUnmount = () => {}; setGene = (geneCode) => { let gene = geneCode gene = gene.split('X##').join('244') gene = gene.split('Y##').join('255') gene = gene.split('###').join('369') return gene } setOpactiy = (n) => { if(n == 0){ return 1 }else{ return '.'+(10-n) } } open = () => { Toast.loading('生成中', 0); const certificate = document.getElementById('certificate'); const newCanvas = document.createElement('canvas'); const domWidth = parseInt(window.getComputedStyle(certificate).width); const domHeight = parseInt(window.getComputedStyle(certificate).height); newCanvas.width = domWidth; newCanvas.height = domHeight; newCanvas.style.width = domWidth + 'px'; newCanvas.style.height = domHeight + 'px'; const _this = this; html2canvas(certificate, { canvas: newCanvas, scale: 1, x: 0, y: 0, scrollX: 0, scrollY: 0, }).then(canvas => { const imgUri = canvas.toDataURL('image/png'); _this.setState({ imgUri, flag: true, }); Toast.hide(); }); }; closed = () => { this.setState({ flag: false, }); }; render() { const data = this.props.ckuCertificate; const { flag, imgUri, geneDom } = this.state; return (
{data.pedigreeCertified ? (
{data.kennelEnName ?
{data.kennelEnName}
: null} {data.dogName ?
{data.dogName}
: null}
{data.dogBreedDesc} {data.dogBreed} / {data.dogGender} {data.dogGenderDesc}
DNA亲子比对合格
{data.dogMemberName ? (
犬主人 {data.dogMemberName} {data.secondDogOwner ? ` / ${data.secondDogOwner}` : null}
) : null} {data.breeder ? (
繁殖人 {data.breeder} {data.secondBreeder ? ` / ${data.secondBreeder}` : null}
) : null} {data.kennleName ? (
出生犬舍 {data.kennleName}
) : null} {data.color ? (
毛色(中文) {data.color} {data.colorDesc}
) : null} {data.dogBirthday ? (
出生日期 {data.dogBirthday}
) : null} {data.dogGrade ? (
犬只等级 {data.dogGrade}
) : null} {data.identification ? (
身份鉴别号码 {data.identification}
) : null} {data.pedigreeCertified ? (
血统证书号码 {data.pedigreeCertified}
) : null}
签发日期{data.createDate}
会长签字
查看实体版证书
{/*
{ router.push('/ckuh5/description?certificateType=dnaXt'); }} > 血统证书说明
*/}
@宠爱王国提供技术支持
) : null}
{data.businessBan === '1' ? ( 禁止繁殖 ) : null} {data.changeBan === '1' ? ( 禁止出口 ) : null}
{data.paperDogName} 
{data.dogBreedDesc}  {data.dogBirthday}  {data.pedigreeCertifiedEn}  {data.puppyBirthNum ? ( {data.puppyBirthNum.split(',')[0]} {data.puppyBirthNum.split(',')[1]} ) : ( )}
{data.dogBreed}  {data.identification}  {data.pedigreeCertified}  {data.puppyRegisterNum ? ( {data.puppyRegisterNum.split(',')[0]} {data.puppyRegisterNum.split(',')[1]} ) : ( )}
{data.dogGender}  {data.color}  {data.breeder} {data.breederEn ? '【' + data.breederEn + '】' : ''}  {data.secondBreeder ? [
, data.secondBreeder, data.secondBreederEn ? '【' + data.secondBreederEn + '】' : '', ] : null}
{data.dogMemberName} {data.dogMemberNameEn ? '【' + data.dogMemberNameEn + '】' : ''} 
{data.dog1.showGrade}  {data.dog1.dogName}  {data.dog1.pedigreeCertified}  {data.dog1.color}  {data.dog1.createDate} 
{data.dog2.showGrade}  {data.dog2.dogName}  {data.dog2.pedigreeCertified}  {data.dog2.color}  {data.dog2.createDate} 
{data.dog3.showGrade}  {data.dog3.dogName}  {data.dog3.pedigreeCertified} 
{data.dog3.color}  {data.dog3.createDate} 
{data.dog4.showGrade}  {data.dog4.dogName}  {data.dog4.pedigreeCertified} 
{data.dog4.color}  {data.dog4.createDate} 
{data.dog5.showGrade}  {data.dog5.dogName}  {data.dog5.pedigreeCertified} 
{data.dog5.color}  {data.dog5.createDate} 
{data.dog6.showGrade}  {data.dog6.dogName}  {data.dog6.pedigreeCertified} 
{data.dog6.color}  {data.dog6.createDate} 
{data.dog7.showGrade}  {data.dog7.dogName} 
{data.dog7.pedigreeCertified}  {data.dog7.color}  {data.dog7.createDate} 
{data.dog8.showGrade}  {data.dog8.dogName} 
{data.dog8.pedigreeCertified}  {data.dog8.color}  {data.dog8.createDate} 
{data.dog9.showGrade}  {data.dog9.dogName} 
{data.dog9.pedigreeCertified}  {data.dog9.color}  {data.dog9.createDate} 
{data.dog10.showGrade}  {data.dog10.dogName} 
{data.dog10.pedigreeCertified}  {data.dog10.color}  {data.dog10.createDate} 
{data.dog11.showGrade}  {data.dog11.dogName} 
{data.dog11.pedigreeCertified}  {data.dog11.color}  {data.dog11.createDate} 
{data.dog12.showGrade}  {data.dog12.dogName} 
{data.dog12.pedigreeCertified}  {data.dog12.color}  {data.dog12.createDate} 
{data.dog13.showGrade}  {data.dog13.dogName} 
{data.dog13.pedigreeCertified}  {data.dog13.color}  {data.dog13.createDate} 
{data.dog14.showGrade}  {data.dog14.dogName} 
{data.dog14.pedigreeCertified}  {data.dog14.color}  {data.dog14.createDate} 
{ geneDom != '' &&
}
{ geneDom == '' ? {data.dnaCode}  : } {data.createDate} 
{flag ? (
血统证书 长按上方图片保存证书
) : null}
); } } export default DnaXt;