下面是網頁前端待改進的一些點
設備管理
頁面: /broadcastManagement/device/deviceManagement
- 在 https 時添加一個名爲“监听”的功能(添加在 操作菜單欄最開始),當用戶點擊時在新的頁面打開 `//${location.host}/static/listen.html?physical=XXXX`
- 選擇座標的 搜索 按鈕存在多個問題
- 似乎沒有使用服務器返回的 map.json 中的 key,這裏也每看到請求服務器的 map.json 是否忘記更新了
- 請求 path 爲 /v3/geocode/geo,服務器安裝高德官方指定設置了請求前綴 _AMapService,故猜測正確的 path 應該是 /_AMapService/v3/geocode/geo
- 查詢參數 address 在用戶輸入的文本內容前加入了前綴 undefined,看起來像個bug 請確定是否存在問題
目前頁面是在 http 時添加了监听功能,而 https 時沒有此功能。應該是前端判定邏輯剛好寫反了
創建流程任務
頁面: /broadcastManagement/task/createTask
- 將時間控件刪除,直接讓用戶手動輸入(HH:mm:ss)。原因如下:
- 這個時間控件選擇起來太麻煩,必須跟用戶進行教學,否則大概率不會正確使用
- 這個控件太難用,必須先選結束時間才能選擇開始時間(開始時間可選範圍受到結束時間影響)。這種選擇方式違反大部分人類習慣
- 這個控件存在時,手動輸入似乎也存在bug(受到控件範圍影響有時會把輸入內容修改到控件要求的範圍內)
- 有時無法先選擇結束時間,只能先選擇開始時間,見下一項功能增加
- 也可以不用刪除,另外一種解決方案是將控件的結束時間默認設置爲 23:59:59 ,這樣開始時間就幾乎不會被結束時間限制。但用戶在修改了結束時間後,再次修改時間仍然會面臨上述多個問題,所以最好直接刪除這個控件,讓用戶手動輸入 HH:mm:ss 的時間文本
- 在時間輸入的對話框後再增加個圖標按鈕,當用戶點擊後依據當前時間自動計算結束時間。(結束時間=開始時間+所有音頻播放播放花費的時間+20秒) (返回的每個音頻數據有個 duration 屬性,是這首音樂的播放時長,+20秒是因爲 任務在開始後會等待一段時間才開始,用於等待所有設備準備好,等待時間由服務器參數控制,但一般都小於 20 秒,此外音頻設備在切換音樂時也會有毫秒級別的切換時間但通常可以忽略)
- 點擊修改打開的任務修改頁面,音頻選擇控件顯示的文本是请选择音频而非用戶選擇的音頻名稱。這會讓用戶困擾以爲自己沒有選擇音頻
流程任務一覽
頁面: /broadcastManagement/task/toExamineTask
- 在列表的 調度器id 非0時,應該可以直接點擊此id後打開一個頁面顯示此 調度器 相關的所有日誌,以便於管理員能夠方便的查看此任務最後的調度情況。
音頻直播
頁面: /broadcastManagement/task/audioLive
- 任務目標 的區域 和 設備,應該優先顯示名稱,只在查詢不到名稱時才顯示邏輯碼。(上個版本似乎刪除了 任務目標 的顯示[我在頁面未找到],應該要顯示出來,或者給出一個詳情按鈕用戶點擊時在詳情裏面顯示出來,這樣管理員才能查看受這個任務影響的區域和設備有哪些)
- 在列表的 調度器id 非0時,應該可以直接點擊此id後打開一個頁面顯示此 調度器 相關的所有日誌,以便於管理員能夠方便的查看此任務的調度情況。
檔案直播
頁面: /broadcastManagement/task/timelyLive
- 任務目標 的區域 和 設備,應該優先顯示名稱,只在查詢不到名稱時才顯示邏輯碼。(上個版本似乎刪除了 任務目標 的顯示[我在頁面未找到],應該要顯示出來,或者給出一個詳情按鈕用戶點擊時在詳情裏面顯示出來,這樣管理員才能查看受這個任務影響的區域和設備有哪些)
- 文字轉語音 的描述文本應該是可選的,目前是用戶必須設置
- 在列表的 調度器id 非0時,應該可以直接點擊此id後打開一個頁面顯示此 調度器 相關的所有日誌,以便於管理員能夠方便的查看此任務的調度情況
數據統計
頁面: /broadcastManagement/bigScreen
- 在點擊區域樹上的區域節點時應該把地圖自動定位到此區域。(在上個版本的系統前端中使用百度地圖,做法是,把點擊的區域自動串成一個地理名稱,然後調用baidu地圖提供的api定位到這個名稱。如果目前地圖不支持請後續告知再商議如何處理。 比如點擊了成華區,發現成華區的父級是成都就定位到 “成都成華區”, 以算法來說代碼類似如下)
function onClickItem(ele) {
// 組合地名
const names = []
for (; ele; ele = foundParent(ele)) {
names.push(ele.name)
}
const name = names.reverse().join("")
// 調用地圖 api,顯示這個地名
console.log(name)
}
- 應該爲區域葉子節點增加設備節點(如果存在的化),並且在點擊葉子節點時,如果存在定位信息應該把地圖導航到定位的座標。應該可以雙擊或者在右擊設備節點後顯示設備信息(/broadcastManagement/device/deviceHistory 頁面顯示的設備詳情)
- 應該動態創建樹,而不是一下子創建一個完整的靜態樹
- 爲樹的節點定義兩個類型 area 和 device 然後每個節點記錄這個類型例如記錄到 type 屬性 .type=area or device
- 頁面加載時構建好完整的 area 樹(就是目前情況),或者部分樹
- 爲每個節點添加點擊回調處理,在回調裏面依據 type 記錄的不同而執行不同代碼,如果是 device 彈出一個詳細框顯示節點詳細,如果是 area 並且是葉子節點,查看它是否完成(例如爲每個節點定義一個枚舉 state 屬性 idle,query,complete 。當 state 爲 idle 時執行查詢),查詢它下面的設備(查詢時將 state 設置爲 query 避免多次點擊),在查詢成功後(將 state 設置爲 complete 避免重複查詢)將查找到的設備以 type=device 加入樹中
上述添加葉子節點內容直接由上個修改版本複製過來,因爲我無法確定上個版本是否有修改。最後收到的版本中在查詢設備時(單擊區域時)前端傳入了查詢參數 physical (這是物理碼),但實際應該使用 logic (邏輯碼) 查詢,所以頁面沒有顯示任意設備(錯誤的參數導致沒有查到任何設備)故我不清除這個功能目前是什麼樣子
添加 notice 功能
notice 功能被遺忘了,它主要是一些系統發給用戶的消息,做個頁面可以查詢消息,顯示消息內容,把消息標記爲已讀,刪除消息即可。