diff --git a/src/assets/images/muted.png b/src/assets/images/muted.png new file mode 100755 index 0000000..52513dd Binary files /dev/null and b/src/assets/images/muted.png differ diff --git a/src/assets/images/un_muted.png b/src/assets/images/un_muted.png new file mode 100755 index 0000000..4f06e0d Binary files /dev/null and b/src/assets/images/un_muted.png differ diff --git a/src/views/data-view/components/data-view-layout.vue b/src/views/data-view/components/data-view-layout.vue index b083d2e..8dff86f 100644 --- a/src/views/data-view/components/data-view-layout.vue +++ b/src/views/data-view/components/data-view-layout.vue @@ -16,6 +16,10 @@ title }}
+
{{ date }} @@ -53,6 +57,8 @@ import DataViewBG from '@/assets/images/data-view-bg.png' import DataViewHeaderBg from '@/assets/images/data-view-header-bg.png' import ICUNFullscreen from '@/assets/images/ic_unfullscreen.png' +import icUnMuted from '@/assets/images/un_muted.png' +import icMuted from '@/assets/images/muted.png' import { getWeek, parseTime } from '@/utils/ruoyi' export default { @@ -69,6 +75,10 @@ export default { // 大标题 title: { type: String + }, + // 大标题 + isMute: { + type: Boolean } }, data() { @@ -79,6 +89,15 @@ export default { date: parseTime(new Date(), `{y}-{m}-{d} {h}:{i}:{s}`) + ' ' + getWeek() } }, + computed: { + audioIc() { + if (this.isMute) { + return icUnMuted + } else { + return icMuted + } + } + }, mounted() { // 每秒更新一次时间 setInterval(() => { @@ -161,15 +180,15 @@ export default { height: 100%; .left-table { - width: 32.5%; + width: 32%; } .middle { - width: 32.5%; + width: 24%; } .right-table { - width: 32.5%; + width: 41%; } } diff --git a/src/views/data-view/components/horizontal-scroll-pane.vue b/src/views/data-view/components/horizontal-scroll-pane.vue new file mode 100644 index 0000000..edcfcec --- /dev/null +++ b/src/views/data-view/components/horizontal-scroll-pane.vue @@ -0,0 +1,76 @@ + + + + diff --git a/src/views/data-view/data-view.vue b/src/views/data-view/data-view.vue index 32096e8..415effd 100644 --- a/src/views/data-view/data-view.vue +++ b/src/views/data-view/data-view.vue @@ -4,6 +4,8 @@ identifier="KK- MANAGE" :icon="icon" @leave="handleLeave" + @audioStatus="toggleMute" + :isMute="isMute" ref="layout" > @@ -34,12 +36,11 @@ @@ -82,9 +92,10 @@ import icon from '@/assets/logo/plain.png' import DataViewTable from './components/data-view-table.vue' import { amountFormat, amountFriendlyFormat, sortBy } from '@/utils/ruoyi' import screenfull from 'screenfull' +import HorizontalScrollPane from './components/horizontal-scroll-pane.vue' export default { - components: { DataViewTable, DataViewLayout, DataViewEchart }, + components: { HorizontalScrollPane, DataViewTable, DataViewLayout, DataViewEchart }, data() { return { DataViewBG, @@ -162,7 +173,9 @@ export default { totalLabel: '总金额:0' }, ws: null, - isScreenFull: false + isScreenFull: false, + // 是否静音 + isMute: localStorage.getItem('isMute') === 'true' } }, mounted() { @@ -177,6 +190,11 @@ export default { this.connectWS() }, methods: { + // 切换静音状态 + toggleMute() { + this.isMute = !this.isMute + localStorage.setItem('isMute', this.isMute) + }, connectWS() { this.ws = new WebSocket(`ws://kaka-qws.weirui0755.com/websocket`) this.ws.onopen = () => { @@ -251,7 +269,7 @@ export default { balance: f(i.balance) || '0', residueBalance: f(i.residueBalance) || '0', collectionSuccessPrice: f(i.collectionSuccessPrice) || '0', - percentage: (i.percentage * 100).toFixed(2) + '%', + percentage: Number.parseInt(i.percentage * 100) + '%', balanceWarning: i.balanceWarning } }) @@ -261,7 +279,7 @@ export default { // 在线卡数据 this.data2 = card.map(i => { return { - bankName: i.bankName + '/' + '**** ' + i.cardNumber.slice(-4), + bankName: i.bankName, cardHolder: i.cardHolder, username: i.username, todayIncomeReceived: f(i.todayIncomeReceived) || '0', @@ -269,7 +287,7 @@ export default { todayOutNumber: i.todayOutNumber + '/' + f(i.todayOutReceived) || '0', remainingAmount: f(i.remainingAmount) || '0', balanceWarning: i.balanceWarning, - channel: i.channelNames.join(',') + channels: i.channelNames } }) this.data2 = sortBy(this.data2, 'balanceWarning') @@ -293,10 +311,12 @@ export default { this.$refs.table2.scrollReset() this.$refs.table3.scrollReset() - const audio = new Audio('/alarm.mp3') - const hasBalanceWarning = this.data1.some(i => i.balanceWarning) || this.data2.some(i => i.balanceWarning) || this.data3.some(i => i.balanceWarning) - if (hasBalanceWarning) { - audio.play() + if (this.isMute) { + const audio = new Audio('/alarm.mp3') + const hasBalanceWarning = this.data1.some(i => i.balanceWarning) || this.data2.some(i => i.balanceWarning) || this.data3.some(i => i.balanceWarning) + if (hasBalanceWarning) { + audio.play() + } } } },