import Vue from 'vue' import iview from 'iview' export default function editCategory (payload = {}, option = {}) { console.log(payload) return new Promise(async (resolve, reject) => { // 错误返回数据 const error = {} // 提交数据 const requestBody = { name: '', ico: '', } // 字段验证方法 const checkFuncs = { name (value) { return value && value.trim() ? '' : '分类名称不能为空' }, ico (value) { return value && value.trim() ? '' : '必须上传分类图标' }, } const valid = Object.keys(payload).reduce((resultList, key) => { const func = checkFuncs[key] const value = payload[key] const errorText = func ? func(value) : '' if (!errorText && value) requestBody[key] = value error[key] = errorText resultList.push(!errorText) return resultList }, []).every(Boolean) if (!valid) return reject(error) const parentId = payload.category_id2 || payload.category_id1 if (parentId) { delete requestBody.category_id1 delete requestBody.category_id2 requestBody.parent_id = parentId } if (payload.id) requestBody.id = payload.id try { const method = requestBody.id ? 'put' : 'post' await Vue.http[method]('/product/category', requestBody) iview.Message.success('保存成功') resolve() } catch (e) { reject(e) } }) }