| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- const {
- crcTool
- } = require('../../../tools/crc-hash/index.js')
- const {
- loadSelectedFile
- } = require('../../../repositories/file.js')
- const handlers = {
- onCrcPresetChange(event) {
- const presetIndex = Number(event.detail.value)
- this.setData({
- ...crcTool.createPresetState(presetIndex),
- crcErrorText: ''
- })
- },
- onCrcInputTypeChange(event) {
- this.setData({
- crcErrorText: '',
- crcInputTypeIndex: Number(event.detail.value)
- })
- },
- onCrcConfigInput(event) {
- const field = event.currentTarget.dataset.field
- if (!field) return
- const isCrcConfigField = crcTool.CRC_CONFIG_FIELDS.includes(field)
- const nextData = {
- [field]: event.detail.value,
- crcErrorText: ''
- }
- if (isCrcConfigField) {
- nextData.crcAlgorithmCollapsed = false
- nextData.crcPresetIndex = crcTool.getCustomPresetIndex()
- }
- this.setData(nextData)
- },
- onCrcReflectChange(event) {
- const field = event.currentTarget.dataset.field
- if (!field) return
- this.setData({
- [field]: !!event.detail.value,
- crcAlgorithmCollapsed: false,
- crcErrorText: '',
- crcPresetIndex: crcTool.getCustomPresetIndex()
- })
- },
- toggleCrcAlgorithmPanel() {
- this.setData({
- crcAlgorithmCollapsed: !this.data.crcAlgorithmCollapsed
- })
- },
- onCrcDataInput(event) {
- this.crcFileBytes = null
- this.setData({
- crcDataText: event.detail.value,
- crcErrorText: '',
- crcFileName: '',
- crcFileSizeText: ''
- })
- },
- calculateCrc() {
- try {
- this.setData(crcTool.calculateFromState(this.data, this.crcFileBytes))
- } catch (error) {
- const message = error && error.message ? error.message : '计算失败'
- this.setData({
- crcErrorText: message
- })
- if (this.pageToast) this.pageToast.show(message, 'error')
- }
- },
- async loadCrcFileFromMessage() {
- try {
- const file = await loadSelectedFile('message')
- this.crcFileBytes = file.bytes
- this.setData({
- crcDataLengthText: file.sizeText,
- crcDataText: '',
- crcErrorText: '',
- crcFileName: file.name,
- crcFileSizeText: file.sizeText
- })
- this.calculateCrc()
- } catch (error) {
- const message = error && (error.errMsg || error.message)
- ? (error.errMsg || error.message)
- : '读取文件失败'
- if (!/cancel/i.test(message) && this.pageToast) {
- this.pageToast.show(message, 'error')
- }
- }
- },
- clearCrcInput() {
- this.crcFileBytes = null
- this.setData({
- crcDataLengthText: '0 bytes',
- crcDataText: '',
- crcErrorText: '',
- crcFileName: '',
- crcFileSizeText: '',
- crcResultBase64: '--',
- crcResultBin: '--',
- crcResultBinLines: [
- {
- id: 'bin-line-0',
- text: '--'
- }
- ],
- crcResultHex: '--'
- })
- }
- }
- module.exports = {
- handlers
- }
|