useAccountOptions.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { ref, onMounted } from 'vue'
  2. import { customApi } from '@/service/custom'
  3. import Config from '@/config/index'
  4. const { Code } = Config
  5. export function useAccountOptions() {
  6. // 响应式数据
  7. const loginOptions = ref([])
  8. const isLoaded = ref(false)
  9. // 获取账户列表(核心方法)
  10. const getDateList = async () => {
  11. try {
  12. isLoaded.value = false
  13. const res = await customApi.CustomDropdown({ platform: '' })
  14. if (res.code === Code.StatusOK) {
  15. // 格式化下拉选项
  16. loginOptions.value = res.data.map(item => ({
  17. ...item,
  18. value: item.login,
  19. text: item.login
  20. }))
  21. } else {
  22. uni.showToast({
  23. title: res.msg || '获取账户失败',
  24. icon: 'none'
  25. })
  26. loading.value = false
  27. }
  28. } catch (err) {
  29. uni.showToast({
  30. title: err.msg || '网络异常,请重试',
  31. icon: 'none'
  32. })
  33. loading.value = false
  34. console.error(err)
  35. } finally {
  36. isLoaded.value = true
  37. }
  38. }
  39. // ✨ 自动执行(页面挂载后自动调用)
  40. onMounted(() => {
  41. getDateList()
  42. })
  43. return {
  44. loginOptions,
  45. isLoaded,
  46. getDateList
  47. }
  48. }