use-transfer-store.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { defineStore } from 'pinia'
  2. import ls from '@/utils/store2'
  3. import { ref } from 'vue'
  4. import crypt from '../composables/crypt'
  5. const TRANSFER_INFO_KEY = 'transferInfo'
  6. const useTransferStore = defineStore('transferStore', () => {
  7. const transferInfo = ref({})
  8. const initTransferInfo = () => {
  9. const encryptedTransferInfo = ls.get(TRANSFER_INFO_KEY)
  10. if (encryptedTransferInfo) {
  11. const decryptedTransferInfo = crypt.decrypt(encryptedTransferInfo)
  12. if (decryptedTransferInfo) {
  13. transferInfo.value = JSON.parse(decryptedTransferInfo)
  14. }
  15. }
  16. }
  17. const saveTransferInfo = (info: any) => {
  18. transferInfo.value = info
  19. const decryptedCard = crypt.encrypt(JSON.stringify(info))
  20. ls.set(TRANSFER_INFO_KEY, decryptedCard)
  21. }
  22. const clearTransferInfo = () => {
  23. transferInfo.value = {}
  24. ls.remove(TRANSFER_INFO_KEY)
  25. }
  26. initTransferInfo()
  27. return {
  28. transferInfo,
  29. saveTransferInfo,
  30. clearTransferInfo,
  31. }
  32. })
  33. export default useTransferStore