2024-08-22 15:03:30 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @description 锁信息数据持久化
|
|
|
|
|
|
*/
|
|
|
|
|
|
import { defineStore } from 'pinia'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
import { timeFormat } from 'uview-plus'
|
2024-08-22 15:03:30 +08:00
|
|
|
|
import { getLockListRequest } from '@/api/lock'
|
2024-08-28 16:55:11 +08:00
|
|
|
|
import { getPsaawordListRequest } from '@/api/keyboardPwd'
|
|
|
|
|
|
import { getKeyListRequest } from '@/api/key'
|
2024-09-19 11:50:23 +08:00
|
|
|
|
import { setStorage } from '@/utils/storage'
|
2024-08-22 15:03:30 +08:00
|
|
|
|
|
|
|
|
|
|
export const useLockStore = defineStore('lock', {
|
|
|
|
|
|
state() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
// 锁列表
|
|
|
|
|
|
lockList: [],
|
|
|
|
|
|
// 锁总数
|
2024-08-28 16:55:11 +08:00
|
|
|
|
lockTotal: 0,
|
2024-08-29 14:42:16 +08:00
|
|
|
|
// 锁列表搜索数据
|
|
|
|
|
|
lockSearch: {
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 50,
|
|
|
|
|
|
searchStr: ''
|
|
|
|
|
|
},
|
2024-08-28 16:55:11 +08:00
|
|
|
|
// 密码列表
|
|
|
|
|
|
passwordList: [],
|
|
|
|
|
|
// 密码总数
|
|
|
|
|
|
passwordTotal: 0,
|
|
|
|
|
|
// 当前密码详情
|
|
|
|
|
|
currentPasswordInfo: {},
|
2024-08-29 14:42:16 +08:00
|
|
|
|
// 密码列表搜索数据
|
|
|
|
|
|
passwordSearch: {
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 50,
|
|
|
|
|
|
searchStr: ''
|
|
|
|
|
|
},
|
2024-08-28 16:55:11 +08:00
|
|
|
|
// 电子钥匙总数
|
|
|
|
|
|
keyTotal: 0,
|
|
|
|
|
|
// 电子钥匙列表
|
|
|
|
|
|
keyList: [],
|
|
|
|
|
|
// 当前电子钥匙详情
|
|
|
|
|
|
currentKeyInfo: {},
|
|
|
|
|
|
// 电子钥匙列表搜索数据
|
|
|
|
|
|
keySearch: {
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 50,
|
|
|
|
|
|
searchStr: '',
|
|
|
|
|
|
endDate: '0',
|
|
|
|
|
|
startDate: '0',
|
2024-09-04 10:36:33 +08:00
|
|
|
|
keyStatus: [110401, 110402, 110412, 110405, 110403],
|
2024-08-28 16:55:11 +08:00
|
|
|
|
keyRight: 0
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
2024-08-22 15:03:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
actions: {
|
2024-09-06 14:07:13 +08:00
|
|
|
|
// 更新锁列表
|
|
|
|
|
|
updateLockList(list) {
|
|
|
|
|
|
this.lockList = list
|
|
|
|
|
|
},
|
2024-09-06 11:34:01 +08:00
|
|
|
|
// 清空列表
|
|
|
|
|
|
clearList(type) {
|
|
|
|
|
|
this[type + 'List'] = []
|
|
|
|
|
|
},
|
2024-09-04 14:31:35 +08:00
|
|
|
|
// 获取电量icon
|
|
|
|
|
|
getPowerIcon(power) {
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (power >= 80) {
|
2024-09-04 14:31:35 +08:00
|
|
|
|
return '/static/images/icon_power_5.png'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (power >= 60) {
|
2024-09-04 14:31:35 +08:00
|
|
|
|
return '/static/images/icon_power_4.png'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (power >= 40) {
|
2024-09-04 14:31:35 +08:00
|
|
|
|
return '/static/images/icon_power_3.png'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (power >= 20) {
|
2024-09-04 14:31:35 +08:00
|
|
|
|
return '/static/images/icon_power_2.png'
|
|
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
return '/static/images/icon_power_1.png'
|
2024-09-04 14:31:35 +08:00
|
|
|
|
},
|
|
|
|
|
|
// 将星期转换为中文字符串
|
2024-09-03 17:48:26 +08:00
|
|
|
|
convertWeekDaysToChineseString(weekDays) {
|
|
|
|
|
|
const dayMap = {
|
|
|
|
|
|
1: '一',
|
|
|
|
|
|
2: '二',
|
|
|
|
|
|
3: '三',
|
|
|
|
|
|
4: '四',
|
|
|
|
|
|
5: '五',
|
|
|
|
|
|
6: '六',
|
|
|
|
|
|
7: '日'
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const chineseWeekDays = weekDays.map(day => dayMap[day])
|
|
|
|
|
|
|
|
|
|
|
|
return chineseWeekDays.join(',')
|
|
|
|
|
|
},
|
2024-08-29 14:42:16 +08:00
|
|
|
|
updateLockSearch(search) {
|
|
|
|
|
|
this.lockSearch = search
|
|
|
|
|
|
},
|
|
|
|
|
|
updatePasswordSearch(search) {
|
|
|
|
|
|
this.passwordSearch = search
|
|
|
|
|
|
},
|
2024-08-28 16:55:11 +08:00
|
|
|
|
updateKeySearch(search) {
|
|
|
|
|
|
this.keySearch = search
|
|
|
|
|
|
},
|
|
|
|
|
|
updateCurrentKeyInfo(info) {
|
|
|
|
|
|
this.currentKeyInfo = info
|
|
|
|
|
|
},
|
|
|
|
|
|
updateCurrentPasswordInfo(info) {
|
|
|
|
|
|
this.currentPasswordInfo = info
|
|
|
|
|
|
},
|
2024-09-02 17:18:14 +08:00
|
|
|
|
getRole(userType, keyRight) {
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (userType === 110301) {
|
2024-08-22 15:03:30 +08:00
|
|
|
|
return '超级管理员'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (keyRight === 1) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
return '授权管理员'
|
2024-08-22 15:03:30 +08:00
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
return '普通用户'
|
2024-08-22 15:03:30 +08:00
|
|
|
|
},
|
2024-08-29 14:42:16 +08:00
|
|
|
|
getKeyStatus(keyStatus) {
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (keyStatus === 110401) {
|
2024-09-05 17:23:28 +08:00
|
|
|
|
return ''
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (keyStatus === 110403) {
|
2024-09-04 10:36:33 +08:00
|
|
|
|
return '未生效'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (keyStatus === 110402) {
|
2024-08-29 14:42:16 +08:00
|
|
|
|
return '待接收'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (keyStatus === 110412) {
|
2024-08-29 14:42:16 +08:00
|
|
|
|
return '已过期'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (keyStatus === 110405) {
|
2024-09-04 10:36:33 +08:00
|
|
|
|
return '已冻结'
|
2024-09-03 18:36:04 +08:00
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
return ''
|
2024-09-03 18:36:04 +08:00
|
|
|
|
},
|
|
|
|
|
|
getPasswordStatus(passwordStatus) {
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (passwordStatus === 2) {
|
2024-09-03 18:36:04 +08:00
|
|
|
|
return '已过期'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (passwordStatus === 3) {
|
2024-09-03 18:36:04 +08:00
|
|
|
|
return '未生效'
|
2024-08-29 14:42:16 +08:00
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
return ''
|
2024-08-29 14:42:16 +08:00
|
|
|
|
},
|
2024-08-22 15:03:30 +08:00
|
|
|
|
getTimeLimit(keyType) {
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (keyType === 1) {
|
2024-08-22 15:03:30 +08:00
|
|
|
|
return '永久'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (keyType === 2) {
|
2024-08-22 15:03:30 +08:00
|
|
|
|
return '限时'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (keyType === 3) {
|
2024-08-22 15:03:30 +08:00
|
|
|
|
return '单次'
|
|
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
return '循环'
|
2024-08-22 15:03:30 +08:00
|
|
|
|
},
|
|
|
|
|
|
async getLockList(params) {
|
|
|
|
|
|
const { code, data, message } = await getLockListRequest(params)
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (code === 0) {
|
2024-08-22 15:03:30 +08:00
|
|
|
|
this.lockTotal = data.total
|
2025-02-06 11:37:41 +08:00
|
|
|
|
for (let i = 0; i < data.groupList.length; i++) {
|
2024-09-03 17:24:03 +08:00
|
|
|
|
for (let j = 0; j < data.groupList[i].lockList.length; j++) {
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (
|
|
|
|
|
|
(data.groupList[i].lockList[j].keyType === 2 ||
|
|
|
|
|
|
data.groupList[i].lockList[j].keyType === 4) &&
|
|
|
|
|
|
data.groupList[i].lockList[j].keyStatus === 110401
|
|
|
|
|
|
) {
|
2024-09-03 17:24:03 +08:00
|
|
|
|
const now = new Date().getTime()
|
|
|
|
|
|
const diffInMilliseconds = data.groupList[i].lockList[j].endDate - now
|
|
|
|
|
|
const millisecondsPerDay = 24 * 60 * 60 * 1000
|
|
|
|
|
|
const diffInDays = Math.floor(diffInMilliseconds / millisecondsPerDay)
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (diffInDays > 0 && diffInDays <= 15) {
|
2024-09-03 17:24:03 +08:00
|
|
|
|
data.groupList[i].lockList[j].days = diffInDays
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (params.pageNo === 1) {
|
2024-08-22 15:03:30 +08:00
|
|
|
|
this.lockList = data.groupList
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.lockList = this.lockList.concat(data.groupList)
|
|
|
|
|
|
}
|
2024-09-19 11:50:23 +08:00
|
|
|
|
setStorage('lockList', this.lockList)
|
2024-08-22 15:03:30 +08:00
|
|
|
|
return { code }
|
|
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
return { code, message }
|
2024-08-28 16:55:11 +08:00
|
|
|
|
},
|
|
|
|
|
|
async getPasswordList(params) {
|
|
|
|
|
|
const { code, data, message } = await getPsaawordListRequest(params)
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (code === 0) {
|
2024-08-28 16:55:11 +08:00
|
|
|
|
this.passwordTotal = data.total
|
2025-02-06 11:37:41 +08:00
|
|
|
|
for (let i = 0; i < data.list.length; i++) {
|
|
|
|
|
|
if (data.list[i].keyboardPwdType === 1) {
|
|
|
|
|
|
data.list[i].timeText =
|
|
|
|
|
|
`${timeFormat(new Date(data.list[i].startDate), 'yyyy-mm-dd h:M')} 单次`
|
|
|
|
|
|
} else if (data.list[i].keyboardPwdType === 2) {
|
|
|
|
|
|
data.list[i].timeText =
|
2025-02-17 15:41:41 +08:00
|
|
|
|
`${timeFormat(new Date(data.list[i].created_at), 'yyyy-mm-dd h:M')} 永久`
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 3) {
|
2024-08-28 16:55:11 +08:00
|
|
|
|
data.list[i].timeText = `${data.list[i].validTimeStr} 限时`
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 4) {
|
|
|
|
|
|
data.list[i].timeText =
|
|
|
|
|
|
`${timeFormat(new Date(data.list[i].startDate), 'yyyy-mm-dd h:M')} 清空码`
|
2024-09-02 17:18:14 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
let text = ''
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (data.list[i].keyboardPwdType === 5) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '周末'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 6) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '每日'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 7) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '工作日'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 8) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '周一'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 9) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '周二'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 10) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '周三'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 11) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '周四'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 12) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '周五'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 13) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '周六'
|
2025-02-06 11:37:41 +08:00
|
|
|
|
} else if (data.list[i].keyboardPwdType === 14) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
text = '周日'
|
|
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
data.list[i].timeText =
|
|
|
|
|
|
`${text} ${data.list[i].hoursStart}:00-${data.list[i].hoursEnd}:00 循环`
|
2024-09-02 17:18:14 +08:00
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (data.list[i].isCustom === 1) {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
data.list[i].timeText += ' 自定义'
|
2024-08-28 16:55:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (params.pageNo === 1) {
|
2024-08-28 16:55:11 +08:00
|
|
|
|
this.passwordList = data.list
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.passwordList = this.passwordList.concat(data.list)
|
|
|
|
|
|
}
|
|
|
|
|
|
return { code }
|
|
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
return { code, message }
|
2024-08-28 16:55:11 +08:00
|
|
|
|
},
|
|
|
|
|
|
async getKeyList(params) {
|
|
|
|
|
|
const { code, data, message } = await getKeyListRequest(params)
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (code === 0) {
|
2024-08-28 16:55:11 +08:00
|
|
|
|
this.keyTotal = data.total
|
2025-02-06 11:37:41 +08:00
|
|
|
|
for (let i = 0; i < data.list.length; i++) {
|
|
|
|
|
|
if (data.list[i].keyType === 1) {
|
|
|
|
|
|
data.list[i].timeText =
|
|
|
|
|
|
`${timeFormat(new Date(data.list[i].sendDate), 'yyyy-mm-dd h:M')} 永久`
|
|
|
|
|
|
} else if (data.list[i].keyType === 2) {
|
|
|
|
|
|
data.list[i].timeText =
|
|
|
|
|
|
`${timeFormat(new Date(data.list[i].startDate), 'yyyy-mm-dd h:M')} - ${timeFormat(new Date(data.list[i].endDate), 'yyyy-mm-dd h:M')} 限时`
|
|
|
|
|
|
} else if (data.list[i].keyType === 3) {
|
|
|
|
|
|
data.list[i].timeText =
|
|
|
|
|
|
`${timeFormat(new Date(data.list[i].sendDate), 'yyyy-mm-dd h:M')} 单次`
|
2024-08-28 16:55:11 +08:00
|
|
|
|
} else {
|
2024-09-02 17:18:14 +08:00
|
|
|
|
data.list[i].timeText = `循环`
|
2024-08-28 16:55:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
if (params.pageNo === 1) {
|
2024-08-28 16:55:11 +08:00
|
|
|
|
this.keyList = data.list
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.keyList = this.keyList.concat(data.list)
|
|
|
|
|
|
}
|
|
|
|
|
|
return { code }
|
|
|
|
|
|
}
|
2025-02-06 11:37:41 +08:00
|
|
|
|
return { code, message }
|
2024-08-22 15:03:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|