import Vue from 'vue'
import moment from 'moment'

// 日期格式化过滤器
Vue.filter('dateFormat', (value, format = 'YYYY-MM-DD') => {
  if (!value) return ''
  return moment(value).format(format)
})

// 日期时间格式化过滤器
Vue.filter('dateTimeFormat', (value, format = 'YYYY-MM-DD HH:mm:ss') => {
  if (!value) return ''
  return moment(value).format(format)
})

// 日期时间格式化过滤器
Vue.filter('timeFormat', (value, format = 'HH:mm:ss') => {
  if (!value) return ''
  return moment(value).format(format)
})

// 金额格式化过滤器
Vue.filter('currency', (value, currency = '¥') => {
  if (!value) return '0.00'
  return currency + parseFloat(value).toFixed(2)
})

// 数字格式化过滤器
Vue.filter('number', (value) => {
  if (!value) return '0'
  return parseFloat(value).toLocaleString()
})

// 状态格式化过滤器
Vue.filter('statusText', (value) => {
  const statusMap = {
    1: '正常',
    2: '客户名称未匹配',
    3: '分类规格未匹配'
  }
  return statusMap[value] || '未知'
})

// 字符串截取过滤器
Vue.filter('truncate', (value, length = 20) => {
  if (!value) return ''
  if (value.length <= length) return value
  return value.substring(0, length) + '...'
})

// 导出格式化函数供组件使用
export const formatDateTime = (value, format = 'YYYY-MM-DD HH:mm:ss') => {
  if (!value) return ''
  return moment(value).format(format)
}

export const formatDate = (value, format = 'YYYY-MM-DD') => {
  if (!value) return ''
  return moment(value).format(format)
} 

export const formatTime = (value, format = 'HH:mm:ss') => {
  if (!value) return ''
  return moment(value).format(format)
} 