* Copyright (c) 2022 - present TinyVue Authors.
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
*
* Use of this source code is governed by an MIT-style license.
*
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/
export const initUser =
({ api, props, state }) =>
(value) => {
if (!value) {
state.user = value
return
}
api.getUsers(value).then((info) => {
info.sort((a, b) => {
return value.indexOf(a[state.valueField] + '') > value.indexOf(b[state.valueField] + '') ? 1 : -1
})
const list = info.map((user) => {
return user[state.valueField]
})
state.options = info
state.user = props.multiple ? list : list[0]
props.cache && api.cacheUser(info)
})
}
export const showCard =
({ api, service, state }) =>
(e, user) => {
e.preventDefault()
state.spinner = true
state.expand = false
service.fetchUser(user.employeeNumber).then((data) => {
state.data = data
state.spinner = false
})
api.getUserImageUrl(user.employeeNumber).then((url) => {
state.imgUrl = url
})
}
export const showDetail = (state) => () => {
state.expand = !state.expand
}
export const computedTextField =
({ service, props }) =>
() =>
props.textField || service.textField || 'userCN'
export const computedValueField =
({ service, props }) =>
() =>
props.valueField || service.valueField || 'userId'