|
@@ -114,8 +114,6 @@
|
|
|
<script>
|
|
<script>
|
|
|
import { getTsbWsBind } from '@/api/tsb/ws'
|
|
import { getTsbWsBind } from '@/api/tsb/ws'
|
|
|
import tsbWebSocket from '@/utils/tsbWebSocket'
|
|
import tsbWebSocket from '@/utils/tsbWebSocket'
|
|
|
-import { isOnCmdRoute } from '@/utils/tsbCmdRoute'
|
|
|
|
|
-
|
|
|
|
|
const PAGE_CMD = 'common:tax'
|
|
const PAGE_CMD = 'common:tax'
|
|
|
|
|
|
|
|
/** 按钮操作类型 */
|
|
/** 按钮操作类型 */
|
|
@@ -226,8 +224,11 @@ export default {
|
|
|
},
|
|
},
|
|
|
watch: {
|
|
watch: {
|
|
|
'$store.state.tsb.pageDataVersion'() {
|
|
'$store.state.tsb.pageDataVersion'() {
|
|
|
- if (this.canOperateDevice) {
|
|
|
|
|
- this.tryApplyWsPageData(false)
|
|
|
|
|
|
|
+ this.tryApplyWsPageData(false)
|
|
|
|
|
+ },
|
|
|
|
|
+ '$store.state.tsb.deviceSwitchVersion'() {
|
|
|
|
|
+ if (String(this.$store.getters.tsbCurrentDeviceSn) === String(this.ownerDeviceSn)) {
|
|
|
|
|
+ this.refreshPageFromStore()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
@@ -235,18 +236,10 @@ export default {
|
|
|
this.wsTimer = setInterval(() => {
|
|
this.wsTimer = setInterval(() => {
|
|
|
this.wsConnected = tsbWebSocket.isConnected()
|
|
this.wsConnected = tsbWebSocket.isConnected()
|
|
|
}, 1000)
|
|
}, 1000)
|
|
|
- if (this.restorePageCache()) {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- this.initPageData()
|
|
|
|
|
|
|
+ this.refreshPageFromStore()
|
|
|
},
|
|
},
|
|
|
activated() {
|
|
activated() {
|
|
|
- if (this.restorePageCache()) {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- if (this.tryApplyWsPageData(true)) {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ this.refreshPageFromStore()
|
|
|
},
|
|
},
|
|
|
deactivated() {
|
|
deactivated() {
|
|
|
this.savePageCache()
|
|
this.savePageCache()
|
|
@@ -258,11 +251,20 @@ export default {
|
|
|
methods: {
|
|
methods: {
|
|
|
pageCacheKey(deviceSn) {
|
|
pageCacheKey(deviceSn) {
|
|
|
const sn = deviceSn != null ? deviceSn : this.ownerDeviceSn
|
|
const sn = deviceSn != null ? deviceSn : this.ownerDeviceSn
|
|
|
- return sn != null ? `${sn}::tax` : null
|
|
|
|
|
|
|
+ return sn != null ? `${String(sn)}::tax` : null
|
|
|
},
|
|
},
|
|
|
pageDataKey(deviceSn) {
|
|
pageDataKey(deviceSn) {
|
|
|
const sn = deviceSn != null ? deviceSn : this.ownerDeviceSn
|
|
const sn = deviceSn != null ? deviceSn : this.ownerDeviceSn
|
|
|
- return sn != null ? `${sn}::${PAGE_CMD}` : PAGE_CMD
|
|
|
|
|
|
|
+ return sn != null ? `${String(sn)}::${PAGE_CMD}` : PAGE_CMD
|
|
|
|
|
+ },
|
|
|
|
|
+ refreshPageFromStore() {
|
|
|
|
|
+ if (this.tryApplyWsPageData(true)) {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ if (this.restorePageCache()) {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ this.initPageData()
|
|
|
},
|
|
},
|
|
|
savePageCache(deviceSn) {
|
|
savePageCache(deviceSn) {
|
|
|
const key = this.pageCacheKey(deviceSn)
|
|
const key = this.pageCacheKey(deviceSn)
|
|
@@ -342,28 +344,18 @@ export default {
|
|
|
this.syncDefaultParamsToDevice()
|
|
this.syncDefaultParamsToDevice()
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- /** 从 store 应用 WebSocket 推送数据 */
|
|
|
|
|
|
|
+ /** 从 store 应用 WebSocket 推送数据(按设备 SN 隔离,与当前激活页签无关) */
|
|
|
tryApplyWsPageData(clearInitFlag) {
|
|
tryApplyWsPageData(clearInitFlag) {
|
|
|
const dataKey = this.pageDataKey()
|
|
const dataKey = this.pageDataKey()
|
|
|
const data = this.$store.state.tsb.pageData[dataKey]
|
|
const data = this.$store.state.tsb.pageData[dataKey]
|
|
|
- const initFromWs = this.$store.state.tsb.initFromWs[dataKey]
|
|
|
|
|
if (!data) {
|
|
if (!data) {
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
|
- if (initFromWs) {
|
|
|
|
|
- this.applyTaxData(data)
|
|
|
|
|
- if (clearInitFlag) {
|
|
|
|
|
- this.$store.commit('tsb/CLEAR_WS_INIT', { cmdType: PAGE_CMD, deviceSn: this.ownerDeviceSn })
|
|
|
|
|
- }
|
|
|
|
|
- this.savePageCache()
|
|
|
|
|
- return true
|
|
|
|
|
- }
|
|
|
|
|
- if (isOnCmdRoute(this.$route.path, PAGE_CMD, this.ownerDeviceSn, this.$store.getters.tsbCurrentPanel)) {
|
|
|
|
|
- this.applyTaxData(data)
|
|
|
|
|
- this.savePageCache()
|
|
|
|
|
- return true
|
|
|
|
|
|
|
+ this.applyTaxData(data)
|
|
|
|
|
+ if (clearInitFlag && this.$store.state.tsb.initFromWs[dataKey]) {
|
|
|
|
|
+ this.$store.commit('tsb/CLEAR_WS_INIT', { cmdType: PAGE_CMD, deviceSn: this.ownerDeviceSn })
|
|
|
}
|
|
}
|
|
|
- return false
|
|
|
|
|
|
|
+ return true
|
|
|
},
|
|
},
|
|
|
resetFormDefaults() {
|
|
resetFormDefaults() {
|
|
|
const dateParts = createDefaultDateParts()
|
|
const dateParts = createDefaultDateParts()
|