You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.9 KiB
JavaScript
108 lines
2.9 KiB
JavaScript
1 year ago
|
import { create } from 'zustand'
|
||
|
import { fetchJSON, postForm } from '@/utils/request'
|
||
|
import { HT_HOST } from "@/config"
|
||
|
import { usingStorage } from '@/hooks/usingStorage'
|
||
|
|
||
|
export const postAccountStatus = async (formData) => {
|
||
|
|
||
|
const { errcode, result } = await postForm(
|
||
|
`${HT_HOST}/service-CooperateSOA/set_account_status`, formData)
|
||
|
return errcode !== 0 ? {} : result
|
||
|
}
|
||
|
|
||
|
export const fetchAccountList = async (params) => {
|
||
|
|
||
|
const { errcode, result } = await fetchJSON(
|
||
|
`${HT_HOST}/service-CooperateSOA/search_account`, params)
|
||
|
return errcode !== 0 ? {} : result
|
||
|
}
|
||
|
|
||
|
export const postAccountForm = async (formData) => {
|
||
|
|
||
|
const { errcode, result } = await postForm(
|
||
|
`${HT_HOST}/service-CooperateSOA/new_or_update_account`, formData)
|
||
|
return errcode !== 0 ? {} : result
|
||
|
}
|
||
|
|
||
|
export const fetchRoleList = async () => {
|
||
|
|
||
|
const { errcode, result } = await fetchJSON(
|
||
|
`${HT_HOST}/service-CooperateSOA/get_role_list`)
|
||
|
return errcode !== 0 ? {} : result
|
||
|
}
|
||
|
|
||
|
const useAccountStore = create((set, get) => ({
|
||
|
|
||
|
accountList: [],
|
||
|
|
||
|
selectedAccount: null,
|
||
|
|
||
|
selectAccount: (account) => {
|
||
|
set(() => ({
|
||
|
selectedAccount: account
|
||
|
}))
|
||
|
},
|
||
|
|
||
|
disableAccount: async (accountId) => {
|
||
|
|
||
|
const formData = new FormData()
|
||
|
formData.append('wu_id', accountId)
|
||
|
formData.append('account_status', 'enable')
|
||
|
|
||
|
const result = await postAccountStatus(formData)
|
||
|
|
||
|
console.info(result)
|
||
|
},
|
||
|
|
||
|
saveOrUpdateAccount: async (formValues) => {
|
||
|
const { selectedAccount } = get()
|
||
|
const { userId } = usingStorage()
|
||
|
const formData = new FormData()
|
||
|
formData.append('wu_id', selectedAccount.userId)
|
||
|
formData.append('lmi_sn', selectedAccount.lmi_sn)
|
||
|
formData.append('lmi2_sn', selectedAccount.lmi2_sn)
|
||
|
formData.append('user_name', formValues.username)
|
||
|
formData.append('real_name', formValues.realname)
|
||
|
formData.append('email', formValues.email)
|
||
|
|
||
|
formData.append('travel_agency_id', formValues.travelAgencyId)
|
||
|
formData.append('roles', formValues.roleId)
|
||
|
|
||
|
formData.append('opi_sn', userId)
|
||
|
|
||
|
return postAccountForm(formData)
|
||
|
},
|
||
|
|
||
|
searchAccountByCriteria: async (formValues) => {
|
||
|
|
||
|
const searchParams = {
|
||
|
username: formValues.username,
|
||
|
realname: formValues.realname,
|
||
|
lgc: 2
|
||
|
}
|
||
|
|
||
|
const resultArray = await fetchAccountList(searchParams)
|
||
|
|
||
|
const mapAccoutList = resultArray.map((r) => {
|
||
|
return {
|
||
|
userId: r.wu_id,
|
||
|
lmi_sn: r.lmi_sn,
|
||
|
lmi2_sn: r.lmi2_sn,
|
||
|
username: r.user_name,
|
||
|
realname: r.real_name,
|
||
|
email: r.email,
|
||
|
lastLogin: r.wu_lastlogindate,
|
||
|
travelAgency: r.travel_agency_name,
|
||
|
travelAgencyId: r.travel_agency_id,
|
||
|
roleId: r.roles,
|
||
|
role: r.roles_name,
|
||
|
}
|
||
|
})
|
||
|
|
||
|
set(() => ({
|
||
|
accountList: mapAccoutList
|
||
|
}))
|
||
|
},
|
||
|
}))
|
||
|
|
||
|
export default useAccountStore
|