件選擇器是我們經常會使用到的,一般都是通過點擊某個按鈕然后選取文件。
所以封裝一個文件選擇按鈕還是有必要的。
首先,這個按鈕使用起來必須和普通按鈕一模一樣,否則就失去了封裝的意義。
其次也要基本符合我[基礎]中講到的幾點。
于是(注意在chrome中使用image/*會很慢):(基礎版本)
import React, { PureComponent } from 'react'; import CSSModules from 'react-css-modules'; import Tools from '../../common_js/Tools' import styles from './FileButton.css' class FileButton extends PureComponent { constructor(props) { super(props); this.getFiles=this.getFiles.bind(this) this.onChange=this.onChange.bind(this) } getFiles() { let ans=[] let files=this.refs.fileLoader.files for (let i=0; i < files.length; i++) { ans.push(files[i]) } return ans } onChange(e) { if (!Tools.isNone(this.props.onChange)) { this.props.onChange(this.getFiles()) } this.refs.fileLoader.value='' } render() { let accept=this.props.accept if (Tools.isNone(accept)) { accept='image/*' if (Tools.isChrome()) { accept='image/jpeg,image/gif,image/png,image/bmp' } } return ( <label className={this.props.className} style={this.props.style} > {this.props.children} { this.props.multiple==true ? <input styleName='input-area' ref='fileLoader' onChange={this.onChange} type="file" accept={accept} multiple /> : <input styleName='input-area' ref='fileLoader' onChange={this.onChange} type="file" accept={accept} /> } </label> ); } } export default CSSModules(FileButton, styles);
input_area樣式:
.input-area { width: 0px; height: 0px; position:absolute; clip:rect(0 0 0 0); }
此外:(@material-ui中Button的封裝版本)
Pasternack推出使用壽命達一百萬次且頻率范圍寬至DC~46GHz的機電式開關
加州爾灣2015年9月15日電 /美通社/ -- 業界領先的射頻、微波和毫米波產品制造商及供應商美國 Pasternack 公司推出了一大系列用于射頻,微波及毫米波領域的多市場通用同軸封裝機電式開關現貨產品。這些新型機電式開關極其適用于軍事通信、雷達、商業及軍事航空、衛星通信、測試及儀器儀表、醫療器械等領域。
Pasternack通用機電式開關
上述最新機電式開關包含134種帶連接器的設計型號,保證使用壽命均為一百萬次。這些通用開關新產品擴充了 Pasternack 現有的兩百萬至一千萬次使用壽命的高可靠性機電式繼電器開關產品線,使得該公司擁有業內最大的射頻開關現貨產品庫。此類射頻繼電器開關可搭配 SMA、N 型、TNC 以及2.92mm 等各種不同連接器,而且包括單刀雙擲、雙刀雙擲、單刀四擲、單刀六擲、單刀十擲以及切換式等各種常用構型。此外,某些型號產品還具有閉鎖致動器、故障安全致動器、指示燈、輸入控制電壓 (TTL) 控制、端接電阻、脈沖封鎖以及熱切換等額外功能。
上述通用開關新產品的工作頻率范圍為DC~46GHz,額定功率為10W~275W,隔離度高達80dB,開關速度為15ms~50ms,插入損耗低至0.2dB~0.6dB。此外,這些射頻開關的所用材料及表面處理均符合現行美國軍用標準。
“Pasternack 為設計人員提供了一個綜合的通用機電式開關產品選型庫。這些產品可應用于多種市場,具有各種常用構型,而且均具有達一百萬次的保證使用壽命”,Pasternack 公司有源器件產品經理 Tim Galla 先生表示,“這些開關產品是對我們現有達一千萬次壽命的高可靠性繼電器開關產品線的完美補充。”
上述包含134種通用機電式開關的新產品系列已備貨在庫并可自今日隨時出貨。您可訪問http://www.pasternack.com/pages/RF-Microwave-and-Millimeter-Wave-Products/general-purpose-electromechanical-rf-switches.html,了解這些新型機電式開關的信息。
可致電 400-007-3336 聯系我們的中國經銷商或撥打 Pasternack 中國電話 21-3655-8021,或蒞臨IME/2015 Pasternack 展臺(展位#:B085,10月21日-23日,上海光大會展中心)與我們的技術專家面對面溝通。
于vue封裝的Modal彈出層,包含html頁面打開,提示,確認等常用diaog打開形式,引入js,css即可開箱使用,無需在頁面上提前聲明Modal,隨用隨生成,動態渲染掛接到頁面,關閉后自動移除,方便快捷,并且支持頁面大小,頁面傳參,頁面回調函數等在開發中需要使用的功能
1.引入vue.js
2.引入dist文件夾下的fastdialog.js和fastdialog.css文件,詳情可查看test分支,為演示示例
首先,頁面初始化化vue需要用變量存一下
var app1=new Vue({})
普通打開頁面
app1.$fastdialog.OpenDialog("111", "打開窗口", "newpage1.html", "600", "1200");
參數:dialog標識,頁面標題名稱,頁面url地址,頁面高度,頁面寬度
百分比打開頁面
app1.$fastdialog.OpenDialog("111", "打開窗口", "newpage1.html", "70", "80",null,null,"%");
注:第8個參數為寬高的單位,不傳默認px
打開的頁面關閉后,主頁面觸發回調函數
app1.$fastdialog.OpenDialog("222", "關閉窗口有回調函數", "newpage1.html", "600", "1200", AfterClose);
打開的頁面關閉后,主頁面觸發回調函數,回調函數包含關閉頁面傳遞的返回值
app1.$fastdialog.OpenDialog("333", "回掉函數包含返回值", "newpage1.html", "600", "1200", AfterCloseWithReturn); function AfterCloseWithReturn(ReturnValue) { alert("page1回傳的參數:"+ReturnValue); }
打開頁面并傳遞參數
OpenDialog("444", "有回調函數并傳參", "newpage1.html", "600", "1200", AfterCloseWithReturn, "125sds");
打開頁面獲取參數
var params=app1.$fastdialog.GetParams(); if (params && params !="undefined") { alert("打開頁面接收的參數:" + params); }
關閉打開的頁面
app1.$fastdialog.CloseDialog();
關閉打開的頁面并向主頁面傳遞返回值,配合3使用
app1.$fastdialog.CloseDialog("page1回傳222222");
在頂層窗口打開頁面,一般用于iframe中
app1.$fastdialog.OpenTopDialog("777777", "有回調函數并傳參", "newpage2.html", "500", "1000", AfterCloseWithReturn, "page1-page2傳參");
關閉頂層頁面
app1.$fastdialog.CloseDialog("page2回傳111111","page3");
注:CloseDialog方法在關閉OpenDialog的頁面,無需傳參,或者傳返回值,關閉OpenTopDialog的頁面時必須傳入兩個參數,ReturnValue和打開的dialog的id標識,無返回值傳null,如果一個頁面同時需要被 OpenDialog和OpenTopDialog打開,兩個參數必傳
打開普通提示窗
app1.$fastdialog.OpenAlert("提示", "請在規定期限內處理完成!");
關閉提示窗關閉后觸發回調事件
app1.$fastdialog.OpenAlert("提示", "請在規定期限內處理完成!",AfterClose);
打開成功提示窗
app1.$fastdialog.OpenSuccess("提示", "請在規定期限內處理完成!");
打開警告提示窗
app1.$fastdialog.OpenWaring("提示", "請在規定期限內處理完成!",null,"知道了");
打開失敗提示窗
app1.$fastdialog.OpenFail("提示", "請在規定期限內處理完成!");
打開確認提示窗
app1.$fastdialog.OpenConfirm("確認提示", "是否刪除當前數據", function () { app1.$fastdialog.OpenSuccess("提示", "刪除成功"); }); app1.$fastdialog.OpenConfirm("確認提示", "是否刪除當前數據", function () { }, "確認刪除", "取消操作");
注:
1.alert類提示窗支持4個參數 標題,提示信息,回調函數,關閉按鈕文字
3.confirm提示窗支持5個參數 標題,提示信息,確認按鈕回調函數,自定義確認按鈕文字,自定義取消按鈕文字
一些說明: 下載代碼的同學查看例子時需要部署一下,因為Modal中包含了請求模板的http操作
https://gitee.com/grassprogramming/FastDialog-Vue
示例:http://grassprogramming.gitee.io/fastdialog-vue/example.html
*請認真填寫需求信息,我們會在24小時內與您取得聯系。