ng new cc-qrcode
ng g module qrcode
2.在項目src/app/shard(shard自己創建一個目錄)目錄中,使用命令ng g component qrcode創建一個qrcode組件,刪除沒用的qrcode.component.html和qrcode.component.xxx樣式文件,因為我們這個二維碼組件不需要這個,只要有ts里面實現就可以了,所以刪除!!!
ng g component qrcode
3.由于我們的組件依賴于第三方的qrious插件,所以需要通過npm install qrious --save安裝。
npm install qrious --save
4.在之前創建的qrcode.component.ts中,實現二維碼,具體的內容如下。
//這里引入的是angular模塊的內容
import { Component, OnInit, Input, ElementRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
//這里引入我們安裝的第三方二維插件
import QRious from 'qrious';
/**
* 二維碼
*/
@Component({
selector: 'cc-qrcode',
template: `` //這里不需求模板,所以放空,如果覺得這個不好看,可以使用指令的方式實現
})
export class QrcodeComponent implements OnChanges, OnDestroy {//這里實現了OnChanges與OnDestroy接口,一個是用于監聽參數改變用的,一個是銷毀組件用的
// 二維碼值參數
@Input() value='';
// 二維碼背景顏色,默認我們給個白色
@Input() background='white';
// 二維碼前景色,也就是圖案的顏色,默認我們給個黑色
@Input() foreground='black';
// 二維碼背景透明度,取值范圍是0-1.0之間
@Input() backgroundAlpha=1.0;
// 二維碼前景的透明度,取值范圍是0-1.0之間
@Input() foregroundAlpha=1.0;
// 二維碼的誤差校正級別(L, M, Q, H)
@Input() level='L';
// 生成的圖片類型,默認image/png
@Input() mime='image/png';
// 內邊距
@Input() padding=0;
// 二維碼大小(寬高)
@Input() size=100;
// 是否使用畫布生成,默認為false,圖片方式
@Input() canvas=false;
// 二維碼實例對象
qr: QRious;
constructor(private elementRef: ElementRef) { }
ngOnChanges(changes: SimpleChanges): void {
//這里判斷參數是否改變
if (changes.background || changes.backgroundAlpha || changes.foreground ||
changes.foregroundAlpha || changes.level || changes.mime ||
changes.padding || changes.size || changes.value || changes.canvas) {
this.qrcodedBuild();
}
}
//二維碼構造的方法
qrcodedBuild(): void {
// 這里獲取元素對象
const element: HTMLElement=this.elementRef.nativeElement;
//清空里面的內容
element.innerHTML='';
// 為二維碼插件初始化
this.qr=new QRious({
background: this.background,
backgroundAlpha: this.backgroundAlpha,
foreground: this.foreground,
foregroundAlpha: this.foregroundAlpha,
level: this.level,
mime: this.mime,
padding: this.padding,
size: this.size,
value: this.value
});
// 判斷是否需要使用畫布的方式,默認使用的是圖片方式
if (this.canvas) {
element.appendChild(this.qr.canvas);
} else {
element.appendChild(this.qr.image);
}
}
// 將二維碼轉換成base64編碼
toDataURL(): string {
return this.qr.toDataURL();
}
// 這里要銷毀組件
ngOnDestroy() {
this.qr=null;
}
}
1.使用時只需要引入模塊,然后就可直接在html中使用了
云CMS(DiYunCMS)-免費開源可商用的PHP萬能建站程序
使用帝云CMS二維碼生成函數可以自由生成各頁面二維碼圖片,比如網站二維碼,指定頁面二維碼,指定內容二維碼等。
參數 | 介紹 |
text | 二維碼內容,如一個地址等 |
thumb | 圖片地址,在二維碼增加一個LOGO |
level | 表示容錯率,也就是有被覆蓋的區域還能識別,分別是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%); |
size | 表示生成圖片大小,默認是5 |
返回二維碼地址
五、調用方式
{dr_qrcode(內容, "縮略圖", "L", "5")}
六、模板示例
輸出網站地址的二維碼: {dr_qrcode(SITE_URL)}
生成當前頁面二維碼:{dr_qrcode($my_web_url)}
show.html內容頁生成當前頁面二維碼并帶圖標
{dr_qrcode($my_web_url, dr_thumb($thumb), "M", "10")}
帝云CMS(DiYunCMS)-免費開源可商用的PHP萬能建站程序
本次疫情影響,近日西安市將陸續組織多輪大規模核酸篩查。關于近期市民關注度較高的核酸檢測相關問題,西安市大數據資源管理局進行了總匯及回復。
問:可以使用哪些證件進行核酸檢測?
答:市民在接到大規模核酸檢測通知后,建議優先攜帶能夠正常展示本人“一碼通”的手機前往進行核酸檢測。如果沒有“一碼通”,也可以僅攜帶個人有效證件進行核酸采樣。有效證件包括:境內中國公民——居民身份證(推薦)或臨時居民身份證;境內16周歲以下中國公民——居民身份證(推薦)或戶口簿;香港、澳門居民——港澳居民往來內地通行證或中華人民共和國港澳居民居住證;臺灣居民——臺灣居民來往大陸通行證或中華人民共和國臺灣居民居住證;外國公民——護照。
建議市民核酸采樣時同時攜帶個人身份證和一碼通前往核酸采樣點。
問:無一碼通用戶如何進行核酸采樣?
答:請您攜帶個人有效證件,到采樣點后,可主動聯系采樣人員,告知相關人員自己沒有一碼通,需使用證件采樣。了解詢問是否有專門針對非一碼通用戶的核酸采樣通道。
根據現場工作人員指引等待核酸采樣。通常情況下,沒有一碼通的用戶在工作人員登記信息后,會生成紙質“采樣二維碼”,用于核酸采樣登記及結果查詢。
問:沒有一碼通且沒有各類有效證件怎么辦?
答:如果您沒有注冊一碼通且沒有各類有效證件,建議您提前將個人身份信息(姓名、電話號碼、證件號碼)寫于紙上,攜帶至采樣點,告知采樣點工作人員情況,通過人工錄入的方式進行信息登記。信息登記后同樣會生成紙質“采樣二維碼”,用于核酸采樣登記及結果查詢。請您確保提供的個人信息準確無誤,以保證后期正常查詢核酸檢測結果。
問:“采樣二維碼”有什么用,能使用多久?
答:“采樣二維碼”不僅是您采樣時的憑證,也可使用手機掃描該二維碼查詢本人核酸檢測結果。目前情況下,“采樣二維碼”可以反復使用七天。如果丟失,可以在下次采樣時按上述步驟重新申領“采樣二維碼”。
問:為何沒有給我“采樣二維碼”也能完成采樣?
答:部分采樣點工作人員是通過移動終端進行核酸采樣登記,這種方式不會發放“采樣二維碼”。工作人員會使用手機掃碼您的身份證,或錄入個人信息完成身份登記,然后進行核酸采樣。如您需查詢本人核酸檢測結果,可訪問以下網址,輸入個人信息后查詢。
核酸檢測結果應急查詢通道:https://yqpt.xa.gov.cn/nrt/inquire.html
問:采樣現場出現突發情況一碼通無法打開或手機關機打不開怎么辦?
答:當前我西安核酸檢測系統不僅可以通過一碼通進行核酸檢測,還可以使用身份證等其他證件進行采樣。您可以出示個人有效證件,按照工作人員的指引,有序排隊參加核酸檢測工作。
(西安日報 記者 王江黎)
*請認真填寫需求信息,我們會在24小時內與您取得聯系。