setting.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { computed } from 'vue'
  2. import { defineStore } from '../store'
  3. import { useLoginStore } from './login'
  4. import { localData } from '../storage'
  5. /**
  6. * 系统设置存储对象
  7. */
  8. export const useSettingStore = defineStore(() => {
  9. const loginStore = useLoginStore()
  10. const settings = localData.getValue('settings')
  11. const settingIndex = computed(() => settings.findIndex(((e) => e.loginId === loginStore.userId)))
  12. const userSetting = computed(() => (settings[settingIndex.value] ?? {
  13. loginId: 0,
  14. showOrderDialog: true,
  15. showOrderSuccessDialog: false,
  16. showOrderFailDialog: false,
  17. orderFocusType: 1,
  18. orderPriceType: 1,
  19. orderQtyIsEmpty: false
  20. }))
  21. // 获取设置项值
  22. const getSettingValue = <K extends keyof Omit<Model.LocalSetting, 'loginId'>>(key: K) => {
  23. return userSetting.value[key]
  24. }
  25. // 保存设置
  26. const updateSettings = (value: Omit<Model.LocalSetting, 'loginId'>) => {
  27. const item = {
  28. ...value,
  29. loginId: loginStore.userId
  30. }
  31. if (settingIndex.value > -1) {
  32. settings[settingIndex.value] = item
  33. } else {
  34. settings.push(item)
  35. }
  36. localData.setValue('settings', settings)
  37. }
  38. // 恢复默认设置
  39. const resetSettings = () => {
  40. if (settingIndex.value > -1) {
  41. settings.splice(settingIndex.value, 1)
  42. localData.setValue('settings', settings)
  43. }
  44. }
  45. return {
  46. userSetting,
  47. getSettingValue,
  48. updateSettings,
  49. resetSettings
  50. }
  51. })