index.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // 加一个中间层方便以后使用其他ui库
  2. import { ElMessage } from 'element-plus'
  3. import { Notify } from 'vant'
  4. import { getEquipmentType } from '@cip/utils/util'
  5. import './index.less'
  6. /**
  7. * - CipMessage(opts)
  8. * - CipMessage.success(opts)
  9. * - CipMessage.error(opts)
  10. * - CipMessage.warning(opts)
  11. * - CipMessage.info(opts)
  12. * - opts => 移动端传vant Notify的参数,pc端传ElMessage的参数
  13. */
  14. function CipMessage ({ message, type = 'success', ...reset }) {
  15. const ElMessageTypeToVantTypeMap = {
  16. success: 'success',
  17. info: 'primary',
  18. warning: 'warning',
  19. error: 'danger'
  20. }
  21. const isMobile = getEquipmentType() === 'mobile'
  22. if (isMobile) {
  23. Notify({ type: ElMessageTypeToVantTypeMap[type], message, ...reset })
  24. } else {
  25. ElMessage({
  26. showClose: true,
  27. type,
  28. message,
  29. ...reset
  30. })
  31. }
  32. }
  33. function messageTypeWrapper (type, params) {
  34. const paramsIsStr = typeof params === 'string'
  35. return paramsIsStr ? CipMessage({ message: params, type }) : CipMessage(params)
  36. }
  37. CipMessage.success = (params) => messageTypeWrapper('success', params)
  38. CipMessage.error = (params) => messageTypeWrapper('error', params)
  39. CipMessage.warning = (params) => messageTypeWrapper('warning', params)
  40. CipMessage.info = (params) => messageTypeWrapper('info', params)
  41. export default CipMessage