1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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)
- }
- })
- }
|