editCategory.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import Vue from 'vue'
  2. import iview from 'iview'
  3. export default function editCategory (payload = {}, option = {}) {
  4. console.log(payload)
  5. return new Promise(async (resolve, reject) => {
  6. // 错误返回数据
  7. const error = {}
  8. // 提交数据
  9. const requestBody = {
  10. name: '',
  11. ico: '',
  12. }
  13. // 字段验证方法
  14. const checkFuncs = {
  15. name (value) {
  16. return value && value.trim() ? '' : '分类名称不能为空'
  17. },
  18. ico (value) {
  19. return value && value.trim() ? '' : '必须上传分类图标'
  20. },
  21. }
  22. const valid = Object.keys(payload).reduce((resultList, key) => {
  23. const func = checkFuncs[key]
  24. const value = payload[key]
  25. const errorText = func ? func(value) : ''
  26. if (!errorText && value) requestBody[key] = value
  27. error[key] = errorText
  28. resultList.push(!errorText)
  29. return resultList
  30. }, []).every(Boolean)
  31. if (!valid) return reject(error)
  32. const parentId = payload.category_id2 || payload.category_id1
  33. if (parentId) {
  34. delete requestBody.category_id1
  35. delete requestBody.category_id2
  36. requestBody.parent_id = parentId
  37. }
  38. if (payload.id) requestBody.id = payload.id
  39. try {
  40. const method = requestBody.id ? 'put' : 'post'
  41. await Vue.http[method]('/product/category', requestBody)
  42. iview.Message.success('保存成功')
  43. resolve()
  44. } catch (e) {
  45. reject(e)
  46. }
  47. })
  48. }