editAttributeDetail.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import Vue from 'vue'
  2. export default function editAttributeDetail (payload = {}, option = {}) {
  3. return new Promise(async (resolve, reject) => {
  4. const checkHandles = {
  5. name: value => {
  6. return value ? '' : '规格名称不能为空'
  7. },
  8. attribute_category_id: value => {
  9. return value ? '' : '属性不能为空'
  10. },
  11. hand_add_status: (value, allValue) => {
  12. if (!value && value !== 0) return '必须选择是否支持商家手动新增'
  13. if (value === 0 && !allValue.input_list.length) return '可选列表为空时必须支持商家手动新增'
  14. return ''
  15. },
  16. sort: value => {
  17. return value ? '' : '排序不能为空'
  18. },
  19. }
  20. const error = {}
  21. Object.keys(payload).forEach(key => {
  22. const handle = checkHandles[key]
  23. if (!handle) return
  24. error[key] = handle(payload[key], payload)
  25. })
  26. console.log(payload)
  27. if (Object.keys(error).find(key => error[key])) {
  28. return reject(error)
  29. }
  30. try {
  31. payload.input_list = payload.input_list.join(',')
  32. const method = payload.id ? 'put' : 'post'
  33. await Vue.http[method]('/product/attribute/item', payload)
  34. resolve()
  35. } catch (e) {
  36. reject(e)
  37. }
  38. })
  39. }