反饋已提交

網絡繁忙

倒計時訊息提示框

1. 概述

1.1 預期效果

FineReport 自帶的提示框樣式比較單一,例如填報校驗的提示框,如下圖所示:

可以透過引入一些 JS 和 CSS 來做出個性化的效果,如下圖所示:

倒计时消息提示框.gif

1.2 實現思路

  • 如果是 cpt 報表,直接在範本 Web 屬性中引入外部 JavaScript 和 CSS 。

  • 如果是 frm 報表,需要在 body 初始化事件中寫外部 JavaScript 和 CSS 引用。

2. 範例

2.1 下載檔案

1)點選下載 JavaScript 和 CSS 檔案:

notice.js

animate.css

noticejs.css

2)將 3 個檔案放到%FR_HOME%\webroot\help\css目錄下,如下圖所示:

2.2 引用檔案

1)建立普通報表,設計器菜單欄點選範本>範本Web屬性,開啟的頁面點選引用JavaScript,將上面的 1 個 JavaScript 檔案引用到報表中,如下圖所示:

2)點選引用CSS,將上面的 2 個 CSS 檔案引用到報表中,如下圖所示:

2.3 設計表格

B2、D2、F2、H2 儲存格都新增按鈕元件,按鈕名稱分別設定為:success、info、warning、error,如下圖所示:

2.4 新增事件

分別給表格中的 4 個按鈕新增點選事件,觸發彈出提示框的操作,如下圖所示:

1)B2 儲存格按鈕點選事件 JavaScript 程式碼如下:

new NoticeJs({
title: '',
type: 'success',
text: '填報成功',
position: 'topCenter',
closeWith: ['button','click'],
timeout: 30,
modal: false,
progressBar: true,
callbacks: {
beforeShow: [],
onShow: [],
afterShow: [],
onClose: [],
afterClose: [],
onClick: [],
onHover: [function() {
console.log("success");
}]
},
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutLeft'
}
}).show()

2)D2 儲存格按鈕點選事件 JavaScript 程式碼如下:

new NoticeJs({
type: 'info',
text: '填報進行中,暫時不可操作',
position: 'topCenter',
timeout: 30,
modal: true,
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutLeft'
}
}).show()

3)F2 儲存格點選事件 JavaScript 程式碼如下:

new NoticeJs({
type: 'warning',
text: '重複提交',
timeout: 30,
animation: {
open: 'animated bounceIn',
close: 'animated bounceOut'
}
}).show()

4)H2 儲存格點選事件 JavaScript 程式碼如下:

new NoticeJs({
type: 'error',
text: '填報失敗',
position: 'topCenter',
timeout: 30,
animation: {
open: 'animated flipInX',
close: 'animated flipoutX'
}
}).show()

2.5 效果預覽

儲存報表,點選填報預覽,效果如下圖所示:

倒计时消息提示框.gif

注:不支援行動端。

3. 範本下載

已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填報預覽JS實體\倒計時訊息提示框.cpt

點選下載範本:

倒计时消息提示框.cpt

點選下載JavaScript 和CSS 檔案:

animate.css

notice.js

noticejs.css

4. 注意事項

4.1 frm 報表實現方法

frm 報表需要在 body 初始化事件中寫 JavaScript 引入,其他操作同上面 cpt 報表的實現方法,如下圖所示:


JavaScript 程式碼如下:

function dynamicLoadCss(url) {
    var head = document.getElementsByTagName('head')[0];
    var link = document.createElement('link');
    link.type = 'text/css';
    link.rel = 'stylesheet';
    link.href = url;
    head.appendChild(link);
}
 
function dynamicLoadJs(url) {
    var oHead = document.getElementsByTagName('head').item(0);
    var oScript = document.createElement("script");
    oScript.type = "text/javascript";
    oScript.src = url;
    oHead.appendChild(oScript);
}
 
dynamicLoadCss("/webroot/help/css/noticejs.css");
dynamicLoadCss("/webroot/help/css/animate.css");
//引入css
dynamicLoadJs("/webroot/help/css/notice.js");
//引入js

4.2 Notice.js 參數說明

名稱
類型預設值說明
type
Stringsuccess
根據狀態決定提示框的背景色,共四種:success,info,error,warning
title
String標題文字
timeout
Number30提示框停留時間,30代表3s
text
String內容文字
progressBar
Booleantrue是否顯示倒計時條,true代表顯示,false代表不顯示
position
StringtopRight
提示框停留的不同位置,共九種:topLeft,topCenter,topRight,middleLeft,middleCenter,middleRight,bottomLeft,bottomCenter,bottomRight
modal
Booleanfalse決定彈出提示框後,頁面主體還能否操作。true代表不能,false代表能
closeWith
Array
['button']
手動關閉提示框的方式,共兩種:button,click。兩種方式可以共用,即:['button','click']
callback
Json回呼事件,可在提示框彈出的程式中,自訂JS方法
animation
Json提示框出現和消失的動畫,有多種選項可供選擇,自由搭配,詳見下面的第4點

4.3 動畫效果

open
close效果圖
animated bounceInRightanimated bounceOutLeft1.gif
animated bounceInanimated bounceOut2.gif
animated fadeInanimated fadeOut3.gif
animated lightSpeedInanimated lightSpeedOut4.gif
animated zoomInanimated zoomOut5.gif
animated flipInXanimated flipOutX6.gif
animated rollInanimated rollOut7.gif




附件列表


主題: 填報應用
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙